谁给我讲讲这个是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:26:55
#include "stdio.h"
#include "bchol.c" /这是什么?
main()
{ int i,j;
double det;
static double a[4][4]={ {5.0,7.0,6.0,5.0},
{7.0,10.0,8.0,7.0},
{6.0,8.0,10.0,9.0},
{5.0,7.0,9.0,10.0}};
i=bchol(a,4,&det);
if (i>0)
{ printf("MAT L IS:\n");
for (i=0; i<=3; i++)
{ for (j=0; j<=3; j++)
printf("%13.7e ",a[i][j]);
printf("\n");
}
printf("\n");
printf("det(A)=%13.7e\n",det);
}
getch();
}

谁给我讲讲这个是什么意思?

#include "math.h"
#include "stdio.h"

int bchol(a,n,det)
int n;
double a[],*det;
{
int i,j,k,u,v,l;
double d;

if ((a[0]+1.0==1.0)||(a[0]<0.0))

{ printf("fail\n"); return(-2);}

a[0]=sqrt(a[0]);

d=a[0];

for (i=1; i<=n-1; i++)

{ u=i*n; a[u]=a[u]/a[0];}

for (j=1; j<=n-1; j++)

{ l=j*n+j;

for (k=0; k<=j-1; k++)

{ u=j*n+k; a[l]=a[l]-a[u]*a[u];}

if ((a[l]+1.0==1.0)||(a[l]<0.0))

{ printf("fail\n"); return(-2);}

a[l]=sqrt(a[l]);

d=d*a[l];

for (i=j+1; i<=n-1; i++)

{ u=i*n+j;

for (k=0; k<=j-1; k++)

a[u]=a[u]-a[i*n+k]*a[j*n+k];

a[u]=a[u]/a[l];

}

}

*det=d*d;

for (i=0; i<=n-2; i++)

for (j=i+1; j<=n-1; j++)

a[i*n+j