sars数学建模
急需sars数学建模的编程,下面这个为什么不对,请大师指教,多谢多谢!
#include <math.h>
#define N 21
#define M 3
static float x[N]={0},y[N]={0,402,610,666,782,863,954,1093,1255,1275,1358,
1408,1415,1468,1493,1537,1510,1523,1514,1486,1425};
float f(int i, float x)
{float s;
s=pow(x,i-1);
return(s);
}
main()
{
int i,j,k,n=N-1,m=M-1;
double t,s=1,c[M]={0},a[M][M+1]={0},max=1e+11;
clrscr();
for(i=1;i<N;i++)
{x[i]=i; y[i]=log(y[i]);}
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
for(k=1;k<=n;k++)
a[i][j]=a[i][j]+f(i,x[k])*f(j,x[k]);
for(i=1;i<=m;i++)
for(k=1;k<=n;k++)
a[i][m+1]=a[i][m+1]+f(i,x[k])*y[k];
for(i=1;i<=m;i++)
{
k=i;
t=fabs(a[i][i]);
for(j=i+1;j<=m;j++)
if(t<fabs(a[j][i]))
{
t=fabs(a[j][i]);
k=j;
}
if(k!=i)
{
for(j=i;j<=m+1;j++)
{t=a[i][j];
a[i][j]=a[k][j];
a[k][j]=t;
}
}
if(a[i][i]!=0)
for(k=i+1;k<=m;k++)
{
t=a[k][i]/a[i][i];
for(j=i;j<=m+1;j++)
a[k][j]=a[k][j]-a[i][j]*t;
}
s=a[i][i]*s;
}
if(s!=0)
{c[m]=a[m][m+1]/a[m][m];
for(i=m-1;i>=1;i--)
{s=a[i][m+1];
for(j=i+1;j<=m;j++)
s=s-a[i][j]*c[j];
c[i]=s/a[i][i];}
printf("\n");
for(i=2;i<=m;i++)
printf("c[%d]=%f\n",i,c[i]);
c[1]=exp(c[1]);
printf("c[1]=%f",c[1]);
for(i=1;i<N;i++)
printf("\ny1[%d]=%f",i,c[1]*exp(c[2]*i));
}}