matlab的lsqnonlin函数怎么用
按照课本上的说法,isqnonlin主要用于求解非线性最小二乘(曲线拟合)问题。最一般的调用方法:
[x,norm,res,ef,out,lam,jac]=isqnonlin(@F,x0,v1,v2,opt,P1,P2,...)
左边是输出列表,右边是输入列表。
输出列表中参数的含义是:
x:目标函数F中的待定参数
norm:误差的平方
res:误差的向量
ef:程序停止运行的原因
out:一个结构变量,包含程序运行或停止时的一些信息
lam:上下界所对应的拉格朗日乘子
jac:结果(x点)处的雅可比矩阵
输入列表中参数的含义:
F:调用的函数
x0:迭代初值或有根区间
v1等:课本上没说我也不知道,一般写作[],意思是使用缺省值(默认值)
opt控制程序运行的参数,一般写作[],意思也是使用缺省值(默认值)
P1等:传递给F的参数(有需要的话)
以上就是isqnonlin的调用方法,最后再提醒大家,并不需要把所有的输入输出都写出来,只需要写出自己需要的就行。
举个例子(比如只想要x):
函数
function h=aabb(x)
h(1)=x(2)-x(1)^2;
h(2)=1-x(1);
命令行
x0=[2,2];
[x]=lsqnonlin(@aabb,x0)
结果为
1 .000 1.000
以上~