想用MATLAB拟合y=a*e^(-x)+bx+c ,求方法。。。谢谢了~
2个回答
展开全部
楼上貌似用错方法了,这是指定函数拟合,不是多项式拟合吧。
首先把你要拟合的数据赋给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*');
不懂追问。
首先把你要拟合的数据赋给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'.
>>
追答
你需要弄什么直接告诉我吧,我弄好把源程序给你发过去 。邮箱留下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询