c++分治法求最大最小值实现_最优化计算与matlab实现(12)——非线性最小二乘优化问题——G-N法...

8ced47dbad5e9ff74b60c1d092828ea2.png

参考资料

《精通MATLAB最优化计算(第二版)》

编程工具

Matlab 2019a

目录

石中居士:最优化计算与Matlab实现——目录​zhuanlan.zhihu.com
1f663e75c60891381634199d1bcd6543.png

非线性最小二乘优化问题

非线性最小二乘优化也叫无约束极小平方和函数问题,它是如下无约束极小问题:

,其中

例如

,则
,其中
。如果
的线性函数,即
,其中
为矩阵,
为向量,此时问题变为线性最小二乘问题。对于线性最小二乘问题,处理起来非常简单,其实质是
变量的二次规划问题,MATLAB中对应有lsqnonlin函数求解线性最小二乘问题。

G-N法(Gauss-Newton法)

G-N法源于无约束优化的牛顿算法,因为非线性最小二乘优化问题中的目标函数形式比较特殊,可以得到其雅可比矩阵的具体形式,将其代入牛顿法的迭代公式中,就可得到G-N法。

  • 原理

根据非线性最小二乘目标函数的表达式,有

,根据无约束优化的牛顿算法,代入目标函数的梯度,则有

其中

。由于
涉及
的计算,计算量比较大,将其忽略得到求解非线性最小二乘的G-N法:

  • 算法步骤

用G-N法求解非线性最小二乘优化问题

的算法过程如下:

【1】给定初始点

,及精度
,置

【2】计算

【3】计算

【4】计算

【5】解方程

【6】置

【7】检验终止原则,否则令

,转【2】。
  • Matlab代码与试算

用G-N法求下面的优化问题:

,其中初始点取

test.m

syms 

Gauss_Newton_Method.m

function

命令行窗口

x_optimization =

   5.6753e-07


f_optimization =

    2.0000

图像

44325329e1f56c1712bac90283c3d996.png

如图所示,函数

有两个最小点
,由于初始点为
,所以G-N法只求出了与1最近的

G-N算法是一个局部收敛方法,它对初始点的依赖性很大,只有当初始点接近极小点时才有可能收敛。


714cd1f41a40a9d58329807356aa299c.png

目录

石中居士:最优化计算与Matlab实现——目录​zhuanlan.zhihu.com
0ac816a13fa8b9b1cd9666b35dd32d6c.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值