欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

matlab中的nlinfit,matlab中nlinfit问题!!!!!!!!!!!!

发布时间:2024/9/27 89 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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问题!!!!!!!!!!!!的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。