c++分治法求最大最小值实现_最优化计算与matlab实现(12)——非线性最小二乘优化问题——G-N法...
生活随笔
收集整理的這篇文章主要介紹了
c++分治法求最大最小值实现_最优化计算与matlab实现(12)——非线性最小二乘优化问题——G-N法...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考資料
《精通MATLAB最優化計算(第二版)》
編程工具
Matlab 2019a
目錄
石中居士:最優化計算與Matlab實現——目錄?zhuanlan.zhihu.com非線性最小二乘優化問題
非線性最小二乘優化也叫無約束極小平方和函數問題,它是如下無約束極小問題:
,其中 。例如
,則 ,其中 。如果 為 的線性函數,即 ,其中 為矩陣, 為向量,此時問題變為線性最小二乘問題。對于線性最小二乘問題,處理起來非常簡單,其實質是 變量的二次規劃問題,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
symsGauss_Newton_Method.m
function命令行窗口
x_optimization =5.6753e-07f_optimization =2.0000圖像
如圖所示,函數
有兩個最小點 ,由于初始點為 ,所以G-N法只求出了與1最近的 。G-N算法是一個局部收斂方法,它對初始點的依賴性很大,只有當初始點接近極小點時才有可能收斂。
目錄
石中居士:最優化計算與Matlab實現——目錄?zhuanlan.zhihu.com總結
以上是生活随笔為你收集整理的c++分治法求最大最小值实现_最优化计算与matlab实现(12)——非线性最小二乘优化问题——G-N法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BLE无线信号的调制方式
- 下一篇: pso算法c++语言代码,一C++PSO