欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数学 线性代数

程序员文章站 2022-05-22 13:08:50
...

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)):矩阵各行的所有线性组合