1. 程式人生 > >矩陣與線性變換

矩陣與線性變換

本文可以說是該系列最重要、最核心的文章。你對線性代數的一切困惑,根源就在於沒有真正理解矩陣到底是什麼。讀完咪博士的這篇文章,你一定會有一種醍醐灌頂、豁然開朗的感覺!

咱們先來說說啥叫變換。本質上,變換就是函式。

例如,你輸入一個向量 [57],

經過某個變換(即函式)的作用之後,輸出另一個向量 [2−3]

既然,變換本質上就是函式,那為啥還要多搞出這樣一個術語?

其實,“變換”這個詞暗示了我們能夠以某種方式視覺化 輸入—-輸出 關係。它暗示我們要從向量運動的角度去理解。即,變換讓向量從一個地方(對應輸入向量),運動到了另一個地方(對應輸出向量)。

我們說將變換作用於某個空間,意思是將該變換應用於空間中的每一個向量。

空間中的向量可以用一些規則分佈的點來表示。

下面是變換前的樣子,

下面是變換後的樣子。

變換後,空間中的點(即向量)運動到了其他的位置上。

二維空間變換中,等間距的平行網格可以更好地展示變換的性質。

下面是變換前的網格。

下面是變換後的網格。

顯然,變換讓空間發生了扭曲。

為了方便觀察,我們還可以把變換前後的網格都畫在同一張圖上。

變換有時非常地複雜。

例如,下面的幾個例子:

所幸的是,我們線上性代數中討論的線性變換,沒有那麼複雜,也更容易理解。

那麼線性變換是什麼意思呢?如果一個變換同時具有以下 2 條性質,則它是一個線性變換。

  • 變換前後,所有的直線仍然是直線
  • 變換前後,原點保持不變

換句話說,線性變換是原點不變,並使網路線保持平行且等距分佈的變換。

那麼,我們要如何描述一個線性變換呢?

以平面直接座標系為例,假定我們有一個向量 v⃗ =[−12]。我們可以將它看成是 2 個基向量 i, j 的線性組合。線性組合的係數分別對應向量的 2 個分量。

在某個線性變換的作用下,i, j 以及 v 都運動到了新的位置。

線性變換前後網路線保持平行且等距分佈,這一性質有一個重要的推論:線性變換後的 v 是變換後的 i 和 j 的線性組合,並且線性組合的係數和變換前一樣(仍然是 -1 和 2)

即,線性變換前

i⃗ =[10],j⃗ =[01],則

v⃗ =−1[10]+2[01]=[−12]

假定,經過某個線性變換後之後

i⃗ =[−12],j⃗ =[30],則

v⃗ =−1[1−2]+2[30]=[52]

事實上,我們只要知道線性變換之後,i, j 的位置(座標),就可以計算出任意一個向量經過同樣的線性變換之後的位置(座標)。

這意味著,對於一個線性變換,我們只需要跟蹤基向量在變換前後的變化,就可以掌握整個空間(即全部向量)的變化。我們將線性變換後的基向量座標按列組合起來,可以拼接成一個矩陣。線性變換的全部資訊便都包含在這個矩陣當中了。

給定一個 2×2 的矩陣 [acbd] 以及某個向量 [xy]。

矩陣對應著某個線性變換,它的 2 列 [ac] 和 [bd]  分別表示 2 個基向量 [10]  和 [01] 經過線性變換之後的座標。

那麼,向量 [xy] 經過該線性變換之後,其新座標的計算方法如下:

這一計算過程,我們可以用矩陣乘法來表達。將向量 [xy]  記作 x⃗ ,將整個矩陣記作 A,將線性變換後的向量記作 b⃗ ,整個等式是不是變成了大家熟悉的 Ax⃗ =b⃗ 。你可以把它看成是矩陣和向量相乘,也可以把它看成是一個線性方程組,現在你還可以把它看成是一個線性變換。多麼奇妙的一件事啊!

一旦你理解的本節教程的精髓,你便可以秒懂原來看起來十分費解的線性變換。

例如,逆時針旋轉 90 度對應的線性變換矩陣是什麼呢?

記住,對於線性變換,我們只需要跟蹤原來的基向量線上性變換後的位置(座標),然後把它們按列拼成一個矩陣,這個矩陣就是相應的線性變換矩陣。

在這個例子中,原來的 2 個基向量 [10]  和 [01] ,逆時針旋轉90 度之後,變成了 [01]  和 [−10] ,把它們拼成 一個矩陣[01−10] ,這便是逆時針旋轉 90 度對應的線性變換矩陣。要計算任意向量旋轉 90 度之後的座標,只需要用該矩陣左乘原來的向量就可以了。

下面是一個剪下變換,你能一眼就看出它在做什麼嗎?

我們再來看下面這個線性變換,其線性變換矩陣的 2 個列向量是線性相關的。這個線性變換會將整個二維空間壓縮到一條直線上。通過這個例子,你是不是對線性相關、線性無關有了更直觀的、更深刻的認識了呢?

總之,線性變換是操縱空間的一種手段。線性變換保持原點不動,網格線平行且等距分佈。只需要幾個數字(變換後基向量的座標)就可以清晰地描述一個線性變換。將變換後基向量的座標按列拼接成一個矩陣。這個矩陣為我們提供了一種描述線性變換的語言。線性變換作用於一個向量,對應於用線性變換矩陣左乘該向量。

以後,當你再看到矩陣的時候,你都可以將它解讀為對空間的某種線性變換,這是深刻理解矩陣乘法、行列式、基變換,以及特徵值等概念的重要基礎。掌握了本節(從線性變換的角度)看待矩陣的方式,線性代數中,原本極其抽象的概念,都將瞬間變得清晰起來。線性代數中各種看似莫名其妙的運算,以及各種神出鬼沒的概念,一下子都變得可愛起來了。