编程求任意可逆矩阵的逆矩阵

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:31:19
求C语言编程 谢谢了!急用

我到楼上给的那个链接看了一下,那个程序写的真是不咋地,不过估计给楼主用差不多了,只要把C++翻译到C就行了。

刚好在做,就分享一下 ,有一些过程有其他功能暂时没有修改
int inv_m(double y[][N],double x[][N],int n)//逆矩阵(n阶方阵x的逆矩阵为y)
{
int i,j;
double z[N][N];
double det_x=det(x,n);
if (det_x)
{
adjoit(z,x,n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
y[i][j]=z[i][j]/det_x;
return 1;
}
else
return 0;

}
int adjoit(double y[][N],double x[][N],int n)//伴随矩阵(n阶方阵x的伴随矩阵为y)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
y[j][i]=a_cplmt(i,j,n,x);
return 1;
}
double a_cplmt(int i, int j, int n, double x[][N])//第i行,第j列,n阶方阵x的代数余子式
{
double b[N][N];
del_ij(i,j,n,b,x);
double a_c=pow(-1.0,(double)(i+j))*det(b,n-1);
if(abs(a_c)<1.0e-006)
a_c=0;
return(a_c);
}
void del_ij(int i,int j,int n,double b[][N],double c[][N])//c到b去掉i行j列
{
int x[4]={0,0,0,0};