第一章,07-方程组的行列式解法-克莱姆法则
简介
克莱姆法则
设线性方程组
{
a
11
x
1
+
a
12
x
2
+
⋯
+
a
1
n
x
n
=
b
1
a
21
x
1
+
a
22
x
2
+
⋯
+
a
2
n
x
n
=
b
2
−
−
−
−
−
−
−
−
−
−
−
−
−
−
a
31
x
1
+
a
n
2
x
2
+
⋯
+
a
n
n
x
n
=
b
n
\left\{ \begin{aligned} a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n = b_1\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n = b_2\\ --------------\\ a_{31}x_1+a_{n2}x_2+\cdots+a_{nn}x_n = b_n\\ \end{aligned} \right. \quad
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧a11x1+a12x2+⋯+a1nxn=b1a21x1+a22x2+⋯+a2nxn=b2−−−−−−−−−−−−−−a31x1+an2x2+⋯+annxn=bn
其系数行列式
D
=
∣
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋮
a
n
1
a
n
2
⋯
a
n
n
∣
D=\begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots &a_{2n} \\ \vdots & \vdots & & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{vmatrix}
D=∣∣∣∣∣∣∣∣∣a11a21⋮an1a12a22⋮an2⋯⋯⋯a1na2n⋮ann∣∣∣∣∣∣∣∣∣,用常数向量
β
=
(
b
1
b
2
⋮
b
n
)
\beta=\begin{pmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \\ \end{pmatrix}
β=⎝⎜⎜⎜⎛b1b2⋮bn⎠⎟⎟⎟⎞替换
D
D
D的第j列所得的n阶行列式记叙
D
j
D_j
Dj,即
D
=
∣
a
11
⋯
a
1
,
j
−
1
b
1
a
1
,
j
−
1
⋯
a
1
n
a
21
⋯
a
2
,
j
−
1
b
2
a
2
,
j
−
1
⋯
a
2
n
⋮
⋮
⋮
⋮
⋮
⋮
⋮
a
n
1
⋯
a
n
,
j
−
1
b
n
a
n
,
j
−
1
⋯
a
n
n
∣
,
(
j
=
1
,
2
,
⋯
,
n
)
。
D=\begin{vmatrix} a_{11} &\cdots& a_{1,j-1} & b_1 & a_{1,j-1}& \cdots & a_{1n} \\ a_{21} &\cdots& a_{2,j-1} & b_2 & a_{2,j-1}& \cdots & a_{2n} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ a_{n1} &\cdots& a_{n,j-1} & b_n & a_{n,j-1}& \cdots & a_{nn} \\ \end{vmatrix},(j=1,2,\cdots,n)。
D=∣∣∣∣∣∣∣∣∣a11a21⋮an1⋯⋯⋮⋯a1,j−1a2,j−1⋮an,j−1b1b2⋮bna1,j−1a2,j−1⋮an,j−1⋯⋯⋮⋯a1na2n⋮ann∣∣∣∣∣∣∣∣∣,(j=1,2,⋯,n)。
若
D
≠
0
D\neq0
D=0,则线性方程组存在唯一解:
x
1
=
D
1
D
,
x
2
=
D
2
D
,
⋯
,
x
n
=
D
n
D
x_1=\frac{D_1}{D},x_2=\frac{D_2}{D},\cdots,x_n=\frac{D_n}{D}
x1=DD1,x2=DD2,⋯,xn=DDn
numpy计算行列式
文章中提到用Matlab计算行列式,作为python程序员,当然是抄家伙搞numpy了:
import numpy as np
matrix = [[1,2,3], [4,5,6], [7,8,9]]
# 二维列表转为numpy数组
m = np.array(matrix)
# linalg线性代数包,det计算行列式
det = np.linalg.det(m)