非線性最小二乘函數
lsqnonlin
格式x = lsqnonlin(fun,x0) %x0
為初始解向量;fun為,i=1,2,…,m,fun返回向量值F,而不是平方和值,平方和隱含在方法中,fun的定義與前面相同。
x = lsqnonlin(fun,x0,lb,ub) %lb、ub定義x的下界和上界:。
x = lsqnonlin(fun,x0,lb,ub,options) %options為指定優化參數,若x沒有界,則lb=[ ],ub=[ ]。
[x,resnorm] = lsqnonlin(…) % resnorm=sum(fun(x).^2),即解x處目標函數值。
[x,resnorm,residual] = lsqnonlin(…) % residual=fun(x),即解x處fun的值。
[x,resnorm,residual,exitflag] = lsqnonlin(…) %exitflag為終止迭代條件。
[x,resnorm,residual,exitflag,output] = lsqnonlin(…) %output輸出優化信息。
[x,resnorm,residual,exitflag,output,lambda] = lsqnonlin(…) %lambda為Lagrage乘子
[x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqnonlin(…) %fun在解x處的Jacobian矩。
matlab中lsqnonlin函數使用方法如下:
x = lsqnonlin(fun,x0)
x = lsqnonlin(fun,x0,lb,ub)
x = lsqnonlin(fun,x0,lb,ub,options)
[x,resnorm] = lsqnonlin(...)
[x,resnorm,residual] = lsqnonlin(...)
[x,resnorm,residual,exitflag] = lsqnonlin(...)
[x,resnorm,residual,exitflag,output] = lsqnonlin(...)
[x,resnorm,residual,exitflag,output,lambda] =lsqnonlin(...)[x,resnorm,residual,exitflag,output,lambda,jacobian]= lsqnonlin(...)
注:
1.lsqnonlin解決非線性最小二乘法問題,包含非線性數據的擬合問題
2.fun函數包含返回值為一個向量,該向量包含了各個求和的分量(以便於找到使目標最小的可行解)。
3.各參數可做為常量在函數中事先給出,也可傳遞得到(參數表加到lsqnonlin的后面,當然除了調用時候系統會使用的反復迭代的參數)。
4.不選的可致空集。(其中初值一般要有。lb,ub,option可空,即【】)
