2014年8月3日 星期日

李娘二姊不辣:行列式 Determinant

一個二乘二的小方陣沒什麼殺傷力啦,他的行列式也挺簡單的。


三乘三就有點麻煩了,四乘四就算不下去了。一大堆人算破頭的時候,總會有個疑問。

「這麼複雜的算是是如何被定義出來的?」

好吧,我們來看看行列式本身吧。這種行列式的定義方法被稱作萊布尼茲行列式公式(Leibniz Formula for Determinant),僅僅只是用來紀念他對於行列式的貢獻而已。既然行列式是個把矩陣整體映射到一個純量的函數(用很專業的術語:),想必他是個多重線性函數吧?也就是說,它包含著許多變數。為了映證這個想法,我們先假設一個這樣的函數F,並且來規定一下n*n的方陣A如何表示:


我們把Ai稱作A的第i列,並且用單位矩陣和A的元素來表示之。那麼,對於一個作用於A上的函數F(A)而言,有以下寫法:


不要被「多重線性函數」這個名稱給嚇到了,其實他只是像多元函數那樣罷了。他對待每一個變數都是相同的,即線性的,對一個變數的處理不會受其他變數影響。因此F(A)可以這樣寫:


於是,我們把單位矩陣列Ik1的係數給提出去了。我們要做的事,是繼續把其他列的係數給提出去,有:




哇哇,先停一下,終於來這一步了,離行列式不遠了,可是想必諸看倌目前毫無頭緒該怎麼進行下一步了吧?

我們先看看這個F和矩陣A在低維度的情況。一個2*2的矩陣包括了兩個列向量,他們分別能在平面上構成一個平行四邊形。當然,矩陣本身僅僅是列向量的集合,並不能代表面積,代表面積的是該矩陣的行列式


如上圖中的矩陣M,將其兩個列向量放在原點,即可構築出一個平行四邊形,而它的面積就是他的行列式,值為20。若矩陣M是3*3的呢?


利用該矩陣的三個列向量我們仍可以構築出一個平行六面體,體積仍為該矩陣的行列式,值為40。繼續把矩陣M推廣到4*4乃至8*8,我們都可以構築出一個多面體,只要矩陣中沒有列向量是相同的。回到3*3的情況,我們如果有兩個相同的向量,最終只能拼湊出一個三維空間中的平面,體積為零。2*2也是如此,一條線沒有面積。

至此我們知道,這個代表行列式的函數F裡面有相同變數時會傳回0,稱作此線性映射的交錯性(Alternative)[1],可以得到:


其中的σ代表的是某一組從1到n這幾個數字不重複的隨機排列(準確地說,置換,Permutation,意同排列組合的排列),σ(1)則是這一組排列中第一個數字(無從得知),而Sn則代表了從1到n這幾個自然數的所有可能排列(準確地說,就是置換群,Permutation Group。其元素多寡,有學過排列組合應該知道,是n!,即n階乘)。現在既然後面的函數F裡有單位矩陣I所需要的元素,我們勢必要讓函數F裡的變數呈現如I1I2I3地排列。

現在讓我們暫時跳出來,考慮另一個多重線性函數、p個變數的函數G以及整數m和n,並且讓函數G和函數F一樣有相同變數時傳回0:


既然他是線性函數,那麼應該可以把xm和xn拆開來成四項,得到:


上面四項可以刪去有重複xm或xn的兩項,而同時等號左邊也因為同時擁有xm+xn也可以約化為零,得到:


也就是,G的變數中若對調一對變數,函數傳回的值就要冠上一個負號,如此的性質就稱為斜對稱性(Skew-symmetric)[1]。回到函數F,我們要讓裡面的變數依照第一列、第二列、第三列的方式排列,可以這樣表述:


其中sgn(σ)(符號)則是為了表達函數F裡的對調情形而誕生。考慮另一個排列σ:


我們可以知道在這一組排列(第二列)中,要將132的順序變成123的順序,必須總共要對調一次(2和3對調)。而符號sgn(σ)的定義是:將σ變換順序直到變成初始順序所需的次數,若為偶數,則為+1;若為奇數,則為-1。

也因此上面那個明確知道內容的置換σ,其符號sgn(σ)就為-1。回到F(A),F(I)指的是由一群長度為1且互相正交的向量構築起來的東西,無論是在二維還是在三維我們都知道其傳回的值都應該為1,因此我們得知了:


Quod Erat Demonstrandum.

在證明det(AB)=det(A)det(B)時也會走到這一步,後面的det(I)會被替換成det(A)或det(B),不過證法基本上是相同的。



考慮一個3*3的方陣B,其行列式為:


硬要死記是很難,因此學校常常會提供一種速記法:左上—右下減右上—左下。我這個人非常討厭死記,尤其是毫無來由的死記,因此我要在這裡用上面證過的那條超困難的式子來證明為何可以這樣速記。

首先,這個方陣總共有3列,故我們所需考慮的σ共有6組。我們得知三階方陣的行列式應該要有六項。因此:


我已經為諸看倌將六種排列給寫出來了。現在做一點運算,得到:


最終得到:


證畢。



事實上我一開始只是想衝著特徵值來寫行列式,而且我又看到了維基百科那種難到爆表的公式和半吊子的證法,就跳進來了。

沒想到行列式真他媽的繁雜,諸看倌以後使用行列式處理2*2或3*3的小方陣時記得要心存感激,有著這一番證明才有那麼簡單的計算方法。

行列式的下一步是反矩陣。


有關公式的LaTeX語法:


\textrm{det}(\mathbf{A}_n)=\sum_{\sigma\in S_n}\textup{sgn}(\sigma)\prod_{i=1}^na_{\sigma(i),i}



有關過程的LaTeX語法:


\begin{align*}
F(\textbf{A})&=F\left (\sum_{k_1=1}^na_{k_11}\textbf{I}^{k_1}, \sum_{k_2=1}^na_{k_22}\textbf{I}^{k_2}, \sum_{k_3=1}^na_{k_33}\textbf{I}^{k_3}, \cdots, \sum_{k_n=1}^na_{k_nn}\textbf{I}^{k_n}  \right ) \\
 &= F\left ( {\color{red}\sum_{k_1\neq 1}^na_{k_11}\textbf{I}^{k_1}}, \sum_{k_2=1}^na_{k_22}\textbf{I}^{k_2}, \cdots, \sum_{k_n=1}^na_{k_nn}\textbf{I}^{k_n} \right )+{\color{red}a_{11}}F\left ( {\color{red}\textbf{I}^1} , \sum_{k_2=1}^na_{k_22}\textbf{I}^{k_2}, \cdots, \sum_{k_n=1}^na_{k_nn}\textbf{I}^{k_n} \right )\\
 &= F\left ( {\color{red}\sum_{k_1\neq 1,2}^na_{k_11}\textbf{I}^{k_1}}, \cdots \right )+
{\color{red}a_{21}}F\left ( {\color{red}\textbf{I}^2} , \cdots \right )+{\color{red}a_{11}}F\left ( {\color{red}\textbf{I}^1} , \cdots \right ) \\
 &={\color{red}\sum_{k_1=1}^na_{k_11}}F\left ( {\color{red}\textbf{I}^{k_1}} , \sum_{k_2=1}^na_{k_22}\textbf{I}^{k_2}, \cdots, \sum_{k_n=1}^na_{k_nn}\textbf{I}^{k_n} \right )
\end{align*}


\begin{align*}
F(\textbf{A})
 &= \sum_{k_1=1}^na_{k_11}F\left ( \textbf{I}^{k_1} , \sum_{k_2=1}^na_{k_22}\textbf{I}^{k_2}, \cdots, \sum_{k_n=1}^na_{k_nn}\textbf{I}^{k_n} \right ) \\
 &= \sum_{k_1, k_2=1}^na_{k_11}a_{k_22}F\left ( \textbf{I}^{k_1} , \textbf{I}^{k_2}, \cdots, \sum_{k_n=1}^na_{k_nn}\textbf{I}^{k_n} \right ) \\
 &= \sum_{k_1, \cdots, k_n=1}^n\left (\prod_{i=1}^na_{k_ii}  \right )F\left (\textbf{I}^{k_1}, \textbf{I}^{k_2}, \cdots, \textbf{I}^{k_n} \right )
\end{align*}



\begin{align*}
F(\textbf{A})
 &= \sum_{\sigma\in S_n}^n\left (\prod_{i=1}^na_{\sigma(i)i}  \right )F\left (\textbf{I}^{\sigma(1)}, \textbf{I}^{\sigma(2)}, \cdots, \textbf{I}^{\sigma(n)} \right ) \\
 &= \sum_{\sigma\in S_n}^n\left (\prod_{i=1}^na_{\sigma(i)i}  \right )\textrm{sgn}(\sigma)F\left (\textbf{I}^1, \textbf{I}^2, \cdots, \textbf{I}^n \right ) \\
 &= \sum_{\sigma\in S_n}^n\left (\prod_{i=1}^na_{\sigma(i)i}  \right )\textrm{sgn}(\sigma)F\left (\textbf{I} \right )
\end{align*}



\begin{align*}
F(\textbf{A})
 &= \sum_{\sigma\in S_n}^n\left (\prod_{i=1}^na_{\sigma(i)i}  \right )\textrm{sgn}(\sigma)F\left (\textbf{I} \right ) \\
 &= \sum_{\sigma\in S_n}^n\textrm{sgn}(\sigma)\prod_{i=1}^na_{\sigma(i)i} \;\;\;\;\;\blacksquare
\end{align*}


\begin{align*}\textup{det}\left (\textbf{B}  \right )
&=\textup{sgn}(\sigma_1)\prod_{i=1}^3b_{\sigma_1(i),i}\;\;\;\; \left ( \sigma_1=\left ( 1,2,3 \right ) \right ) \\
&+\textup{sgn}(\sigma_2)\prod_{i=1}^3b_{\sigma_2(i),i}\;\;\;\; \left ( \sigma_2=\left ( 1,3,2 \right ) \right ) \\
&+\textup{sgn}(\sigma_3)\prod_{i=1}^3b_{\sigma_3(i),i}\;\;\;\; \left ( \sigma_3=\left ( 2,1,3 \right ) \right ) \\
&+\textup{sgn}(\sigma_4)\prod_{i=1}^3b_{\sigma_4(i),i}\;\;\;\; \left ( \sigma_4=\left ( 2,3,1 \right ) \right ) \\
&+\textup{sgn}(\sigma_5)\prod_{i=1}^3b_{\sigma_5(i),i}\;\;\;\; \left ( \sigma_5=\left ( 3,1,2 \right ) \right ) \\
&+\textup{sgn}(\sigma_6)\prod_{i=1}^3b_{\sigma_6(i),i}\;\;\;\; \left ( \sigma_6=\left ( 3,2,1 \right ) \right )
\end{align*}

沒有留言:

張貼留言