行列式
行列式是对方阵的求值: d e t ( A ) = ∣ A ∣ det(A)=|A| det(A)=∣A∣
行列式十条性质
- 单位矩阵的行列式为1
d e t ( I ) = 1 (1) det(I)=1 \tag{1} det(I)=1(1) - 每交换一次方阵的行,其行列式的正负改变一次
- 常数乘以方阵某一行的行列式,等于常数乘以方阵的行列式
∣ t a t b c d ∣ = t ∣ a b c d ∣ (2) \left|\begin{matrix}ta&tb\\c&d\end{matrix}\right|=t\left|\begin{matrix}a&b\\c&d\end{matrix}\right| \tag{2} ∣∣∣∣tactbd∣∣∣∣=t∣∣∣∣acbd∣∣∣∣(2)
根据(2)式,易得 d e t ( t A ) = t n d e t ( A ) det(tA)=t^ndet(A) det(tA)=tndet(A)
方阵某一行的加法可以按(3)分解
∣ a + a ′ b + b ′ c d ∣ = ∣ a b c d ∣ + ∣ a ′ b ′ c d ∣ (3) \left|\begin{matrix}a+a'&b+b'\\c&d\end{matrix}\right|=\left|\begin{matrix}a&b\\c&d\end{matrix}\right|+\left|\begin{matrix}a'&b'\\c&d\end{matrix}\right| \tag{3} ∣∣∣∣a+a′cb+b′d∣∣∣∣=∣∣∣∣acbd∣∣∣∣+∣∣∣∣a′cb′d∣∣∣∣(3) - 如果方阵的2行相等,其行列式为0
交换相等的两行,其行列式只有为0,才遵循性质2 - 对方阵做初等行变换(消元),不改变行列式
∣ a b c + l a d + l b ∣ = ∣ a b c d ∣ (4) \left|\begin{matrix}a&b\\c+la&d+lb\end{matrix}\right|=\left|\begin{matrix}a&b\\c&d\end{matrix}\right| \tag{4} ∣∣∣∣ac+labd+lb∣∣∣∣=∣∣∣∣acbd∣∣∣∣(4)
式(4)根据性质3、4,很容易推得 - 若方阵有一行为0,其行列式为0
令式(2)的 t = 0 t=0 t=0,易得 - 三角方阵的行列式是其对角线元素的乘积
d e t ( U ) = ∣ d 1 ∗ ∗ 0 d 2 ∗ 0 0 d 3 ∣ = d 1 ∗ d 2 ∗ d 3 (5) det(U)=\left|\begin{matrix}d_1&*&*\\0&d_2&*\\0&0&d_3\end{matrix}\right|=d_1*d_2*d_3 \tag{5} det(U)=∣∣∣∣∣∣d100∗d20∗∗d3∣∣∣∣∣∣=d1∗d2∗d3(5)
式(5)提供了一种行列式的计算方法:首先初等行变换为三角阵,然后取对角线元素相乘(注意行变换正负的改变) - 如果 d e t ( A ) = 0 det(A)=0 det(A)=0,那么 A A A不可逆(奇异)
- 矩阵乘积的行列式等于矩阵行列式的乘积
d e t ( A B ) = d e t ( A ) d e t ( B ) (6) det(AB)=det(A)det(B) \tag{6} det(AB)=det(A)det(B)(6)
由(6)式可推得 d e t ( A − 1 ) = 1 d e t ( A ) det(A^{-1})=\frac{1}{det(A)} det(A−1)=det(A)1
对角矩阵 D = [ d 1 0 0 d 2 ] D=\left[\begin{matrix}d_1&0\\0&d_2\end{matrix}\right] D=[d100d2]的逆矩阵为 D − 1 = [ 1 / d 1 0 0 1 / d 2 ] D^{-1}=\left[\begin{matrix}1/d_1&0\\0&1/d_2\end{matrix}\right] D−1=[1/d1001/d2] - 方阵的转置后行列式保持不变
d e t ( A T ) = d e t ( A ) (7) det(A^T)=det(A) \tag{7} det(AT)=det(A)(7)
行列式计算
1)通用公式
d
e
t
(
A
)
=
∣
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋱
⋮
a
n
1
a
n
2
⋯
a
n
n
∣
=
∑
p
1
p
2
.
.
.
p
n
(
−
1
)
t
(
p
1
p
2
.
.
.
p
n
)
a
1
p
1
a
2
p
2
.
.
.
a
n
p
n
(8)
det(A)=\left|\begin{matrix}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{matrix}\right|=\sum_{p_1p_2...p_n}{(-1)^{t(p_1p_2...p_n)}a_{1p_1}a_{2p_2}...a_{np_n}} \tag{8}
det(A)=∣∣∣∣∣∣∣∣∣a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann∣∣∣∣∣∣∣∣∣=p1p2...pn∑(−1)t(p1p2...pn)a1p1a2p2...anpn(8)
式(8)中
p
1
,
.
.
.
p
n
p_1,...p_n
p1,...pn是
n
n
n的全排列,因此一共有
n
!
n!
n!个子项累加
t
(
p
1
p
2
.
.
.
p
n
)
t(p_1p_2...p_n)
t(p1p2...pn)表示排列的逆序数。如
t
(
32514
)
=
5
t(32514)=5
t(32514)=5,因为3在2前面、3在1前面、2在1前面、5在1前面、5在4前面
2)代数余子式
行列式的元素 a i j a_{ij} aij的余子式是把它所在行列的元素都删掉形成的行列式(维度 n − 1 n-1 n−1) M i j M_{ij} Mij,对应的代数余子式为
A i j = ( − 1 ) i + j M i j (9) A_{ij}=(-1)^{i+j}M_{ij} \tag{9} Aij=(−1)i+jMij(9)
行列式等于其任意某行或某列的各元素与其对应代数余子式乘积之和:
d
e
t
(
A
)
=
∑
j
n
a
1
j
A
1
j
=
∑
i
n
a
i
1
A
i
1
(10)
det(A)=\sum_j^n{a_{1j}A_{1j}}\\=\sum_i^n{a_{i1}A_{i1}} \tag{10}
det(A)=j∑na1jA1j=i∑nai1Ai1(10)
式(10)中
1
1
1可以换成任意行/列
3)初等行变换为三角阵
利用式(5)的性质,这是MATLAB的内部计算方式
行列式求逆
A
−
1
=
1
d
e
t
(
A
)
C
T
(11)
A^{-1}=\frac{1}{det(A)}C^T \tag{11}
A−1=det(A)1CT(11)
其中
C
T
C^T
CT称为伴随矩阵,
C
C
C由
A
A
A各个元素的代数余子式构成
令 A = [ 1 2 3 1 0 − 1 0 1 1 ] A=\left[\begin{matrix}1&2&3\\1&0&-1\\0&1&1\end{matrix}\right] A=⎣⎡1102013−11⎦⎤,那么对应的 C T = [ 1 1 − 2 − 1 1 4 1 − 1 − 2 ] C^T=\left[\begin{matrix}1&1&-2\\-1&1&4\\1&-1&-2\end{matrix}\right] CT=⎣⎡1−1111−1−24−2⎦⎤
克拉默法则解线性方程组
对
[
2
1
−
5
1
1
−
3
0
−
6
0
2
−
1
2
1
4
−
4
6
]
x
=
[
8
9
−
5
0
]
\left[\begin{matrix}2&1&-5&1\\1&-3&0&-6\\0&2&-1&2\\1&4&-4&6\end{matrix}\right]x=\left[\begin{matrix}8\\9\\-5\\0\end{matrix}\right]
⎣⎢⎢⎡21011−324−50−1−41−626⎦⎥⎥⎤x=⎣⎢⎢⎡89−50⎦⎥⎥⎤
先计算方程组的系数行列式
D
=
∣
2
1
−
5
1
1
−
3
0
−
6
0
2
−
1
2
1
4
−
4
6
∣
=
27
D=\left|\begin{matrix}2&1&-5&1\\1&-3&0&-6\\0&2&-1&2\\1&4&-4&6\end{matrix}\right|=27
D=∣∣∣∣∣∣∣∣21011−324−50−1−41−626∣∣∣∣∣∣∣∣=27
再分别用“常数项”替换D中的对应列,并计算其行列式:
D
1
=
∣
8
1
−
5
1
9
−
3
0
−
6
−
5
2
−
1
2
0
4
−
4
6
∣
=
81
,
D
2
=
∣
2
8
−
5
1
1
9
0
−
6
0
−
5
−
1
2
1
0
−
4
6
∣
=
−
108
D_1=\left|\begin{matrix}8&1&-5&1\\9&-3&0&-6\\-5&2&-1&2\\0&4&-4&6\end{matrix}\right|=81, D_2=\left|\begin{matrix}2&8&-5&1\\1&9&0&-6\\0&-5&-1&2\\1&0&-4&6\end{matrix}\right|=-108
D1=∣∣∣∣∣∣∣∣89−501−324−50−1−41−626∣∣∣∣∣∣∣∣=81,D2=∣∣∣∣∣∣∣∣210189−50−50−1−41−626∣∣∣∣∣∣∣∣=−108
D
3
=
∣
2
1
8
1
1
−
3
9
−
6
0
2
−
5
2
1
4
0
6
∣
=
−
27
,
D
4
=
∣
2
1
−
5
8
1
−
3
0
9
0
2
−
1
−
5
1
4
−
7
0
∣
=
27
D_3=\left|\begin{matrix}2&1&8&1\\1&-3&9&-6\\0&2&-5&2\\1&4&0&6\end{matrix}\right|=-27, D_4=\left|\begin{matrix}2&1&-5&8\\1&-3&0&9\\0&2&-1&-5\\1&4&-7&0\end{matrix}\right|=27
D3=∣∣∣∣∣∣∣∣21011−32489−501−626∣∣∣∣∣∣∣∣=−27,D4=∣∣∣∣∣∣∣∣21011−324−50−1−789−50∣∣∣∣∣∣∣∣=27
得到原方程组的解:
x
1
=
D
1
D
=
3
x_1=\frac{D_1}{D}=3
x1=DD1=3,
x
2
=
D
2
D
=
−
4
x_2=\frac{D_2}{D}=-4
x2=DD2=−4,
x
3
=
D
3
D
=
−
1
x_3=\frac{D_3}{D}=-1
x3=DD3=−1,
x
4
=
D
4
D
=
1
x_4=\frac{D_4}{D}=1
x4=DD4=1
注:通过行列式求逆(式11)和利用克拉默法则解方程组虽然公式简洁,但计算量大,一般还是推荐用消元法实现(MATLAB内部也是用消元法)
行列式求体积、面积
行列式的物理意义是体积
假设
a
⃗
\vec{a}
a、
b
⃗
\vec{b}
b、
c
⃗
\vec{c}
c为某个立方体的三条边,它们的交点是原点,那么其行向量组成的行列式就是立方体的体积
∣
a
b
c
∣
=
V
o
l
u
m
e
(12)
\left|\begin{matrix}a\\b\\c\end{matrix}\right|=Volume \tag{12}
∣∣∣∣∣∣abc∣∣∣∣∣∣=Volume(12)
相应的,假设
a
⃗
\vec{a}
a、
b
⃗
\vec{b}
b为某个平行四边形的两条边,他们的交点是原点,那么其行向量组成的行列式就是平行四边形的面积
∣
a
b
∣
=
A
r
e
a
(13)
\left|\begin{matrix}a\\b\end{matrix}\right|=Area \tag{13}
∣∣∣∣ab∣∣∣∣=Area(13)