線性代數的第一堂課──矩陣乘法的定義

本文的閱讀等級:初級

美國數學教授克萊恩 (Morris Kline) 說[1]:「矩陣理論在被創造前就已發展完善。」這句話讓人一頭霧水,要釐清話中的涵意必須從矩陣的發展歷史說起。十七至十九世紀中葉,數學活動在歐洲以飛快的速度朝著各個領域發展,此時關於「陣列」(array) 運算的研究全部集中於行列式理論,矩陣理論並未隨著行列式同步發展。事實上,矩陣理論足足落後行列式兩百年之久。1850年,英國數學家西爾維斯特 (James Joseph Sylvester) 將矩形陣列命名為矩陣 (matrix),但他並未定義矩陣乘法。1857年,英國數學家凱萊 (Arthur Cayley) 發表一篇被後世公認為近代矩陣理論和線性代數基石的論文〈矩陣理論備忘錄〉(A Memoir on the Theory of Matrices),他將矩陣從行列式抽離出來,視之為另一個數學物件,並且定義完備的矩陣代數運算。這段歷史顯示矩陣乘法──矩陣理論中最重要的一個代數運算──絕對不是如數學課本所述那般理所當然,矩陣乘法定義隱含深層的意義,否則為何眾多優秀的數學家竟然看不出矩陣理當如此相乘。今天我們事後諸葛,已然明瞭矩陣代數之所以遲至十九世紀中葉才誕生的最主要原因在於人們一直無法確定矩陣的本質與功用究竟為何。

 
據我所知,不少高中學生曾經發明各式各樣的創意矩陣乘法,例如,有人以下列方式計算兩個同階方陣的乘積:

\left[\!\!\begin{array}{cr}    1&2\\    3&-2    \end{array}\!\!\right]\left[\!\!\begin{array}{cr}    2&-1\\    1&3    \end{array}\!\!\right]=\begin{bmatrix}    1\cdot 2&2\cdot (-1)\\    3\cdot 1&(-2)\cdot 3    \end{bmatrix}=\left[\!\!\begin{array}{cr}    2&-2\\    3&-6    \end{array}\!\!\right]

無疑地,這個矩陣乘法被視為數學上的無知,認真負責的老師立刻將它更正為

\left[\!\!\begin{array}{cr}    1&2\\    3&-2    \end{array}\!\!\right]\left[\!\!\begin{array}{cr}    2&-1\\    1&3    \end{array}\!\!\right]=\begin{bmatrix}    1\cdot 2+2\cdot 1&1\cdot (-1)+2\cdot 3\\    3\cdot 2+(-2)\cdot 1&3\cdot (-1)+(-2)\cdot 3    \end{bmatrix}=\left[\!\!\begin{array}{cr}    4&5\\    4&-9    \end{array}\!\!\right]

上面這個被老師糾正的創意發明稱為 Hadamard 乘積。對於相同尺寸的矩陣 (同為 m\times n 階矩陣) AB,Hadamard 乘積定義為 (A\circ B)_{ij}=A_{ij}\cdot B_{ij},因此也稱作「分元」(entrywise) 乘積。老師和課本指定的矩陣乘法稱為一般矩陣乘積,也就是目前線性代數採用的「正確」運算方式。請讀者仔細想想:除非你預先設定矩陣乘積的意義及其用途,否則何從判斷這兩種乘法的對錯?多數學生想不出更好的辯駁理由,最後只能默默地接受這個看似無厘頭的定義,並且相信老師的善意忠告:「大學線性代數會給大家一個清楚的交代。」

 
大學線性代數果真就說清楚講明白了嗎?恐怕未必。與其照本宣科重述一次高中數學課本給出的矩陣乘積定義,我們不妨尋思凱萊是根據什麼理念設計出矩陣乘法規則。1894年,凱萊對蘇格蘭數學物理學家泰特 (Peter Tait) 道出引領他至矩陣記號的動機並非四元數 (quaternion,見“四元數”),而是源於行列式或為了方便表達線性方程[2]

我並不是從四元數得到矩陣的概念,它直接源自於行列式,或為了方便表示方程組

\begin{aligned}  x^{\prime}&=ax+by\\  y^{\prime}&=cx+dy.\end{aligned}

 
1855年,凱萊正著手線性複合 (composition) 映射的研究。線性映射 (linear mapping) 涵蓋許多數學主題,這需要作一番說明。設定義域 (domain) \mathcal{D} 與值域 (range) \mathcal{R} 為具有加法和純量乘法的集合,我們稱 f:\mathcal{D}\rightarrow\mathcal{R} 為線性映射,如果任意 {x},{y}\in\mathcal{D} 滿足這兩個條件:

\begin{aligned}  f({x}+{y})&=f({x})+f({y})\\  f(c{x})&=cf({x}),\end{aligned}

其中 c 為純量。舉一些常見的例子,譬如,f({x})=a{x} 的圖形表現為平面上一條穿越原點的直線,它符合線性映射的要求。但 f(x)=ax+b 不是線性映射,它是線性映射再加上平移量 b,圖形表現為一條未穿越原點的直線。又如 f(x,y)=ax+by 代表三維空間中穿越原點的一個平面,很容易驗證 f 滿足上述線性映射定義。微分與積分運算都是線性映射,因為下列微分與積分法則成立:

\begin{aligned}  \displaystyle\frac{d(f+g)}{dx}&=\frac{df}{dx}+\frac{dg}{dx}\\  \displaystyle\frac{d(cf)}{dx}&=c\frac{df}{dx},\end{aligned}

而且

\displaystyle\begin{aligned}  \int(f+g)dx&=\int fdx+\int gdx\\  \int(cf)dx&=c\int fdx.\end{aligned}

矩陣的轉置 (transpose) 運算也是線性映射 (見“轉置與共軛轉置”)。考慮 f(A)=A^Tf 滿足

\begin{aligned}  f(A+B)&=(A+B)^T=A^T+B^T=f(A)+f(B)\\    f(cA)&=(cA)^T=cA^T=cf(A).\end{aligned}

 
凱萊與泰特的談話提供了重建矩陣乘法發明過程的一些線索。1855年的某一天,凱萊望著案前的筆記沉思良久,筆記本上寫著[3]

f\left(\begin{matrix}    x\\    y    \end{matrix}\right)=\left(\begin{matrix}    ax+by\\    cx+dy    \end{matrix}\right)

g\left(\begin{matrix}    x\\    y    \end{matrix}\right)=\left(\begin{matrix}    px+qy\\    rx+sy    \end{matrix}\right).

凱萊從小就著迷於解決複雜的數學難題,眼前這兩個線性映射困擾他很長的一段時間。經過幾番考慮之後,他動筆計算 fg 的複合,整理得到一個新的線性映射:

\begin{aligned}  h\left(\begin{matrix}    x\\    y    \end{matrix}\right)&=f\left(g\left(\begin{matrix}    x\\    y    \end{matrix}\right)\right)=f\left(\begin{matrix}    px+qy\\    rx+sy    \end{matrix}\right)\\  &=\left(\begin{matrix}    a(px+qy)+b(rx+sy)\\    c(px+qy)+d(rx+sy)    \end{matrix}\right)\\  &=\left(\begin{matrix}    (ap+br)x+(aq+bs)y\\    (cp+dr)x+(cq+ds)y    \end{matrix}\right).\end{aligned}

凱萊默想著這個方程式,或許是從行列式得來的靈感,他突然想到為何不用陣列來表示線性映射的係數呢?於是他將線性映射 fgh 分別表示為

F=\begin{bmatrix}    a&b\\    c&d    \end{bmatrix},~ G=\begin{bmatrix}    p&q\\    r&s    \end{bmatrix},~ H=\begin{bmatrix}    ap+br&aq+bs\\    cp+dr&cq+ds    \end{bmatrix}

像多數的數學家一樣,凱萊深信數學的基本形式總是存在的,觀察這三個線性映射的陣列表達讓他更加堅定信念。才氣洋溢的凱萊大膽構思 H 即為 FG 的複合 (或乘積),他要做的是「乘開」矩陣 FG,然後令矩陣乘積 FG 等於 H,於是他興奮地寫下

\begin{bmatrix}    a&b\\    c&d    \end{bmatrix}\begin{bmatrix}    p&q\\    r&s    \end{bmatrix}=\begin{bmatrix}    ap+br&aq+bs\\    cp+dr&cq+ds    \end{bmatrix}

頓時矩陣乘法的運算規則誕生了。也許凱萊特別幸運,也或許是他的數學直覺格外敏銳,但不論如何,他給出了一個自然而且有用的矩陣乘法定義 (矩陣乘法的規則與限制見[4])。

 
凱萊的基本思想是用矩陣乘積來表示線性複合映射,但他並不是第一個考慮線性複合映射問題的數學家。早在1801年,高斯 (Carl Friedrich Gauss) 就已經使用這種複合計算,但高斯並沒有以陣列形式記錄係數。對許多數學家來說,矩陣乘法談不上精巧的發明,凱萊將線性複合映射與矩陣乘積聯繫在一起的作為顯得無足輕重,因為他既未解出困難的問題,也沒有證明偉大的定理。然而,矩陣以及乘法運算的發明顯示良好設計符號的重要性,同時也點出部分數學家不願意承認的一個事實:外表看似平凡無奇的表述符號可能是具有廣泛應用的重要理論的萌芽條件之一。最後歷史證明凱萊異於常人的洞察力為矩陣理論與線性代數的發展開啟了一扇大門。

 
註解
[1] Morris Kline, Mathematical Thought from Ancient to Modern Times, 1972. 原文:“One could say that the subject of matrices was well developed before it was created.”
[2] Eric T. Bell, The Development of Mathematics, 1945. 原文:“I certainly did not get the notation of a matrix in any way through quaternions; it was either directly from that of a determinant; or as a convenient way of expression of the equations

\begin{aligned}  x^{\prime}&=ax+by\\  y^{\prime}&=cx+dy."\end{aligned}

[3] Carl D. Meyer, Matrix Analysis and Applied Linear Algebra, 2000, pp 93.
[4] 設想凱萊考慮這兩個線性變換

f\left(\begin{matrix}    x\\    y    \end{matrix}\right)=\left(\begin{matrix}    ax+by\\    cx+dy\\  ex+fy    \end{matrix}\right)

g\left(\begin{matrix}    x\\    y    \end{matrix}\right)=\left(\begin{matrix}    px+qy\\    rx+sy  \end{matrix}\right).

線性變換 fg 的複合如下:

\begin{aligned}  h\left(\begin{matrix}    x\\    y    \end{matrix}\right)&=f\left(g\left(\begin{matrix}    x\\    y    \end{matrix}\right)\right)=f\left(\begin{matrix}    px+qy\\    rx+sy    \end{matrix}\right)\\  &=\left(\begin{matrix}    a(px+qy)+b(rx+sy)\\    c(px+qy)+d(rx+sy)\\  e(px+qy)+f(rx+sy)    \end{matrix}\right)\\  &=\left(\begin{matrix}    (ap+br)x+(aq+bs)y\\  (cp+dr)x+(cq+ds)y\\  (ep+fr)x+(eq+fs)y    \end{matrix}\right).\end{aligned}

對應線性變換 fgh 的矩陣表達分別為

F=\begin{bmatrix}    a&b\\  c&d\\  e&f    \end{bmatrix},~ G=\begin{bmatrix}    p&q\\  r&s    \end{bmatrix},~ H=\begin{bmatrix}    ap+br&aq+bs\\  cp+dr&cq+ds\\  ep+fr&eq+fs    \end{bmatrix}

矩陣乘法給出 FG=H,即

\begin{bmatrix}    a&b\\  c&d\\  e&f    \end{bmatrix}\begin{bmatrix}    p&q\\  r&s  \end{bmatrix}=\begin{bmatrix}    ap+br&aq+bs\\  cp+dr&cq+ds\\  ep+fr&eq+fs    \end{bmatrix}

這個例子說明兩件事:(1) 惟當 F 的行數等於 G 的列數時 (此例為 2),FG 方可相乘;(2) 即便 GF 可乘,FGGF 的涵義並不相同,因此矩陣乘法不滿足交換律。

相關閱讀:
Advertisements
本篇發表於 線性方程, 線性代數專欄 並標籤為 。將永久鏈結加入書籤。

15 則回應給 線性代數的第一堂課──矩陣乘法的定義

  1. Watt Lin 說道:

    這篇文章,我覺得很重要,幫助學生知其然也知其所以然。
    假如當年唸高中的時候,能夠看到這篇文章,頭腦會很清晰,甚至可以說全身舒暢。
    我這樣講,並不誇張,學生們的學習,有時像一隻牛,被繩子牽著走,老師指導怎麼計算,就依樣畫葫蘆地計算,考試便可拿到分數。
    如果想要瞭解定義的來源,有可能會「浪費」時間去讀「不重要」的文章,然後考試成績不理想。
    我認為,把來龍去脈弄清楚,是很重要的,要知道自己在計算什麼,而不只是為了考試拿高分。

    希望大俠繼續寫這類文章,謝謝!

  2. ccjou 說道:

    知識一旦變成考試問題就會走樣,在東方社會尤其如此。

    亞里斯多德堅持只有當我們明瞭事物的原因才能算是獲得此事物的知識。根據他的四因說,矩陣可以這麼解釋:
    質料因 what is it made of? 矩陣是數字陣列造出來的。
    形式因 what is it? 矩陣既是向量空間物件也是線性變換表示。
    有效因 by waht is it made? 這包含矩陣理論和線性代數。
    最終因 for what end is it made? Cayley 提出矩陣乘法只是為了方便表示線性複合函數,他的矩陣理論完全是純數學,不以應用為目的。1925年,矩陣理論首次應用於量子力學,真正廣泛應用要等到1950年之後。

  3. lisp21 說道:

    我觉得矩阵加法亦有说明之必要,矩阵加法的定义也并不是显然的。

    矩阵本身就是映射的representation.Cayley这个定义太妙了。

    数学上的大的发现和思想并不一定有多困难,比方Descrate的解析几何,其思想何其简单,但其后续则如大江大河,汹涌澎湃。

    • suehang 說道:

      我也是这样认为的,尤其是这样看能够解释矩阵乘法,它无外乎就是复合线性变换,也就能够解释矩阵乘法没有交换律的原因了(复合函数内外层是不可交换的),,同时,我也不能忘记第一次突兀地接触矩阵乘法规则这个怪物时的巨大恶心感!

  4. ccjou 說道:

    矩阵加法的定义也并不是显然的?

    如果上課時有學生如此提問,那麼全班同學一定轉過身盯著他(她)瞧?心想:這傢伙是不是來搗亂的?

    矩陣加法的定義可能還是得從“矩陣代表何物”解釋。

  5. ariestiger 說道:

    有一点小错,线性函数的微分也是线性函数时, 式子中最后应该是d g/ dx
    即:d(f + g)/dx = d f/dx + d g/dx
    这个能输入数学公式吗?看样子不能啊,你能看懂就好。

  6. joge 說道:

    Cayley关于线性函数的表示已经隐含了矩阵和向量乘法的定义

  7. 嗚呼呼 說道:

    谢谢你的这篇文章:)

  8. Yu-Min Lai 說道:

    漂亮的文章,讓我愛不釋手。

  9. suehang 說道:

    要让学生停止"发明"各种矩阵乘法,愚以为惟一的方法只能是从根源上革新线性代数的教法,先用具体例子讲清楚线性空间,进而讲清楚线性变换,再结合复合映射的概念,和线性变换的矩阵表示来说清矩阵乘法,您的观点我无比赞同,说实话,我是受大陆线性代数教法受害极深的人,我是到了研究生阶段才知道线代的巨大价值和威力,您的文章能这样讲矩阵乘法,是你学生的幸运呀!

    • ccjou 說道:

      引述:您的文章能这样讲矩阵乘法,是你学生的幸运呀!

      慚愧,其實我上課也不提這段歷史。礙於時間有限,通常我講完高斯消元法後,便偷偷引進矩陣乘法運算使與基本列運算(初等行變換)有一致性。至今尚沒有學生舉牌抗議。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s