刷到一个挺有意思的话题,结合自己之前的经验,整理了一下核心要点。
本文涉及知识点
1 二阶行列式及三阶行列式
行列式的行列一定相等。
∣
a
11
a
12
a
21
a
22
∣
=
a
11
a
22
−
a
12
a
21
,
即主对角线减副对角线
\begin{vmatrix} a_{11}&a_{12}\\ a_{21}&a_{22}\\ \end{vmatrix}=a_{11}a_{22}-a_{12}a_{21},即主对角线减副对角线
a11a21a12a22
=a11a22−a12a21,即主对角线减副对角线
∣
a
11
a
12
a
13
a
21
a
22
a
23
a
31
a
32
a
33
∣
=
a
11
=
f
(
1
)
+
f
(
2
)
+
f
(
3
)
−
g
(
1
)
−
g
(
2
)
−
g
(
3
)
f
(
i
)
=
a
1
i
+
a
2
(
i
+
1
)
a
3
(
i
+
2
)
,
g
(
i
)
=
a
1
i
a
2
(
i
−
1
)
a
3
(
i
−
2
)
扩充一下令
a
i
j
=
a
i
(
j
−
3
)
,
j
>
3
;
a
i
j
=
a
i
(
j
+
3
)
,
j
<
1
\begin{vmatrix} a_{11}&a_{12}&a_{13}\\ a_{21}&a_{22}&a_{23}\\ a_{31}&a_{32}&a_{33}\\ \end{vmatrix}=a_{11}=f(1)+f(2)+f(3)-g(1)-g(2)-g(3)\\ f(i)=a_{1i}+a_{2(i+1)}a_{3(i+2)},g(i)=a_{1i}a_{2(i-1)}a_{3(i-2)}扩充一下令a_ij=a_i(j-3),j>3;a_ij = a_i(j+3),j < 1
a11a21a31a12a22a32a13a23a33
=a11=f(1)+f(2)+f(3)−g(1)−g(2)−g(3)f(i)=a1i+a2(i+1)a3(i+2),g(i)=a1ia2(i−1)a3(i−2)扩充一下令aij=ai(j−3),j>3;aij=ai(j+3),j<1
2 全排列及其逆序
把n个不同的元素排成一列,叫做这n个元素的全排列(简称排列)。
一个排列中所有逆序的总数叫做这个排列的逆序数。逆序数为奇数的排列叫做奇排列,逆序数为偶数的排列叫做偶排列。
3 n阶行列式的定义
∣
a
11
a
12
a
13
a
21
a
22
a
23
a
31
a
32
a
33
∣
=
∑
(
−
1
)
t
a
1
p
1
a
2
p
2
a
3
p
3
\begin{vmatrix} a_{11}&a_{12}&a_{13}\\ a_{21}&a_{22}&a_{23}\\ a_{31}&a_{32}&a_{33}\\ \end{vmatrix}=\sum (-1)^ta_{1p1}a_{2p2}a_{3p3}
a11a21a31a12a22a32a13a23a33
=∑(−1)ta1p1a2p2a3p3
其中t为排列
p
1
p
2
p
3
的逆序数,
∑
表示对
1
,
2
,
3
三个数的所有排列
p
1
,
p
2
,
p
3
取和
p_1p_2p_3的逆序数,\sum 表示对1,2,3三个数的所有排列p_1,p_2,p_3取和
p1p2p3的逆序数,∑表示对1,2,3三个数的所有排列p1,p2,p3取和。
n阶行列式,记作
∣
a
11
a
12
⋯
a
1
n
a
21
a
22
⋯
a
2
n
⋮
⋮
⋮
a
n
1
a
n
2
⋯
a
n
n
∣
\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}
a11a21⋮an1a12a22⋮an2⋯⋯⋯a1na2n⋮ann
简记作
d
e
t
(
a
i
j
)
,其中
a
i
j
为行列式
D
的
(
i
,
j
)
元
det(a_{ij}),其中a{ij}为行列式D的(i,j)元
det(aij),其中aij为行列式D的(i,j)元。
特别地:
∣
a
∣
=
a
\begin{vmatrix}a\end{vmatrix}=a
a
=a
上三角行列式:主对角线以下全部是0。下三角行列式,主对角线以上全为0。上三角行列式=主对角线行列式之积,下三角行列式=主对角线之积。
4 对换
在排列中,将任意两个元素对调,其余的元素不动,这种做出新排列的手续叫做对换。将相邻两个元素对换,叫做相邻对换。
定理1 一个排列中的任意两个元素对换,排列改变奇偶性。
证明: 相邻对换改变奇偶性,逆序对加一或减一。将
a
i
和
a
i
+
n
a_i和a_{i+n}
ai和ai+n交换,相当于:一,将a_i向右相邻对换n次,新下标变成i+n。二,
a
i
+
n
a_{i+n}
ai+n的下标变成i+n-1,向左相邻对换n-1次。共进行了2n-1次相邻对换,奇数次相邻对换。
证明2:
a
i
需向右移动
n
次,
a
i
+
n
需要左移
n
次。
a
i
到
a
i
+
n
之间共
n
−
1
个数,左移、右移各一次。
a_i需向右移动n次,a_{i+n}需要左移n次。a_i到a_{i+n}之间共n-1个数,左移、右移各一次。
ai需向右移动n次,ai+n需要左移n次。ai到ai+n之间共n−1个数,左移、右移各一次。所有元素下标共变化:2n+2(n-1)。一次相邻对换,下标变换2,故共相邻对换2n-1次。
推论 奇排列变成标准排列的对换次数为奇数,偶排列变成标准排列的对换次数为偶数。
定理2 n阶行列式也也能定义为:
D
=
∑
(
−
1
)
t
a
p
1
1
a
p
2
2
⋅
a
p
n
n
D=\sum (-1)^t a_{p_11}a_{p_2 2}\cdot a_{p_n n}
D=∑(−1)tap11ap22⋅apnn 其中t 为行排列
p
1
p
2
⋅
p
n
p_1p_2\cdot p_n
p1p2⋅pn的逆序对。
5 行列式的性质
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
T
=
∣
a
11
a
21
⋯
a
n
1
a
12
a
22
⋯
a
n
2
⋮
⋮
⋮
a
1
n
a
2
n
⋯
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^T=\begin{vmatrix} a_{11}&a_{21}&\cdots &a_{n1}\\ a_{12}&a_{22}&\cdots&a_{n2}\\ \vdots&\vdots& &\vdots\\ a_{1n}&a_{2n}&\cdots&a_{nn}\\ \end{vmatrix}
D=
a11a21⋮an1a12a22⋮an2⋯⋯⋯a1na2n⋮ann
,DT=
a11a12⋮a1na21a22⋮a2n⋯⋯⋯an1an2⋮ann
行列式
D
T
D^T
DT称为行列式D的转置行列式。
性质1 行列式与它的转置行列式相等。
性质2 互换行列式的两行(列),行列式变号。
性质3 行列式的某一行(列)中所有的元素乘以通一数k,等于用数k乘此行列式。
性质4: 行列式中如果有两行(列)元素成比例,则此行列式等于零。
性质5: 若行列式的某一列的元素都是两数之和,例如第i列都是两数之和。则等于两个行列式之和。即D=D1+D2
D
=
∣
a
11
a
12
⋯
a
1
i
+
a
1
i
′
⋯
a
1
n
a
21
a
22
⋯
a
2
i
+
a
2
i
′
⋯
a
2
n
⋮
⋮
⋮
a
n
1
a
n
2
⋯
a
n
i
+
a
n
i
′
⋯
a
n
n
∣
D=\begin{vmatrix} a_{11}&a_{12}&\cdots& a_{1i}+a'_{1i}&\cdots&a_{1n}\\ a_{21}&a_{22}&\cdots& a_{2i}+a'_{2i}&\cdots&a_{2n}\\ \vdots&\vdots& &\vdots\\ a_{n1}&a_{n2}&\cdots& a_{ni}+a'_{ni}&\cdots&a_{nn}\\ \end{vmatrix}
D=
a11a21⋮an1a12a22⋮an2⋯⋯⋯a1i+a1i′a2i+a2i′⋮ani+ani′⋯⋯⋯a1na2nann
D
1
=
∣
a
11
a
12
⋯
a
1
i
⋯
a
1
n
a
21
a
22
⋯
a
2
i
⋯
a
2
n
⋮
⋮
⋮
a
n
1
a
n
2
⋯
a
n
i
⋯
a
n
n
∣
D
2
=
∣
a
11
a
12
⋯
a
1
i
′
⋯
a
1
n
a
21
a
22
⋯
a
2
i
′
⋯
a
2
n
⋮
⋮
⋮
a
n
1
a
n
2
⋯
a
n
i
′
⋯
a
n
n
∣
D1=\begin{vmatrix} a_{11}&a_{12}&\cdots& a_{1i}&\cdots&a_{1n}\\ a_{21}&a_{22}&\cdots& a_{2i}&\cdots&a_{2n}\\ \vdots&\vdots& &\vdots\\ a_{n1}&a_{n2}&\cdots& a_{ni}&\cdots&a_{nn}\\ \end{vmatrix} D2=\begin{vmatrix} a_{11}&a_{12}&\cdots& a'_{1i}&\cdots&a_{1n}\\ a_{21}&a_{22}&\cdots& a'_{2i}&\cdots&a_{2n}\\ \vdots&\vdots& &\vdots\\ a_{n1}&a_{n2}&\cdots& a'_{ni}&\cdots&a_{nn}\\ \end{vmatrix}
D1=
a11a21⋮an1a12a22⋮an2⋯⋯⋯a1ia2i⋮ani⋯⋯⋯a1na2nann
D2=
a11a21⋮an1a12a22⋮an2⋯⋯⋯a1i′a2i′⋮ani′⋯⋯⋯a1na2nann
性质6 把行列式的某一行(列)的各元素乘以同一个数后加到另一行(列)对应的元素上去,行列式不变。
证明:拆分两个行列式,第二个行列式行(列)相同,故值为0。
例10:D=D1D2。
D
1
=
∣
a
11
⋯
a
1
k
⋮
⋮
⋮
a
k
1
⋯
a
k
k
∣
,
D
2
=
∣
b
11
⋯
a
1
n
⋮
⋮
⋮
b
n
1
⋯
b
n
n
∣
D1=\begin{vmatrix} a_{11}&\cdots&a_{1k}\\ \vdots&\vdots& \vdots\\ a_{k1}&\cdots&a_{kk}\\ \end{vmatrix}, D2=\begin{vmatrix} b_{11}&\cdots&a_{1n}\\ \vdots&\vdots& \vdots\\ b_{n1}&\cdots&b_{nn}\\ \end{vmatrix}
D1=
a11⋮ak1⋯⋮⋯a1k⋮akk
,D2=
b11⋮bn1⋯⋮⋯a1n⋮bnn
留意:k不一定等于n。
证明:对D1和D进行相同的行变换,使得D1是下三角行列式。对D2和D进行相同的行变换,使得D2是下三角行列式。D,D1,D2的值不变。由于D,D1,D2都是下三角行列式,故D=D1D2。
6 行列式按行(列)展开
在n阶行列式中,把(i,j)元
a
i
j
a_{ij}
aij所在的第i行和第j列划去后,留下来的n-1阶行列式叫做(i,j)元
a
i
j
a_{ij}
aij的余子式,记作
M
i
j
M_{ij}
Mij;记
A
i
j
=
(
−
1
)
i
+
j
M
i
j
,
A_{ij}=(-1)^{i+j}M_{ij},
Aij=(−1)i+jMij,
A
i
j
A_{ij}
Aij叫做元
a
i
j
的代数余子式
a_{ij}的代数余子式
aij的代数余子式。
引理 一个n阶行列式,如果其中第i行所有元素除(i,j)元
a
i
j
a_{ij}
aij外都为零,那么这行列式等于
a
i
j
a_{ij}
aij与它的代数余子式的乘积,即
D
=
a
i
j
A
i
j
D=a_{ij}A_{ij}
D=aijAij
定理3 行列式等于它的任一行(列)的各元素与其对应的代数余子式乘积之和。
D
=
a
i
1
A
i
1
+
a
i
2
A
i
2
+
⋯
+
a
i
n
A
i
n
(
i
=
1
,
2
⋅
,
n
)
,
D
=
a
1
j
A
1
j
+
a
2
j
A
2
j
+
⋯
+
a
n
j
A
n
j
(
j
=
1
,
2
⋅
,
n
)
,
D=a_{i1}A_{i1}+a_{i2}A_{i2}+\cdots + a_{in}A_{in} (i=1,2\cdot ,n),\\ D=a_{1j}A_{1j}+a_{2j}A_{2j}+\cdots + a_{nj}A_{nj} (j=1,2\cdot ,n),
D=ai1Ai1+ai2Ai2+⋯+ainAin(i=1,2⋅,n),D=a1jA1j+a2jA2j+⋯+anjAnj(j=1,2⋅,n),
证明:D=
D
1
+
D
2
+
⋯
D
n
D_1+D_2+\cdots D_n
D1+D2+⋯Dn,除第i行外,
D
j
D_j
Dj其它行等于D,
D
j
(
i
,
j
)
=
a
(
i
,
j
)
D_j(i,j)=a(i,j)
Dj(i,j)=a(i,j)第i其它列为0。
例12 证明范德蒙德行列式。
D
n
=
∣
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
∣
=
Π
n
≥
i
>
j
≥
1
(
x
i
−
x
j
)
D_n=\begin{vmatrix} 1&1&\cdots&1\\ x_1&x_2&\cdots&x_n\\ x_1^2&x_2^2&\cdots&x_n^2\\ \vdots&\vdots&&\vdots\\ x_1^{n-1}&x_2^{n-1}&\cdots&x_n^{n-1}\\ \end{vmatrix}=\Pi_{n\ge i > j \ge 1}(x_i-x_j)
Dn=
1x1x12⋮x1n−11x2x22⋮x2n−1⋯⋯⋯⋯1xnxn2⋮xnn−1
=Πn≥i>j≥1(xi−xj)
数学归纳法证明:
D
2
D_2
D2显然成立。我们假定
D
n
−
1
D_{n-1}
Dn−1成立。从第n行着手,后行减去前行的
x
1
x_1
x1倍,有
∣
1
1
1
⋯
1
0
x
2
−
x
1
x
3
−
x
1
⋯
x
n
−
1
0
x
2
(
x
2
−
x
1
)
x
3
(
x
3
−
x
1
)
⋯
x
n
(
x
n
−
x
1
)
⋮
⋮
⋮
⋮
0
x
2
n
−
2
(
x
2
−
x
1
)
x
3
n
−
2
(
x
3
−
x
1
)
⋯
x
n
n
−
2
(
x
n
−
x
1
)
∣
\begin{vmatrix} 1&1&1& \cdots& 1\\ 0 &x_2-x_1& x_3-x1&\cdots& x_n-1\\ 0 &x_2(x_2-x1)&x_3(x_3-x_1)&\cdots& x_n(x_n-x1)\\ \vdots&\vdots&\vdots&&\vdots\\ 0&x_2^{n-2}(x_2-x_1)&x_3^{n-2}(x_3-x_1)& \cdots& x_n^{n-2}(x_n-x_1) \end{vmatrix}
100⋮01x2−x1x2(x2−x1)⋮x2n−2(x2−x1)1x3−x1x3(x3−x1)⋮x3n−2(x3−x1)⋯⋯⋯⋯1xn−1xn(xn−x1)⋮xnn−2(xn−x1)
从第二列到第n列分别提取
(
x
2
−
x
1
)
,
(
x
3
−
x
1
)
,
⋯
(
x
n
−
x
1
)
(x_2-x_1),(x_3-x_1),\cdots (x_n-x_1)
(x2−x1),(x3−x1),⋯(xn−x1) ,提取后D变成D’,D’=
a
11
A
11
,
A
11
a_{11}A_{11},A_{11}
a11A11,A11就是n-1阶范德蒙德行列式。
推论 行列式某一行(列)的元素与另外一行(列)的对应元素的代数余子式乘积之和等于0。
a
i
1
A
j
1
+
a
i
2
A
j
2
+
⋯
a
i
n
A
j
n
=
0
,
i
≠
j
,
a
1
i
A
1
j
+
a
2
i
A
2
j
+
⋯
a
n
j
A
n
j
=
0
,
i
≠
j
,
a_{i1}A_{j1}+a_{i2}A_{j2}+\cdots a_{in}A_{jn}=0,i \neq j,\\ a_{1i}A_{1j}+a_{2i}A_{2j}+\cdots a_{nj}A_{nj}=0,i \neq j,
ai1Aj1+ai2Aj2+⋯ainAjn=0,i=j,a1iA1j+a2iA2j+⋯anjAnj=0,i=j,
证明: D’第i行等于D的第j行,其它行等于D对应行。D’按第i行展开就是上式,D’有相同的行,故其值为0。
7 克拉默法则
含有n个未知数
x
1
,
x
2
,
⋯
,
x
n
x_1,x_2,\cdots,x_n
x1,x2,⋯,xn的n 个线性方程的方程组
{
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
n
1
x
1
+
a
n
2
x
2
+
⋯
+
a
n
n
x
n
=
b
n
,
\begin{cases} 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,\\ \cdots \\ a_{n1}x_1+a_{n2}x_2+\cdots + a_{nn}x_n=b_n,\\ \end{cases}
⎩
⎨
⎧a11x1+a12x2+⋯+a1nxn=b1,a21x1+a22x2+⋯+a2nxn=b2,⋯an1x1+an2x2+⋯+annxn=bn,
克拉默法则 如果线性方程组的系数行列式不等于0,即:
∣
a
11
⋯
a
1
n
⋮
⋮
a
n
1
⋯
a
m
n
∣
≠
0
\begin{vmatrix} a_{11}& \cdots & a_{1n}\\ \vdots&&\vdots\\ a_{n1}& \cdots & a_{mn}\\ \end{vmatrix}\neq 0
a11⋮an1⋯⋯a1n⋮amn
=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
D
i
D_i
Di的第i列是常数b,其它列和D相同。
定理4 如果线性方程组的系数行列式D
≠
0
\neq 0
=0,则一定有解,且有唯一解。
定理4‘:如果线性方程组无解或有两个不同的解,则它系数行列式为0。
常数项
b
1
,
b
2
⋯
b
n
b_1,b_2\cdots b_n
b1,b2⋯bn全为0,则称方程组为齐次线性方程组;否则称为非齐次线性方程组。
定理5:如果齐次线性方程的系数行列式
D
≠
0
D \neq 0
D=0,则只有唯一解,即0解。
定理5‘:如果齐次方程组有非零解,则它的系数行列式必为零。
扩展阅读
算法为骨,CAD为魂亲士工具箱:支持中望CAD2024、AutoCad2013及以上,多年承接CAD项目的精华工作中遇到的问题,也能按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作活到老,学到老。明朝中后期,大约50%的进士能当上堂官(副部及更高);能当上堂官的举人只有十余人。子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
视频课程
先学轻松的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176
测试环境
操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用C++实现。
以上就是这次整理的全部内容,希望对你有所启发。如果有不同见解,欢迎在评论区交流讨论。
评论 (0)
暂无评论