出於某種內驅的需要,我們定義單位矩陣
\begin 1 & 0\\ 0 & 1 \\ \end的行列式為1。各位親愛的讀者,如果你們在xy座標系中畫出(1,0)和(0,1)這兩個向量,然後分別平移之,你們會發現這4條線段剛好組成1個面積為1的正方形。現在,讓我們把第乙個向量(1,0)變成(1,1),像下面
1 0 a b
1 1 c d
各位親愛的讀者,你們想想,這兩個向量分別平移後形成的平行四邊形的面積又是多少呢?你們可能會去作圖,然後作垂直線。現在我們有了2階行列式的行列式公式
ad-bc
所以我們可以很容易算出新的面積:1x1-0x1=1
面積解決了,那體積呢?
和之前一樣,我們可以定義\begin 1 & 0 & 0 \\ 0 & 1 & 0 \\0 & 0 &1 \\ \end的行列式為1——即體積為1。
看到這裡,相信聰明的讀者已經發現了——在單位矩陣中,行列式的值似乎等於"\"對角線元素的乘積。事實是否這樣呢?為此,我將給出下面三個不容反駁和質疑的定義。
定義二:交換矩陣的兩行,行列式的值將取反。
這即是說,如果我們把
1 0 0 1
0 1 交換為 1 0 ,行列式的值將變為-1。
這個定義的用處是,如果我們在任意大的乙個矩陣中發現有兩行相等,則這個矩陣的行列式的值為0。why?
because 假設矩陣行列式的值為a,交換這相等的兩行後,矩陣行列式的值仍為a,but according to 定義二,a should be to -a,
什麼樣的數字的負值等於其本身呢?只有0 —— 0=-0。
定義三a+x b+y 行列式的值 = a b 行列式的值 + x y 行列式的值
c d c d c d
attention:這個x和y加在任意一行都是可以的。
這是因為,根據公式,原矩陣行列式的值 = (a+t)d - (b+t)c
= ad-bc + td-tc
定義四at bt 行列式的值 = t * a b
c d c d
現在,我們如何求
\begin 1 & 2 & 3 \\ 4 & 5 & 6 \\7 & 8 & 9 \\ \end一臉懵逼?哈哈哈。
親愛的讀者,在上面所有關於行列式的定義中,還記得定義一嗎?我們說,單位矩陣的行列式為1。而所謂的單位矩陣,指的是除了"\"這條線上的元素,其餘元素皆為0,並且"\"這條線上的元素全部為1的矩陣。
在上面的矩陣中,如果我們只保留"\"上的元素,像下面
\begin 1 & 0 & 0 \\ 0 & 5 & 0 \\0 & 0 & 9 \\ \end你們是不是迫不及待的要告訴我這個矩陣的行列式為 1*5*9=45 了!
答案是正確的,因為根據定義4,我們可以把5和9看成5x1和9x1,把5和9分別提出,又根據定義一單位矩陣的值為1,perfect!
所以,現在我們的目標是如何把原矩陣 \begin 1 & 2 & 3 \\ 4 & 5 & 6 \\7 & 8 & 9 \\ \end1,5,9下面的4,7,8化為0。
要讓4為0,我們只需第二行(4,5,6)減去4倍第一行(1,2,3)就好了,並且不會影響到行列式的值。這是因為,根據定義三和定義四,
1 2 3 1 2 3 1 2 3 又根據定義二我們知道, 1 2 3
4-4*1 5-4*2 6-4*3 = 4 5 6 - 4* 1 2 3 有兩行相等的矩陣行列 1 2 3
7 8 9 7 8 9 7 8 9 式的值為0,所以 7 8 9 為0!
因此,我們可以把原矩陣化簡為
\begin 1 & 2 & 3 \\ 0& -3& -6 \\7 & 8 & 9 \\ \end接著再用(7,8,9)減去7倍(1,2,3),這樣7又會變為0,用同樣的方法,我們發現無法把(1,5,9)上面的(2,3,6)化為0——當且僅當這個矩陣是奇異矩陣!換言之,當我們把"\"下面的所有元素都化為0後,發現有任意"\"上的元素為0,則行列式為0,例如 \begin 1 & 2 & 9\\ 0& 0& 6 \\0 & 0 &3 \\ \end只要(0,0,6)減去2倍(0,0,3),(0,0,6)就會變成(0,0,0),事實上,無論這兩個數字是3和6或 其它的,我們總能找到它們的最大公約數,使其中一行全為0,恰巧的是,0又可以看成0*0,根據定義4,我們可以把0提取出來,於是矩陣的行列式為0!
just keep on! 相信你們會得出答案的!——答案是0!what's it mean?這意味著由這三個向量組成的只是乙個平面!意味其中任意乙個向量在其它兩個向量所組成的平面上!因為
1 3 2
4 + 6 = 2倍 4 !
7 9 8
好了,下面終於要開始進入正題了!
一開始就提到,二階矩陣
\begin a & b \\ c& d\\ \end的行列式公式是ad-bc,在此,我希望你們深刻認識到乙個道理:任何的數學公式,都是從最基本的公理或者定義推出來的!下面,我將給大家證明這個公式。
首先,根據定義三,
a b a+0 0+b a 0 0 b a 0 a 0 0 b 0 b
c d 可以看成 c d = c d + c d = c 0 + 0 d + c 0 + 0 d ,
其中 a 0 和 0 b 的值都為0,剩下 a 0 和 0 b
c 0 0 d 0 d c 0,
前者的行列式的值為ad,後者根據定義2交換兩行,因此為-bc,加起來為ad-bc,至此得證。
我的目標,是給出求任意矩陣的公式,但,在此之前,讓我們先看下三階矩陣的情況\begin a & b & c\\ d& e& f\\g & h & i \\ \end經過前面的一番鋪墊後,你們也不知道接下來要怎麼做。。。
讓我們先把[a b c]單獨拿出來,轉換為[a+0+0 0+b+0 0+0+c] !!!然後再次根據定義三,原矩陣就就可以拆解為下面三個矩陣之和
a 0 0 0 b 0 0 0 c
d e f + d e f + d e f
g h i g h i g h i
要求行列式,我們希望除了"\"上的元素外,其它的地方0越多越好!
因為,只要出現一行或者一列的元素全為0,我們就不用再次理會其它的元素了!
keep on !保持 [a 0 0] 不變, 我們可以得到 \begin a & 0 & 0\\ d& 0& 0\\g & h & i \\ \end再次保持[d 0 0]不變,我們又可以得到\begin a & 0 & 0\\ d& 0& 0\\g & 0 & 0 \\ \end顯然,這個矩陣行列式的值為0!事實上,在由[a 0 0] 組成的九個矩陣中,只有2個的行列式是不為0的!分別是
a 0 0 a 0 0
0 e 0 和 0 0 f
0 0 i 0 h 0
對於第二個矩陣,交換第二和第三行,因此可得aei-afh。
用同樣的方法,我們可以求出[ 0 b 0]和[0 0 c] 。
謝謝閱讀。
求行列式的值
肯定要用遞迴,肯定要用陣列 用乙個二維陣列來表示這個矩陣,但是引數傳遞的時候我們不能確定這個矩陣的行數列數,所以編譯器會報錯 所以定義乙個一維陣列來模擬這個行列式,而一維陣列作為引數傳遞給函式時又不用指定大小,符合我們的需要。同時我們定義乙個結構體來表示這個余子式 typedef struct yu...
《新理解矩陣5》 體積 行列式
乙個 n 階矩陣 a 可以看成是 n 個 n 維列向量x1 x2,xn的集合 a x1 x2,xn 從代數的角度來看,這構成了乙個矩陣 從幾何的角度來看,這 n 個向量可以建立乙個平行 n 維體。比如 平行四邊形就是 平行二維體 平行六面體就是 平行三維體 高階的只需要相應模擬,不需要真正想象出高維...
方陣和的行列式 方陣行列式的和
考慮同階方陣 a,b 問它們和的行列式與它們各自行列式的和是否相等 a b a b 結論是二者是不相等的。行列式的性質,我們知道,若行列式某 i 列 行 的元素都是 都可轉化為 兩數之和,則等於兩個行列式之和。d a11 a21 a n1a12 a22 a n2 b 1i c 1i b2i c2i ...