2.6 矩阵的逆和求法
- 格式:ppt
- 大小:1.52 MB
- 文档页数:3
矩阵逆矩阵的求法One 、矩阵的逆的定义矩阵的逆,又叫做逆矩阵,是指一个方阵在乘积中具有反作用的转换矩阵,它被定义为:存在一个转换矩阵A,使得它和定矩阵相乘等于单位矩阵I,且称A为定矩阵的逆,标记为A⁻¹。
其定义如下:ªA⁻¹A=AA⁻¹=I了解到矩阵逆的定义后,很容易想到,如果有一种新的矩阵,它可以被乘以一个矩阵就得到一个单位矩阵的话,那么这个新的矩阵就是这个矩阵的逆,这个新的矩阵称为全逆矩阵。
全逆矩阵的求法是将单位矩阵放入原始矩阵的右边,然后将单位矩阵的列进行相应的变换,直到变换出等价行阶梯型矩阵。
最后,再将此行阶梯型矩阵变换回与原始矩阵有相同行列数的矩阵,这就是原始矩阵的逆矩阵了。
2、矩阵的逆求法:使用秩当矩阵的行数和列数不相等时,使用全逆矩阵求解矩阵逆比较困难,通常可以使用矩阵的秩来求解矩阵逆。
准确地说,该方法是求解方程Ax=b求解矩阵A的逆矩阵A⁻¹。
方法是,先求出该方程的秩r,如果r=m,m指的是A的行数,则A为可逆矩阵,否则A为不可逆矩阵,而其逆矩阵为不存在状态。
此后可采用Gauss-Jordan方法来求出A的逆矩阵A⁻¹。
三、矩阵的逆的求解实例下面通过一个实例来详细地介绍矩阵逆的求解方法:我们现在考虑如下矩阵A:A =\begin{pmatrix}2 & -1 & 3\\1 & -1 & 0\\1 & 4 & 2\end{pmatrix}首先,我们应求出A的逆A⁻¹:来证明A的矩阵逆的求解结果的正确性,我们将A和A⁻¹相乘:从结果可以看出,A和A⁻¹相乘得到结果是单位矩阵,说明经过求解,A的矩阵是正确的。
矩阵的逆求法
矩阵逆是矩阵计算中的常用技术,是矩阵变换的一种基本操作,主要用于求出该矩阵
的逆矩阵。
由于矩阵的正交性以及矩阵乘法的结合律,矩阵的逆矩阵以及矩阵完全正交化
都有直观的应用。
因此,求矩阵逆是矩阵计算的一个重要方面,也是矩阵变换技术的基础。
矩阵逆的求法主要有两种:一种是采用行列式的展开求法,另一种是直接变换矩阵求法。
前者解决的是矩阵的低维逆问题,后者解决的是矩阵的高维逆问题。
行列式展开求法是采用行列式的展开式,其中的行列式的展开可用神秘乘子法来进行
求解。
由于行列式的展开方式可以采用正负号分别乘以多少,不断遍历即可得出结果,所
以需要经过循环多次矩阵运算才能求出结果。
直接变换矩阵求法,即先将矩阵展开为增广矩阵,然后求解其解析模式。
增广矩阵可
以采用元素消元法来进行求解。
即将要求方程中的系数矩阵与右边所求的结果矩阵相加、
减合成增广矩阵。
然后将增广矩阵行对消元的步骤,由于矩阵的加减法是结合律的,因此
可以由行对消元进行采取。
此外,矩阵的乘法同样具有联合律,也可以相乘变换解题的步骤。
最后,把所求的结果矩阵乘以增广矩阵,即可得出矩阵的逆。
以上就是关于矩阵的逆求法的介绍,因为矩阵运算常常被用作对线性系统进行数值诊断,因此,求矩阵逆在矩阵计算中有着重要的意义。
由于有两种求法可以求取矩阵的逆,
在实际应用的时候可以根据问题的特殊性,采用不同的求法来有效地解决矩阵运算问题。
矩阵的逆的求法
矩阵的逆的求法主要有以下几种方法:
1.利用定义求逆矩阵:如果矩阵A是可逆的,那么存在一个矩阵B,使得
AB=BA=E,其中E为单位矩阵。
利用这个定义,可以通过特定的算法计算出矩阵A的逆矩阵B。
2.初等变换法:对于元素为具体数字的矩阵,可以利用初等行变换化为单位
矩阵的方法来求逆矩阵。
如果A可逆,则A可通过初等行变换化为单位矩阵I,即存在初等矩阵使(1)式成立。
同时,用右乘上式两端,得到(2)式。
比较(1)、(2)两式,可以看到当A通过初等行变换化为单位处阵的同时,对单位矩阵I作同样的初等行变换,就化为A的逆矩阵。
这种方法在实际应用中比较简单。
3.伴随阵法:如果A是n阶可逆矩阵,那么A的伴随矩阵A也是可逆的,且
(A)-1=A*/|A|。
利用这个公式可以方便地计算出A的逆矩阵。
4.恒等变形法:利用恒等式的变形规律来求逆矩阵。
例如,利用行列式的性
质和展开定理,可以计算出矩阵的行列式值,从而得到逆矩阵。
需要注意的是,不同的方法适用于不同类型的矩阵和问题,因此在选择方法时应根据具体情况进行选择。
同时,在实际应用中还需注意计算的精度和稳定性等问题。
矩阵求逆的⼏种⽅法总结(C++)矩阵求逆运算有多种算法:1. 伴随矩阵的思想,分别算出其伴随矩阵和⾏列式,再算出逆矩阵;2. LU分解法(若选主元即为LUP分解法: Ax = b ==> PAx = Pb ==>LUx = Pb ==> Ly = Pb ==> Ux = y,每步重新选主元),它有两种不同的实现;A-1=(LU)-1=U-1L-1,将A分解为LU后,对L和U分别求逆,再相乘;通过解线程⽅程组Ax=b的⽅式求逆矩阵。
b分别取单位阵的各个列向量,所得到的解向量x就是逆矩阵的各个列向量,拼成逆矩阵即可。
下⾯是这两种⽅法的c++代码实现,所有代码均利⽤常规数据集验证过。
⽂内程序旨在实现求逆运算核⼼思想,某些异常检测的功能就未实现(如矩阵维数检测、矩阵奇异等)。
注意:⽂中A阵均为⽅阵。
伴随矩阵法C++程序:1 #include <iostream>2 #include <ctime> //⽤于产⽣随机数据的种⼦34#define N 3 //测试矩阵维数定义56//按第⼀⾏展开计算|A|7double getA(double arcs[N][N],int n)8 {9if(n==1)10 {11return arcs[0][0];12 }13double ans = 0;14double temp[N][N]={0.0};15int i,j,k;16for(i=0;i<n;i++)17 {18for(j=0;j<n-1;j++)19 {20for(k=0;k<n-1;k++)21 {22 temp[j][k] = arcs[j+1][(k>=i)?k+1:k];2324 }25 }26double t = getA(temp,n-1);27if(i%2==0)28 {29 ans += arcs[0][i]*t;30 }31else32 {33 ans -= arcs[0][i]*t;34 }35 }36return ans;37 }3839//计算每⼀⾏每⼀列的每个元素所对应的余⼦式,组成A*40void getAStart(double arcs[N][N],int n,double ans[N][N])41 {42if(n==1)43 {44 ans[0][0] = 1;45return;46 }47int i,j,k,t;48double temp[N][N];49for(i=0;i<n;i++)50 {51for(j=0;j<n;j++)52 {53for(k=0;k<n-1;k++)54 {55for(t=0;t<n-1;t++)56 {57 temp[k][t] = arcs[k>=i?k+1:k][t>=j?t+1:t];58 }59 }606162 ans[j][i] = getA(temp,n-1); //此处顺便进⾏了转置63if((i+j)%2 == 1)64 {65 ans[j][i] = - ans[j][i];66 }67 }68 }69 }7071//得到给定矩阵src的逆矩阵保存到des中。