手動反爬蟲:原博地址
知識梳理不易,請尊重勞動成果,文章僅發佈在CSDN網站上,在其他網站看到該博文均屬於未經作者授權的惡意爬取信息
如若轉載,請標明出處,謝謝!
例1:化爲上三角(就硬算)
計算下面行列式的值
D = ∣ 2 1 7 − 1 − 1 2 4 3 2 1 0 − 1 3 2 2 1 ∣ D = \begin{vmatrix}2 & 1 & 7 & -1\\ -1 & 2 & 4 & 3\\ 2 & 1& 0 &-1 \\ 3 & 2&2 &1\end{vmatrix} D = ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 2 − 1 2 3 1 2 1 2 7 4 0 2 − 1 3 − 1 1 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣
解:①將第一行和第二行交換,值變號
②依次乘以2,2,3將除了第一行除外的第一列所有元素變成0
③先用第二行乘以-1加到第三行後,再將第二行的公因式5提出,最後將第四行的第二列對應的元素化爲0
④將第三行的-7提到行列式外,然後將第四行第三列元素化爲0
− ∣ − 1 2 4 3 2 1 7 − 1 2 1 0 − 1 3 2 2 1 ∣ = − ∣ − 1 2 4 3 0 5 15 5 0 5 8 5 0 8 14 10 ∣ = − 5 ∣ − 1 2 4 3 0 1 3 1 0 0 − 7 0 0 0 − 10 2 ∣ = 35 ∣ − 1 2 4 3 0 1 3 1 0 0 1 0 0 0 0 2 ∣ = − 70 -\begin{vmatrix}-1 & 2 & 4 & 3\\ 2 & 1 & 7 & -1\\ 2 & 1& 0 &-1 \\ 3 & 2&2 &1\end{vmatrix} =-\begin{vmatrix}-1 & 2 & 4 & 3\\ 0 & 5 & 15 & 5\\ 0 & 5& 8 &5 \\ 0 & 8&14 &10\end{vmatrix}=-5\begin{vmatrix}-1 & 2 & 4 & 3\\ 0 & 1 & 3 & 1\\ 0 & 0& -7 &0 \\ 0 & 0&-10&2\end{vmatrix}=35\begin{vmatrix}-1 & 2 & 4 & 3\\ 0 & 1 & 3 & 1\\ 0 & 0& 1 &0 \\ 0 & 0&0&2\end{vmatrix}=-70 − ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ − 1 2 2 3 2 1 1 2 4 7 0 2 3 − 1 − 1 1 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ = − ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ − 1 0 0 0 2 5 5 8 4 1 5 8 1 4 3 5 5 1 0 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ = − 5 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ − 1 0 0 0 2 1 0 0 4 3 − 7 − 1 0 3 1 0 2 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ = 3 5 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ − 1 0 0 0 2 1 0 0 4 3 1 0 3 1 0 2 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ = − 7 0
python中進行計算結果驗證
import numpy as np
data = np. reshape( [ 2 , 1 , 7 , - 1 , - 1 , 2 , 4 , 3 , 2 , 1 , 0 , - 1 , 3 , 2 , 2 , 1 ] , ( 4 , 4 ) )
print ( data)
print ( data. shape)
print ( np. linalg. det( data) )
→ 輸出的結果爲:(python計算中存在不確定尾數,不影響最終的結果)
[ [ 2 1 7 - 1 ]
[ - 1 2 4 3 ]
[ 2 1 0 - 1 ]
[ 3 2 2 1 ] ]
( 4 , 4 )
- 70.00000000000003
例2:巧妙使用展開式
求解下列行列式的 M 41 + M 42 + M 43 + M 44 M_{41}+M_{42}+M_{43}+M_{44} M 4 1 + M 4 2 + M 4 3 + M 4 4
D = ∣ 3 0 4 0 3 2 2 2 0 − 7 0 0 5 3 − 2 2 ∣ D = \begin{vmatrix}3 & 0 & 4 & 0\\ 3& 2 & 2 &2\\ 0 & -7& 0 &0 \\ 5& 3&-2 &2\end{vmatrix} D = ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 3 3 0 5 0 2 − 7 3 4 2 0 − 2 0 2 0 2 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣
看到這種同行餘子式相加,就想起上個博客中的異乘變零定理,首先將餘子式轉化爲相應的代數餘子式,則
M 41 + M 42 + M 43 + M 44 = − A 41 + A 42 − A 43 + A 44 = ( − 1 ) A 41 + A 42 + ( − 1 ) A 43 + A 44 M_{41}+M_{42}+M_{43}+M_{44} = -A_{41}+A_{42}-A_{43}+A_{44} = (-1)A_{41}+A_{42}+(-1)A_{43}+A_{44} M 4 1 + M 4 2 + M 4 3 + M 4 4 = − A 4 1 + A 4 2 − A 4 3 + A 4 4 = ( − 1 ) A 4 1 + A 4 2 + ( − 1 ) A 4 3 + A 4 4
而最後的代數餘子式與前面的係數相乘剛好又滿足行列式展開的結果,實際上也就是求解下面的行列式的值(相當於將第4行的數據變成了代數餘子式前面的係數,其餘的不變)
D 1 = ∣ 3 0 4 0 3 2 2 2 0 − 7 0 0 − 1 1 − 1 1 ∣ D_{1} = \begin{vmatrix}3 & 0 & 4 & 0\\ 3& 2 & 2 &2\\ 0 & -7& 0 &0 \\ -1& 1&-1&1\end{vmatrix} D 1 = ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 3 3 0 − 1 0 2 − 7 1 4 2 0 − 1 0 2 0 1 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣
求解過程如下:按照第三行進行展開即可
D 1 = ( − 7 ) ∗ ( − 1 ) 3 + 2 ∣ 3 4 0 3 2 2 − 1 − 1 1 ∣ = 7 ∗ ( 3 ∗ ( 2 + 2 ) − 4 ∗ ( 3 + 2 ) ) = 7 ∗ ( − 8 ) = − 56 D_{1} = (-7)*(-1)^{3+2}\begin{vmatrix}3 & 4 & 0\\ 3& 2 &2 \\ -1&-1&1\end{vmatrix}=7*(3*(2+2)-4*(3+2)) =7*(-8)=-56 D 1 = ( − 7 ) ∗ ( − 1 ) 3 + 2 ∣ ∣ ∣ ∣ ∣ ∣ 3 3 − 1 4 2 − 1 0 2 1 ∣ ∣ ∣ ∣ ∣ ∣ = 7 ∗ ( 3 ∗ ( 2 + 2 ) − 4 ∗ ( 3 + 2 ) ) = 7 ∗ ( − 8 ) = − 5 6
python中進行計算結果驗證
import numpy as np
data = np. reshape( [ 3 , 0 , 4 , 0 , 3 , 2 , 2 , 2 , 0 , - 7 , 0 , 0 , - 1 , 1 , - 1 , 1 ] , ( 4 , 4 ) )
print ( data)
print ( data. shape)
print ( np. linalg. det( data) )
→ 輸出的結果爲:(驗證無誤)
[ [ 3 0 4 0 ]
[ 3 2 2 2 ]
[ 0 - 7 0 0 ]
[ - 1 1 - 1 1 ] ]
( 4 , 4 )
- 56.00000000000002
例3:等和行列式
計算下面行列式的值:每行每列的和都是相等的
D = ∣ x a . . . a a a x . . . a a . . . . . . . . . . . . . . . a a . . . x a a a . . . a x ∣ D = \begin{vmatrix}x &a &...& a& a\\ a& x &... & a&a\\ ... & ...&... &...&... \\ a& a&...&x&a\\a& a&...&a&x\end{vmatrix} D = ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ x a . . . a a a x . . . a a . . . . . . . . . . . . . . . a a . . . x a a a . . . a x ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣
解:①將所有行都加到第一行,然後提取公因式到行列式外邊
②然後第一列乘以-1,依次加到其餘各列,就轉化爲了三角行列式
D = ∣ x + ( n − 1 ) a a . . . a a x + ( n − 1 ) a x . . . a a . . . . . . . . . . . . . . . x + ( n − 1 ) a a . . . x a x + ( n − 1 ) a a . . . a x ∣ = x + ( n − 1 ) a ∣ 1 a . . . a a 1 x . . . a a . . . . . . . . . . . . . . . 1 a . . . x a 1 a . . . a x ∣ ⇒ D = \begin{vmatrix}x+(n-1)a &a &...& a& a\\x+(n-1)a & x &... & a&a\\ ... & ...&... &...&... \\x+(n-1)a& a&...&x&a\\x+(n-1)a& a&...&a&x\end{vmatrix} = x+(n-1)a\begin{vmatrix}1 &a &...& a& a\\1 & x &... & a&a\\ ... & ...&... &...&... \\1& a&...&x&a\\1& a&...&a&x\end{vmatrix} \Rightarrow D = ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ x + ( n − 1 ) a x + ( n − 1 ) a . . . x + ( n − 1 ) a x + ( n − 1 ) a a x . . . a a . . . . . . . . . . . . . . . a a . . . x a a a . . . a x ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ = x + ( n − 1 ) a ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 1 1 . . . 1 1 a x . . . a a . . . . . . . . . . . . . . . a a . . . x a a a . . . a x ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ⇒
⇒ x + ( n − 1 ) a ∣ 1 0 . . . 0 0 1 x − a . . . 0 0 . . . . . . . . . . . . . . . 1 0 . . . x − a 0 1 0 . . . 0 x − a ∣ = x + ( n − 1 ) a ( x − a ) n − 1 \Rightarrow \text{ } \text{ } \text{ } x+(n-1)a\begin{vmatrix}1 &0 &...& 0& 0\\1 & x-a &... & 0&0\\ ... & ...&... &...&... \\1& 0&...&x-a&0\\1& 0&...&0&x-a\end{vmatrix} =x+(n-1)a(x-a)^{n-1} ⇒ x + ( n − 1 ) a ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 1 1 . . . 1 1 0 x − a . . . 0 0 . . . . . . . . . . . . . . . 0 0 . . . x − a 0 0 0 . . . 0 x − a ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ = x + ( n − 1 ) a ( x − a ) n − 1
例4:加邊法(三叉型行列式)
計算下面行列式的值:對角線元素不同,其餘元素相等,a i ! = 0 a_{i} != 0 a i ! = 0
D = ∣ 1 + a 1 1 . . . 1 1 1 1 + a 2 . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . 1 + a n − 1 1 1 1 . . . 1 1 + a n ∣ D = \begin{vmatrix}1+a_{1} &1 &...& 1& 1\\ 1& 1+a_{2} &... & 1&1\\ ... & ...&... &...&... \\1&1&...&1+a_{n-1} &1\\1& 1&...&1&1+a_{n} \end{vmatrix} D = ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 1 + a 1 1 . . . 1 1 1 1 + a 2 . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . 1 + a n − 1 1 1 1 . . . 1 1 + a n ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣
解題思路:加一行一列,行列式不變(按照第一列展開行列式值不變)
① 第一行乘以-1加到其餘各行
②得到三叉型行列式 ,形似爪子
③將第一列中除第一行外將所有元素化爲0,轉化爲三角形行列式(從第二列開始都乘以對角線元素的倒數,然後加到第一列)
D = ∣ 1 1 1 1 1 1 0 1 + a 1 1 . . . 1 1 0 1 1 + a 2 . . . 1 1 . . . . . . . . . . . . . . . . . . 0 1 1 . . . 1 + a n − 1 1 0 1 1 . . . 1 1 + a n ∣ = ∣ 1 1 1 1 1 1 − 1 a 1 0 . . . 0 0 − 1 0 a 2 . . . 0 0 . . . . . . . . . . . . . . . . . . − 1 0 0 . . . a n − 1 0 − 1 0 0 . . . 0 a n ∣ ⇒ D = \begin{vmatrix}1&1&1&1&1&1&\\0&1+a_{1} &1 &...& 1& 1\\0& 1& 1+a_{2} &... & 1&1\\ ... &... & ...&... &...&... \\0&1&1&...&1+a_{n-1} &1\\0&1& 1&...&1&1+a_{n} \end{vmatrix}= \begin{vmatrix}1&1&1&1&1&1&\\-1&a_{1} &0 &...& 0& 0\\-1& 0& a_{2} &... & 0&0\\ ... &... & ...&... &...&... \\-1&0&0&...&a_{n-1} &0\\-1&0& 0&...&0&a_{n} \end{vmatrix} \Rightarrow D = ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 1 0 0 . . . 0 0 1 1 + a 1 1 . . . 1 1 1 1 1 + a 2 . . . 1 1 1 . . . . . . . . . . . . . . . 1 1 1 . . . 1 + a n − 1 1 1 1 1 . . . 1 1 + a n ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ = ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 1 − 1 − 1 . . . − 1 − 1 1 a 1 0 . . . 0 0 1 0 a 2 . . . 0 0 1 . . . . . . . . . . . . . . . 1 0 0 . . . a n − 1 0 1 0 0 . . . 0 a n ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ⇒
⇒ ∣ 1 + 1 a 1 + 1 a 2 + . . . + 1 a n 1 1 1 1 1 0 a 1 0 . . . 0 0 0 0 a 2 . . . 0 0 . . . . . . . . . . . . . . . . . . 0 0 0 . . . a n − 1 0 0 0 0 . . . 0 a n ∣ = ( 1 + 1 a 1 + 1 a 2 + . . . + 1 a n ) a 1 a 2 . . . a n \Rightarrow \text{ } \text{ } \text{ } \begin{vmatrix}1+\frac{1}{a_{1}}+\frac{1}{a_{2}}+...+\frac{1}{a_{n}}&1&1&1&1&1&\\0&a_{1} &0 &...& 0& 0\\0& 0& a_{2} &... & 0&0\\ ... &... & ...&... &...&... \\0&0&0&...&a_{n-1} &0\\0&0& 0&...&0&a_{n} \end{vmatrix} =(1+\frac{1}{a_{1}}+\frac{1}{a_{2}}+...+\frac{1}{a_{n}})a_{1}a_{2}...a_{n} ⇒ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 1 + a 1 1 + a 2 1 + . . . + a n 1 0 0 . . . 0 0 1 a 1 0 . . . 0 0 1 0 a 2 . . . 0 0 1 . . . . . . . . . . . . . . . 1 0 0 . . . a n − 1 0 1 0 0 . . . 0 a n ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ = ( 1 + a 1 1 + a 2 1 + . . . + a n 1 ) a 1 a 2 . . . a n
注意:加邊法不能改變原行列式的值
例5:反對稱行列式
反對稱行列式描述: 主對角線全爲0, 上下位置對應成相反數(a i j = − a j i a_{ij} = - a_{ji} a i j = − a j i )
對稱行列式描述:主對角線沒有要求,上下位置相等(a i j = a j i a_{ij} = a_{ji} a i j = a j i )
定理: 奇數階的反對稱行列式值爲0 ,證明如下(假使爲3階):
D = ∣ 0 a b − a 0 c − b − c 0 ∣ = ( − 1 ) 3 ∣ 0 − a − b a 0 − c b c 0 ∣ = − D T = − D ⇒ D = 0 D = \begin{vmatrix}0 & a & b \\ -a & 0 & c \\ -b& -c& 0\end{vmatrix} = (-1)^3 \begin{vmatrix}0 & -a & -b \\ a & 0 & -c \\ b& c& 0\end{vmatrix} = - D^{T} = -D \text{ } \text{ } \text{ } \Rightarrow \text{ } \text{ } \text{ } D = 0 D = ∣ ∣ ∣ ∣ ∣ ∣ 0 − a − b a 0 − c b c 0 ∣ ∣ ∣ ∣ ∣ ∣ = ( − 1 ) 3 ∣ ∣ ∣ ∣ ∣ ∣ 0 a b − a 0 c − b − c 0 ∣ ∣ ∣ ∣ ∣ ∣ = − D T = − D ⇒ D = 0
定理:偶數階的反對稱行列式的值不變(哈哈哈,其實就是廢話,一個行列式的值當然等於其本身)
D = ∣ 0 a b c − a 0 d e − b − d 0 f − c − e − f 0 ∣ = ( − 1 ) 4 D T = D D = \begin{vmatrix}0 & a & b & c\\ -a & 0 & d &e\\ -b& -d& 0 &f \\ -c & -e&-f &0\end{vmatrix} = (-1)^{4}D^{T} = D D = ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ 0 − a − b − c a 0 − d − e b d 0 − f c e f 0 ∣ ∣ ∣ ∣ ∣ ∣ ∣ ∣ = ( − 1 ) 4 D T = D
至此關於行列式計算有關的梳理就全部完畢了,下一部分將介紹範德蒙德行列式和克萊姆法則