求教:在一c语言程序中,有矩阵x,还需设定矩阵x的逆矩阵y,该如何设定呢?所要求的结果不是逆矩阵y。

2025-03-12 13:45:46
推荐回答(1个)
回答1:

抄的:
C语言.求逆矩阵线性代数算法
#include
#include
void RemainderMatrix(double (*b)[10],int row,int column, int i,int j); 、//求余了式
double ValueRank(double (*)[10],int n); //求方阵值
void main()
{
int row,column,i,j,m,n,x,y;
double a[10][10],b[10][10],Adjoint[10][10],value;
printf("Input the row of A[][]:");
scanf("%d",&row);
printf("Input the column of A[][]:");
scanf("%d",&column);
printf("Enter every value of A[][]:\n");

for(i=0;i for(j=0;j scanf("%lf",&a[i][j]);
b[i][j]=a[i][j];
}
value=ValueRank(b,row);
for(i=0;i for(j=0;j {
for(m=0;m for(n=0;n b[m][n]=a[m][n];}
for(x=0;x for(y=0;y printf("%8.3f",b[x][y]);
printf("\n");}

RemainderMatrix(b,row,column,i,j);
for(x=0;x for(y=0;y printf("%8.3f",b[x][y]);
printf("\n");}
printf("%f",ValueRank(b,(n-1)));
Adjoint[j][i]=pow(-1,i+j)*ValueRank(b,(n-1))/value;
}

for(i=0;i for(j=0;j printf("%8.3f",Adjoint[i][j]);
printf("\n");
}
}
void RemainderMatrix(double (*a)[10],int h,int r,int m,int n)
{
int i,j;
for(i=m;i for(j=0;j {
a[i][j]=a[i+1][j];
}
for(i=0;i for(j=n;j {
a[i][j]=a[i][j+1];
}
}