最优化考试之牛顿法


一、牛顿法

1.问题条件

  1. 目标函数 f ( x ) f(x) f(x),求极小值
  2. 初始点 x 0 x_0 x0
  3. 精度要求e(没有提就是近似0)

2.求解过程

  1. 求解一阶雅克比矩阵 ∇ f ( x ) ∇f(x) f(x)和二阶海森矩阵 ∇ 2 f ( x ) ∇^2f(x) 2f(x),k=0,
  2. ∇ f ( x k ) < e ∇f(x_k)<e f(xk)<e,停止迭代,输出结果,否则k=k+1
  3. 求海森矩阵的逆矩阵 G = ( ∇ 2 f ( x k ) ) − 1 G=(∇^2f(x_k))^{-1} G=(2f(xk))1
  4. 当前移动步长 d k = − G ∗ ∇ f ( x k ) d_k=-G*∇f(x_k) dk=Gf(xk)
  5. 下一个迭代点 x k + 1 = x k + d k x_{k+1}=x_k+d_k xk+1=xk+dk,跳至第二步

3.例子

在这里插入图片描述


求一阶雅克比矩阵:

∇ f ( x ) = [ 6 x 1 − 2 x 2 − 2 x 3 , − 2 x 1 + 6 x 2 − 2 x 3 , − 2 x 1 − 2 x 2 + 6 x 3 ) ] T ∇f(x)=[6x_1-2x_2-2x_3,-2x_1+6x_2-2x_3,-2x_1-2x_2+6x_3)]^T f(x)=[6x12x22x3,2x1+6x22x3,2x12x2+6x3)]T

求二阶海森矩阵:
在这里插入图片描述
求海森矩阵的逆矩阵G
在这里插入图片描述
将初始点 x 0 x_0 x0代入 ∇ f ( x ) , ∇ 2 f ( x ) ∇f(x),∇^2f(x) f(x),2f(x)

∇ f ( x 0 ) = [ 0 , 4 , 0 ] T ∇f(x_0)=[0,4,0]^T f(x0)=[0,4,0]T

∇ 2 f ( x 0 ) = ∇ 2 f ( x ) ∇^2f(x_0)=∇^2f(x) 2f(x0)=2f(x)(见上图)

因此 d 0 = − G ∗ ∇ f ( x 0 ) = [ − 1 / 2 , − 1 , − 1 / 2 ] T d_0=-G*∇f(x_0)=[-1/2,-1,-1/2]^T d0=Gf(x0)=[1/2,1,1/2]T

x 1 = x 0 + d 0 = 0 x_1=x_0+d_0=0 x1=x0+d0=0

又因为 ∇ f ( x 1 ) = 0 ∇f(x_1)=0 f(x1)=0

因此点 x 1 x_1 x1为最优解点,最优解为 f ( x 1 ) = 0 f(x_1)=0 f(x1)=0

PS

牛顿法通常用于求解目标函数的极小值,如果要求是求目标函数的最大值,将目标函数乘以负号后再按照上述步骤求解即可。

相关推荐

  1. 04 牛顿、高斯牛顿及 Cpp 实现

    2023-12-27 22:26:01       16 阅读
  2. 机械臂运动学逆解(牛顿

    2023-12-27 22:26:01       26 阅读
  3. 高斯-牛顿C实现

    2023-12-27 22:26:01       10 阅读
  4. 关于牛顿计算潮流问题bug解决

    2023-12-27 22:26:01       49 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-27 22:26:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-27 22:26:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-27 22:26:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-27 22:26:01       20 阅读

热门阅读

  1. Centos设置IP地址方法

    2023-12-27 22:26:01       35 阅读
  2. Day02-ES6

    2023-12-27 22:26:01       31 阅读
  3. Kotlin 接口

    2023-12-27 22:26:01       34 阅读
  4. 14-网络安全框架及模型-分层防护模型

    2023-12-27 22:26:01       35 阅读
  5. python初试五

    2023-12-27 22:26:01       39 阅读
  6. sed常用简说

    2023-12-27 22:26:01       36 阅读
  7. Spring系列:基于Spring-Jdbc实现事务

    2023-12-27 22:26:01       30 阅读
  8. 简述 tcp 和 udp的区别?

    2023-12-27 22:26:01       35 阅读
  9. python哈希算法实现

    2023-12-27 22:26:01       39 阅读
  10. 【资源】stable diffusion常用checkpoint

    2023-12-27 22:26:01       38 阅读