x=[-2.8 -2.6 -2.4 -2.2 -2 -1.8 -1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8];
y=[26 31 36 42 50 59 71 82 99 116 134 149 163 172 175 172 163 149 134 116 99 82 71 59 50 42 36 31 26];
matlab指数函数曲线拟合:y=a*exp(b*x.^2)求a、b的系数,很急。
%lny=lna+b*x^2,也就是两边取对数,化成线性形式,因变量是ln(y),自变量是x^2
x=[-2.8 -2.6 -2.4 -2.2 -2 -1.8 -1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8];
y=[26 31 36 42 50 59 71 82 99 116 134 149 163 172 175 172 163 149 134 116 99 82 71 59 50 42 36 31 26];
y_ln=log(y)';
x2=(x.^2)';
linear_fun=fit(x2,y_ln,'poly1');
figure
plot(linear_fun,x2,y_ln);
b=exp(linear_fun.p1)
a=linear_fun.p2
ypre=a*exp(b*x.^2);
figure
plot(x,y,'*',x,y,'-o');
最后结果是
b =
0.7804
a =
5.0215
追问我把计算所得的a、b的值代入函数,发现所画得的曲线跟原有x、y的数值不吻合,
你看有没有其他办法能根据x、y的数据,利用matlab自动找出最符合数据分布规律的函数,并给出拟合所得的公式。
哦,不好意思,我当时画的有问题。至于你说的那个,没有这样的方法。拟合本身就是有误差的。
改正:
%lny=lna+b*x^2,也就是两边取对数,化成线性形式,因变量是ln(y),自变量是x^2
x=[-2.8 -2.6 -2.4 -2.2 -2 -1.8 -1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8];
y=[26 31 36 42 50 59 71 82 99 116 134 149 163 172 175 172 163 149 134 116 99 82 71 59 50 42 36 31 26];
y_ln=log(y)';
x2=(x.^2)';
linear_fun=fit(x2,y_ln,'poly1');
figure
plot(linear_fun,x2,y_ln);
b=linear_fun.p1;
a=exp(linear_fun.p2);
ypre=a*exp(b*x.^2);
figure
subplot(2,1,1)
plot(x,y,'*',x,ypre,'-o');
subplot(2,1,2)
stem(y-ypre);
最后
b =
-0.2479
a =
151.6331
下面的图上边的是拟合数据,下面的是残差:
x=[-2.8 -2.6 -2.4 -2.2 -2 -1.8 -1.6 -1.4 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8]';
y=[26 31 36 42 50 59 71 82 99 116 134 149 163 172 175 172 163 149 134 116 99 82 71 59 50 42 36 31 26]';
fit_type=fittype('a*exp(b*x^2)','independent','x','coefficient',{'a','b'});
f=fit(x,y,fit_type)
plot(f)
hold on
plot(x,y,'o')
f =
General model:
f(x) = a*exp(b*x^2)
Coefficients (with 95% confidence bounds):
a = 166.8 (161.6, 172)
b = -0.3087 (-0.3317, -0.2856)
>>
追问拟合出的曲线跟数值还是有挺大的误差,你看有没有其他办法能根据x、y的数据,利用matlab自动找出最符合数据分布规律的函数,并给出拟合所得的公式。(拟合出的公式不一定是y=a*exp(b*x.^2)的形式)
本回答被提问者采纳