求解线性方程组

逆矩阵

逆矩阵的几个属性:

  1. 若方阵 A 可逆,则 $A^{-1}A = I$,以及 $AA^{-1} = I$。
  2. 经过消除算法,A 不能存在全是 0 的行。pivots 不能有零。
  3. det(A) != 0
  4. $Ax = 0$: $x = 0$ 必须是唯一解。
  5. 若 A, B (同样行列) 都可逆,那么: $\boxed{(AB)^{-1} = B^{-1}A^{-1}}$
  6. 一个 2x2 的矩阵,如果可逆,则 $ad - bc$ 不可为零。因为 $$ \begin{bmatrix} a & b \\ c & d \end{bmatrix}^{-1} = \frac{1}{ad - bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix} $$
  7. 对角线矩阵(其余全为0): $$ If \quad A = \begin{bmatrix} d_{1} \\ & \ddots \\ & & d_{n} \end{bmatrix} \quad then \quad A^{-1} = \begin{bmatrix} 1/d_{1} \\ & \ddots \\ & & 1/d_{n} \end{bmatrix} $$
  8. 高斯消元法求逆矩阵,求矩阵的秩: $$ Multiply\ \begin{bmatrix} A & I \end{bmatrix}\ by \ A^{-1}\ to\ get\ \begin{bmatrix} I & A^{-1} \end{bmatrix}.$$
  9. 若 $K$ 沿主对角线对称,那么 $K^{-1}$ 也对称;求逆通常会让矩阵变得稠密;pivots 的乘积就是行列式的值。

消元法 = 因式分解: $A = LU$

In [1]:
A = [1  3  1
     1  1 -1
     3 11  6]
Out[1]:
3×3 Array{Int64,2}:
 1   3   1
 1   1  -1
 3  11   6
In [2]:
iA = inv(A)
Out[2]:
3×3 Array{Float64,2}:
 -8.5   3.5   2.0
  4.5  -1.5  -1.0
 -4.0   1.0   1.0
In [3]:
A * iA
Out[3]:
3×3 Array{Float64,2}:
 1.0   2.22045e-16   1.11022e-16
 0.0   1.0          -1.11022e-16
 0.0  -3.55271e-15   1.0        
In [4]:
det(A * iA)
Out[4]:
1.0000000000000009
In [14]:
L, U = lu(A, Val{false})
L
Out[14]:
3×3 Array{Float64,2}:
 1.0   0.0  0.0
 1.0   1.0  0.0
 3.0  -1.0  1.0
In [15]:
U
Out[15]:
3×3 Array{Float64,2}:
 1.0   3.0   1.0
 0.0  -2.0  -2.0
 0.0   0.0   1.0
In [16]:
L * U
Out[16]:
3×3 Array{Float64,2}:
 1.0   3.0   1.0
 1.0   1.0  -1.0
 3.0  11.0   6.0

矩阵的转置

  1. $Ax$ 的转置是 $x^{T}A^{T}$, $AB$ 的转置是 $B^{T}A^{T}$, $A^{-1}$ 的转置是 $(A^{T})^{-1}$
  2. $x \cdot y = x^{T}y$
  3. $Ax \cdot y = x \cdot A^{T}y$
  4. 对称矩阵的转置是其自身:$S^{T}=S$
  5. 正交矩阵的转置是其逆:$Q^{T} = Q^{-1}$
In [50]:
[1 2 3; 4 5 6]'
Out[50]:
3×2 Array{Int64,2}:
 1  4
 2  5
 3  6
In [49]:
Q = [1/3 2/3 2/3; 2/3 1/3 -2/3; 2/3 -2/3 1/3]
isapprox(inv(Q), Q')
Out[49]:
true

如何理解置换矩阵

置换矩阵就是每一行每一列都有一个 1. 记为 $P$, 而 $P^{T}$ 依然是置换矩阵。单位矩阵 $I$ 是最简单的置换矩阵。通过交换 $I$ 的行,可以得到全部可能的置换矩阵。A permutation matrix $P$ has the rows of the identity $I$ in any order.

本质上,置换矩阵是对行交换的顺序的一种描述。 $PA$ 的含义就是,对 $A$ 进行 $P$ 所描述的行交换。

In [51]:
B = [4  -2  -7  -4  -8
     9  -6  -6  -1  -5
    -2  -9   3  -5   2
     9   7  -9   5  -8
    -1   6  -3   9   6]
Out[51]:
5×5 Array{Int64,2}:
  4  -2  -7  -4  -8
  9  -6  -6  -1  -5
 -2  -9   3  -5   2
  9   7  -9   5  -8
 -1   6  -3   9   6
In [53]:
L, U, p = lu(B)
L
Out[53]:
5×5 Array{Float64,2}:
  1.0        0.0        0.0       0.0        0.0
  1.0        1.0        0.0       0.0        0.0
  0.444444   0.0512821  1.0       0.0        0.0
 -0.111111   0.410256   0.582822  1.0        0.0
 -0.222222  -0.794872   0.171779  0.0242696  1.0
In [54]:
U
Out[54]:
5×5 Array{Float64,2}:
 9.0  -6.0  -6.0      -1.0      -5.0     
 0.0  13.0  -3.0       6.0      -3.0     
 0.0   0.0  -4.17949  -3.86325  -5.62393 
 0.0   0.0   0.0       8.67894   9.95297 
 0.0   0.0   0.0       0.0      -0.771206
In [55]:
p
Out[55]:
5-element Array{Int64,1}:
 2
 4
 1
 5
 3