如何快速求出一个矩阵的逆矩阵

跪求~快速求出逆矩阵的方法
普通矩阵,特殊矩阵(像什么对角矩阵)都要,越多越好,最好能总结一下。。
不过,最主要的还是想要一般的,那种没特殊性的矩阵的逆矩阵求法,A^-1=1/|A| *(A*)这个方法算的慢,一不小心还算错了
不是用软件算啦= = 就是平时考试做作业算算

一般考试的时候,矩阵求逆最简单的办法是用增广矩阵
如果要求逆的矩阵是A
则对增广矩阵(A E)进行初等行变换 E是单位矩阵
将A化到E,此时此矩阵的逆就是原来E的位置上的那个矩阵
原理是 A逆乘以(A E) = (E A逆) 初等行变换就是在矩阵的左边乘以A的逆矩阵得到的

至于特殊的...对角矩阵的逆就是以对角元的倒数为对角元的对角矩阵
剩下的只能是定性的 比如上三角阵的逆一定是上三角的 等等
考试的时候不会让你算太繁的矩阵
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-21
1.A的伴随矩阵除以A的行列式

2.给A的右边拼一个同阶单位阵

【A|E】然后通过行变换把左边变位单位阵,这时右边的就是A的逆矩阵【E|A逆】

3.如果A是二阶的,那么就主对角线元素交换位置,副对角线元素变号,然后除以行列式

4.如果A是抽象的,用定义,凑成AB=E,B就是你要求的

5.0比较多的时候可以分块矩阵求逆

6.如果A很特殊:

对角阵直接取各元素倒数,正交阵直接转置
1 A的伴随矩阵除以A的行列式

2 给A的右边拼一个同阶单位阵

【A|E】然后通过行变换把左边变位单位阵,这时右边的就是A的逆矩阵【E|A逆】

3 如果A是二阶的,那么就主对角线元素交换位置,副对角线元素变号,然后除以行列式

4如果A是抽象的,用定义,凑成AB=E,B就是你要求的

5 0比较多的时候可以分块矩阵求逆

6 如果A很特殊:
对角阵直接取各元素倒数,正交阵直接转置
可能还有别的吧,我也记不得了,正常情况方法2还是比较好
第2个回答  2009-12-07
没有人用伴随矩阵算的~无比麻烦
把要求的矩阵A和单位矩阵E并排写一起
AE然后同时进行初等行变换~把A变成单位矩阵E
此时E就变成了A的逆

这是因为对A初等行变换 相当于左乘一个矩阵P 所以PA=E 而此时 P就是A的逆
P同时作用于了E 就被E记录了 PE=P 就是A的逆
第3个回答  2019-09-04
第4个回答  2009-11-30
矩阵求逆:
int inverse(double C[][MAX],double B[][MAX],int n)
{//1.set B[][] I;
double A[MAX][MAX],e;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
A[i][j]=C[i][j];
if(i==j) B[i][j]=1;
else B[i][j]=0;

}

//2. inverse and judge the Matrix inversable
for(i=0;i<n;i++)
{
//对主元为零的处理
if(A[i][i]==0)
for(int j=i+1;j<n;j++)
{
if(A[j][i]!=0)
{
for(int k=0;k<n;k++)
{
A[i][k]+=A[j][k];
B[i][k]+=B[j][k];
}
break;
}
}
if(fabs(A[i][i])<0.000000000000001)
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
B[i][j]=0;
return 0;
}//MAT can't be inversed
// line processing
e=A[i][i];
for(int j=0;j<n;j++)
{
A[i][j]=A[i][j]/e;
B[i][j]=B[i][j]/e;
}
// row processing
for(j=0;j<n;j++)
{
e=A[j][i];
for(int k=0;k<n;k++)
if(i!=j)
{
A[j][k]+=-1*e*A[i][k];
B[j][k]+=-1*e*B[i][k];
}
}
}
return 1;
}
这是方阵求逆,如果要广义逆算法, 联系我.
相似回答