目录

  • 一.问题
  • 二.python代码
  • 三.结果

一.问题

给定一个函数f(x)=60-10x1-4x2+x12+x22-x1x2,利用牛顿法求解该函数的最小值,需给出中间结果。

二.python代码

import numpy as np
import matplotlib.pyplot as plt#牛顿法求解f = 60-10*x1-4*x2+x1**2+2*x2**2-x1*x2的极值
#原函数
#建立点的列表并关联起来
X1=np.arange(-50,50,0.1)
X2=np.arange(-50,50,0.1)
[x1,x2]=np.meshgrid(X1,X2)
f = 60-10*x1-4*x2+x1**2+2*x2**2-x1*x2
plt.contour(x1,x2,f,20) # 画出函数的20条轮廓线#求梯度
def jacobian(x):return np.array([-10+2*x[0]-x[1],-4+2*x[1]-x[0]])#求海森矩阵
def hessian(x):return np.array([[2,-1],[-1,2]])#牛顿法程序
def newton(x0):W=np.zeros((2,10**2))i = 1imax = 100W[:,0] = x0 x = x0delta = 1alpha = 1#迭代条件,当迭代次数不少于100次并且精度大于0.1时进行循环while i<imax and delta>0.1:#将海森矩阵的逆与梯度相乘p = -np.dot(np.linalg.inv(hessian(x)),jacobian(x))x0 = xx = x + alpha*pW[:,i] = xdelta = sum((x-x0))print('第',i,'次迭代结果:')print(x,'\n')i=i+1W=W[:,0:i]  # 记录迭代点return W#初始点
x0 = np.array([-40,40])
W = newton(x0)plt.plot(W[0,:],W[1,:],'g*',W[0,:],W[1,:]) # 画出迭代点收敛的轨迹
plt.show()

三.结果

最优化--牛顿法求解多元函数极值例题(python)相关推荐

  1. 修正牛顿法编程python_GitHub - Maples7/newtonMethod: 牛顿法求解复数域上x^4-1=0收敛域的程序 using Python...

    newtonMethod 牛顿法求解复数域上x^4-1=0收敛域的程序 using Python [总体分析] 1.牛顿法本质上是关于迭代求解非线性方程解的方法,而迭代是为了不断逼近精确解.牛顿法迭代 ...

  2. 通过梯度下降和牛顿法求解一个数的平方根

    梯度下降 梯度下降法(Gradient descent)是一个一阶最优化算法,就是让参数沿着损失函数负梯度的方向更新.迭代的步长,也就是学习率是事先给定的,如果负梯度的绝对值越大,这次更新的幅度也会越 ...

  3. 运用遗传算法求解函数极值(fortran)

    运用遗传算法求解函数极值(fortran) 写在前面 遗传算法的前世今生 算法步骤简介 遗传算法的主体结构 开始求解: 结果显示: 最后再来说一些需要注意的地方 写在前面 这篇文章适合一些应急学习最优 ...

  4. 粒子群算法求解多元函数最值问题

    粒子群算法求解多元函数最值问题 一.简介 多元函数极值&最值问题通常使用导数/偏导数进行推导,这里尝试使用启发式算法进行求解近似最优解.选用粒子群算法进行求解,粒子群算法模仿鸟群觅食行为,核心 ...

  5. 数值计算之 牛顿法与函数极值

    数值计算之 牛顿法与函数极值 前言 最速下降法 牛顿法 牛顿法分析 代码示例 后记 前言 本篇继续优化理论的算法学习,牛顿法. 最速下降法 首先回顾上次提到的梯度下降法(其实就是最速下降法):通过求取 ...

  6. 斐波那契(Fibonacci)迭代法求解函数极值(附代码)

    目录 Fibonacci数列: 迭代公式: 算法步骤: 例题 C++代码: Fibonacci数列又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例 ...

  7. Censored Weibull Distribution 最大似然估计 (结合牛顿法求解)

    Censored Weibull Distribution 最大似然估计 (结合牛顿法求解) 前言:写这篇博客是因为我前几天偶然读到一篇很有意思的文章, 然后想用自己的实验数据测试一下其分布情况,本以 ...

  8. matlab 牛顿法 最优化,matlab最优化牛顿法

    最优化算法与MATLAB的Global Optimization Toolbox_计算机软件及应用_IT/计算机_专业资料.最优化算法与 MATLAB的Global Optimization Tool ...

  9. 贪心算法求解TSP问题(python)

    这里使用贪心算法求解TSP问题的python版本 # dist 为距离矩阵,start_index 为起始位置 def tsp_quick(dist: list, start_index: int): ...

最新文章

  1. C++11中std::packaged_task的使用
  2. WEB测试常见问题汇总
  3. NFS服务基本配置及使用
  4. Web 开发最有用的 jQuery 插件集锦
  5. cmd常见错误及解决方法
  6. Python json序列化时default/object_hook指定函数处理
  7. 单核工作法16:循序渐进(下)
  8. C++数据结构struct
  9. SAP Spartacus b2b表格的cell配置解析逻辑
  10. linux之task_struct
  11. matlab出错及解决办法,Linux下使用Matlab符号函数出错的解决办法
  12. 【LeetCode】剑指 Offer 24. 反转链表
  13. struts2的action中获得request response session 对象
  14. 「Injective衍生品市场创意大赛」角逐“最强王者”,就等你来
  15. 图片相似度判断-差异值哈希算法JAVA版
  16. 【历史上的今天】1 月 18 日:微软的“技术布道者”;反盗版法案抗议行动;哈佛 Mark I 灵感起源
  17. Hazelcast IMDG参考中文版手册-第七章-分布式数据结构
  18. 如何将文件打包到jar包里面
  19. Vue之导出xlsx
  20. 华为鸿蒙糸统其它手机可以用吗,鸿蒙系统vivo能用吗

热门文章

  1. c语言字符串碱基互补配对,碱基互补配对原则
  2. 神经网络的拓扑结构描述,神经网络的拓扑结构图
  3. K8S部署nginx应用
  4. matlab纵波动画
  5. 原来404页面可以这样做【转】
  6. 每天学一点flash(74) Flash搜索框
  7. excel表计算和计算器计算结果不一致
  8. 老潘的思考(AI部署、方向、就业)!
  9. js发送SOAP请求
  10. java f5 f6 f7_ACCA考试F5+F6+F7科目技巧分析