1 / 3
文档名称:

2025年最小二乘法-曲线拟合—C语言程序.doc

格式:doc   大小:16KB   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2025年最小二乘法-曲线拟合—C语言程序.doc

上传人:读书之乐 2025/2/11 文件大小:16 KB

下载得到文件列表

2025年最小二乘法-曲线拟合—C语言程序.doc

相关文档

文档介绍

文档介绍:该【2025年最小二乘法-曲线拟合—C语言程序 】是由【读书之乐】上传分享,文档一共【3】页,该文档可以免费在线阅读,需要了解更多关于【2025年最小二乘法-曲线拟合—C语言程序 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。最小二乘法-曲线拟合 C语言程序,,经测试对的
#include<>
#include<>
#include<>
float cf(int i,float f)
{ float g=;
while(i--)
g*=f;
return g;
}
void ColPivot(float a[99][99], int n, float b[99][1],float x[99])
{
float max,m,temp;
int k,q=0,i,j,I;
for(k=0;k<n && q==0;k++)
{ max=a[k][k];
for(i=k+1;i<n;i++)
if(fabs(max)<fabs(a[i][k]))
{
max=a[i][k];
I=i;
}

if(max==0)
q=1;
else
{ if(I!=k)
{
temp=b[I][0]; b[I][0]=b[k][0]; b[k][0]=temp;
for(j=k;j<n;j++)
{
temp=a[I][j]; a[I][j]=a[k][j]; a[k][j]=temp;
}
}
for(i=k+1;i<n;i++)
{
m=a[i][k]/a[k][k];
b[i][0]=b[i][0]-b[k][0]*m;
for(j=0;j<n;j++)
a[i][j]=a[i][j]-a[k][j]*m;
}

}
}
for(i=n-1;i>=0;i--)
{
for(j=n-1;j>=i+1;j--)
b[i][0]=b[i][0]-a[i][j]*x[j];
x[i]=b[i][0]/a[i][i];
}
}
void main()
{
float x[99],y[99],z[99],s[99][99],t[99][1];
int n,m,i,j,k;
printf("n=");
scanf("%d",&n);
printf("m=");
scanf("%d",&m);
printf("y[%]=",n);
for(i=0;i<n;i++)
scanf("%f",&y[i]);
printf("z[%d]=",n);
for(i=0;i<n;i++)
scanf("%f",&z[i]);
for(i=0;i<=m;i++)
{
for(j=0;j<=m;j++)
{s[i][j]=;
for(k=0;k<=n-1;k++)
s[i][j]+=cf(i+j,y[k]);
}
t[i][0]=;
for(j=0;j<=n-1;j++)
t[i][0]+=z[j]*cf(i,y[j]);

}
for(i=0;i<=m;i++)
s[i][m+1]=t[i][0];
for(i=0;i<=m;i++)
{
for(j=0;j<=m+1;j++)
printf("%f\t",s[i][j]);
printf("\n");
}
ColPivot(s,m+1,t,x);
printf("\n\n");
for(i=0;i<=m;i++)
printf("\na[%d]=%f",i,x[i]);
printf("\n\n");
}