数学/线性代数 {行列式, 行列式变换,行列式操作,行列式计算}
@LOC: 5
行列式
定义
给定方形矩阵S
[
a
b
c
d
]
\begin{bmatrix} a & b \\ c & d\end{bmatrix}
[acbd], 其对应的行列式 记作
d
e
t
(
S
)
det(S)
det(S)或
∣
S
∣
|S|
∣S∣ (determinant
行列式) 为
∣
a
b
c
d
∣
\begin{vmatrix} a & b \\ c & d\end{vmatrix}
acbd
;
虽然他俩非常相像 元素排列都一样 只是符号不同, 但他俩有本质的不同;
.
矩阵不是标量 是独立的一个数学对象, 而行列式是标量, 具体计算公式如下;
给定
n
∗
n
n*n
n∗n方形矩阵S, 其对应的行列式(标量)等于:
det
(
S
)
=
∑
p
∈
P
f
(
p
)
∏
i
=
1
n
S
i
,
p
[
i
]
\displaystyle \det(S)=\sum _{p \in P} f(p)\prod _{i=1}^{n}S_{i,p[i]}
det(S)=p∈P∑f(p)i=1∏nSi,p[i];
.
P
P
P为
[
1
,
2
,
.
.
.
,
n
]
[1,2,...,n]
[1,2,...,n]的 所有全排列集合;
.
.
P
P
P的集合大小是
n
!
n!
n!;
.
.
比如
n
=
3
n=3
n=3, 则
P
=
{
[
1
,
2
,
3
]
,
[
1
,
3
,
2
]
,
[
2
,
1
,
3
]
,
[
2
,
3
,
1
]
,
[
3
,
1
,
2
]
,
[
3
,
2
,
1
]
}
P = \{ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]\}
P={[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]};
.
p
∈
P
p \in P
p∈P表示
P
P
P中的一个元素, 称为一个排列;
.
.
比如
n
=
3
n=3
n=3,
p
p
p可以为某个排列
[
2
,
1
,
3
]
[2,1,3]
[2,1,3];
.
f
(
p
)
f(p)
f(p)为符号函数: [1 如果p排列中的逆序对个数为 偶数, 则为
1
1
1], [2 否则为
−
1
-1
−1];
.
.
比如
p
=
[
2
,
3
,
1
,
4
]
p = [2, 3, 1, 4]
p=[2,3,1,4], 其逆序对个数为
1
+
1
=
2
1+1 = 2
1+1=2, 故
f
(
p
)
=
1
f(p) = 1
f(p)=1;
.
p
(
i
)
p(i)
p(i)表示p这个排列中 第
i
i
i个元素;
.
.
比如
p
=
[
1
,
2
,
3
,
4
]
p = [1, 2, 3, 4]
p=[1,2,3,4], 则
p
[
1
]
=
1
p[1] = 1
p[1]=1;
比如, 方形矩阵
S
S
S为
[
a
b
c
d
e
f
g
h
i
]
\begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix}
adgbehcfi
:
.
排列[1,2,3], 其
f
(
)
=
1
f() = 1
f()=1, 故该项为
a
e
i
aei
aei;
.
排列[1,3,2], 其
f
(
)
=
−
1
f() = -1
f()=−1, 故该项为
−
a
f
h
-afh
−afh;
.
排列[2,1,3], 其
f
(
)
=
−
1
f() = -1
f()=−1, 故该项为
−
b
d
i
-bdi
−bdi;
.
排列[2,3,1], 其
f
(
)
=
1
f() = 1
f()=1, 故该项为
b
f
g
bfg
bfg;
.
排列[3,1,2], 其
f
(
)
=
1
f() = 1
f()=1, 故该项为
c
d
h
cdh
cdh;
.
排列[3,2,1], 其
f
(
)
=
−
1
f() = -1
f()=−1, 故该项为
−
c
e
g
-ceg
−ceg;
.
所有这些项相加起来,
a
e
i
+
b
f
g
+
c
d
h
−
c
e
g
−
b
d
i
−
a
f
h
aei + bfg + cdh - ceg - bdi - afh
aei+bfg+cdh−ceg−bdi−afh 即为行列式
∣
S
∣
|S|
∣S∣的值;
相关术语
特殊{三角形,对角}行列式
N阶行列式, 令左上角的K(
K
∈
[
1
,
N
−
1
]
K \in [1, N-1]
K∈[1,N−1])阶行列式为
L
U
LU
LU, 右下角的
N
−
K
N-K
N−K阶行列式为
R
D
RD
RD;
.
除了{LU,RD}外, 其他剩余元素 以对角线分割成 左下部分
L
D
LD
LD 和 右上部分
R
U
RU
RU;
若
L
D
LD
LD均为0, 则该行列式为特殊 上三角形行列式;
若
R
U
RU
RU均为0, 则该行列式为特殊 下三角形行列式;
若
L
D
,
R
U
{LD,RU}
LD,RU均为0, 则该行列式为特殊 对角行列式;
@Delimiter
转置行列式
将行列式D 以主对角线为轴 进行对称翻转, 得到其转置行列式
D
T
D^T
DT; (Transposition
转置, 换位)
.
比如,
∣
a
b
c
d
∣
\begin{vmatrix} a & b \\ c & d \end{vmatrix}
acbd
的转置行列式为
∣
a
c
b
d
∣
\begin{vmatrix} a & c \\ b & d \end{vmatrix}
abcd
;
–
对角行列式
所有的非0元素 只存在于主对角线上;
–
(上/下)三角形行列式
上三角形行列式: 所有的非0元素 只存在于主对角线的上面(包括主对角线);
.
比如,
∣
1
1
1
0
1
1
0
0
1
∣
\begin{vmatrix} 1 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 1\end{vmatrix}
100110111
是上三角形行列式;
同理, 可得下三角形行列式;
–
主对角线
从左上角
(
1
,
1
)
(1,1)
(1,1) 到 右下角
(
n
,
n
)
(n,n)
(n,n)这条线上的 所有元素;
.
他不是标量 不是指这些元素的乘积啥的, 就是指这些元素本身;
–
副对角线
从右上角 ( 1 , n ) (1,n) (1,n) 到 左下角 ( n , 1 ) (n,1) (n,1)这条线上的 所有元素;
性质
–
{行,列}是等价的
行列式里的{行,列}是具有同等地位, 或者说是等价的;
任何对行成立的性质 同样也对列成立; 比如, 行列式的变换规则 对行和对列 都是适用的;
–
{三角形行列式,对角行列式 }的值, 等于主对角线的乘积
假如这3类行列式的主对角线元素为:
a
1
,
a
2
,
.
.
.
,
a
n
a1, a2, ..., an
a1,a2,...,an, 则该行列式的值为
a
1
∗
a
2
∗
.
.
.
∗
a
n
a1*a2 * ... * an
a1∗a2∗...∗an;
.
注意, 这里不涉及到正负号问题, 或者说 主对角线这项 永远是正的 (而副对角线这项 可能是正 可能是负), 因此, 就单纯是主对角线上这些元素的乘积;
–
行列式计算的n!项中: 一半正号, 另一半是负号
n ≥ 2 n\geq 2 n≥2阶行列式, 一共是有 n ! n! n!项 (他是偶数), 这些项里 一半是正号 一半是负号;
@Delimiter
行列式变换: 参见@Mark_2
;
@Delimiter
特殊{三角形,对角}行列式的计算公式 @Mark_3
该行列式的4个区域 L U , L D , R D , R U LU, LD, RD, RU LU,LD,RD,RU, 行列式的值等于 L U ∗ R D LU * RD LU∗RD;
–
证明
以特殊下三角形行列式为例 (对于特殊{上三角形,对角}行列式, 也是通用的)
∣
A
1
,
1
.
.
.
A
1
,
K
0
.
.
.
0
L
U
0
R
U
0
A
K
,
1
.
.
.
A
K
,
K
0
.
.
.
0
−
−
−
A
K
+
1
,
K
+
1
.
.
.
A
K
+
1
,
N
∣
L
D
∣
R
D
−
−
−
A
N
,
K
+
1
.
.
.
A
N
,
N
∣
\begin{vmatrix} A_{1,1} & ... & A_{1,K} & 0 & ... & 0 \\ & LU & & 0 & RU & 0\\ A_{K,1} & ... & A_{K,K} & 0 & ... & 0 \\ - & - & - & A_{K+1,K+1} & ... & A_{K+1, N}\\ | & LD & | & & RD & \\ - & - & - & A_{N,K+1} & ... & A_{N,N} \end{vmatrix}
A1,1AK,1−∣−...LU...−LD−A1,KAK,K−∣−000AK+1,K+1AN,K+1...RU......RD...000AK+1,NAN,N
.
将
L
U
LU
LU这个行列式, 通过行列式的行变换(类似于高斯消元, 从
[
A
K
,
K
,
A
K
−
1
,
K
−
1
,
.
.
.
,
A
1
,
1
]
[A_{K,K}, A_{K-1,K-1}, ..., A_{1,1}]
[AK,K,AK−1,K−1,...,A1,1]依次遍历, 使用行变换 会变成一个下三角行列式, 假设该行列式对角线为
L
1
,
L
2
,
.
.
.
,
L
K
L_1,L_2,...,L_K
L1,L2,...,LK;
.
虽然这个行变换是单独针对
L
U
LU
LU行列式进行的, 但现在你将此行变换 推广到整个矩阵里, 也就是, 原先行操作的对象是
A
i
,
1
,
A
i
,
2
,
.
.
.
,
A
i
,
K
A_{i,1}, A_{i,2}, ..., A_{i,K}
Ai,1,Ai,2,...,Ai,K, 现在变成了
A
i
,
1
,
A
i
,
2
,
.
.
.
,
A
i
,
K
,
0
,
.
.
.
,
0
A_{i,1}, A_{i,2}, ..., A_{i,K}, 0, ..., 0
Ai,1,Ai,2,...,Ai,K,0,...,0 (加上右侧的这些0);
.
此时, 即使在这个整个的行列式里, 执行此操作, 他并不会影响
R
U
,
L
D
,
R
D
RU, LD, RD
RU,LD,RD, 只会将
L
U
LU
LU变为一个下三角形行列式 (其对角线元素, 为上面所说的
L
1
,
L
2
,
.
.
.
,
L
k
L_1, L_2, ..., L_k
L1,L2,...,Lk);
.
同理, 对
R
D
RD
RD进行从
A
N
,
N
,
A
N
−
1
,
N
−
1
,
.
.
.
,
A
K
+
1
,
K
+
1
A_{N,N}, A_{N-1,N-1}, ..., A_{K+1, K+1}
AN,N,AN−1,N−1,...,AK+1,K+1的高斯消元 行列式的列变换 , 将其变为下三角形行列式; 具体流程, 和上面LU的处理一样; 假设其最终得到的下三角形行列式的对角线元素为
R
K
+
1
,
R
K
+
2
,
.
.
.
,
R
N
R_{K+1}, R_{K+2}, ..., R_N
RK+1,RK+2,...,RN;
最终该行列式会变为: ∣ L 1 0... 0 0 . . . 0 . . . L 2 0 0 R U 0 . . . . . . L K 0 . . . 0 − − − R K + 1 0... 0 ∣ L D ∣ . . . R K + 2 0 − − − . . . . . . R N ∣ \begin{vmatrix} L_1 & 0... & 0 & 0 & ... & 0 \\ ... & L2& 0 & 0 & RU & 0\\ ... & ... & L_K & 0 & ... & 0 \\ - & - & - & R_{K+1} & 0... & 0 \\ | & LD & | & ... & R_{K+2} & 0 \\ - & - & - & ... & ... & R_{N} \end{vmatrix} L1......−∣−0...L2...−LD−00LK−∣−000RK+1.........RU...0...RK+2...00000RN , 即下三角形行列式, 其值为 L U ∗ R D LU * RD LU∗RD;
@Delimiter
任意行列式 都可以转换为{三角形,对角}行列式
其实这很简单 因为 行列式的本质 就是一个标量;
.
比如某个行列式
D
D
D的值为
x
x
x, 那么此时构造一个新的行列式
A
A
A 使得
A
[
1
]
[
1
]
=
x
A[1][1] = x
A[1][1]=x 对角线其他元素为
1
1
1 然后剩余其他所有元素均为0;
.
该对角行列式A (当然也是三角形行列式), 与原行列式D等价, 因为他们的值相同;
@Delimiter
3阶行列式的计算技巧
对于3阶行列式
∣
a
b
c
d
e
f
g
h
i
∣
\begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i\end{vmatrix}
adgbehcfi
, 在其右侧再复制一份 形成一个特殊矩形
a
b
c
a
b
c
d
e
f
d
e
f
g
h
i
g
h
i
\begin{matrix} a & b & c & a & b & c\\ d & e & f & d & e & f \\ g & h & i & g & h & i \end{matrix}
adgbehcfiadgbehcfi
.
从原行列式中的主对角线
a
e
i
aei
aei开始, 向右移动1次得到
b
f
g
bfg
bfg, 再向右移动1次得到
c
d
h
cdh
cdh;
.
.
这3项都为正的;
.
同理, 从原行列式中的副对角线
c
e
g
ceg
ceg开始, 同样得到
a
f
h
,
b
d
i
afh, bdi
afh,bdi, 这3项均为负的;
这个技巧说明, 在3阶行列式里, 形如从左上到右下的趋势 即该项为正, 而形如从右上到左下的趋势 即为负;
.
但是, 这仅适用于3阶行列式! 不适用于一般行列式; 对于一般行列式, 你不能使用上面的技巧, 也不能说有从右上到左下的趋势 就是负号 (最简单的反例是
n
=
4
n=4
n=4时, 副对角线是正号的, 而不是负号);
@Delimiter
错误汇总
主对角线这一项为正号, 但副对角线这项 不一定为负号
主对角线这项一定是正号, 因为其排列是 [ 1 , 2 , 3 , . . . , n ] [1,2,3,...,n] [1,2,3,...,n], 逆序对个数为0;
但不要认为副对角线这项 一定是负号, 虽然
n
=
2
∣
3
n=2|3
n=2∣3时 确实如此, 但不要惯性思维! 还是要从定义的逆序对个数的奇偶性出发;
.
副对角线的排列是
[
n
,
n
−
1
,
.
.
.
,
2
,
1
]
[n,n-1,...,2,1]
[n,n−1,...,2,1], 其逆序对个数为
n
∗
(
n
−
1
)
/
2
n * (n-1) / 2
n∗(n−1)/2;
.
.
因此, 比如
n
=
4
n = 4
n=4时 其逆序对个数为偶数, 副对角线为正号, 而不是负号;
@Delimiter
行列式的{转置,拆分,翻转,旋转}操作
定义
因为行列式 本质上 就是一个数值, 所以 我们讨论的是
∣
A
∣
|A|
∣A∣ (A为方块矩阵), 也就是 我们的操作的 其实不是行列式, 而是一个方阵 (对他操作, 然后比较操作前后的行列式);
用
o
p
(
A
)
op(A)
op(A)来表示 对方阵
A
A
A进行 某种操作;
@DELI;
按主对角线 翻转 (即转置);
这也就是 转置行列式的概念 ( o p ( A ) = A T op(A) = A^T op(A)=AT), 即 ∣ A ∣ = ∣ o p ( A ) ∣ |A| = |op(A)| ∣A∣=∣op(A)∣;
@DELI;
拆分某一[行/列], 等价于 2个行列式的相加;
具体操作为: 令 A R r = [ b 1 + c 1 , b 2 + c 2 , . . . , b N + c N ] AR_r = [b1+c1, b2+c2, ..., bN+cN] ARr=[b1+c1,b2+c2,...,bN+cN] (同样适用于列), 令 B , C B,C B,C方阵的行: B R i = C R i = A R i ( i ≠ r ) BR_i = CR_i = AR_i (i \neq r) BRi=CRi=ARi(i=r), B R r = [ b 1 , b 2 , . . . , b N ] , C R r = [ c 1 , c 2 , . . . , c N ] BR_r = [b1,b2,...,bN], CR_r = [c1,c2,...,cN] BRr=[b1,b2,...,bN],CRr=[c1,c2,...,cN], 则有: A = B + C A = B + C A=B+C;
@DELI;
按次对角线 翻转;
具体操作为: A [ i ] [ j ] = o p ( A ) [ N − j ] [ N − i ] A[i][j] = op(A)[ N-j][ N-i] A[i][j]=op(A)[N−j][N−i], 行列式为: ∣ A ∣ = ∣ o p ( A ) ∣ |A| = |op(A)| ∣A∣=∣op(A)∣ (相同);
@DELI;
水平翻转;
具体操作为: A [ i ] [ j ] = o p ( A ) [ i ] [ N − j ] A[i][j] = op(A)[ i][ N-j] A[i][j]=op(A)[i][N−j], (当A的阶数 > 1 >1 >1时) 行列式为: ∣ A ∣ = − ∣ o p ( A ) ∣ |A| = - |op(A)| ∣A∣=−∣op(A)∣ (取负);
@DELI;
垂直翻转;
具体操作为: A [ i ] [ j ] = o p ( A ) [ N − i ] [ j ] A[i][j] = op(A)[ N-i][ j] A[i][j]=op(A)[N−i][j], (当A的阶数 > 1 >1 >1时) 行列式为: ∣ A ∣ = − ∣ o p ( A ) ∣ |A| = - |op(A)| ∣A∣=−∣op(A)∣ (取负);
@DELI;
顺时针90度旋转;
具体操作为: o p ( A ) [ i ] [ j ] = A [ N − j ] [ i ] op(A)[ i][ j] = A[N-j][i] op(A)[i][j]=A[N−j][i], 行列式为: ( A A A的阶数为奇数时: ∣ A ∣ = ∣ o p ( A ) ∣ |A| = |op(A)| ∣A∣=∣op(A)∣ 相同), (当为偶数时: ∣ A ∣ = − ∣ o p ( A ) ∣ |A| = -|op(A)| ∣A∣=−∣op(A)∣ 取负);
性质
证明: 转置操作 行列式的值不变 ;
行列式里的{行,列}是具有同等地位, 或者说是等价的, 对行成立的性质 同样也对列成立, 比如, 行列式的变换规则 对行和对列 都是适用的;
我自己的一个证明;
.
任意行列式D, 通过行变换, 可以转换为上三角形行列式
U
U
U;
.
而行列式变换规则 不仅适用于行 也适用于列, 因此 将行变换改为对应的列变换, 对
D
T
D^T
DT执行对应的列变换, 最终会得到一个下三角行列式
D
D
D;
.
U
=
D
T
U = D^T
U=DT, 因此两个行列式相等;
@DELI;
证明: 行列式的拆分;
(
A
)
∣
a
b
c
x
1
+
x
2
y
1
+
y
2
z
1
+
z
2
d
e
f
∣
=
(
B
)
∣
a
b
c
x
1
y
1
z
1
d
e
f
∣
+
(
C
)
∣
a
b
c
x
2
y
2
z
2
d
e
f
∣
(A)\begin{vmatrix} a & b & c \\ x1+x2 & y1+y2 & z1+z2 \\ d & e & f \end{vmatrix} \ = \ (B)\begin{vmatrix} a & b & c \\ x1 & y1 & z1 \\ d & e & f \end{vmatrix} \ + \ (C) \begin{vmatrix} a & b & c \\ x2 & y2 & z2 \\ d & e & f \end{vmatrix}
(A)
ax1+x2dby1+y2ecz1+z2f
= (B)
ax1dby1ecz1f
+ (C)
ax2dby2ecz2f
.
对于A中任一项
p
∈
P
p \in P
p∈P (p表示一个排列),
A
A
A中的这一项 等于 B中的该项 + C中该项;
.
.
比如,
p
=
[
1
,
2
,
3
]
p = [1,2,3]
p=[1,2,3], 则
(
−
1
)
p
∗
a
∗
(
y
1
+
y
2
)
∗
f
=
(
−
1
)
p
∗
a
∗
y
1
∗
f
+
(
−
1
)
p
∗
a
∗
y
2
∗
f
(-1)^p*a*(y1+y2)*f = (-1)^p*a*y1*f + (-1)^p*a*y2*f
(−1)p∗a∗(y1+y2)∗f=(−1)p∗a∗y1∗f+(−1)p∗a∗y2∗f;
行列式变换
@Mark_2
MARK: @LOC_2
;
定义
操作1: 交换两[行/列];
原行列式为A 新行列式为B, 则 A = − 1 ∗ B A = -1 * B A=−1∗B;
符号表示: r i ↔ r j r_i \leftrightarrow r_j ri↔rj 交换两行 ( r i r_i ri表示行, c i c_i ci表示列);
@DELI;
操作2: 某一[行/列]同乘K;
原行列式为A 新行列式为B, 则 A = 1 K ∗ B A = \frac{1}{K} * B A=K1∗B;
符号表示:
r
i
∗
K
r_i * K
ri∗K (或
r
i
/
K
r_i / K
ri/K) (
r
i
r_i
ri表示行,
c
i
c_i
ci表示列);
.
注意, 是单独一个
∗
*
∗乘号, 虽然他的意思是累乘, 但不可以使用C语言的*=
符号;
@DELI;
操作3: 某一[行/列], 累加上 另一[行/列]的倍数;
原行列式为A 新行列式为B, 则 A = B A = B A=B;
符号表示:
r
i
+
K
∗
r
j
r_i + K*r_j
ri+K∗rj (
r
i
r_i
ri表示行,
c
i
c_i
ci表示列);
.
注意, 是单独一个
+
+
+加号, 虽然他的意思是累加, 但不可以使用C语言的+=
符号;
.
r
i
+
r
j
+
r
k
r_i + r_j + r_k
ri+rj+rk表示: ri += (rj + r_k)
;
错误汇总
行列式变换, 不同于 增广矩阵的初等行变换;
1 一个是行列式, 一个是矩阵, 本身就不同;
2 比如, 增广矩阵的初等行变换中的交换两行
, 交换前后 两个矩阵是完全等价的 (就相当于交换了两个方程式的上面位置, 没有任何影响);
.
而行列式的交换两行
, 行列式的值 要变换正负号的!
3 行列式变换 也可以针对列而言 (比如交换两列 也是可以的), 因为{行,列}在行列式中的地位是同等对待的, 对行满足的性质 同样可以使用于列;
.
但增广矩阵 是不可以针对列的, 比如交换两列 这在增广矩阵里肯定不行不通的;
性质
操作3的证明
假如执行了Ri += K * Rj
, 那么将B拆分成2个行列式 {A, X}, 其中X里的第i行为
K
∗
R
j
K*Rj
K∗Rj (即i行是j行的倍数) 因此, X行列式为0;
@DELI;
操作2的推论:
若行列式A有两[行/列]成比例, 则
A
=
0
A = 0
A=0;
证明
假如
R
i
=
K
∗
R
j
Ri = K* Rj
Ri=K∗Rj, 则将Rj *= (1/K)
得到新行列式
B
B
B, 即
A
=
K
∗
B
A = K * B
A=K∗B;
.
因为B有2行相同, 所以
B
=
0
B = 0
B=0;
@DELI;
操作2的证明;
假如行列式计算的所有项是a1 + a2 + ...
, 那么执行该操作后 新行列式计算的所有项为K*a1 + K*a2 + K*...
, 即为原行列式的K倍;
@DELI;
操作1的证明:
假如交换
R
i
,
R
j
Ri, Rj
Ri,Rj, 行列式计算里的
n
!
n!
n!个项, 每一项都会涉及这两行, 交换两行对每一项的影响是 在其排列中交换了两个元素, 根据CSDN--128642850--@Mark_1
, 其逆序对的个数 会发生奇偶性的变化;
.
因此, 对于任一项, 假如原来是正号 则交换后会变成负号 (比如原来是a + (-b) + c + (-d)
, 则现在会是(-a) + b + (-c) + d
), 故 整体行列式 变换正负号;
@DELI;
操作1的推论:
若行列式|A|有两个[行/列]完全相同, 则*
∣
A
∣
=
0
|A| = 0
∣A∣=0;
证明
行列式A的
R
i
,
R
j
Ri, Rj
Ri,Rj两个行相同, 则我们交换这两行 得到新的行列式B;
.
[1 这两个行列式元素完全相同, 所以
A
=
B
A = B
A=B;]–[2 因为执行了交换两行, 所以
A
=
−
B
A = -B
A=−B]
.
因此,
A
=
B
=
0
A = B = 0
A=B=0;
@DELI;
任意行列式 都可以通过行列式变换规则, 转换为三角形行列式 @Mark_1
.
注意, 这与@Mark_0
本质上是不同的;
证明
1 转变为: 形如
K
∗
U
K*U
K∗U (其中K为常数, U为上三角形行列式);
.
有点类似于高斯消元; 依次遍历主对角线(1,1) (2,2) (3,3) ...
, 对于当前元素(i,i)
, 从([i, i+1, i+2, ..., n], i)
里选择一行j
满足(j,i) != 0
, 然后将他和i
行 交换 (注意交换会导致K *= -1
), 再对[i+1, i+2, ..., n]
这些行执行Rj += K * Ri
操作 使得([i+1, i+2, ..., n], i)
这些元素均为0;
.
最终, 其会变成形如
K
∗
U
K * U
K∗U的形式;
2 将
K
K
K乘到行列式U里面的某一行, 此时就变成了 真正的 上三角形行列式;
3 执行置换 (不影响行列式值), 变成了 下三角形行列式;
@DELI;
行列式 不一定能通过行列式变换规则, 转换为对角行列式;
不知真假否…
粗略证明
.
假如使用@Mark_1
得到了上三角形行列式, 此时按照高斯消元会进行回溯;
.
当前我们在(n,n)
位置, 假如当前位置为0, 那么就无法使得他上面的元素变成0; (如果你使用swap, 将上面某行交换到当前行, 那么就导致: 原本左下角已经变成了全为0, 你一swap 左下角就不再是全0了)
@DELI;
范德蒙德行列式
定义
∣
1
1
.
.
.
1
x
1
x
2
.
.
.
x
n
x
1
2
x
2
2
.
.
.
x
n
2
.
.
.
x
1
n
−
1
x
2
n
−
1
.
.
.
x
n
n
−
1
∣
\begin{vmatrix} 1 & 1 & ... & 1 \\ x_1 & x_2 & ... & x_n \\ x_1^2 & x_2^2 & ... & x_n^2 \\ ... \\ x_1^{n-1} & x_2^{n-1} & ... & x_n^{n-1} \end{vmatrix}
1x1x12...x1n−11x2x22x2n−1............1xnxn2xnn−1
.
因为行列式可以置换, 所以置换后 你可以得到另一种形式的 完全相同的 范德蒙德行列式;
求解 @Mark_4
行列式的值为: ∏ i = 1 n − 1 ∏ j = i + 1 n ( x j − x i ) \displaystyle \prod_{i = 1}^{n-1} \prod_{j=i+1}^{n} (x_j - x_i) i=1∏n−1j=i+1∏n(xj−xi);
–
证明
遍历for( r : [n, ..., 2])
, 执行
R
r
−
x
1
∗
R
r
−
1
R_r - x_1 * R_{r-1}
Rr−x1∗Rr−1, 得到:
∣
1
1
.
.
.
1
0
x
2
−
x
1
.
.
.
x
n
−
x
1
0
x
2
(
x
2
−
x
1
)
.
.
.
x
n
(
x
n
−
x
1
)
.
.
.
0
x
2
n
−
2
(
x
2
−
x
1
)
.
.
.
x
n
n
−
2
(
x
n
−
x
1
)
∣
\begin{vmatrix} 1 & 1 & ... & 1 \\ 0 & x_2-x_1 & ... & x_n-x_1 \\ 0 & x_2(x_2 - x_1) & ... & x_n(x_n - x_1) \\ ... \\ 0 & x_2^{n-2}(x_2 - x_1) & ... & x_n^{n-2}(x_n - x_1) \end{vmatrix}
100...01x2−x1x2(x2−x1)x2n−2(x2−x1)............1xn−x1xn(xn−x1)xnn−2(xn−x1)
根据拉普拉斯展开, 原行列式 等于 去掉{第1行,第1列}后的行列式;
从每一列中, 提取出来
(
x
2
−
x
1
)
(
x
3
−
x
1
)
.
.
.
(
x
n
−
x
1
)
(x_2 - x_1) (x_3 - x_1) ... (x_n - x_1)
(x2−x1)(x3−x1)...(xn−x1), 此时的行列式为
∣
1
1
.
.
.
1
x
2
x
3
.
.
.
x
n
x
2
2
x
3
2
.
.
.
x
n
2
.
.
.
x
2
n
−
2
x
3
n
−
2
.
.
.
x
n
n
−
2
∣
\begin{vmatrix} 1 & 1 & ...& 1 \\ x_2 & x_3 & ... & x_n \\ x_2^2 & x_3^2 & ... & x_n^2 \\ ... \\ x_2^{n-2} & x_3^{n-2} & ... & x_n^{n-2} \end{vmatrix}
1x2x22...x2n−21x3x32x3n−2............1xnxn2xnn−2
再执行相同的操作, 提取出来
(
x
3
−
x
2
)
(
x
4
−
x
2
)
.
.
.
(
x
n
−
x
2
)
(x_3 - x_2) (x_4 - x_2) ... (x_n - x_2)
(x3−x2)(x4−x2)...(xn−x2);
直到最后, 行列式变为 ∣ 1 1 x n − 1 x n ∣ \begin{vmatrix} 1 & 1 \\ x_{n-1} & x_n\end{vmatrix} 1xn−11xn , 其等于 ( x n − x n − 1 ) (x_n - x_{n-1}) (xn−xn−1);
行列式计算
定义
定义法: n ! n! n!个项(通过逆序对个数判断正负)的相加;
@DELI;
拉普拉斯展开: 令某一[行/列]的元素为
[
a
1
,
a
2
,
.
.
.
,
a
N
]
[a1,a2,...,aN]
[a1,a2,...,aN], 则
∣
A
∣
=
∑
a
i
∗
A
l
g
e
(
a
i
)
|A| = \sum ai*Alge(ai)
∣A∣=∑ai∗Alge(ai) (Alge
为该元素对应的代数余子式);
@DELI;
零行列式的特殊判定技巧:
性质1: 当方阵A 有1个[行/列] 全为
0
0
0, 则
∣
A
∣
=
0
|A| = 0
∣A∣=0;
.
通过拉普拉斯展开可证明;
性质2: 当方阵A 有2个[行/列] 成比例, 则
∣
A
∣
=
0
|A| = 0
∣A∣=0;
.
证明: 通过行列式操作-3, 可得到一个全为
0
0
0的[行/列], 就变成了性质1;
性质3: 当方阵A 有3个[行/列], 他们有2个差值, 如果这2个差值成比例, 则
∣
A
∣
=
0
|A| = 0
∣A∣=0;
.
证明: 比如3个行
R
1
,
R
2
=
R
1
+
D
,
R
3
=
R
1
+
K
∗
D
R1,R2 = R1+D,R3=R1+K*D
R1,R2=R1+D,R3=R1+K∗D (他们有2个差值:
D
,
K
∗
D
D, K*D
D,K∗D), 通过行列式操作-3,
R
2
−
R
1
,
R
3
−
R
1
R2-R1, R3-R1
R2−R1,R3−R1, 此时
R
1
,
R
2
R1,R2
R1,R2会变成
D
,
K
∗
D
D, K*D
D,K∗D, 就变成了性质2;
@DELI;
性质
借助 (零行列式的特殊判定技巧-性质3), 当
n
>
2
n>2
n>2时, 你用
1
,
2
,
3
,
.
.
.
.
1,2,3,....
1,2,3,....从行列式的左上角开始 按行的填充, 即形如:
123
456
789
\displaystyle \begin{matrix} 123\\ 456\\ 789 \end{matrix}
123456789, 这样的行列式 都是等于
0
0
0;
.
证明: 比如你取前3行 他们的差值[3,3,3]
是相同的;