關於線性代數的通俗理解
阿新 • • 發佈:2018-12-31
今天在網上看到這篇關於線性代數基本概念的理解,直接顛覆了傳統枯燥的概念定理,讓人從根本上去理解線性代數,希望對大家有所幫助(PS:網上文章不全,這篇是我整理後得到的基本完整,並且我對重要的部分做了加粗的標註,大家實在太忙就關注加粗部分,希望大家考的好成績!加油↖(^ω^)↗)
文章比較長,但是隻要你耐心看過,線性代數神馬的~~~浮雲!
形象思維與抽象思維碰撞的產物;數學的直觀理解;
對了解矩陣、線性變換的本質有太大幫助如果不熟悉線性代數的概念,要去學習自然科學,現在看來就和文盲差不多。”,然而“按照現行的國際標準,線性代數是通過公理化來表述的,它是第二代數學模型,這就帶來了教學上的困難。”
* 矩陣究竟是什麼東西?向量可以被認為是具有n個相互獨立的性質(維度)的物件的表示,矩陣又是什麼呢?我們如果認為矩陣是一組列(行)向量組成的新的複合向量的展開式,那麼為什麼這種展開式具有如此廣泛的應用?特別是,為什麼偏偏二維的展開式如此有用?如果矩陣中每一個元素又是一個向量,那麼我們再展開一次,變成三維的立方陣,是不是更有用?
* 矩陣的乘法規則究竟為什麼這樣規定?為什麼這樣一種怪異的乘法規則卻能夠在實踐中發揮如此巨大的功效?很多看上去似乎是完全不相關的問題,最後竟然都歸結到矩陣的乘法,這難道不是很奇妙的事情?難道在矩陣乘法那看上去莫名其妙的規則下面,包含著世界的某些本質規律?如果是的話,這些本質規律是什麼?
* 行列式究竟是一個什麼東西?為什麼會有如此怪異的計算規則?行列式與其對應方陣本質上是什麼關係?為什麼只有方陣才有對應的行列式,而一般矩陣就沒有(不要覺得這個問題很蠢,如果必要,針對m x n矩陣定義行列式不是做不到的,之所以不做,是因為沒有這個必要,但是為什麼沒有這個必要)?而且,行列式的計算規則,看上去跟矩陣的任何計算規則都沒有直觀的聯絡,為什麼又在很多方面決定了矩陣的性質?難道這一切僅是巧合?
* 矩陣為什麼可以分塊計算?分塊計算這件事情看上去是那麼隨意,為什麼竟是可行的?
* 對於矩陣轉置運算AT,有(AB)T = BTAT,對於矩陣求逆運算A-1,有(AB)-1 = B-1A-1。兩個看上去完全沒有什麼關係的運算,為什麼有著類似的性質?這僅僅是巧合嗎?
* 為什麼說P-1AP得到的矩陣與A矩陣“相似”?這裡的“相似”是什麼意思?
* 特徵值和特徵向量的本質是什麼?它們定義就讓人很驚訝,因為Ax =λx,一個諾大的矩陣的效應,竟然不過相當於一個小小的數λ,確實有點奇妙。但何至於用“特徵”甚至“本徵”來界定?它們刻劃的究竟是什麼?
今天先談談對線形空間和矩陣的幾個核心概念的理解。這些東西大部分是憑著自己的理解寫出來的,基本上不抄書,可能有錯誤的地方,希望能夠被指出。但我希望做到直覺,也就是說能把數學背後說的實質問題說出來。首先說說空間 (space),這個概念是現代數學的命根子之一,從拓撲空間開始,一步步往上加定義,可以形成很多空間。線形空間其實還是比較初級的,如果在裡面定義了範數,就成了賦範線性空間。賦範線性空間滿足完備性,就成了巴那赫空間;賦範線性空間中定義角度,就有了內積空間,內積空間再滿足完 備性,就得到希爾伯特空間。總之,空間有很多種。你要是去看某種空間的數學定義,大致都是“存在一個集合,在這個集合上定義某某概念,然後滿足某些性質”,就可以被稱為空間。這未免有點奇怪,為什麼要用“空間”來稱呼一些這樣的集合呢?大家將會看到,其實這是很有道理的。我們一般人最熟悉的空間,毫無疑問就是我們生活在其中的(按照牛頓的絕對時空觀)的三維空間,從數學上說,這是一個三維的歐幾里德空間,我們先不管 那麼多,先看看我們熟悉的這樣一個空間有些什麼最基本的特點。仔細想想我們就會知道,這個三維的空間:1. 由很多(實際上是無窮多個)位置點組成;2. 這些點之間存在相對的關係;3. 可以在空間中定義長度、角度;4. 這個空間可以容納運動,這裡我們所說的運動是從一個點到另一個點的移動(變換),而不是微積分意義上的 “連續”性的運動,上面的這些性質中,最最關鍵的是第4條。第1、2條只能說是空間的基礎,不算是空間特有的性質,凡是討論數學問題,都得有一個集合,大多數還得在這 個集合上定義一些結構(關係),並不是說有了這些就算是空間。而第3條太特殊,其他的空間不需要具備,更不是關鍵的性質。只有第4條是空間的本質,也就是說,容納運動是空間的本質特徵。認識到了這些,我們就可以把我們關於三維空間的認識擴充套件到其他的空間。事實上,不管是什麼空間,都必須容納和支援在其中發生的符合規則的運動(變換)。你會發現,在某種空間中往往會存在一種相對應的變換,比如拓撲空間中有拓撲變換,線性空間中有線性變換,仿射空間中有仿射變換,其實這些變換都只不過是對應空間中允許的運動形式而已。 因此只要知道,“空間”是容納運動的一個物件集合,而變換則規定了對應空間的運動。下面我們來看看線性空間。線性空間的定義任何一本書上都有,但是既然我們承認線性空間是個空間,那麼有兩個最基本的問題必須首先得到解決,那就是:1. 空間是一個物件集合,線性空間也是空間,所以也是一個物件集合。那麼線性空間是什麼樣的物件的集合?或者說,線性空間中的物件有什麼共同點嗎?2. 線性空間中的運動如何表述的?也就是,線性變換是如何表示的?我們先來回答第一個問題,回答這個問題的時候其實是不用拐彎抹角的,可以直截了當的給出答案。線性空間中的任何一個物件,通過選取基和座標的辦法,都可以表達為向量的形式。通常的向量空間我就不說了,舉兩個不那麼平凡的例子:L1. 最高次項不大於n次的多項式的全體構成一個線性空間,也就是說,這個線性空間中的每一個物件是一個多項式。如果我們以x0,x1,…, xn為基,那麼任何一個這樣的多項式都可以表達為一組n+1維向量,其中的每一個分量ai其實就是多項式中x(i-1)項的係數。值得說明的是,基的選取有多種辦法,只要所選取的那一組基線性無關就可以。這要用到後面提到的概念了,所以這裡先不說,提一下而已。L2. 閉區間[a,b]上的n階連續可微函式的全體,構成一個線性空間。也就是說,這個線性空間的每一個物件是一個連續函式。對於其中任何一個連續函式,根據魏爾斯特拉斯定 理,一定可以找到最高次項不大於n的多項式函式,使之與該連續函式的差為0,也就是說,完全相等。這樣就把問題歸結為L1了。後面就不用再重複了。所以說,向量是很厲害的,只要你找到合適的基,用向量可以表示線性空間裡任何一個物件。這裡頭大有文章,因為向量表面上只是一列數,但是其實由於它 的有序性,所以除了這些數本身攜帶的資訊之外,還可以在每個數的對應位置上攜帶資訊。為什麼在程式設計中陣列最簡單,卻又威力無窮呢?根本原因就在於此。 這是另一個問題了,這裡就不說了。下面來回答第二個問題,這個問題的回答會涉及到線性代數的一個最根本的問題。線性空間中的運動,被稱為線性變換。也就是說,你從線性空間中的一個點運動到任意的另外一個點,都可以通過一個線性變化來完成。那麼,線性變換如何表示呢?很有意思,線上性空間中,當你選定一組基之後,不僅可以用一個向量來描述空間中的任何一個物件,而且可以用矩陣來描述該空間中的任何一個運動(變換)。而使某個物件發生對應運動的方法,就是用代表那個運動的矩陣,乘以代表那個物件的向量。簡而言之,線上性空間中選定基之後,向量刻畫物件,矩陣刻畫物件的運動,用矩陣與向量的乘法施加運動。是的,矩陣的本質是運動的描述。如果以後有人問你矩陣是什麼,那麼你就可以響亮地告訴他,矩陣的本質是運動的描述。可是多麼有意思啊,向量本身不是也可以看成是nx 1矩陣嗎?這實在是很奇妙,一個空間中的物件和運動竟然可以用相類同的方式表示。能說這是巧合嗎?如果是巧合的話,那可真是幸運的巧合!可以說,線性代數中大多數奇妙的性質,均與這個巧合有直接的關係。接著理解矩陣。上一篇裡說“矩陣是運動的描述”,到現在為止,好像大家都還沒什麼意見。但是我相信早晚會有數學系出身的網友來拍板轉。因為運動這個概念,在數學和 物理裡是跟微積分聯絡在一起的。我們學習微積分的時候,總會有人照本宣科地告訴你,初等數學是研究常量的數學,是研究靜態的數學,高等數學是變數的數學, 是研究運動的數學。大家口口相傳,差不多人人都知道這句話。但是真知道這句話說的是什麼意思的人,好像也不多。簡而言之,在我們人類的經驗裡,運動是一個 連續過程,從A點到B點,就算走得最快的光,也是需要一個時間來逐點地經過AB之間的路徑,這就帶來了 連續性的概念。而連續這個事情,如果不定義極限的概念,根本就解釋不了。古希臘人的數學非常強,但就是缺乏極限觀念,所以解釋不了運動,被芝諾的那些著名 悖論(飛箭不動、飛毛腿阿喀琉斯跑不過烏龜等四個悖論)搞得死去活來。因為這篇文章不是講微積分的,所以我就不多說了。有興趣的讀者可以去看看齊民友教授 寫的《重溫微積分》。我就是讀了這本書開頭的部分,才明白“高等數學是研究運動的數學”這句話的道理。不過在我這個《理解矩陣》的文章裡,“運動”的概念不是微積分中的連續性的運動,而是瞬間發生的變化。比如這個時刻在A點,經過一個“運動”,一下子就“躍遷” 到了B點,其中不需要經過A點與B點之間的任何一個點。這樣的“運動”,或者說“躍遷”,是違反我們日常的經驗的。不過了解一點量子物理常識的人,就會立 刻指出,量子(例如電子)在不同的能量級軌道上跳躍,就是瞬間發生的,具有這樣一種躍遷行為。所以說,自然界中並不是沒有這種運動現象,只不過巨集觀上我們 觀察不到。但是不管怎麼說,“運動”這個詞用在這裡,還是容易產生歧義的,說得更確切些,應該是“躍遷”。因此這句話可以改成:“矩陣是線性空間裡躍遷的描述”。可是這樣說又太物理,也就是說太具體,而不夠數學,也就是說不夠抽象。因此我們最後換用一個正牌的數學術語——變換,來描述這個事情。這樣一說,大家就應該明白了,所謂變換,其實就是空間裡從一個點(元素/物件)到另一個點(元素/物件)的躍遷。 比如說,拓撲變換,就是在拓撲空間裡從一個點到另一個點的躍遷。再比如說,仿射變換,就是在仿射空間裡從一個點到另一個點的躍遷。附帶說一下,這個仿射空 間跟向量空間是親兄弟。做計算機圖形學的朋友都知道,儘管描述一個三維物件只需要三維向量,但所有的計算機圖形學變換矩陣都是4x 4的。說其原因,很多書上都寫著“為了使用中方便”,這在我看來簡直就是企圖矇混過關。真正的原因,是因為在計算機圖形學裡應用的圖形變換,實際上是在仿 射空間而不是向量空間中進行的。想想看,在向量空間裡相一個向量平行移動以後仍是相同的那個向量,而現實世界等長的兩個平行線段當然不能被認為同一個東 西,所以計算機圖形學的生存空間實際上是仿射空間。而仿射變換的矩陣表示根本就是4x 4的。又扯遠了,有興趣的讀者可以去看《計算機圖形學——幾何工具演算法詳解》。一旦我們理解了“變換”這個概念,矩陣的定義就變成:“矩陣是線性空間裡的變換的描述。”到這裡為止,我們終於得到了一個看上去比較數學的定義。不過還要多說幾句。教材上一般是這麼說的,在一個線性空間V裡的一個線性變換T,當選定一組 基之後,就可以表示為矩陣。因此我們還要說清楚到底什麼是線性變換,什麼是基,什麼叫選定一組基。線性變換的定義是很簡單的,設有一種變換T,使得對於線 性空間V中間任何兩個不相同的物件x和y,以及任意實數a和b,有:
T(ax + by) = aT(x) + bT(y),
那麼就稱T為線性變換。定義都是這麼寫的,但是光看定義還得不到直覺的理解。線性變換究竟是一種什麼樣的變換?我們剛才說了,變換是從空間的一個點躍遷到另一個點,而線性 變換,就是從一個線性空間V的某一個點躍遷到另一個線性空間W的另一個點的運動。這句話裡蘊含著一層意思,就是說一個點不僅可以變換到同一個線性空間中的 另一個點,而且可以變換到另一個線性空間中的另一個點去。不管你怎麼變,只要變換前後都是線性空間中的物件,這個變換就一定是線性變換,也就一定可以用一 個非奇異矩陣來描述。而你用一個非奇異矩陣去描述的一個變換,一定是一個線性變換。有的人可能要問,這裡為什麼要強調非奇異矩陣?所謂非奇異,只對方陣有 意義,那麼非方陣的情況怎麼樣?這個說起來就會比較冗長了,最後要把線性變換作為一種對映,並且討論其對映性質,以及線性變換的核與像等概念才能徹底講清 楚。我覺得這個不算是重點,如果確實有時間的話,以後寫一點。以下我們只探討最常用、最有用的一種變換,就是在同一個線性空間之內的線性變換。也就是說,下面所說的矩陣,不作說明的話,就是方陣,而且是非奇異方陣。學習一門學問,最重要的是把握主幹內容,迅速建立對於這門學問的整體概念,不必一開始就考慮所有的細枝末節和特殊情況,自亂陣腳。接著往下說,什麼是基呢?這個問題在後面還要大講一番,這裡只要把基看成是線性空間裡的座標系就可以了。注意是座標系,不是座標值,這兩者可是一個“對立矛盾統一體”。這樣一來,“選定一組基”就是說線上性空間裡選定一個座標系。就這意思。好,最後我們把矩陣的定義完善如下:“矩陣是線性空間中的線性變換的一個描述。在一個線性空間中,只要我們選定一組基,那麼對於任何一個線性變換,都能夠用一個確定的矩陣來加以描述。”理解這句話的關鍵,在於把“線性變換”與“線性變換的一個描述”區別開。一個是那個物件,一個是對那個物件的表述。就好像我們熟悉的面向物件程式設計中,一個物件可以有多個引用,每個引用可以叫不同的名字,但都是指的同一個物件。如果還不形象,那就乾脆來個很俗的類比。比如有一頭豬,你打算給它拍照片,只要你給照相機選定了一個鏡頭位置,那麼就可以給這頭豬拍一張照片。這個照片可以看成是這頭豬的一個描述,但只是 一個片面的的描述,因為換一個鏡頭位置給這頭豬拍照,能得到一張不同的照片,也是這頭豬的另一個片面的描述。所有這樣照出來的照片都是這同一頭豬的描述, 但是又都不是這頭豬本身。同樣的,對於一個線性變換,只要你選定一組基,那麼就可以找到一個矩陣來描述這個線性變換。換一組基,就得到一個不同的矩陣。所有這些矩陣都是這同一個線性變換的描述,但又都不是線性變換本身。但是這樣的話,問題就來了如果你給我兩張豬的照片,我怎麼知道這兩張照片上的是同一頭豬呢?同樣的,你給我兩個矩陣,我怎麼知道這兩個矩陣是描述的同一個線性變換呢?如果是同一個線性變換的不同的矩陣描述,那就是本家兄弟了,見面不認識,豈不成了笑話。好在,我們可以找到同一個線性變換的矩陣兄弟們的一個性質,那就是:若矩陣A與B是同一個線性變換的兩個不同的描述(之所以會不同,是因為選定了不同的基,也就是選定了不同的座標系),則一定能找到一個非奇異矩陣P,使得A、B之間滿足這樣的關係:A = P-1BP線性代數稍微熟一點的讀者一下就看出來,這就是相似矩陣的定義。沒錯,所謂相似矩陣,就是同一個線性變換的不同的描述矩陣。按照這個定義,同一頭豬的不同角度的照片也可以成為相似照片。俗了一點,不過能讓人明白。而在上面式子裡那個矩陣P,其實就是A矩陣所基於的基與B矩陣所基於的基這兩組基之間的一個變換關係。關於這個結論,可以用一種非常直覺的方法來證明(而不是一般教科書上那種形式上的證明),如果有時間的話,我以後在blog裡補充這個證明。這個發現太重要了。原來一族相似矩陣都是同一個線性變換的描述啊!難怪這麼重要!工科研究生課程中有矩陣論、矩 陣分析等課程,其中講了各種各樣的相似變換,比如什麼相似標準型,對角化之類的內容,都要求變換以後得到的那個矩陣與先前的那個矩陣式相似的,為什麼這麼 要求?因為只有這樣要求,才能保證變換前後的兩個矩陣是描述同一個線性變換的。當然,同一個線性變換的不同矩陣描述,從實際運算性質來看並不是不分好環 的。有些描述矩陣就比其他的矩陣性質好得多。這很容易理解,同一頭豬的照片也有美醜之分嘛。所以矩陣的相似變換可以把一個比較醜的矩陣變成一個比較美的矩 陣,而保證這兩個矩陣都是描述了同一個線性變換。這樣一來,矩陣作為線性變換描述的一面,基本上說清楚了。但是,事情沒有那麼簡單,或者說,線性代數還有比這更奇妙的性質,那就是,矩陣不僅可以作為線性變換的描述,而且可以作為一組基的描述。而作為變換的矩陣,不但可以把線性空間中的一個點給變換到另一個點去,而且也能夠把線性空間中的一個座標系(基)表換到另一個座標系(基)去。而且,變換點與變換座標系,具有異曲同工的效果。線性代數裡最有趣的奧妙,就蘊含在其中。理解了這些內容,線性代數裡很多定理和規則會變得更加清晰、直覺。
下面讓我們把視力集中到一點以改變我們以往看待矩陣的方式。我們知道,線性空間裡的基本物件是向量,而向量是這麼表示的: [a1, a2, a3, ..., an]矩陣呢?矩陣是這麼表示的: a11, a12, a13, ..., a1n a21, a22, a23, ..., a2n ... an1, an2, an3, ..., ann不用太聰明,我們就能看出來,矩陣是一組向量組成的。特別的,n維線性空間裡的方陣是由n個n維向量組成的。我們在這裡只討論這個n階的、非奇異的方陣,如果一組向量是彼此線性無關的話,那麼它們就可以成為度量這個線性空間的一組基,從而事實上成為一個座標系體系,其中每一個向量都躺在一根座標軸上,並且成為那根座標軸上的基本度量單位(長度1)。現在到了關鍵的一步。看上去矩陣就是由一組向量組成的,而且如果矩陣非奇異的話(我說了,只考慮這種情況),那麼組成這個矩陣的那一組向量也就是線性無關的了,也就可以成為度量線性空間的一個座標系。結論:矩陣描述了一個座標系。之所以矩陣又是運動,又是座標系,那是因為——“運動等價於座標系變換”。對不起,這話其實不準確,我只是想讓你印象深刻。準確的說法是:“物件的變換等價於座標系的變換”。或者:“固定座標系下一個物件的變換等價於固定物件所處的座標系變換。” 說白了就是: “運動是相對的。”讓我們想想,達成同一個變換的結果,比如把點(1, 1)變到點(2, 3)去,你可以有兩種做法。第一,座標系不動,點動,把(1, 1)點挪到(2, 3)去。第二,點不動,變座標系,讓x軸的度量(單位向量)變成原來的1/2,讓y軸的度量(單位向量)變成原先的1/3,這樣點還是那個點,可是點的座標就變成(2, 3)了。方式不同,結果一樣。從第一個方式來看,那就是我在《理解矩陣》中說的,把矩陣看成是運動描述,矩陣與向量相乘就是使向量(點)運動的過程。在這個方式下,Ma = b的意思是:“向量a經過矩陣M所描述的變換,變成了向量b。”而從第二個方式來看,矩陣M描述了一個座標系,姑且也稱之為M。那麼:Ma = b的意思是:“有一個向量,它在座標系M的度量下得到的度量結果向量為a,那麼它在座標系I的度量下,這個向量的度量結果是b。”這裡的I是指單位矩陣,就是主對角線是1,其他為零的矩陣。而這兩個方式本質上是等價的。我希望你務必理解這一點,因為這是本篇的關鍵。正因為是關鍵,所以我得再解釋一下。在M為座標系的意義下,如果把M放在一個向量a的前面,形成Ma的樣式,我們可以認為這是對向量a的一個環境宣告。它相當於是說: “注意了!這裡有一個向量,它在座標系M中度量,得到的度量結果可以表達為a。可是它在別的座標系裡度量的話,就會得到不同的結果。為了明確,我把M放在前面,讓你明白,這是該向量在座標系M中度量的結果。” 那麼我們再看孤零零的向量b:b 多看幾遍,你沒看出來嗎?它其實不是b,它是:Ib
也就是說:“在單位座標系,也就是我們通常說的直角座標系I中,有一個向量,度量的結果是b。”而 Ma = Ib的意思就是說:“在M座標系裡量出來的向量a,跟在I座標系裡量出來的向量b,其實根本就是一個向量啊!”這哪裡是什麼乘法計算,根本就是身份識別嘛。從這個意義上我們重新理解一下向量。向量這個東西客觀存在,但是要把它表示出來,就要把它放在一個座標系中去度量它,然後把度量的結果(向量在各個座標軸上的投影值)按一定順序列在一起,就成了我們平時所見的向量表示形式。你選擇的座標系(基)不同,得出來的向量的表示就不同。向量還是那個向量,選擇的座標系不同,其表示方式就不同。因此,按道理來說,每寫出一個向量的表示,都應該宣告一下這個表示是在哪個座標系中度量出來的。表示的方式,就是 Ma,也就是說,有一個向量,在M矩陣表示的座標系中度量出來的結果為a。我們平時說一個向量是[2 3 5 7]T,隱含著是說,這個向量在 I 座標系中的度量結果是[2 3 5 7]T,因此,這個形式反而是一種簡化了的特殊情況。注意到,M矩陣表示出來的那個座標系,由一組基組成,而那組基也是由向量組成的,同樣存在這組向量是在哪個座標系下度量而成的問題。也就是說,表述一個矩陣的一般方法,也應該要指明其所處的基準座標系。所謂M,其實是 IM,也就是說,M中那組基的度量是在 I 座標系中得出的。從這個視角來看,M×N也不是什麼矩陣乘法了,而是聲明瞭一個在M座標系中量出的另一個座標系N,其中M本身是在I座標系中度量出來的。回過頭來說變換的問題。我剛才說,“固定座標系下一個物件的變換等價於固定物件所處的座標系變換”,那個“固定物件”我們找到了,就是那個向量。但是座標系的變換呢?我怎麼沒看見?請看:Ma =Ib我現在要變M為I,怎麼變?對了,再前面乘以個M-1,也就是M的逆矩陣。換句話說,你不是有一個座標系M嗎,現在我讓它乘以個M-1,變成I,這樣一來的話,原來M座標系中的a在I中一量,就得到b了。我建議你此時此刻拿起紙筆,畫畫圖,求得對這件事情的理解。比如,你畫一個座標系,x軸上的衡量單位是2,y軸上的衡量單位是3,在這樣一個座標系裡,座標為(1,1)的那一點,實際上就是笛卡爾座標系裡的點(2, 3)。而讓它原形畢露的辦法,就是把原來那個座標系:2 00 3的x方向度量縮小為原來的1/2,而y方向度量縮小為原來的1/3,這樣一來座標系就變成單位座標系I了。保持點不變,那個向量現在就變成了(2, 3)了。
怎麼能夠讓“x方向度量縮小為原來的1/2,而y方向度量縮小為原來的1/3”呢?就是讓原座標系:2 00 3被矩陣:1/2 00 1/3左乘。而這個矩陣就是原矩陣的逆矩陣。下面我們得出一個重要的結論:“對座標系施加變換的方法,就是讓表示那個座標系的矩陣與表示那個變化的矩陣相乘。”再一次的,矩陣的乘法變成了運動的施加。只不過,被施加運動的不再是向量,而是另一個座標系。如果你覺得你還搞得清楚,請再想一下剛才已經提到的結論,矩陣MxN,一方面表明座標系N在運動M下的變換結果,另一方面,把M當成N的字首,當成N的環境描述,那麼就是說,在M座標系度量下,有另一個座標系N。這個座標系N如果放在I座標系中度量,其結果為座標系MxN。在這裡,我實際上已經回答了一般人在學習線性代數是最困惑的一個問題,那就是為什麼矩陣的乘法要規定成這樣。簡單地說,是因為:1. 從變換的觀點看,對座標系N施加M變換,就是把組成座標系N的每一個向量施加M變換。2. 從座標系的觀點看,在M座標系中表現為N的另一個座標系,這也歸結為,對N座標系基的每一個向量,把它在I座標系中的座標找出來,然後匯成一個新的矩陣。3. 至於矩陣乘以向量為什麼要那樣規定,那是因為一個在M中度量為a的向量,如果想要恢復在I中的真像,就必須分別與M中的每一個向量進行內積運算。我把這個結論的推導留給感興趣的朋友吧。應該說,其實到了這一步,已經很容易了。綜合以上1/2/3,矩陣的乘法就得那麼規定,一切有根有據,絕不是哪個神經病胡思亂想出來的。我已經無法說得更多了。矩陣又是座標系,又是變換。到底是座標系,還是變換,已經說不清楚了,運動與實體在這裡統一了,物質與意識的界限已經消失了,一切歸於無法言說,無法定義了。道可道,非常道,名可名,非常名。矩陣是在是不可道之道,不可名之名的東西。到了這個時候,我們不得不承認,我們偉大的線性代數課本上說的矩陣定義,是無比正確的:“矩陣就是由m行n列數放在一起組成的數學物件。”好了,這基本上就是我想說的全部了。還留下一個行列式的問題。矩陣M的行列式實際上是組成M的各個向量按照平行四邊形法則搭成一個n維立方體的體積。對於這一點,我只能感嘆於其精妙,卻無法揭開其中奧祕了。也許我掌握的數學工具不夠,我希望有人能夠給我們大家講解其中的道理了。我不知道是否講得足夠清楚了,反正這一部分需要您花些功夫去推敲。此外,請大家不必等待這個系列的後續部分。以我的工作情況而言,近期內很難保證繼續投入腦力到這個領域中,儘管我仍然對此興致濃厚。不過如果還有(四)的話,可能是一些站在應用層面的考慮,比如對計算機圖形學相關演算法的理解。但是我不承諾這些討論近期內會出現了
文章比較長,但是隻要你耐心看過,線性代數神馬的~~~浮雲!
形象思維與抽象思維碰撞的產物;數學的直觀理解;
對了解矩陣、線性變換的本質有太大幫助如果不熟悉線性代數的概念,要去學習自然科學,現在看來就和文盲差不多。”,然而“按照現行的國際標準,線性代數是通過公理化來表述的,它是第二代數學模型,這就帶來了教學上的困難。”
* 矩陣究竟是什麼東西?向量可以被認為是具有n個相互獨立的性質(維度)的物件的表示,矩陣又是什麼呢?我們如果認為矩陣是一組列(行)向量組成的新的複合向量的展開式,那麼為什麼這種展開式具有如此廣泛的應用?特別是,為什麼偏偏二維的展開式如此有用?如果矩陣中每一個元素又是一個向量,那麼我們再展開一次,變成三維的立方陣,是不是更有用?
* 矩陣的乘法規則究竟為什麼這樣規定?為什麼這樣一種怪異的乘法規則卻能夠在實踐中發揮如此巨大的功效?很多看上去似乎是完全不相關的問題,最後竟然都歸結到矩陣的乘法,這難道不是很奇妙的事情?難道在矩陣乘法那看上去莫名其妙的規則下面,包含著世界的某些本質規律?如果是的話,這些本質規律是什麼?
* 行列式究竟是一個什麼東西?為什麼會有如此怪異的計算規則?行列式與其對應方陣本質上是什麼關係?為什麼只有方陣才有對應的行列式,而一般矩陣就沒有(不要覺得這個問題很蠢,如果必要,針對m x n矩陣定義行列式不是做不到的,之所以不做,是因為沒有這個必要,但是為什麼沒有這個必要)?而且,行列式的計算規則,看上去跟矩陣的任何計算規則都沒有直觀的聯絡,為什麼又在很多方面決定了矩陣的性質?難道這一切僅是巧合?
* 矩陣為什麼可以分塊計算?分塊計算這件事情看上去是那麼隨意,為什麼竟是可行的?
* 對於矩陣轉置運算AT,有(AB)T = BTAT,對於矩陣求逆運算A-1,有(AB)-1 = B-1A-1。兩個看上去完全沒有什麼關係的運算,為什麼有著類似的性質?這僅僅是巧合嗎?
* 為什麼說P-1AP得到的矩陣與A矩陣“相似”?這裡的“相似”是什麼意思?
* 特徵值和特徵向量的本質是什麼?它們定義就讓人很驚訝,因為Ax =λx,一個諾大的矩陣的效應,竟然不過相當於一個小小的數λ,確實有點奇妙。但何至於用“特徵”甚至“本徵”來界定?它們刻劃的究竟是什麼?
今天先談談對線形空間和矩陣的幾個核心概念的理解。這些東西大部分是憑著自己的理解寫出來的,基本上不抄書,可能有錯誤的地方,希望能夠被指出。但我希望做到直覺,也就是說能把數學背後說的實質問題說出來。首先說說空間
T(ax + by) = aT(x) + bT(y),
那麼就稱T為線性變換。定義都是這麼寫的,但是光看定義還得不到直覺的理解。線性變換究竟是一種什麼樣的變換?我們剛才說了,變換是從空間的一個點躍遷到另一個點,而線性 變換,就是從一個線性空間V的某一個點躍遷到另一個線性空間W的另一個點的運動。這句話裡蘊含著一層意思,就是說一個點不僅可以變換到同一個線性空間中的 另一個點,而且可以變換到另一個線性空間中的另一個點去。不管你怎麼變,只要變換前後都是線性空間中的物件,這個變換就一定是線性變換,也就一定可以用一 個非奇異矩陣來描述。而你用一個非奇異矩陣去描述的一個變換,一定是一個線性變換。有的人可能要問,這裡為什麼要強調非奇異矩陣?所謂非奇異,只對方陣有 意義,那麼非方陣的情況怎麼樣?這個說起來就會比較冗長了,最後要把線性變換作為一種對映,並且討論其對映性質,以及線性變換的核與像等概念才能徹底講清 楚。我覺得這個不算是重點,如果確實有時間的話,以後寫一點。以下我們只探討最常用、最有用的一種變換,就是在同一個線性空間之內的線性變換。也就是說,下面所說的矩陣,不作說明的話,就是方陣,而且是非奇異方陣。學習一門學問,最重要的是把握主幹內容,迅速建立對於這門學問的整體概念,不必一開始就考慮所有的細枝末節和特殊情況,自亂陣腳。接著往下說,什麼是基呢?這個問題在後面還要大講一番,這裡只要把基看成是線性空間裡的座標系就可以了。注意是座標系,不是座標值,這兩者可是一個“對立矛盾統一體”。這樣一來,“選定一組基”就是說線上性空間裡選定一個座標系。就這意思。好,最後我們把矩陣的定義完善如下:“矩陣是線性空間中的線性變換的一個描述。在一個線性空間中,只要我們選定一組基,那麼對於任何一個線性變換,都能夠用一個確定的矩陣來加以描述。”理解這句話的關鍵,在於把“線性變換”與“線性變換的一個描述”區別開。一個是那個物件,一個是對那個物件的表述。就好像我們熟悉的面向物件程式設計中,一個物件可以有多個引用,每個引用可以叫不同的名字,但都是指的同一個物件。如果還不形象,那就乾脆來個很俗的類比。比如有一頭豬,你打算給它拍照片,只要你給照相機選定了一個鏡頭位置,那麼就可以給這頭豬拍一張照片。這個照片可以看成是這頭豬的一個描述,但只是 一個片面的的描述,因為換一個鏡頭位置給這頭豬拍照,能得到一張不同的照片,也是這頭豬的另一個片面的描述。所有這樣照出來的照片都是這同一頭豬的描述, 但是又都不是這頭豬本身。同樣的,對於一個線性變換,只要你選定一組基,那麼就可以找到一個矩陣來描述這個線性變換。換一組基,就得到一個不同的矩陣。所有這些矩陣都是這同一個線性變換的描述,但又都不是線性變換本身。但是這樣的話,問題就來了如果你給我兩張豬的照片,我怎麼知道這兩張照片上的是同一頭豬呢?同樣的,你給我兩個矩陣,我怎麼知道這兩個矩陣是描述的同一個線性變換呢?如果是同一個線性變換的不同的矩陣描述,那就是本家兄弟了,見面不認識,豈不成了笑話。好在,我們可以找到同一個線性變換的矩陣兄弟們的一個性質,那就是:若矩陣A與B是同一個線性變換的兩個不同的描述(之所以會不同,是因為選定了不同的基,也就是選定了不同的座標系),則一定能找到一個非奇異矩陣P,使得A、B之間滿足這樣的關係:A = P-1BP線性代數稍微熟一點的讀者一下就看出來,這就是相似矩陣的定義。沒錯,所謂相似矩陣,就是同一個線性變換的不同的描述矩陣。按照這個定義,同一頭豬的不同角度的照片也可以成為相似照片。俗了一點,不過能讓人明白。而在上面式子裡那個矩陣P,其實就是A矩陣所基於的基與B矩陣所基於的基這兩組基之間的一個變換關係。關於這個結論,可以用一種非常直覺的方法來證明(而不是一般教科書上那種形式上的證明),如果有時間的話,我以後在blog裡補充這個證明。這個發現太重要了。原來一族相似矩陣都是同一個線性變換的描述啊!難怪這麼重要!工科研究生課程中有矩陣論、矩 陣分析等課程,其中講了各種各樣的相似變換,比如什麼相似標準型,對角化之類的內容,都要求變換以後得到的那個矩陣與先前的那個矩陣式相似的,為什麼這麼 要求?因為只有這樣要求,才能保證變換前後的兩個矩陣是描述同一個線性變換的。當然,同一個線性變換的不同矩陣描述,從實際運算性質來看並不是不分好環 的。有些描述矩陣就比其他的矩陣性質好得多。這很容易理解,同一頭豬的照片也有美醜之分嘛。所以矩陣的相似變換可以把一個比較醜的矩陣變成一個比較美的矩 陣,而保證這兩個矩陣都是描述了同一個線性變換。這樣一來,矩陣作為線性變換描述的一面,基本上說清楚了。但是,事情沒有那麼簡單,或者說,線性代數還有比這更奇妙的性質,那就是,矩陣不僅可以作為線性變換的描述,而且可以作為一組基的描述。而作為變換的矩陣,不但可以把線性空間中的一個點給變換到另一個點去,而且也能夠把線性空間中的一個座標系(基)表換到另一個座標系(基)去。而且,變換點與變換座標系,具有異曲同工的效果。線性代數裡最有趣的奧妙,就蘊含在其中。理解了這些內容,線性代數裡很多定理和規則會變得更加清晰、直覺。
下面讓我們把視力集中到一點以改變我們以往看待矩陣的方式。我們知道,線性空間裡的基本物件是向量,而向量是這麼表示的: [a1, a2, a3, ..., an]矩陣呢?矩陣是這麼表示的: a11, a12, a13, ..., a1n a21, a22, a23, ..., a2n ... an1, an2, an3, ..., ann不用太聰明,我們就能看出來,矩陣是一組向量組成的。特別的,n維線性空間裡的方陣是由n個n維向量組成的。我們在這裡只討論這個n階的、非奇異的方陣,如果一組向量是彼此線性無關的話,那麼它們就可以成為度量這個線性空間的一組基,從而事實上成為一個座標系體系,其中每一個向量都躺在一根座標軸上,並且成為那根座標軸上的基本度量單位(長度1)。現在到了關鍵的一步。看上去矩陣就是由一組向量組成的,而且如果矩陣非奇異的話(我說了,只考慮這種情況),那麼組成這個矩陣的那一組向量也就是線性無關的了,也就可以成為度量線性空間的一個座標系。結論:矩陣描述了一個座標系。之所以矩陣又是運動,又是座標系,那是因為——“運動等價於座標系變換”。對不起,這話其實不準確,我只是想讓你印象深刻。準確的說法是:“物件的變換等價於座標系的變換”。或者:“固定座標系下一個物件的變換等價於固定物件所處的座標系變換。” 說白了就是: “運動是相對的。”讓我們想想,達成同一個變換的結果,比如把點(1, 1)變到點(2, 3)去,你可以有兩種做法。第一,座標系不動,點動,把(1, 1)點挪到(2, 3)去。第二,點不動,變座標系,讓x軸的度量(單位向量)變成原來的1/2,讓y軸的度量(單位向量)變成原先的1/3,這樣點還是那個點,可是點的座標就變成(2, 3)了。方式不同,結果一樣。從第一個方式來看,那就是我在《理解矩陣》中說的,把矩陣看成是運動描述,矩陣與向量相乘就是使向量(點)運動的過程。在這個方式下,Ma = b的意思是:“向量a經過矩陣M所描述的變換,變成了向量b。”而從第二個方式來看,矩陣M描述了一個座標系,姑且也稱之為M。那麼:Ma = b的意思是:“有一個向量,它在座標系M的度量下得到的度量結果向量為a,那麼它在座標系I的度量下,這個向量的度量結果是b。”這裡的I是指單位矩陣,就是主對角線是1,其他為零的矩陣。而這兩個方式本質上是等價的。我希望你務必理解這一點,因為這是本篇的關鍵。正因為是關鍵,所以我得再解釋一下。在M為座標系的意義下,如果把M放在一個向量a的前面,形成Ma的樣式,我們可以認為這是對向量a的一個環境宣告。它相當於是說: “注意了!這裡有一個向量,它在座標系M中度量,得到的度量結果可以表達為a。可是它在別的座標系裡度量的話,就會得到不同的結果。為了明確,我把M放在前面,讓你明白,這是該向量在座標系M中度量的結果。” 那麼我們再看孤零零的向量b:b 多看幾遍,你沒看出來嗎?它其實不是b,它是:Ib
也就是說:“在單位座標系,也就是我們通常說的直角座標系I中,有一個向量,度量的結果是b。”而 Ma = Ib的意思就是說:“在M座標系裡量出來的向量a,跟在I座標系裡量出來的向量b,其實根本就是一個向量啊!”這哪裡是什麼乘法計算,根本就是身份識別嘛。從這個意義上我們重新理解一下向量。向量這個東西客觀存在,但是要把它表示出來,就要把它放在一個座標系中去度量它,然後把度量的結果(向量在各個座標軸上的投影值)按一定順序列在一起,就成了我們平時所見的向量表示形式。你選擇的座標系(基)不同,得出來的向量的表示就不同。向量還是那個向量,選擇的座標系不同,其表示方式就不同。因此,按道理來說,每寫出一個向量的表示,都應該宣告一下這個表示是在哪個座標系中度量出來的。表示的方式,就是 Ma,也就是說,有一個向量,在M矩陣表示的座標系中度量出來的結果為a。我們平時說一個向量是[2 3 5 7]T,隱含著是說,這個向量在 I 座標系中的度量結果是[2 3 5 7]T,因此,這個形式反而是一種簡化了的特殊情況。注意到,M矩陣表示出來的那個座標系,由一組基組成,而那組基也是由向量組成的,同樣存在這組向量是在哪個座標系下度量而成的問題。也就是說,表述一個矩陣的一般方法,也應該要指明其所處的基準座標系。所謂M,其實是 IM,也就是說,M中那組基的度量是在 I 座標系中得出的。從這個視角來看,M×N也不是什麼矩陣乘法了,而是聲明瞭一個在M座標系中量出的另一個座標系N,其中M本身是在I座標系中度量出來的。回過頭來說變換的問題。我剛才說,“固定座標系下一個物件的變換等價於固定物件所處的座標系變換”,那個“固定物件”我們找到了,就是那個向量。但是座標系的變換呢?我怎麼沒看見?請看:Ma =Ib我現在要變M為I,怎麼變?對了,再前面乘以個M-1,也就是M的逆矩陣。換句話說,你不是有一個座標系M嗎,現在我讓它乘以個M-1,變成I,這樣一來的話,原來M座標系中的a在I中一量,就得到b了。我建議你此時此刻拿起紙筆,畫畫圖,求得對這件事情的理解。比如,你畫一個座標系,x軸上的衡量單位是2,y軸上的衡量單位是3,在這樣一個座標系裡,座標為(1,1)的那一點,實際上就是笛卡爾座標系裡的點(2, 3)。而讓它原形畢露的辦法,就是把原來那個座標系:2 00 3的x方向度量縮小為原來的1/2,而y方向度量縮小為原來的1/3,這樣一來座標系就變成單位座標系I了。保持點不變,那個向量現在就變成了(2, 3)了。
怎麼能夠讓“x方向度量縮小為原來的1/2,而y方向度量縮小為原來的1/3”呢?就是讓原座標系:2 00 3被矩陣:1/2 00 1/3左乘。而這個矩陣就是原矩陣的逆矩陣。下面我們得出一個重要的結論:“對座標系施加變換的方法,就是讓表示那個座標系的矩陣與表示那個變化的矩陣相乘。”再一次的,矩陣的乘法變成了運動的施加。只不過,被施加運動的不再是向量,而是另一個座標系。如果你覺得你還搞得清楚,請再想一下剛才已經提到的結論,矩陣MxN,一方面表明座標系N在運動M下的變換結果,另一方面,把M當成N的字首,當成N的環境描述,那麼就是說,在M座標系度量下,有另一個座標系N。這個座標系N如果放在I座標系中度量,其結果為座標系MxN。在這裡,我實際上已經回答了一般人在學習線性代數是最困惑的一個問題,那就是為什麼矩陣的乘法要規定成這樣。簡單地說,是因為:1. 從變換的觀點看,對座標系N施加M變換,就是把組成座標系N的每一個向量施加M變換。2. 從座標系的觀點看,在M座標系中表現為N的另一個座標系,這也歸結為,對N座標系基的每一個向量,把它在I座標系中的座標找出來,然後匯成一個新的矩陣。3. 至於矩陣乘以向量為什麼要那樣規定,那是因為一個在M中度量為a的向量,如果想要恢復在I中的真像,就必須分別與M中的每一個向量進行內積運算。我把這個結論的推導留給感興趣的朋友吧。應該說,其實到了這一步,已經很容易了。綜合以上1/2/3,矩陣的乘法就得那麼規定,一切有根有據,絕不是哪個神經病胡思亂想出來的。我已經無法說得更多了。矩陣又是座標系,又是變換。到底是座標系,還是變換,已經說不清楚了,運動與實體在這裡統一了,物質與意識的界限已經消失了,一切歸於無法言說,無法定義了。道可道,非常道,名可名,非常名。矩陣是在是不可道之道,不可名之名的東西。到了這個時候,我們不得不承認,我們偉大的線性代數課本上說的矩陣定義,是無比正確的:“矩陣就是由m行n列數放在一起組成的數學物件。”好了,這基本上就是我想說的全部了。還留下一個行列式的問題。矩陣M的行列式實際上是組成M的各個向量按照平行四邊形法則搭成一個n維立方體的體積。對於這一點,我只能感嘆於其精妙,卻無法揭開其中奧祕了。也許我掌握的數學工具不夠,我希望有人能夠給我們大家講解其中的道理了。我不知道是否講得足夠清楚了,反正這一部分需要您花些功夫去推敲。此外,請大家不必等待這個系列的後續部分。以我的工作情況而言,近期內很難保證繼續投入腦力到這個領域中,儘管我仍然對此興致濃厚。不過如果還有(四)的話,可能是一些站在應用層面的考慮,比如對計算機圖形學相關演算法的理解。但是我不承諾這些討論近期內會出現了