曲线拟合的问题:这样一组数据:
X:0.24 0.65 0.95 1.24 1.73 2.01 2.23 2.52 2.77 2.99
Y:0.23 -0.26 -1.10 -0.45 0.27 0.10 -0.29 0.24 0.56 1.00
对做出拟合方程:用如下函数
Q(a,b,c)=∑(a*ln(xi) + b*cos(xi) + c*e^xi - yi)(注:∑是i=1 到 n)
对a求偏导=0; 对b求偏导=0; 对c求偏导=0
(注:偏导符号找不到,只有用中文)
得方程组:
a*∑(ln(xi))^2 + b*∑(ln(xi))*(cos(xi)) + c*∑(ln(xi))*e^xi = ∑yi*ln(xi)
a*∑(ln(xi))*(cos(xi)) + b*∑(cos(xi))^2 + c*∑(cos(xi))*e^xi = ∑yi*cos(xi)
a*∑(ln(xi))*e^xi + b*∑(cos(xi))*e^xi + c*∑(e^xi)^2 = ∑yi*e^xi
最后求得a=-1.04103,b=-1.26132,c=0.03073
所得的方程可以很好的摸拟出所给的原始点的轨迹。但当数据值换成下面的值时,所得的方程最后的y值就趋近于5了,这是什么原因啊?
X:1 2 3 4 5 6 7 8 9 10
Y:0 0 9 0 5 8 3 0 7 6
X:0.24 0.65 0.95 1.24 1.73 2.01 2.23 2.52 2.77 2.99
Y:0.23 -0.26 -1.10 -0.45 0.27 0.10 -0.29 0.24 0.56 1.00
对做出拟合方程:用如下函数
Q(a,b,c)=∑(a*ln(xi) + b*cos(xi) + c*e^xi - yi)(注:∑是i=1 到 n)
对a求偏导=0; 对b求偏导=0; 对c求偏导=0
(注:偏导符号找不到,只有用中文)
得方程组:
a*∑(ln(xi))^2 + b*∑(ln(xi))*(cos(xi)) + c*∑(ln(xi))*e^xi = ∑yi*ln(xi)
a*∑(ln(xi))*(cos(xi)) + b*∑(cos(xi))^2 + c*∑(cos(xi))*e^xi = ∑yi*cos(xi)
a*∑(ln(xi))*e^xi + b*∑(cos(xi))*e^xi + c*∑(e^xi)^2 = ∑yi*e^xi
最后求得a=-1.04103,b=-1.26132,c=0.03073
所得的方程可以很好的摸拟出所给的原始点的轨迹。但当数据值换成下面的值时,所得的方程最后的y值就趋近于5了,这是什么原因啊?
X:1 2 3 4 5 6 7 8 9 10
Y:0 0 9 0 5 8 3 0 7 6
y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ];
x=0:0.5:15;
y1=lagr1(x0,y0,x);
y2=interp1(x0,y0,x);
y3=interp1(x0,y0,x,'spline');
[x' y1' y2' y3']
% pause
subplot(3,1,1)
plot(x0,y0,'k+',x,y1,'r')
grid
% pause
gtext('lagrange')
subplot(3,1,2)
plot(x0,y0,'k+',x,y2,'r')
grid
gtext('piecewise linear')
subplot(3,1,3)
plot(x0,y0,'k+',x,y3,'r')
grid
gtext('spline')这是一个插值得M文件代码
y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ];
x=0:0.5:15;
y1=lagr1(x0,y0,x);
y2=interp1(x0,y0,x);
y3=interp1(x0,y0,x,'spline');
[x' y1' y2' y3']
% pause
subplot(3,1,1)
plot(x0,y0,'k+',x,y1,'r')
grid
% pause
gtext('lagrange')
subplot(3,1,2)
plot(x0,y0,'k+',x,y2,'r')
grid
gtext('piecewise linear')
subplot(3,1,3)
plot(x0,y0,'k+',x,y3,'r')
grid
gtext('spline')这是一个插值得M文件代码