求矩阵的逆
- 待定系数 AX = I
=> (A | I) --> ( I | A-1)
【注】
-
(A|E) 因为左边是E不可能化简出全0行,不可能有无数解
-
何时无解?系数矩阵化为行最简时有0行
-
Q: 只右乘,得到右逆
A: 定理:如果一个方阵A有右逆B,则B也是A的左逆,即B是A的逆
我的实现
def inv(self):
"""返回矩阵的逆"""
self._forward()
self._backward()
return [row.underlying_list()[self._col_num:] for row in self.Ab]
测试:
# 7-2 实现矩阵的逆
A72 = Matrix([
[1, 2],
[3, 4]
])
b72 = Matrix([
[1, 0],
[0, 1]
])
ls72 = LinearSystem(A72, b72)
ls72.fancy_print()
Inv = ls72.inv()
print(Inv)
初等矩阵
用矩阵表示操作:
左乘行变换,右乘列变换
- 三种初等矩阵:对单位矩阵进行一次初等变换
{ E i j E i ( k ) E i j ( k ) \left\{ \begin{array}{lr} E_{ij}\\E_i(k)\\E_{ij}(k) \end{array} \right. ⎩⎨⎧EijEi(k)Eij(k)
【注】 E i j ( k ) E_{ij}(k) Eij(k) 第j行的k倍加到第i行上,或将第i列的k倍加到第j列上
- 行最简矩阵:
E p , . . . E 3 ⋅ E 2 ⋅ E 1 ⋅ A = r r e f ( A ) E_p, ... E_3· E_2 · E_1 · A = rref(A) Ep,...E3⋅E2⋅E1⋅A=rref(A)
初等矩阵和可逆性
{ E i j − 1 = E j i E i ( k ) − 1 = E i ( 1 k ) E i j ( k ) − 1 = E i j ( − k ) \left\{\begin{array}{lr}\\ E_{ij}^{-1} = E_{ji} \\ E_i(k)^{-1} = E_i(\frac{1}{k})\\ E_{ij}(k)^{-1} = E_{ij}(-k) \end{array}\right. ⎩⎨⎧Eij−1=EjiEi(k)−1=Ei(k1)Eij(k)−1=Eij(−k)
- (A | I) --> (I | A -1) 的解释:
Ep, … E3· E2 · E1 · A = rref(A) = I
Ep, … E3· E2 · E1 · A · A -1 = I · A-1
Ep, … E3· E2 · E1 · I = A-1
【解释】对A做一系列初等行变换 E i E_i Ei得到单位矩阵I,如果将这些初等行变换同样施加给单位矩阵就会得到 A − 1 A^{-1} A−1
- 矩阵的逆的作用:
对线性系统:Ax = b ⇒ \Rightarrow ⇒ x = A-1 · b
在A不变,b不断变化的环境,效率更高,可以先求出A-1
1540

被折叠的 条评论
为什么被折叠?



