wu_580 发表于 2011-9-25 16:00:19

求助:matlab函数拟合

:dizzy:刚学matlab,完全不知道如何写程序,特来求助!
现有一组数据x=;
y=;
请高手编程拟合成y=Ax^n形式的函数

wu_580 发表于 2011-9-25 16:33:40

:'(求助求助。。

wu_580 发表于 2011-9-25 16:49:47

或者是有一组数据
x=;
y=;
函数为y=Ax^n,怎么求得参数A和n呢

wu_580 发表于 2011-9-25 19:06:15

:'(:'(。。。

stats01 发表于 2011-9-25 22:32:09

用此模型:
fx=@(b,x)b(1)*x.^b(2);
结果为:
b =[ 28.894855030.4374601403]
RSS = 870.251379192
MSe =       62.161
R^2 =      0.92392
效果不太好。
若用模型:
fx=@(b,x)b(1)*x.^2./(1+b(2)*x+b(3)*x.^2);
SSy =    11438
b =
RSS = 11.6518822148
MSe =       0.8963
R^2 =      0.99898
效果好得多(见图)。

wu_580 发表于 2011-9-28 11:06:21

stats01 发表于 2011-9-25 22:32 static/image/common/back.gif
用此模型:
fx=@(b,x)b(1)*x.^b(2);
结果为:


非常感谢你的帮忙,激动。。:P

wu_580 发表于 2011-10-2 10:02:16

stats01 发表于 2011-9-25 22:32 static/image/common/back.gif
用此模型:
fx=@(b,x)b(1)*x.^b(2);
结果为:


你好,请问你能不能给我这个题目的详细的命令流呢?
我编的程序老是出错,弄了好几天还没弄好。。

stats01 发表于 2011-10-2 10:13:39

clear,clc
x=;
y=;
fx=@(b,x)b(1)*x.^2./(1+b(2)*x+b(3)*x.^2);
b =; % initial value
for l=1:5
b=lsqcurvefit(fx,b,x,y)
b=nlinfit(x,y,fx,b)
end
plot(x,y,'o','markerfacecolor','k')
hold on
x1=min(x):range(x)/100:max(x);
y1=fx(b,x1);
plot(x1,y1,'r-','linewidth',2)

wu_580 发表于 2011-10-2 16:20:11

stats01 发表于 2011-10-2 10:13 static/image/common/back.gif
clear,clc
x=;
y=

谢谢你哦,要不我还不知道要弄多久呢。。
页: [1]
查看完整版本: 求助:matlab函数拟合