Tag Archives: 矩陣乘法

如何學好線性代數?

線性代數是美國數學教授哈爾莫斯 (Paul R. Halmos) 的專長,他在26歲時出版了一本經典教材《有限維向量空間》(Finite-Dimensional Vector Spaces)。哈爾莫斯在回憶錄《我要做數學家》(I Want to Be a Mathematician) 談到他第一次學習線性代數的悲慘遭遇[1]: 代數課很難,我讀得很生氣。…當我說生氣,我是真的生氣。Brahana 不知道如何說清楚,我們的教材是 Bôcher 的書 (我認為寫得一團糟),我花在這個科目的多數時間裡,我的情緒惱火到憤怒。…不知怎麼的,我的線性代數導論最後倖存下來。過了四、五年,在我取得博士學位,聽了諾伊曼 (von Neumann) 講的算子理論後,我才真正開始明白這個科目到底在講甚麼。 為甚麼線性代數這麼難?從哈爾莫斯說的這段話可以歸結兩個原因:第一是老師很爛,第二是課本很糟。如果學習一門科目的兩個重要 (必要?) 條件不是爛就是糟,我們還能冀望學好它嗎?不過話說回來,即使哈爾莫斯的線性代數啟蒙老師是數學大師諾伊曼,哈爾莫斯未必當下就能真正明白線性代數在講甚麼。我說的真正明白不是指考試拿高分,而是有一天你在洗澡時豁然開悟,奔出浴室光著身子在馬路上邊跑邊叫:「啊哈!我明白了!」老實講,我不認為有那個老師或那本教科書可以讓學生「第一次學線代就上手」。真正全面性的理解線性代數需要時間,需要勤奮練習與堅持思考。 Advertisements

Posted in 周老師時間 | Tagged , | Leave a comment

基本矩陣運算的定義

本文的閱讀等級:初級 德國數學家希爾伯特 (David Hilbert) 說[1]:「一個數學理論不被認為是完整的,直到你可以說得很清楚──你能解釋給第一個在街上相遇的人聽。」長久以來,這個問題一直困擾著許多線性代數初學者:基本矩陣運算,包括矩陣加法、純量乘法以及矩陣乘法,是如何被定義出來的?基本矩陣運算的數學原因既不是商業機密亦非神祕主義,矩陣與其基本運算源自於線性代數的核心運轉機制──線性變換 (linear transformation) 或稱線性映射 (linear mapping)。定義於有限維向量空間 (vector space),譬如,實座標向量空間 ,複座標向量空間 ,的線性變換可以用矩陣表示;矩陣加法、純量乘法與矩陣乘法分別對應線性變換的加法、純量乘法以及複合 (composition)。換句話說,線性變換涉及的所有計算工作都可以透過矩陣運算實現。有別於一般基礎線性代數教科書直接給出計算公式,本文從線性變換觀點定義基本矩陣運算,並利用此定義證明相關的運算法則。

Posted in 線性變換, 線性代數專欄 | Tagged , , | Leave a comment

Strassen 演算法──分治矩陣乘法

本文的閱讀等級:初級 令 和 為 階矩陣。矩陣乘積 需要使用多少乘法與加法運算?根據矩陣乘法定義, 。 因為 階矩陣 有 個元,計算每一元需要 個乘法和 個加法,故知 階矩陣乘積共使用了 個乘法和 個加法。長久以來,人們普遍認為矩陣乘法定義本身即為最佳的算法,這個迷思直到1969年才被施特拉森[1](Volker Strassen) 打破──他提出了一個更快捷的分治 (divide-and-conquer) 矩陣乘法,稱為 Strassen 演算法。

Posted in 線性代數專欄, 數值線性代數 | Tagged , , | 5 Comments

每週問題 January 7, 2013

這是矩陣乘法定義的線性變換的行列式計算問題。 Let be an matrix and define for every matrix . Show that .

Posted in pow 行列式, 每週問題 | Tagged , , | Leave a comment

答季同學──關於矩陣乘法的運算方式

網友季同學留言: 周老師您好,我不是貴校的學生;由於要考研究所的緣故,我買了貴校出版您所編纂的線性代數講義+光碟回家自修,您在內容有提到希望同學不要再用以往 row by column 的方式做矩陣相乘,想請問老師是我誤解還是您真有此意?用這種方式會造成什麼錯誤嗎?煩請撥冗回覆,謝謝!

Posted in 答讀者問, 線性方程 | Tagged | 6 Comments

線性變換集合構成向量空間

本文的閱讀等級:初級 線性變換的本質是數學函數,表示為 ,其中向量空間 是定義域,向量空間 是到達域。線性變換 將 映至 。線性變換本身也擁有向量的性質,因為從 映至 的所有線性變換構成的集合具有向量空間結構,本文從這個角度探究線性變換、矩陣和向量空間三者之間的錯綜關係。

Posted in 線性變換, 線性代數專欄 | Tagged , , | 4 Comments

線性變換觀點下的矩陣乘積

本文的閱讀等級:初級 令 是一 階矩陣, 是一 階矩陣。矩陣乘積 存在很多種解釋方式。例如,若 為基本矩陣,則 表示對 執行列運算。另外,我們也可以視 為一線性變換,則 代表 的行向量 經變換矩陣 的映射結果: 除了上述兩種觀點 (見“左乘還是右乘,這就是問題所在”),還有一種較不常見的解釋。令 是所有 階實矩陣所形成的向量空間,我們視 為定義於 之上的線性算子,表示為 上式中,矩陣 是線性算子 執行的變換程序,矩陣 則為 所處理的數學物件。本文藉由證明下面三個命題說明如何運用向量空間分析、特徵分析和線性變換的矩陣表達解析這種看似複雜的線性變換:(1) 若 可逆,則 也可逆,反之亦然;(2) 和 有相同的特徵值;(3) 若 可對角化,則 也可對角化,反之亦然(取自清大數研所2009年入學試題)。

Posted in 線性變換, 線性代數專欄 | Tagged | Leave a comment

矩陣鏈乘積的最佳計算順序

本文的閱讀等級:初級 給定一序列的可乘矩陣,這些矩陣的乘積稱為矩陣鏈乘積。我們知道矩陣乘法有結合律,所以不論採用何種相乘順序,最後的結果總是一樣的。例如, 是 , 是 , 是 , 是 階矩陣,總計有 種方式刮號乘積,如下: ,,,, 雖然矩陣鏈乘積相同,但不同的乘法順序所耗費的運算量並不相同。例如,若以乘法運算為計數單位, 需要 個運算,而 只使用 個運算,第二種計算方式明顯優於第一種方式。考慮一般情況,如果有 個矩陣相乘,如何決定最佳的矩陣乘法執行順序?這個問題不存在一般公式解。最直接的方法是比較每一種順序的運算量,不過,這僅適用於小 的情況。當 ,刮號乘積有 種可能,而當 時,總共有 種可能!對於長矩陣鏈,不難理解蠻力檢查是絕對不可行的。

Posted in 線性方程, 線性代數專欄 | Tagged , , , | Leave a comment

線性變換表示矩陣

本文的閱讀等級:初級 矩陣是線性代數處理分析的基本數學物件,但是幾乎沒有任何教科書曾經給出嚴格的公理化定義。儘管矩陣允許非常多不同面貌的解釋方案,我們對矩陣的認知大致可以區分為兩種觀點:矩陣是數字組合的矩形陣列,例如,一幅影像包含的像素,或一頁試算表所儲存資料;另一種位階較高的觀點是將矩陣視為介於兩向量空間的線性變換表達形式,而矩陣之所以對處理線性問題極其重要也正是因為這個緣故。本文將解釋何謂線性變換表示矩陣,並由線性變換基本性質推演出一套合理且自然的矩陣運算規則。

Posted in 線性變換, 線性代數專欄 | Tagged , , , | 5 Comments

矩陣乘積的子空間分析

本文的閱讀等級:中級 一個 階實矩陣 代表從向量空間 映至向量空間 的線性變換。向量 經線性變換 的映射即為 ,稱為像 (image)。矩陣 的行空間 (column space) 就是它所代表的線性變換的值域 (range,所有的像形成的集合) , 而 的零空間 (nullspace) 則為線性變換的核 (kernel) 。 更進一步,矩陣乘積 代表複合線性變換 (見“線性代數的第一堂課——矩陣乘法的定義”),通過矩陣乘積 的子空間分析可以幫助我們了解移動向量空間的線性變換結構。本文的內容與算法可以直接延伸至複矩陣。

Posted in 線性代數專欄, 向量空間 | Tagged , , , | Leave a comment