
http://www.ma-xy.com
1.4 MATLAB 应用实例 第一章 非线性最小二乘优化
1.4 MATLAB 应用实例
MATLAB 中用 lsqnonlin 函数来求解非线性最小二乘优化问题,其调用格式为
[x,resnorm,residual,exitag,output,lambda,jacobian]=lsqnonlin(fun,x0,lb,ub,options)
其中:resnorm 为残差平方和,也即为最小值 r(x)
T
r(x);residual 为残差 r(x);lambda 返
回最优解 x 处的拉格朗日乘子;jacobian 为最优解 x 处的雅克比矩阵。
我们用 lsqnonlin 求解如下非线性最小二乘问题
min
x
f
2
(x) =
m
∑
i=1
f
2
i
(x)
其中:
f(x) =
sin(x
1
+ x
2
− 2)
1
−(x
1
− 3)
2
+ 2
e
2x
1
+ e
2x
2
x
2
1
+ x
2
2
− x
1
x
2
+ x
1
+ 1
求解程序为
1 x0 = [ 0 , 0 ] ;
2 fun = @(x) [
3 sin (x (1 )+x (2 )−2) ;
4 1/(2−(x (1 )−3)^2) ;
5 exp (2 (x (1) )+exp(2−x(2 ) ) ;
6 x( 1)^2+x( 2)^2−x (1) *x (2 )+x (1 ) +1];
7 o ption s = optimoptions ( ’ ls q no nl in ’ , ’ Display ’ , ’ i t e r ’ ) ;
8 o ption s . Algorithm = ’ Levenberg−Marquardt ’
9 [ x , resnorm , r esidu al , e x i t fl a g , output , lambda , jac ob ian ] = lsq no nl i n ( fun , x0 , IJ , IJ , op ti ons )
10
http://www.ma-xy.com 4 http://www.ma-xy.com