MATLAB中非线性拟合函数nlinfit参数中那个beta0是怎么确定的?

例如下面程序中的beta0该如何设置?
t=0:1.25:25;
x=[10.85,11.31,12.30,13.44,13.63,14.19,15.18,15.61,15.90,16.98,17.38...
17.78,18.66,19.19,17.78,19.21,19.14,19.74,19.96,20.06,19.91];
plot(t,x);hold on;
myfun=@(k,t)(k(1)*(1-k(2)*exp(-k(3)*t)).^(1/(1-k(4))));
beta0=[10,-1,0,0];%已经溢出
[k,r]=nlinfit(t,x,myfun,beta0);

确定beta0值是比较困难的,但可以通过rand( )函数来初定,再通过多次调整,才能得到满意beta0值(当相对差值r都比较小)。
本例的beta0可取
beta0 =[0.92181 0.73821 0.17627 0.40571]
运行后得到
k = 20.738 -2.6401 0.14569 2.9844
温馨提示:答案为网友推荐,仅供参考
相似回答