曲线拟合的问题:这样一组数据:
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

解决方案 »

  1.   

    你为什么不用matlab做啊?那样会很简单!~
      

  2.   

    我没有用matlab,能不能提供一个例子或一个书可以去了解它。多谢!!!
      

  3.   

    x0=[0 3 5 7 9 11 12 13 14 15 ];
    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文件代码
      

  4.   

    x0=[0 3 5 7 9 11 12 13 14 15 ];
    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文件代码
      

  5.   

    to: richardingding() 非常感谢你的帮助!但你能不能告诉我matlab那里有下载的软件和教学书等,我对这个没有接触过!再次感谢!!!
      

  6.   

    你最好在数模基地上面看看,那上面有关于matlab的用法介绍
      

  7.   

    to:richardingding() 是那一个数模基地啊!能不能给出具体网址!!!