矩阵逆元
一、定义
设$A$是一个$n$阶方阵,若存在另一个$n$阶方阵$B$,使得$AB=BA=E$,则称方阵$A$可逆,并称方阵$B$是$A$的逆矩阵,记作$A^{-1}$
二、求法
1.伴随矩阵求逆法
设$A=(a_{ij})_{n\times n}$,$A_{ij}$为$A$的元素$a_{ij}$的代数余子式,则矩阵
$$ \left[ \begin{matrix} A_{11} & A_{21} & \cdots & A_{n1} \\ A_{12} & A_{22} & \cdots & A_{n2} \\ \vdots & \vdots & & \vdots \\ A_{1n} & A_{2n} & \cdots & A_{nn} \\ \end{matrix} \right] $$
称为矩阵$A$的伴随矩阵,记作$A^*$
有
$$ \begin{aligned} AA^* &= \left[ \begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \\ \end{matrix} \right] \left[ \begin{matrix} A_{11} & A_{21} & \cdots & A_{n1} \\ A_{12} & A_{22} & \cdots & A_{n2} \\ \vdots & \vdots & & \vdots \\ A_{1n} & A_{2n} & \cdots & A_{nn} \\ \end{matrix} \right] \\ &= \left[ \begin{matrix} |A| & 0 & \cdots & 0 \\ 0 & |A| & \cdots & 0 \\ \vdots & \vdots & & \vdots \\ 0 & 0 & \cdots & |A| \\ \end{matrix} \right] \\ &=|A|E \end{aligned} $$
当$|A|\neq 0$时,存在$A^{-1}$,且
$$A^{-1}=\frac{1}{|A|}A^*$$
显然,利用伴随矩阵求矩阵逆元的计算相当复杂
2.初等变换求逆法
由单位矩阵$E$经过一次初等变换得到的矩阵称为初等矩阵
设$A$是一个$m\times n$矩阵,对$A$进行一次初等行变换,相当于在$A$左乘上相应的$m$阶初等矩阵
可逆矩阵$A$可表示为有限个初等矩阵的乘积
若$A$为$n$阶可逆矩阵,则$A^{-1}$可以表示为有限个初等矩阵的乘积,即$$A^{-1}=P_1P_2\cdots P_m$$由$A^{-1}A=E$,有$$P_1P_2\cdots P_mA=E$$又$$P_1P_2\cdots P_mE=A^{-1}$$将$A$与$E$放在一起,则有
$$ (P_1P_2\cdots P_m) \begin{array}{c:c}(A&E)\end{array} =\begin{array}{c:c}(E&A^{-1})\end{array} $$
即对$n\times 2n$矩阵$\begin{array}{c:c}(A&E)\end{array}$进行初等行变换,使$A$变换为$E$,此时$E$变换为$A^{-1}$
3.高斯-约旦消元法(Gauss-Jordan Elimination)
通过初等行变换将矩阵$A$变换为$E$需要用到高斯-约旦消元法
void GJ(){
for(int i=1;i<=n;i++){
int r=i;
for(int j=i+1;j<=n;j++)
if(fabs(a[j][i])>fabs(a[r][i]))
r=j;
if(i!=r)
swap(i,r);
if(fabs(a[i][i]<eps)){
puts("No Solution");
return;
}
for(int k=1;k<=n;k++){
if(i==k)
continue;
double p=a[k][i]/a[i][i];
for(int j=i;j<=n+n;j++)
a[k][j]-=p*a[i][j];
}
}
for(int i=1;i<=n;i++)
a[i][i+n]/=a[i][i];
}