请教大神,已知函数表达式和相关数据,想求出表达式中的系数,用matlab应该怎么操作?

x=[9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]
y=[41.6,40.2,44.6,44.3,44.7,45.7,46.4,46.3,46.5,49.9,50.0,51.3,51.7,52.2,53.4,55.1,55.6,56.8,55.9,55.5,54.8,56.4,56.9,56.3,56.6,56.3,56.0,56.5,56.5]
y=a0+a1*x+a2*e^(-0.05x),e=自然常数

已知x、y的数据和数学模型y=a0+a1*x+a2*exp(-0.05x)。如何求系数a0、a1、a2,其方法:

1、已知数据x、y

2、定义模型函数

fun=@(p,x)p(1)-p(2)*x+p(3).*exp(-0.05*x);

3、设定初值,p0=[0,0,0]

4、利用nlinfit()非线性回归函数,求解数学模型系数

[p,r] = nlinfit(x,y,fun,p0)

5、求解对应于x的拟合值y1

6、比较原始值y与拟合值y1

7、利用plot()绘图函数,绘制x—y和x—y1的比较图

8、代码及运行结果




温馨提示:答案为网友推荐,仅供参考
相似回答