数学 线性代数
web.mit.edu/18.06
画矩阵:blog.csdn.net/weixin_34130269/article/details/88010192
一.矩阵与方程组
1.方程组的几何解释
(1)行图像(Row picture):1个行图像展示1个方程
2x-y=0 ⇒ x = 1
-x+2y=3 y = 2
(2)列图像(Column picture):方程组对∀b是否有解,等价于列的所有线性组合是否能覆盖整个Rn(在未知数个数=方程数时,n等于二者)
- 如果某些列是其他列的线性组合,并非始终有解,列的所有线性组合只能覆盖Rless_than_n
x [2,-1] + y [-1,2] = [0,3] ⇒ x = 1,y = 2
(3)矩阵形式(Matrix form)
- Ax就是A的各列的线性组合
[[2 -1],[-1 2]] [x,y] = [0,3]
A x = b
2.高斯-约尔当消元法(Gauss-Jordan Elimination)解方程组:计算机求解方程组的方法
1.选择主元
2.消元--成功/失败-->阶梯型
3.回代(Back-Substitution)
4.消元-->最简型
#成功:
[[1 2 1],[3 8 1],[0 4 1]]-->[[1 2 1],[0 2 -2],[0 4 1]]-->[[1 2 1],[0 2 -2],[0 0 5]]
A U
#失败:
#行交换可以解决主元的暂时失效
[[1 2 1],[3 6 1],[0 4 1]]-->[[1 2 1],[0 0 -2],[0 4 1]]-->[[1 2 1],[0 4 1],[0 0 -2]]
#永久失效
[[1 2 1],[3 8 1],[0 4 -4]]-->[[1 2 1],[0 2 -2],[0 4 -4]]-->[[1 2 1],[0 2 -2],[0 0 0]]
#回代:
[[1 2 1],[0 2 -2],[0 0 5]] = [2,12,2]
U b
#增广矩阵:[A b] (系数矩阵右侧加上结果列向量)
[[1 2 1 2],[3 8 1 12],[0 4 1 2]]-->[[1 2 1 2],[0 2 -2 6],[0 0 5 -10]]
#即:
x + 2y + z = 2 x = 2
2y - 2z = 6 ⇒ y = 1
5z = -10 z = -2
#转换为最简型
[[1 2 1],[0 2 -2],[0 0 5]] --> [[1 0 3],[0 2 -5],[0 0 5]] --> [[1 0 3],[0 2 0],[0 0 5]] --> [[1 0 3],[0 1 0],[0 0 1]] --> [[1 0 0],[0 1 0],[0 0 1]]
3.消元矩阵(E)
[[1 0 0],[-3 1 0],[0 0 1]] * [[1 2 1],[3 8 1],[0 4 1]] = [[1 2 1],[0 2 -2],[0 4 1]]
E21 A
[[1 0 0],[0 1 0],[0 -2 1]] * [[1 2 1],[0 2 -2],[0 4 1]] = [[1 2 1],[0 2 -2],[0 0 5]]
E32 U
[[1 0 0],[0 1 0],[0 -2 1]] * [[1 0 0],[-3 1 0],[0 0 1]] * [[1 2 1],[3 8 1],[0 4 1]] = [[1 2 1],[0 2 -2],[0 0 5]]
E32 E12 A U
E~32 * E~21 * A = U
E * A =U (E = E~32 * E~21)
#如果E21,E32均可逆
#穿脱原则:先进行的变换在逆变换中后进行
#单位矩阵(I/E):对角线上为1,其余均为0
A = E21^(-1) * E32^(-1) * U
A= E^(-1) * U
二.矩阵(Matrix)
1.单位(Identity)矩阵(I/E):
I~ii = 1 AND I~mn = 0
#对角线上元素均为1,其余元素均为0
2.矩阵的运算
(1)加/减法:
A~mn ± B~mn = C~mn
c~ij = a~ij ± b~ij
(2)数乘:用标量(Scalar)乘矩阵
B~mn = k * A~mn
b~mn = k * a~mn
(3)矩阵乘法:用矩阵/向量(Vector)乘矩阵
#常规方法((对应)行 * (对应)列):
[[...]...[c~m1...c~mp]...[...]] * [[...b~1n...]...[...b~pn...]] = [[...]...[...c~mn...]...[...]]
A~kp B~pq C~kq
c~mn= row m of A * column n of B = ∑(c~mi * b~in) (i = 1,2...p)
#列方法:
#C的任何1列都是A中各列的某个线性组合
column i of C = ∑(A * column i of B) (i = 1,2...p)
#行方法:
#C的任何1行都是B中各行的某个线性组合
row i of C = ∑(row i of A * B) (i = 1,2...p)
#(对应)列 * (对应)行:
C = ∑(column i of A * row i of B) (i = 1,2...p)
#分块:
[[A11...A1q]...[Ap1...Apq]] * [[B11...Bt]...[Bq1...Bqt]] = [[C11...C1t]...[Cp1...Cpt]]
A分为p * q块 B分为q * t块 C分为p * t块
Cij = block_row i of A * block_column j of B = ∑(Aip * Bpj) (p = 1,2...q)
A~mn·B~np=C~mp:结果矩阵的行数等于左侧矩阵的行数,列数等于右侧矩阵的列数;左侧矩阵的列数需等于右侧矩阵的行数才可乘
A~1n·B~np=C~1p:行向量*矩阵=行向量;矩阵各行的线性组合
A~mn·B~n1=C~m1:列向量*矩阵=列向量;矩阵各列的线性组合
(4)逆(Inverse)矩阵/非奇异(Non-singular)矩阵(相当于除法;A^(-1)):
- 要求A是方阵
#如果A可逆:
A~n^(-1) * A~n = A~n * A~n^(-1) = I~n
左可逆 右可逆
[[1 0 0],[0 1 0],[0 0 1]] = [[1 0 0],[3 1 0],[0 0 1]] * [[1 0 0],[-3 1 0],[0 0 1]] = [[1 0 0],[-3 1 0],[0 0 1]] * [[1 0 0],[3 1 0],[0 0 1]]
I A^(-1) A
#利用高斯-约尔当消元法求逆矩阵:
[A E] --> [E A^(-1)]
A^(-1) * [A E] = [A^(-1) * A A^(-1) * E] = [E A^(-1)]
#如A,B均可逆:
(A * B)^(-1) = B^(-1) * A^(-1)
A * B * (B^(-1) * A^(-1)) = A * B * B^(-1) * A^(-1) = A * A^(-1) = I
(A^T)^(-1) = (A^(-1))^T
A^T * (A^(-1))^T = (A^(-1) * A)^T = I^T =I
- A可逆的等价说法:
·A(左/右)可逆
·A非奇异
·A的行列式不为0
·A中各行/列线性无关
·Ax = 0的解只有零向量
假设A可逆,且Ax=0的解包括非零向量
Ax = 0
A^(-1)Ax = 0
x = 0
与假设矛盾
·A行等价于I
3.矩阵的LU分解
- 上三角(Upper Triangular)矩阵(U):只有对角线上即其上方有非0元素
- 下三角(Lower Triangular)矩阵(L):只有对角线上即其下方有非0元素
- 对角(Diagonal)矩阵(D):对角线上为非0元素,取余均为0
#如果A在消元时不需要互换行
E * A = U ⇒ A = L * U = L * D * U'
[[1 0],[-4 1]] * [[2 1],[8 7]] = [[2 1],[0 3]] ⇒ [[2 1],[8 7]] = [[1 0],[4 1]] * [[2 1],[0 3]] = [[1 0],[4 1]] * [[2 0],[0 3]] * [[1 1/2],[0 1]]
E21 A U L D L'
#如果A在消元时需要互换行
P * A = L * U
#如果消元过程中没有换行,消元乘数(即E中元素)可以直接取绝对值,然后写到L相应位置
E = [[1 0],[-4 1]],L = [[1 0],[4 1]]
#消元次数(步骤数Cost):
#记1次乘+1次加为1个步骤(对1行的1次消元使步骤数+n(等于列数))
#对A~n ⇒ U~n
C = ∑(i * (i - 1)) (i = 2...n) ≈ Σ(i^2) ≈ ∫(0,n)(i^2)di = (n^3)/3 ∝ n^3
#对b~n1 ⇒ b'~n1 (跟随A进行消元)
C = Σ(i) (i = 1...n-1) = n * (n - 1) / 2 ≈ (n^2) / 2 ∝ n^2
4.置换(Permutation)矩阵( P):
#P~n是行经过重新排列的I~n
#对n阶而言,有n!个
#Pi * Pj ∈ Set P;Pi^(-1) = P^T ∈ Set P
#(P~n构成1个对矩阵乘法和逆封闭的群)
#以3阶为例:
[[1 0 0],[0 1 0],[0 0 1]],[[0 1 0],[1 0 0],[0 0 1]],[[0 0 1],[0 1 0],[1 0 0]],
[[1 0 0],[0 0 1],[0 1 0]],[[0 1 0],[0 0 1],[1 0 0]],[[0 0 1],[1 0 0],[0 1 0]]
#行置换矩阵:
#乘在原矩阵左侧
[[0 1],[1 0]] * [[a b],[c d]] = [[c d],[a b]]
#列置换矩阵
#乘在原矩阵右侧
[[a b],[c d]] * [[0 1],[1 0]] = [[b a],[d c]]
5.转置(Transposed)矩阵(A^T):
a~ij = (a^T)~ji
6.对称(Symmetric)矩阵:
- 要求为方阵
S^T = S OR s~ij = s~ji
#任何矩阵乘其转置都得到对称矩阵:
R^T * R = S
(R^T * R)^T = R^T * R^(TT) = R^T * R
三.向量空间(Vector Space)
1.向量空间
(1)R^n:所有n维实向量(Real Vector)构成的空间
R^1:1条过原点的直线
R^2:1个过原点的平面
R^3:1个过原点的3维空间
(2)向量空间对加法和数乘是封闭的(closed)(向量空间中的任何向量经过加法/数乘运算后仍在该向量空间中)
- 必定包含0向量(vec a - vec a = 0)
2.子空间(Sub-space):1个嵌在向量空间中(是另1个向量空间的一部分)的向量空间
(1)Rm(m < n)是Rn的子空间
R^2的子空间:
整个R^2
L:任何过(0,0)的直线(R^1)
Z:0向量(R^0)
(2)列空间(Column Space;C(A)):矩阵各列的所有线性组合
A = [[1 3],[2 3],[4 1]]
C(A):(10/3)x - (11/3)y + z = 0
(3)行空间(Row Space;R(A)):矩阵各行的所有线性组合