rhinoxixi 发表于 2009-4-11 22:58

请教matlab拟合递推公式的参数问题

自己建立的一个模型,是一个递推公式:
Yn=a+b*(Xn)^c+d*Yn-1
要拟合参数,matlab行吗?how?

具体举例如下 :

n      Xn                        Yn
1   0.82900      0.12500
2   0.81600      0.14600
3   0.64300      0.24300
4   0.57000      0.24700
5   0.47200      0.26800
6   0.36500      0.28400
7   0.24500      0.30700
8   0.11800      0.27100
9   0.37200      0.30000
10   0.55800      0.32400

Y0=0
Y1=a+b*X1^c+d*Y0
Y2=a+b*X2^c+d*Y1
.......

我要拟合出a、b、c、d


请各位帮帮忙:@)

ChaChing 发表于 2009-4-11 23:34

Ref
【资源共享】MATLAB曲线拟合向导(Curve Fitting Toolbox) by octopussheng
http://forum.vibunion.com/forum/thread-49726-1-1.html

rhinoxixi 发表于 2009-4-13 00:04

谢谢楼上,可是里面好像没有我想要的。。。

dingd 发表于 2009-4-13 09:15

这有点像时间系列拟合问题,用1stOpt可以很好解决。

dingd 发表于 2009-4-13 17:04

1stOpt的求解代码:
Parameter a,b,c,d;
Variable n, xn, yn;
StartProgram ;
Procedure MainModel;
var j: integer;
    temy: double;
Begin
    temy := 0.125;
    for j := 0 to DataLength - 1 do begin
      temy := a+b*power(xn,c)+d*temy;
      yn := temy;
    end;
End;
EndProgram;
Data;
//n      Xn                        Yn
//1   0.82900      0.12500
2   0.81600      0.14600
3   0.64300      0.24300
4   0.57000      0.24700
5   0.47200      0.26800
6   0.36500      0.28400
7   0.24500      0.30700
8   0.11800      0.27100
9   0.37200      0.30000
10   0.55800      0.32400

结果:
均方差(RMSE): 0.0143258546789437
残差平方和(RSS): 0.00184707101053993
相关系数(R): 0.958039131193731
相关系数之平方(R^2): 0.917838976898438
决定系数(DC): 0.915435755952491
F统计(F-Statistic): 19.7088815188877
参数         最佳估算
-------------------- -------------
a         0.0679529197541864
b         -0.00251143582208461
c         -1.43030630358839
d         0.865007710644784

[ 本帖最后由 dingd 于 2009-4-13 17:07 编辑 ]

rhinoxixi 发表于 2009-4-15 09:41

回复 5楼 dingd 的帖子

谢谢你,很详细!:handshake
页: [1]
查看完整版本: 请教matlab拟合递推公式的参数问题