想用MATLAB拟合y=a*e^(-x)+bx+c ,求方法。。。谢谢了~

如题所述

楼上貌似用错方法了,这是指定函数拟合,不是多项式拟合吧。
首先把你要拟合的数据赋给x y
x = [...];
y = [...];
f = fittype('a*exp(-x)+b*x+c','independent','x','coefficients',{'a','b','c'}); %这就是你指定的函数,a,b,c为参量,x为自变量。
cfun = fit(x,y,f);
xi = 1:20;
yi = cfun(xi);
plot(xi,yi,'r*');
不懂追问。追问

嗯嗯,谢谢,但怎么会蹦出来这个:
>> cfun=fit(x,y,f);
??? XDATA must be a matrix with one to two columns.
Error in ==> fit at 115
errstr = handleerr('curvefit:fit:xDataMustBeColumnVector', ...

>> xi=1:20;
>> yi=cfun(xi);
??? Undefined function or method 'cfun' for
input arguments of type 'double'.

>> plot(xi,yi,'r*');
??? Undefined function or variable 'yi'.

>>

追答

你需要弄什么直接告诉我吧,我弄好把源程序给你发过去 。邮箱留下。

追问

这里有三组数据,请分别找出平均价格M与t 的关系:(猜想出M(t)=A*e^(-t)+B*t+C(t),其中A、B、C为常数,第一项为与新颖度&1有关的量,第二项为与手机耗材成本&3有关的量,第三项为与品牌影响力&2、扩展性能&4有关的量)

  万分感谢!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-05
多项式拟合:
a=5;
b=2;
c=3;
x=-5:0.1:5
A=polyfit(x,a*exp(-x)+b*x+c,5)
plot(x,a*exp(-x)+b*x+c,'o',x,polyval(A,x),'-');
祝顺利