登录论坛

查看完整版本 : [MATLAB基础] 非线性拟合问题


jiangkingdom
2009-09-24, 15:04
我现在只要运行M文件的话就会有如下错误
M文件
function yy=model(beta0,x)
a=beta0(1);
b=beta0(2);
c=beta0(3);
yy=a*b*exp(cx)/(b-a+a*exp(cx))
程序
x =
0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45

beta0 =

4.4300 82.0000 0.2500


y= 4.4300 8.4000 13.3100 23.1600 41.6300 54.7800 66.1200 75.7900 77.9500 77.8100 80.5100 81.4600 81.9000 82.0500 80.1900 79.6700
betafit = nlinfit(x,y,'model',beta0)

总是给出已下的结果这是我这几天做的拟定,哪里有问题啊,请教了
??? Input argument "beta0" is undefined.

Error in ==> model at 2
a=beta0(1);
说是没有定义beta0,可是明明M文件里有啊,还有a=beta0(1);这个哪里出错了呢
希望能得到解决

slgu
2009-09-24, 22:00
在运行nlinfit之前,在增加一句:
beta0=[3.288 81.114 0.2618]
即可。

jiangkingdom
2009-09-25, 08:53
在运行nlinfit之前,在增加一句:
beta0=[3.288 81.114 0.2618]
即可。

:eek: beta0=[3.288 81.114 0.2618]是哪来的 这不是拟合的结果么 不是应该运行nlinfit 后才出现吗 。。。。。
你怎么做出来的啊 教教。。。
beta0 =

4.4300 82.0000 0.2500 之前写错了。。。

alexkong
2009-09-26, 18:25
额外热玩儿玩儿为额外热舞认为二位