matlab中的nlinfit,matlab中nlinfit问题!!!!!!!!!!!!
matlab中nlinfit問題!!!!!!!!!!!!
mip版??關注:272??答案:3??懸賞:40
解決時間 2021-01-19 04:20
已解決
2021-01-18 13:28
mu=inline('beta(1)/(1+(beta(1)/100000-1)*exp(-beta(2)*(t-1981)))','beta','t')
t=[1981,1982,1983,1984,1985]
y=[1000,1111,1222,1333,1444]
beta=nlinfit(t,y,mu,[0 0])
L=beta(1)
k=beta(2)
目的是要擬合L和k,但是在nlinfit那里就要報錯!!!
??? Error using ==> nlinfit
The inline model function generated the following error:
Error using ==> inlineeval
Error in inline expression ==> beta(1)/(1+(beta(1)/100000-1)*exp(-beta(2)*(t-1981)))
??? Error using ==> mrdivide
Matrix dimensions must agree.
看不懂,求高手指點!!!!
最佳答案
2021-01-18 14:29
mu=inline('beta(1)./(1+(beta(1)/100000-1)*exp(-beta(2)*(t-1981)))','beta','t');
t=[1981,1982,1983,1984,1985];
y=[1000,1111,1222,1333,1444];
beta=nlinfit(t,y,mu,[1000 3542]);
L=beta(1)
k=beta(2)
你寫得好像是線性的,所以求出來的k有點問題。
你出錯的原因是 beta(1)后面應該用點除。。即 ./
全部回答
1樓
2021-01-18 15:28
f=inline('(a(1)-a(4))./(1+(x./a(3)).^a(2))+a(4)','a','x'); % 公式錯誤,其他沒事
x=0.5:0.1:1.5;
y=[0,0,0.006,0.175,1.05,1.7,1.85,1.9,1.95,1.975,2];
a0=[0,2,1,3];
b=nlinfit(x,y,f,a0);
plot(x,y,'o',x,f(b,x),'-');
2樓
2021-01-18 14:50
%[1 1 1]就是給a(1),a(2),a(3) 參數賦予初值
%程序運行不了是因為你定義的內聯函數inline有錯,注意t為數組運算符得用點
t=[1790:10:2000];
p=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 281.4];
ft=inline('a(1).*a(2)./(a(1)+exp(-a(3).*t).*a(2)-exp(-a(3).*t).*a(1))','a','t');
a=nlinfit(t,p,ft,[1 1 1])
%a = 1.0000 94.7727 1.0000
%但是給出警告,擬合結果不好,得參考幫助設置一下optimset
另外,團IDC網上有許多產品團購,便宜有口碑
我要舉報
如果感覺以上信息為低俗/不良/侵權的信息,可以點下面鏈接進行舉報,我們會做出相應處理,感謝你的支持!
點此我要舉報以上信息!
推薦資訊
大家都在看
總結
以上是生活随笔為你收集整理的matlab中的nlinfit,matlab中nlinfit问题!!!!!!!!!!!!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 石家庄计算机专接本学校有哪些,河北省内的
- 下一篇: java的serversocket_Ja