C++求矩阵的逆程序代码
for (i=0;i<dim;i++) y[i][j] = col[i];
}
for (i=0;i<dim;i++)
for (j=0;j<dim;j++)
mat[i][j] = y[i][j];
free_matrix(y,0,dim-1,0,dim-1);
free_vector(col,0,dim-1);
free(indx);
}
void ludcmp(double **a, int n, int *indx, double *d)
{
int i,imax,j,k;
double big,dum,sum,temp;
double *vv;
vv = (double*)malloc((unsigned)(n*sizeof(double))); if (!vv)
{
fprintf(stderr,"Error Allocating Vector Memory\n"); exit(1);
}
*d = 1.0;
for (i=0;i<n;i++)
{
big = 0.0;
for (j=0;j<n;j++)
{
if ((temp=fabs(a[i][j])) > big) big = temp;
}
if (big == 0.0)
{
fprintf(stderr,"Singular Matrix in Routine LUDCMP\n"); for (j=0;j<n;j++) printf(" %f ",a[i][j]); printf("/n"); exit(1);
}
vv[i] = 1.0/big;
}
for (j=0;j<n;j++)
{
for (i=0;i<j;i++)
{
sum = a[i][j];
for (k=0;k<i;k++) sum -= a[i][k] * a[k][j];

