#include<iostream.h>
#include<math.h>
void main()
{
int i;
float *a;
float x[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
float y[16]={4.00,6.40,8.00,8.80,9.22,9.50,9.70,9.86,
10.00,10.20,10.32,10.42,10.50,10.55,10.58,10.60};
float *Approx(float *,float *,int ,int );
a=Approx(x,y,16,2);
for(i=0;i<=2;i++)
cout<<"a["<<i<<"]="<<a[i]<<endl;
}
float *Approx(float *x,float *y,int m,int n)
{
float *c,*a;
int i,j,t;
float power(int ,float);
float *ColPivot(float *,int );
c= new float[((n+1)*(n+2)*sizeof(float))];
for(i=0;i<=n;i++)
{
for (j=0;j<=n;j++)
{
*(c+i*(n+2)+j)=0.0;
for(t=0;t<=m-1;t++)
*(c+i*(n+2)+j)+=power(i+j,x[t]);
}
*(c+i*(n+2)+n+1)=0.0;
for(j=0;j<=m-1;j++)
*(c+i*(n+2)+n+1)+=y[j]*power(i,x[j]);
}
a=ColPivot((float *)c,n+1);
return a;
}
float *ColPivot(float *a,int n)
{
int i,j,t,k;
float *x,*c,p;
x=new float[(n*sizeof(float))];
c=new float[(n*(n+1)*sizeof(float))];
for(i=0;i<=n-1;i++)
for (j=0;j<=n;j++)
*(c+i*(n+1)+j)=(*(a+i*(n+1)+j));
for(i=0;i<=n-2;i++)
{
k=i;
for(j=i+1;j<=n-1;j++)
if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i))))
k=j;
if(k!=j)
for(j=i;j<=n;j++)
{
p=*(c+i*(n+1)+j);
*(c+i*(n+1)+j)=*(c+k*(n+1)+j);
*(c+k*(n+1)+j)=p;
}
for(j=i+1;j<=n-1;j++)
{
p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));
for(t=i;t<=n-1;t++)
*(c+j*(n+1)+t)=*(c+j*(n+1)+t)-p*(*(c+i*(n+1)+t));
*(c+j*(n+1)+n)-=*(c+i*(n+1)+n)*p;
}
}
for( i=n-1;i>=0;i-- )
{
for( j=n-1;j>=i+1;j--)
(*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));
x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));
}
delete[] c;
return x;
}
float power(int i,float v)
{
float a=1.0;
while(i--)
a*=v;
return a;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
.rar (61个子文件)
牛顿迭代法.cpp 872B
高斯-赛德尔迭代法.opt 48KB
二分法.cpp 595B
高斯-赛德尔迭代法.dsw 559B
幂法.cpp 901B
改进欧拉法.cpp 514B
四阶阿当姆斯预测-校正公式.cpp 1KB
复化辛卜生公式.cpp 586B
龙贝格算法.cpp 936B
Debug
vc60.pdb 60KB
高斯-赛德尔迭代法.obj 7KB
vc60.idb 41KB
高斯-赛德尔迭代法.pdb 393KB
高斯-赛德尔迭代法.exe 200KB
拉格郎日插值多项式
拉格郎日插值多项式.ncb 41KB
拉格郎日插值多项式.opt 48KB
拉格郎日插值多项式.dsw 561B
拉格郎日插值多项式.cpp 553B
拉格郎日插值多项式.dsp 3KB
拉格郎日插值多项式.plg 270B
Debug
vc60.pdb 60KB
拉格郎日插值多项式.obj 7KB
vc60.idb 41KB
拉格郎日插值多项式.pdb 393KB
拉格郎日插值多项式.exe 196KB
_desktop.ini 8B
_desktop.ini 8B
高斯-赛德尔迭代法.dsp 3KB
高斯-赛德尔迭代法.plg 799B
牛顿值多项式.cpp 582B
自适应梯形公式(变步长).cpp 671B
高斯-赛德尔迭代法.ncb 33KB
高斯-赛德尔迭代法.cpp 768B
龙格-库塔算法.cpp 638B
雅可比迭代法
雅可比迭代法.dsp 3KB
雅可比迭代法.opt 48KB
雅可比迭代法.dsw 549B
雅可比迭代法.ncb 33KB
Debug
vc60.pdb 60KB
vc60.idb 41KB
_desktop.ini 8B
雅可比迭代法.obj 8KB
雅可比迭代法.pdb 393KB
_desktop.ini 8B
雅可比迭代法.plg 1KB
雅可比迭代法.cpp 1KB
最小二乘法
最小二乘法.plg 254B
最小二乘法.opt 48KB
最小二乘法.dsw 545B
最小二乘法.dsp 3KB
最小二乘法.cpp 2KB
Debug
最小二乘法.obj 10KB
vc60.pdb 60KB
拉格郎日插值多项式.obj 7KB
vc60.idb 41KB
拉格郎日插值多项式.pdb 385KB
最小二乘法.pdb 393KB
_desktop.ini 8B
_desktop.ini 8B
最小二乘法.ncb 33KB
列主元高斯消去法.cpp 972B
共 61 条
- 1
资源评论
- XUYUC2013-02-23很好,很有用。。。
smallseass
- 粉丝: 7
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功