2015年11月13日 星期五
純量、向量、張量
純量(scalar)是最容易理解的,在空間中的某一點記錄下一個數字,例如你指尖所在地方的高度,就是一個純量。空間中不同位置都有自己的數字,形成一個純量場。
向量(vector)也相對直覺,在空間中的某一點記下一個沿著某個方向、俱有特定大小的數字,例如你指尖所在的水流位置水正在往哪個方向流動、流得多快,就是一個向量。空間中不同位置都有自己的有方向的數字,形成一個向量場。
張量(tensor)就比較抽象,最常用來說明的範例大概是應力張量(stress tensor),想像一個很小的方塊,在其三個方向的面上各自可以受到作用力,這個作用力有自己的方向且並不一定要和這個受力的面垂直,有點像是你可以對著桌面向下壓(力和受力面垂直),也可以沿著桌面摩擦它(力和受力面平行)。因此針對三個方向各自還有三個方向的受力,共需要九個數字來記錄了。例如你可以問 x 方向的面上受到 y 方向的力有多大,這就是張量的九個元素的數字之一。
--
不過用方塊來想像關於張量的圖像似乎還是有點奇怪的地方,方塊有六個面,為什麼只問三個方向的受力而不是六個面的個別受力?上方的面和下方的面應該可以受不同樣的力啊?我想,這是因為我們討論張量時這個用來幫助理解的方塊對應的其實只是空間中的一個點而已,所以真正的要素並不是方塊的面,而是空間中的三個維度或方向。
要從一個巨觀的方塊推到無限小的極限還是有點難理解。若以旋度(curl)這個概念來類比的話,這裡說的並不是比較巨觀的「沿著某個圓圈路徑上的得到的旋度(積分形式)」,而是「某個點上的旋度值(微分形式)」。我們可以很容易想像一個正在順時鐘旋轉的圓環,由於旋轉的關係環上每個位置都有沿切線方向的速度,圓環的最右端速度向下,最左端速度向上,這樣想像旋轉的概念是很直覺的。當我們把圓環不斷縮小,只要還是一個圓環,仍然可以想像這個旋轉和速度,但如果我們真的要想像把圓環縮小到空間中的「一個點」時,區分左端還和右端還合理嗎?而這最後一個點到底速度是向下還是向上呢?還是同一個點居然可以同時向上又向下呢?我想這裡應該就是必須用極限與微分的數學工具去理解的時候,旋度本身就是是由向量場的「微分」組合出來,是推到極限的狀況,它可以無限接近一個點,但我其實不知道能不能真的說他是一個點(這要看數學家怎麼說了)。
總之,透過極限與微分的幫助,我們能夠將二維或是三維空間的資訊嚴謹的以每一個「點」所在位置的性質來描述。回頭想想,即使是空間中某一點的速度這樣的向量概念也是透過極限及微分來理解,所以物理上也不是那麼不直覺。如果再回過頭來以作為「數學工具」的角度去想純量、向量、與張量的角色,也許就可以接受我們用比較抽象一點、功能性一點的角度去理解。
--
既然不論是純量的溫度、向量的速度、還是應力的張量,(在某些應用上)其最終目的常常都是要給出空間中一個點的物理量,那不如我們用「函數」的概念來想看看:這個所謂的函數就好比我握有一筆資料,儲存著空間中任何一點的某些資訊,預備針對任何問題給你「一個數字」作為回答(就像你將把一些條件輸入電腦,程式得到一個數字作為結果返回)。當你問你指尖所在的地方溫度是多少時,我可以回答:攝氏27度。像這樣空間中的每一個位置有其對應到一個數值,一個位置記錄了一個數字的資訊,也就是純量場。
但如果我的資料庫是向量場而不是純量場,那麼你指定了一個位置就還不夠明確,因為如果你沒有指定方向,那麼對於這一點的資訊我是無法只用一個數字回答你的。但當你明確指定了一個方向,我就能給你一個數字。例如,你問我你指尖所指的地方的水流速度,但我並不知道你要問什麼方向上的速度,資料庫中這一個點對應到的並不只是一個數字,所以條件還不夠清楚。但當你問的是在 x 方向上水流得多快時就可以有個精確的回答:例如每秒10公分之類的。
那麼,為了能夠回答流速的問題我的資料庫需要記錄多少筆資訊呢?既然有無限多個方向,難道我要有個無限大的資料庫嗎? 其實三維空間的三維意思就是有三個獨立自由的維度,也就是說我只要儲存著 x, y, z 三個獨立方向的資料就已經完整掌握流速的資訊了。因此你也可以隨意的問「 x 和 y 軸中間45度的」這個方向流得多快,我都可以算出流速在你有興趣的方向上投影出來的大小(具體說就是取兩個向量內積)。這個函數因為所記錄著關於水流速度的向量資訊,它可以辦到告訴你在任何你指定的方向上的投影大小。反過來說,當你需要掌握或記錄一筆具有方向性的物理量的資訊時,你所需要的工具也就是向量場了,單只用純量場是辦不到的。
所以關鍵的差別在於「純量並不取決於方向」,但「向量」的資訊還「取決於方向」,以此類推,如果我的資料庫更複雜,所儲存的是應力的資訊,你就得要指定你問的是 1. 哪個方向上(哪一面)所受到 2. 哪個方向的受力,我才能給你一個數字答案。所以「張量」可以想像成答案還「取決於『兩個』方向」。反過來說也就是如果你想要儲存完整的應力的資訊,你就需要用到張量了,單是向量並無法辦到。也因為張量取決于兩個方向,共有三乘三的組合也就是九個數字來完整記錄,但一旦有了這九個數字,你就可以應對對任和兩個方向上數值是多少的提問了。
--
最後,也許也可以這樣想像:空間中一個點可以有不同的櫃子儲存著不同的資訊。純量就像是不需要鑰匙的簡單櫃子,打開就只是一個數字;向量則需你帶著要一把鑰匙(一個方向)來開,而依照你帶來的鑰匙不同你會得到不同的答案。不過如果你想要完整的掌握櫃子的內容,需要的只是拿 x, y, z 各自開一次就可以 ;張量則是更複雜的櫃子,需要指定兩把鑰匙才能打開得到特定的結果,不過只需把要開九次的答案記錄下來(例如 xx, xy, xz, yx, yy, yz, zx, zy, zz ),你就也完整掌握這個張量的內容了。所以為什麼要搞得這麼複雜,回到物理的角度也就是因為類似「應力」這樣的物理量其大小取決于「兩個方向」,所以就需要運用張量這樣的數學工具來描述了。
--
2015-11-13
訂閱:
張貼留言 (Atom)
超級有幫助!
回覆刪除接近十年之後,某個網友(我)在閱讀CNN手語辨識的論文,因為很困惑他一直提到Tensor,所以讀到了
感謝!