目錄
- 前言
- 1.向量是什么
- 1.1 向量的定義
- 1.2 向量的表示
- 1.3 向量物理意義
- 2.行向量與列向量
- 3.向量運算
- 3.1 向量加減法
- 3.2 向量數乘
- 3.3 轉置
- 3.4 向量內積
- 3.5 向量運演算法則
- 4.向量的范數
- 4.1 1-范數
- 4.2 2-范數
- 4.3 P-范數
- 4.4 ∞ \infty ∞-范數
- 4.5 ? ∞ -\infty ?∞-范數
- 5.特殊向量
- 5.1 0向量
- 5.2 單位向量
- 6.矩陣是什么
- 7.常見矩陣
- 7.1 方陣
- 7.2 對稱矩陣
- 7.3 單位矩陣
- 7.4 對角矩陣
- 8.矩陣運算
- 8.1 矩陣加減法
- 8.2 數乘
- 8.3 矩陣乘法
- 8.4 矩陣轉置
- 8.5 矩陣運演算法則
- 9.逆矩陣
- 9.1 逆矩陣定義
- 9.2 逆矩陣作用
- 10.行列式
- 11.伴隨矩陣
- 11.1 代數余子式
- 11.2 伴隨矩陣定義
- 11.3 伴隨矩陣性質
- 11.4 伴隨矩陣與逆矩陣
前言
本文其實值屬于:程式員的數學【AIoT階段二】 (尚未更新)的一部分內容,本篇把這部分內容單獨截取出來,方便大家的觀看,本文介紹 線性代數基礎,在機器學習中經常會有矩陣、向量的定義以及計算,是公式定義、推導中必不可少的一部分內容,很多基礎概念的定義中都用到了向量的概念,有關線性代數,后續還會發一篇博文:程式員的數學【線性代數高級】,本文涵蓋了一些計算的問題并使用代碼進行了實作,安裝代碼運行環境見博客:最詳細的Anaconda Installers 的安裝【numpy,jupyter】(圖+文),如果你只是想要簡單的了解有關線代的內容,那么只需要學習一下博文:NumPy從入門到高級,如果你是跟著博主學習 A I o T AIoT AIoT 的小伙伴,建議先看博文:資料分析三劍客【AIoT階段一(下)】(十萬字博文 保姆級講解),如果你沒有 P y t h o n Python Python 基礎,那么還需先修博文:Python的進階之道【AIoT階段一(上)】(十五萬字博文 保姆級講解)
1.向量是什么
1.1 向量的定義
🚩在數學中,向量(也稱為歐幾里得向量、幾何向量、矢量),指具有 大小 和 方向 的量,它可以形象化地表示為帶箭頭的線段,箭頭所指:代表向量的方向;線段長度:代表向量的大小,與向量對應的量叫做數量(物理學中稱標量),數量(或標量)只有大小,沒有方向,

1.2 向量的表示
🚩向量的記法:印刷體記作粗體的字母(如 a,b,u,v),書寫時在字母頂上加一小箭頭
→
\rightarrow
→,如果給定向量的起點(A)和終點(B),可將向量記作
A
B
→
\overrightarrow{AB}
AB
,實際上向量有多種記法,可以用元組表示一個向量,如
(
x
1
,
x
2
)
(x_1,x_2)
(x1?,x2?) 或
<
x
1
,
x
2
>
<x_1,x_2>
<x1?,x2?>,在線性代數中,
n
n
n 元向量可以用
n
×
1
n\times 1
n×1 矩陣表示,如:
V
=
[
x
1
x
2
?
x
n
]
V= \left[ \begin{matrix} x_1\\ x_2\\ \vdots \\ x_n \end{matrix} \right]
V=??????x1?x2??xn????????
顯然,上述這種寫法太占篇幅,不環保!,所以我們經常會寫成:
V
T
=
[
x
1
,
x
2
,
.
.
.
,
x
n
]
V^T=[x_1,x_2,...,x_n]
VT=[x1?,x2?,...,xn?],向量中的每個元素
x
n
x_n
xn?,都稱作向量的一個分量,
1.3 向量物理意義

O
M
→
=
(
P
,
Q
,
R
)
=
O
P
→
+
O
Q
→
+
O
R
→
\overrightarrow{OM}=(P,Q,R)=\overrightarrow{OP}+\overrightarrow{OQ}+\overrightarrow{OR}
OM
=(P,Q,R)=OP
+OQ
?+OR
向量的幾何意義就是空間中的點,物理意義就是速度或者力這樣的矢量,
向量的分量我們稱之為維度, n n n 維向量集合的全體就構成了 n n n 維歐式空間,一個 n n n 維向量其實就是一個 n n n 維歐式空間的一個點,
2.行向量與列向量
🚩行向量在線性代數中,是一個 1 × n 1×n 1×n 的矩陣,即矩陣由一個含有 n n n 個元素的行所組成即行向量,行向量的轉置是一個列向量,反之亦然,
行向量示例: V = [ x 1 , x 2 , . . . , x n ] V=[x_1,x_2,...,x_n] V=[x1?,x2?,...,xn?]
在線性代數中,列向量是一個 n × 1 n×1 n×1 的矩陣,即矩陣由一個含有 n n n 個元素的列所組成,
列向量示例: V = [ x 1 x 2 ? x n ] V= \left[ \begin{matrix} x_1\\ x_2\\ \vdots \\ x_n \end{matrix} \right] V=??????x1?x2??xn????????
為簡化書寫、方便排版起見,有時會以加上轉置符號 T T T 的行向量表示列向量,
V T = [ x 1 , x 2 , . . . , x n ] V^T=[x_1,x_2,...,x_n] VT=[x1?,x2?,...,xn?]
在機器學習中說到向量一般都是指 列向量,
3.向量運算
3.1 向量加減法
🚩等于它們的分量分別相加,顯然兩個向量的長度得是相等的,減法我們在這里不列舉,很容易舉一反三,
[ 1 2 3 ] + [ 4 5 6 ] = [ 5 7 9 ] \left[ \begin{matrix} 1\\ 2\\ 3 \end{matrix} \right] + \left[ \begin{matrix} 4 \\ 5 \\ 6 \end{matrix} \right] = \left[ \begin{matrix} 5\\ 7\\ 9 \end{matrix} \right] ???123????+???456????=???579????
3.2 向量數乘
3 × [ 1 2 3 ] = [ 3 6 9 ] 3\times\left[ \begin{matrix} 1\\ 2\\ 3 \end{matrix} \right] = \left[ \begin{matrix} 3\\ 6\\ 9 \end{matrix} \right] 3×???123????=???369????
3.3 轉置
[ 1 2 3 ] T = [ 1 , 2 , 3 ] \left[ \begin{matrix} 1\\ 2\\ 3 \end{matrix} \right]^T=[1,2,3] ???123????T=[1,2,3]
[ 1 , 2 , 3 ] T = [ 1 2 3 ] [1,2,3]^T=\left[ \begin{matrix} 1\\ 2\\ 3 \end{matrix} \right] [1,2,3]T=???123????
3.4 向量內積
🚩兩個列向量
A
T
B
A^TB
ATB 等于對應位置相乘再相加,
[
1
,
2
,
3
]
?
[
4
5
6
]
=
1
×
4
+
2
×
5
+
3
×
6
=
32
[1,2,3] \cdot \left[ \begin{matrix} 4 \\ 5 \\ 6 \end{matrix} \right]=1 \times4+2 \times5+3\times 6=32
[1,2,3]????456????=1×4+2×5+3×6=32
3.5 向量運演算法則
🚩實數與向量運演算法則,設 λ \lambda λ, μ \mu μ 是實數,則有:
- 結合率: λ ( μ A ) = ( λ μ ) A \lambda(\mu A) = (\lambda\mu)A λ(μA)=(λμ)A
- 分配率: ( λ + μ ) A = λ A + μ A (\lambda + \mu)A = \lambda A + \mu A (λ+μ)A=λA+μA
向量內積運演算法則:
- 交換律: A ? B = B ? A A\cdot B = B\cdot A A?B=B?A
- 分配率: ( A + B ) ? C = A ? C + B ? C (A + B)\cdot C = A\cdot C + B\cdot C (A+B)?C=A?C+B?C
- 結合律: ( λ A ) ? B = λ ( A ? B ) (\lambda A)\cdot B = \lambda(A\cdot B) (λA)?B=λ(A?B)
4.向量的范數
🚩范數的公式是向量每個分量絕對值 P P P 次方 再用冪函式計算 P P P分之一,這里 P P P 肯定是整數 1 , 2 , 3... 1,2,3... 1,2,3...到正無窮都是可以的,向量的范數就是把向量變成一個標量,范數的表示就是兩個豎線來表示,然后右下角寫上 P P P,
∣ ∣ A ∣ ∣ P = [ ∑ i = 1 n ∣ a i ∣ P ] 1 P ||A||_P=[\sum_{i=1}^n|a_i|^P]^{\frac{1}{P}} ∣∣A∣∣P?=[∑i=1n?∣ai?∣P]P1?

4.1 1-范數
∣
∣
X
∣
∣
1
=
∑
i
=
1
n
∣
x
i
∣
||X||_1=\sum_{i=1}^n|x_i|
∣∣X∣∣1?=∑i=1n?∣xi?∣
即向量元素絕對值之和,表示
X
X
X 到零點的 曼哈頓距離,如上圖:紅色、藍色、黃色的線條,
4.2 2-范數
∣
∣
X
∣
∣
2
=
∑
i
=
1
n
x
i
2
||X||_2=\sqrt{\sum_{i=1}^nx_i^2}
∣∣X∣∣2?=∑i=1n?xi2?
?
即向量元素的平方和再開方,也叫 歐幾里得范數,常用計算向量長度,表示
X
X
X 到零點的歐式距離,如上圖綠色的線條
4.3 P-范數
∣
∣
X
∣
∣
P
=
[
∑
i
=
1
n
∣
x
i
∣
P
]
1
P
||X||_P=[\sum_{i=1}^n|x_i|^P]^{\frac{1}{P}}
∣∣X∣∣P?=[∑i=1n?∣xi?∣P]P1?
即向量元素絕對值的
P
P
P 次方和的
1
P
\frac{1}{P}
P1? 次冪,表示
X
X
X 到零點的
P
P
P 階 閔氏距離,
4.4 ∞ \infty ∞-范數
∣
∣
X
∣
∣
∞
=
m
a
x
∣
x
i
∣
||X||_\infty=max|x_i|
∣∣X∣∣∞?=max∣xi?∣
當
P
P
P 趨向于正無窮時,即所有向量元素絕對值中的最大值,表示 切比雪夫距離,

國際象棋棋盤上兩個位置間的切比雪夫距離是指王要從一個位子移至另一個位子需要走的步數,由于王可以往斜前或斜后方向移動一格,因此可以較有效率的到達目的的格子,
4.5 ? ∞ -\infty ?∞-范數
∣
∣
X
∣
∣
?
∞
=
m
i
n
∣
x
i
∣
||X||_{-\infty}=min|x_i|
∣∣X∣∣?∞?=min∣xi?∣
當
P
P
P 趨向于負無窮時,即所有向量元素絕對值中的最小值,
5.特殊向量
5.1 0向量
🚩就是分量全部為
0
0
0 的向量
[
0
,
0
,
?
?
?
,
0
]
[0,0,\cdot\cdot\cdot,0]
[0,0,???,0]
5.2 單位向量
🚩就是2-范數為 1 1 1、模為 1 1 1、長度為 1 1 1 的向量,
向量 A B → \overrightarrow{AB} AB 的長度叫做向量的模,記作 ∣ A B → ∣ |\overrightarrow{AB}| ∣AB ∣,
計算公式:
- 空間向量 ( x , y , z ) (x,y,z) (x,y,z) ,其中 x , y , z x,y,z x,y,z 表示三個軸上的坐標,模長為: x 2 + y 2 + z 2 \sqrt{x^2+y^2+z^2} x2+y2+z2 ?
- 平面向量 ( x , y ) (x,y) (x,y),模長為: x 2 + y 2 \sqrt{x^2+y^2} x2+y2 ?
根據2-范數的公式可知,2-范數就是向量的模,對于向量(列向量)來說,2-范數就是: X T X \sqrt{X^TX} XTX ?
6.矩陣是什么
🚩矩陣就是二維陣列,下面是一個 m m m 乘 n n n 的矩陣,它有 m m m 行, n n n 列,每行每列上面都有元素,每個元素都有行標 i i i 和列標 j j j, a i j a_{ij} aij?,簡稱 m × n m \times n m×n 矩陣,記作:
{ a 11 a 12 ? a 1 n a 21 a 22 ? a 2 n ? ? ? ? a m 1 a m 2 ? a m n } \left\{ \begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \\ \end{matrix} \right\} ??????????a11?a21??am1??a12?a22??am2???????a1n?a2n??amn????????????
注意 a 11 a_{11} a11? 的索引是 A [ 0 , 0 ] A[0,0] A[0,0],
這 m × n m\times n m×n 個數稱為矩陣 A A A 的元素,簡稱為元,數 a i j a_{ij} aij? 位于矩陣 A A A 的第 i i i 行第 j j j 列,稱為矩陣 A A A 的 ( i , j ) (i,j) (i,j) 元, m × n m\times n m×n 矩陣 A A A 也記作 A m n A_{mn} Amn?
7.常見矩陣
7.1 方陣
🚩如果
m
m
m 等于
n
n
n,那就稱為方陣:
A
=
[
1
2
3
4
5
6
7
8
9
]
A= \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix}
A=???147?258?369????
7.2 對稱矩陣
🚩如果對于任意的 a i j a_{ij} aij? 都等于 a j i a_{ji} aji?,那么這個矩陣就是對稱矩陣,從定義不難看出,對稱矩陣的前提是該矩陣首先是一個方陣,
A = [ 1 4 7 4 5 8 7 8 9 ] A= \begin{bmatrix} 1 & 4 & 7 \\ 4 & 5 & 8 \\ 7 & 8 & 9 \end{bmatrix} A=???147?458?789????
7.3 單位矩陣
🚩主對角線都是 1 1 1,其它位置是 0 0 0,這稱之為單位矩陣,單位矩陣寫為 I I I,一定是方陣,等同于數字里面的 1 1 1,
A = [ 1 0 0 0 1 0 0 0 1 ] A= \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} A=???100?010?001????
7.4 對角矩陣
🚩對角矩陣,就是主對角線非
0
0
0,其它位置是
0
0
0,
[
λ
1
0
?
0
0
λ
2
?
0
?
?
?
?
0
0
?
λ
n
]
\left[ \begin{matrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_n \\ \end{matrix} \right]
??????λ1?0?0?0λ2??0??????00?λn????????
對角矩陣一定是方陣,不然沒有對角線!
8.矩陣運算
8.1 矩陣加減法
🚩矩陣的加法就是矩陣的對應位置相加,減法也是一樣就是對應位置相減,
[
1
2
3
1
6
4
]
+
[
6
0
1
7
1
5
]
=
[
7
2
4
8
7
9
]
\begin{bmatrix} 1 & 2 \\ 3 & 1 \\ 6 & 4 \end{bmatrix}+\begin{bmatrix} 6 & 0 \\ 1 & 7 \\ 1 & 5 \end{bmatrix}=\begin{bmatrix} 7 & 2 \\ 4 & 8 \\ 7 & 9 \end{bmatrix}
???136?214????+???611?075????=???747?289????
8.2 數乘
3 × [ 1 2 3 4 5 6 7 8 9 ] = [ 3 6 9 12 15 18 21 24 27 ] 3\times\begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix}=\begin{bmatrix} 3 & 6 & 9 \\ 12 & 15 & 18 \\ 21 & 24 & 27 \end{bmatrix} 3×???147?258?369????=???31221?61524?91827????
8.3 矩陣乘法
🚩矩陣的乘法和一般的乘法是不太一樣!
它是把第一個矩陣的每一行,和第二個矩陣的每一列拿過來做內積得到結果,

[
1
2
1
3
1
0
]
?
[
2
5
0
4
7
2
]
=
[
9
15
6
19
]
\begin{bmatrix} 1 & 2 & 1 \\ 3 & 1 & 0 \\ \end{bmatrix} \cdot \begin{bmatrix} 2 & 5 \\ 0 & 4 \\ 7 & 2 \end{bmatrix}= \begin{bmatrix} 9 & 15 \\ 6 & 19 \\ \end{bmatrix}
[13?21?10?]????207?542????=[96?1519?]
對于矩陣乘法的兩個矩陣,假設第一個矩陣為 m m m 行 n n n 列,第二個矩陣為 n n n 行 k k k 列,那么進行矩陣乘法后得到的矩陣為 m m m 行 k k k 列: m × n ? n × k = m × k m \times n \cdot n \times k=m \times k m×n?n×k=m×k
8.4 矩陣轉置
🚩轉置的操作和向量是一樣的,就是把
a
i
j
a_{ij}
aij? 變成
a
j
i
a_{ji}
aji?,即把行和列互換一下:
[
1
2
1
3
1
0
]
T
=
[
1
3
2
1
1
0
]
\begin{bmatrix} 1 & 2 & 1 \\ 3 & 1 & 0 \\ \end{bmatrix}^T= \begin{bmatrix} 1 & 3 \\ 2 & 1 \\ 1 & 0 \end{bmatrix}
[13?21?10?]T=???121?310????
8.5 矩陣運演算法則
-
矩陣加減法
滿足:分配律、結合律、交換律 -
矩陣乘法
滿足:分配律、結合律,不滿足交換律

矩陣乘法 + 轉置: ( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT
9.逆矩陣
9.1 逆矩陣定義
矩陣有 A B AB AB 乘法,但是沒有 A / B A/B A/B 這么一說,只有逆矩陣,
逆矩陣怎么定義的?
假設有個矩陣 A A A,注意它一定是方陣(必須是方陣),乘以矩陣 B B B 等于單位矩陣 I I I :
A B = I AB=I AB=I 或 B A = I BA=I BA=I
那么我們稱這里的 B B B 為 A A A 的右逆矩陣,和左逆矩陣,
有個很重要的結論就是,如果這樣的 B B B 存在的話,它的左逆和右逆一定相等,統稱為 A A A 的逆矩陣 A ? 1 A^{-1} A?1,則: A = B ? 1 , B = A ? 1 A=B^{-1},B=A^{-1} A=B?1,B=A?1
9.2 逆矩陣作用
🚩矩陣求逆有什么用呢?
它可以幫助我們解線性方程組,比如 X W = Y XW=Y XW=Y ,兩邊同時乘以 X X X 的逆:
X
?
1
X
W
=
X
?
1
Y
X^{-1}XW=X^{-1}Y
X?1XW=X?1Y
I
W
=
X
?
1
Y
IW=X^{-1}Y
IW=X?1Y
W
=
X
?
1
Y
W=X^{-1}Y
W=X?1Y
就可以求解出方程的系數,它發明的目的也是干這樣的事情用的,
舉例說明:
# 三元一次方程
# 3x + 2y + 4z = 19
# 2x -y + 3z = 9
# x + y - z = 0
import numpy as np
X = np.array([[3, 2, 4],
[2, -1, 3],
[1, 1, -1]])
Y = np.array([19, 9, 0])
display(X, Y)
# np.linalg.inv表示矩陣求逆
# dot表示矩陣乘法
W = np.linalg.inv(X).dot(Y)
print('求解方程x,y,z為:', W)

從這里我們也可以看出來單位矩陣像我們乘法里面的
1
1
1,
逆矩陣相關公式:
- ( A B ) ? 1 = B ? 1 A ? 1 (AB)^{-1}=B^{-1}A^{-1} (AB)?1=B?1A?1
- ( A ? 1 ) ? 1 = A (A^{-1})^{-1}=A (A?1)?1=A
- ( A T ) ? 1 = ( A ? 1 ) T (A^T)^{-1}=(A^{-1})^T (AT)?1=(A?1)T
10.行列式
🚩 行列式其實在機器學習中用的并不多,一個矩陣必須是方陣,才能計算它的行列式
行列式是把矩陣變成一個標量
∣
a
11
a
12
a
21
a
22
∣
=
a
11
a
22
?
a
12
a
21
\left |\begin{array}{cccc} a_{11} &a_{12}\\ a_{21} &a_{22}\\ \end{array}\right|=a_{11}a_{22}-a_{12}a_{21}
∣∣∣∣?a11?a21??a12?a22??∣∣∣∣?=a11?a22??a12?a21?
import numpy as np
A = np.array([[1,3],[2,5]])
display(A)
print('矩陣A的行列式是:\n',np.linalg.det(A))

行列式在求解,逆矩陣的程序中,起到了作用,行列式 不為0,才可以求解逆矩陣!
import numpy as np
A = np.array([[1,3],[2,6]])
display(A)
print('矩陣A的行列式是:\n',np.linalg.det(A))
# 無法求解行列式,報錯資訊:LinAlgError: Singular matrix
print('矩陣A的逆矩陣為:\n',np.linalg.inv(A))

11.伴隨矩陣
11.1 代數余子式
🚩 代數余子式定義:

代數余子式計算
A = [ 1 2 3 2 2 1 3 4 3 ] A= \begin{bmatrix} 1 & 2 & 3 \\ 2 & 2 & 1 \\ 3 & 4 & 3 \end{bmatrix} A=???123?224?313????
計算程序如下:

11.2 伴隨矩陣定義
🚩 設有一矩陣
A
A
A:
A
=
[
a
11
a
12
?
a
1
n
a
21
a
22
?
a
2
n
?
?
?
?
a
n
1
a
n
2
?
a
n
n
]
A= \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \\ \end{bmatrix}
A=??????a11?a21??an1??a12?a22??an2???????a1n?a2n??ann????????
設
A
i
j
A_{ij}
Aij? 是矩陣
A
A
A 中元素
a
i
j
a_{ij}
aij? 的代數余子式,那么矩陣
A
?
A^*
A?:
A
?
=
[
A
11
A
21
?
A
n
1
A
12
A
22
?
A
n
2
?
?
?
?
A
1
n
A
2
n
?
A
n
n
]
A^*= \begin{bmatrix} A_{11} & A_{21} & \cdots & A_{n1} \\ A_{12} & A_{22} & \cdots & A_{n2} \\ \vdots & \vdots & \ddots & \vdots \\ A_{1n} & A_{2n} & \cdots & A_{nn} \\ \end{bmatrix}
A?=??????A11?A12??A1n??A21?A22??A2n???????An1?An2??Ann????????
稱為矩陣 A A A 的 伴隨矩陣
11.3 伴隨矩陣性質
A
A
?
=
A
?
A
=
∣
A
∣
E
AA^*=A^*A=|A|E
AA?=A?A=∣A∣E
A
A
?
=
A
?
A
=
∣
A
∣
E
AA^*=A^*A=|A|E
AA?=A?A=∣A∣E
I , E I,E I,E 都表示單位矩陣, ∣ A ∣ |A| ∣A∣ 代表行列式
11.4 伴隨矩陣與逆矩陣
A
A
?
1
=
I
AA^{-1}=I
AA?1=I
A
A
?
=
∣
A
∣
I
AA^*=|A|I
AA?=∣A∣I,其中
∣
A
∣
|A|
∣A∣ 代表行列式
A
A
A
A
?
∣
A
∣
\frac{A^*}{|A|}
∣A∣A??
=
I
=I
=I
根據上式可得:
A
?
1
=
A^{-1}=
A?1=
A
?
∣
A
∣
\frac{A^*}{|A|}
∣A∣A??
import numpy as np
# 宣告矩陣
A = np.array([
[1, 2, 3],
[2, 2, 1],
[3, 4, 3]])
A_bs = [] # 伴隨矩陣
n = 3 # A方陣的行、列數量
for i in range(n):
for j in range(n):
row = [0, 1, 2] # 行索引
col = [0, 1, 2] # 列索引
row.remove(i) # 去除行
col.remove(j) # 去除列
# 代數余子式
A_ij = A[np.ix_(row, col)]
A_bs.append(((-1) ** (i + j)) * np.linalg.det(A_ij))
A_bs = np.array(A_bs).reshape(3, 3).T
print('根據伴隨矩陣求逆矩陣:\n', A_bs / np.linalg.det(A))
print('用NumPy模塊求逆矩陣:\n', np.linalg.inv(A))

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423562.html
標籤:AI
上一篇:【人臉識別系列】| 實作人臉截圖保存并撰寫128維特征向量
下一篇:R語言plotly可視化:可視化直方圖、歸一化的直方圖、水平直方圖、互相重疊的直方圖、堆疊的直方圖、累積直方圖、通過bingroup引數設定多個直方圖使用相同的bins設定、自定義直方圖條形的間距
