牛顿法求极值python实现

**
理论和例题部分转载百度文库的PPT,本文以编程为主,锻炼自己编程能力
转载地址为:https://wenku.baidu.com/view/64a1c6f8700abb68a982fbad.html

引言

**
牛顿法即牛顿迭代法,又称为牛顿-拉夫逊方法,由于多数方程不存在求跟公式,因此求精确根非常困难,甚至不可解,从而寻找方程的近似根就特别重要。牛顿迭代法是用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根,这样做的有点就是方程f(x)=0在单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根、收敛性等。(最优化理论与算法第2版P287有收敛性相关的证明)
**

原理

在第K次迭代的迭代点xk的邻域内,把F(x)展开成泰勒级数的二次函数式去近似代替原目标函数F(x),然后求出该二次函数的极小点,作为对远目标函数求优的下一个迭代点,以此类推,通过多次重复迭代,使迭代点逐步逼近远目标函数的极小点。

计算过程

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
例题详解
已知目标函数 f ( X ) = 4 ( x 1 + 1 ) 2 + 2 ( x 2 − 2 ) 2 + x 1 + x 2 + 10 f(X) = 4{({x_1} + 1)^2} + 2{({x_2} - 2)^2} + {x_1} + {x_2} + 10 f(X)=4(x1+1)2+2(x22)2+x1+x2+10,设初始点 X 0 = [ 0 , 0 ] T {X^0}{\rm{ = }}{\left[ {0,0} \right]^T} X0=[0,0]T,迭代梯度精度 ε = 0.01 \varepsilon {\rm{ = }}0.01 ε=0.01%,试用阻尼牛顿法求目标函数的极小点和极小值点。
解:

  1. 目标函数的梯度为:
    ∇ f ( X ( k ) ) = [ ∂ f ( X ( k ) ) ∂ x 1 , ∂ f ( X ( k ) ) ∂ x 2 ] = [ 8 x 1 + 9 4 x 2 − 7 ] \nabla f({X^{(k)}}) = \left[ {\frac{ {\partial f({X^{(k)}})}}{ {\partial {x_1}}},\frac{ {\partial f({X^{(k)}})}}{ {\partial {x_2}}}} \right] = \left[ \begin{array}{l} 8{x_1} + 9\\ 4{x_2} - 7 \end{array} \right] f(X(k))=[x1f(X(k)),

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值