import numpy as np

# 约束投影算法意思就是

# 1. 我们的问题是求最小值(可能是局部最小)

# 2. 求最值我们都会想到用梯度下降算法,但是下降的方向是否应该也有一个约束比较好?

# 3. 如果我们的约束很带劲,我们将梯度投影在约束函数的方向向量上可能能更快的收敛。

# f(x) = x ^ 2 + y ^ 2  s.t. x + y >=1

x_0 = np.array([[3, -2]])

B = np.array([[1, 1]])

I = np.eye(2)

print(I)

P = I  - np.dot(np.dot(B.T, np.linalg.inv(np.dot(B, B.T))), B)

for i in range(50) :

x_g =  -2 * x_0[0][0] * 0.01  # 合并了负号

y_g =  -2 * x_0[0][1] * 0.01

g = np.array([[x_g], [y_g]])

d = np.dot(P, g)

x_0[0][0] = x_0[0][0] + d[0][0]

x_0[0][1] = x_0[0][1] + d[1][0]

print(x_0)

numpy简单实现梯度投影法相关推荐

  1. Numpy 简单教程(二)数组的形状(shape)操作

    更过的Numpy教程连载内容:https://blog.csdn.net/qq_38962621/category_10302107.html Numpy数组的形状(shape)操作 首先,使用 nd ...

  2. 【Python】Numpy简单入门

    Numpy   Numpy是Python中科学计算的核心库.Numpy提供了高性能的多维数组对象,还有用于处理这些数组的工具. 数组   Numpy的主要数据类型是ndarray即多维数组,可以用嵌套 ...

  3. python3 matlabplot 和numpy 简单绘图

    import matplotlib.pyplot as plt import numpy as npx = np.linspace(0, 2 * np.pi, 200) y = np.sin(x)fi ...

  4. knn算法,利用numpy简单实现

    首先明确概念: 回归:预测体重.预测房价.预测损失. 结果是不容易确定的. 分类:预测男女.预测是否能通过考试 结果是容易确定的. 我的理解:回归针对连续的数据.分类针对离散的数据. 回归连续.分类离 ...

  5. python【Numpy科学计算库】Numpy的超实用基础详细教程(看不懂你来打我)

    文章目录 Numpy简单介绍 1.Numpy是什么 2. 多维数组 numpy数据类型设定与转换 numpy索引与切片 多维数组索引.切片 数组文件输入输出 使用numpy.arange方法 使用nu ...

  6. Python Numpy介绍

    Numpy简单介绍 1.Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵 ...

  7. 2019b官方手册中文版_数据科学|「最全」实至名归,NumPy 官方早有中文教程,结合深度学习,还有防脱发指南...

    文章须知 文章作者:机器之心 责任编辑:书生 审核编辑:阿春 微信编辑:玖蓁 本文转载自公众号 机器之心 (ID:almosthuman2014) 原文链接:「最全」实至名归,NumPy 官方早有中文 ...

  8. A01_[NumPy中文网]数组基础(创建数组,多维数组切片,数组属性)、使用数组(基本操作符,数组特殊运算符)、索引(花式索引,布尔索引,缺省索引)

    NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体验在 ...

  9. android官方文档中文版_最全实至名归,NumPy 官方早有中文教程,结合深度学习,还有防脱发指南...

    点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 本文转自机器之心 在 Github 上一度蝉联最流行的机器学习和数据科学包 NumPy,已经有了非常之系统的中文文档,回想起当初细啃 ...

最新文章

  1. 如何在html中写javascript代码,如何在本地html代码中使用javascript脚本
  2. MySQL中间件之ProxySQL(11):链式规则( flagIN 和 flagOUT )
  3. c++ websocket客户端_python测试开发django81.dwebsocket实现websocket
  4. zoj 3640 概率dp
  5. ASP.NET数据库访问系列教程01-概述篇 创建数据访问层(下)
  6. MySQL 索引分析除了 EXPLAIN 还有什么方法?
  7. oracle 修改2个表,oracle学习笔记2:创建修改表
  8. 菜鸟进阶必修课-主板插线小百科(图)
  9. 鸿蒙宴原文及翻译,《鸿门宴》文言文原文及全文详细翻译
  10. [OHOS ERROR] clang not found, install it please
  11. 【预测模型】Leslie 人口增长模型
  12. VTN联合GWI共同启动“全球健康登月计划”让更多人享受到健康新生活
  13. python算法_02字符串(罗马类型的转换整数)
  14. 单样本t检验、独立样本t检验、配对样本t检验_python_数据分析_7
  15. Block.one的EOS区块链入门开发教程Elemental Battles
  16. VBA锁定单元格并记录单元格修改日志无bug篇
  17. 2020美亚杯个人赛
  18. 【Python爬虫】(一)requests:verify关健字参数
  19. 《程序员练习生》第1期 做程序员需要天赋吗?
  20. 独热编码(One-Hot Encoding)

热门文章

  1. LWN:两组跟memory-tier有关的patch!
  2. SDK ..\OBJ\XXX.axf: Error: L6218E: Undefined symbol XXXX (referred from XXX.o).
  3. ios设备如何安装chatgpt
  4. 用JS写一个《俄罗斯方块》小游戏
  5. (整理)Ruby的基础知识
  6. eclipse中xtext/xtend的安装及注意事项
  7. 通信原理 | 宽带:运营商的带宽和实际网速的关系
  8. linux 线程tid,关于linux:PID和TID之间的区别
  9. 手把手教你用深度学习做物体检测(四):模型使用
  10. Excel怎么一次性删除数据末尾的空格