题目如下:
有一组实测数据
x | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1 |
y | 2.3201 | 2.6470 | 2.9070 | 3.2885 | 3.6008 | 3.9090 | 4.2147 | 4.5191 | 4.8232 | 5.1275 |
假设已知该数据可能满足的原型函数为y(x)=a*x+b*x^2*exp(-c*x)+d,求出满足上面数据的最小二乘解的a,b,c,d的值。
请问高手:如何写这段程序?
clc;clear;
x=[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
y=[2.3201 2.6470 2.9070 3.2885 3.6008 3.9090 4.2147 4.5191 4.8232 5.1275];
myfunc=inline('beta(1)*x+beta(2)*x.*x.*exp(-beta(3)*x)+beta(4)','beta','x');
beta=nlinfit(x,y,myfunc,[2.7 1.4 1.5 2]);
a=beta(1),b=beta(2),c=beta(3),d=beta(4)
%test hte model;
xx=0:0.01:1;
yy=a*xx+b*xx.*xx.*exp(-c*xx)+d;
plot(x,y,'o',xx,yy,'r')
不失高手,照猫画虎
不小心多发了一个
% i- G+ Z) @$ y ~如果数据相差不大是不是就不能做了?
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |