首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求最小二乘拟合多项式算法代码解决思路

2012-05-06 
求最小二乘拟合多项式算法代码求最小二乘拟合多项式算法代码,求出ya*x3+b*x2+c*x+d方程的系数a,b,c,d.[解

求最小二乘拟合多项式算法代码
求最小二乘拟合多项式算法代码,
求出y=a*x3+b*x2+c*x+d方程的系数a,b,c,d.

[解决办法]
留下email,我前不久写过一个,可以给你
[解决办法]

C/C++ code
//11sqt2.c  #include "math.h"  #include "stdlib.h"  #include "6chlk.c"  void sqt2(x,y,m,n,a,dt,v)  int m,n;  double x[],y[],a[],dt[],v[];  { int i,j,k,l,mm;    double q,e,u,p,yy,s,r,pp,*b;    b=malloc((m+1)*(m+1)*sizeof(double));    mm=m+1;    b[mm*mm-1]=n;    for (j=0; j<=m-1; j++)      { p=0.0;        for (i=0; i<=n-1; i++)          p=p+x[j*n+i];        b[m*mm+j]=p;        b[j*mm+m]=p;      }    for (i=0; i<=m-1; i++)      for (j=i; j<=m-1; j++)        { p=0.0;          for (k=0; k<=n-1; k++)            p=p+x[i*n+k]*x[j*n+k];          b[j*mm+i]=p;          b[i*mm+j]=p;        }    a[m]=0.0;    for (i=0; i<=n-1; i++)      a[m]=a[m]+y[i];    for (i=0; i<=m-1; i++)      { a[i]=0.0;        for (j=0; j<=n-1; j++)          a[i]=a[i]+x[i*n+j]*y[j];      }    chlk(b,mm,1,a);    yy=0.0;    for (i=0; i<=n-1; i++)      yy=yy+y[i]/n;    q=0.0; e=0.0; u=0.0;    for (i=0; i<=n-1; i++)      { p=a[m];        for (j=0; j<=m-1; j++)          p=p+a[j]*x[j*n+i];        q=q+(y[i]-p)*(y[i]-p);        e=e+(y[i]-yy)*(y[i]-yy);        u=u+(yy-p)*(yy-p);      }    s=sqrt(q/n);    r=sqrt(1.0-q/e);    for (j=0; j<=m-1; j++)      { p=0.0;        for (i=0; i<=n-1; i++)          { pp=a[m];            for (k=0; k<=m-1; k++)              if (k!=j) pp=pp+a[k]*x[k*n+i];            p=p+(y[i]-pp)*(y[i]-pp);          }        v[j]=sqrt(1.0-q/p);      }    dt[0]=q; dt[1]=s; dt[2]=r; dt[3]=u;    free(b); return;  }
[解决办法]
OK,已经发送
[解决办法]
大致写了下,你来这边看吧
http://www.cppblog.com/feng/archive/2008/04/15/47157.html

热点排行