番外——關於張量計算(Index notation)
首先從簡單的一階張量—向量說起。在一個以為底的三維空間坐標系中,我們可以將向量表示為:
,或者用求和公式表示為:
通過求和公式,已經能把之前很長的方程大大簡化了。但是愛因斯坦在大概100年前提出來寫求和符號也好煩啊,就不能把它也省了嗎。於是他想出了一個簡化的方法,後來也被稱為愛因斯坦求和約定(Summation Convention)。其主要內容是:當一個下標在單獨某項中出現了兩次,那麼我們可以省略求和符號,但依然對這單獨某項關於重複下標的所有可能值求和。我語文不好,這句話可能解釋的有點拗口,還是結合上面的向量例子來說明。首先單獨某項可以是任意多項的乘積,只要不出現加減之類的,我們都姑且把它當成是單獨項。在向量的例子中,就是一個單獨項,而且下標
出現了兩次,因此我們可以省去求和符號,但仍然進行求和運算。即可以將向量表示為
。
現在我們可以繼續討論二階張量,一般用雙下劃線表示,如。在三維坐標系中,二階張量有9個分量。比如應力張量:
如果向量方程的長度還能接受的話,那二階張量的長度就是災難了(我打了好久啊)。但是我們現在有了Summation Convention可以用。這樣就可以將其簡寫為:
這裡乘積項中和
各出現了兩次,所以都要進行求和,對於某一個
,
有三項要求和,而
本身又有三項求和,所以一共有3*3=9項。如果對這個過程不熟悉的,可以先寫出帶有求和符號的式子:
,然後把求和符號去掉就行了。
運用Index notation時有一些重要的規則需要遵守。如果不注意會造成混亂。
規則1. 同一個下標不能在單獨某項中出現兩次以上。舉個例子,就是沒有意義的,因為
出現了三次。
規則2. 方程的每一項所含的自由下標(free index)必須一致。Free index就是指沒有重複,不用求和的下標。舉個例子:。這個式子中,只有
是free index,因為它在單項中沒有重複。而每一項都有
,是一致的,所以成立,反之如果某一項缺少
,那麼就不成立。
接下來我們引入一個很有用的量: Kronecker delta(),它的定義為:
上述定義和單位向量的乘積是一致的。比如在
的情況下等於1,在
的情況下等於0,所以我們有:
。
同樣是有9項,我們可以把它當成是一個二階張量的9個分量,寫成矩陣的形式就是單位矩陣
。這個不難理解,因為單位矩陣是對角線上的項等於1,其他分量等於0。而對角線上的分量就是兩個下標相等的情況。趁熱問個tricky的問題: 那
是多少呢?等於3,因為
出現了兩次,根據summation convention,需要進行求和,即等於
。
Kronecker delta有個令人興奮的性質,舉個例子說:。語言敘述就是當某一項和Kronecker delta相乘時,如果它有和Kronecker delta相同的下標,那麼可以將這個下標改成delta的另一個下標然後去掉delta。在例子中,
和
有相同的下標
,所以可以把這個
改成
的另一個下標
,然後去掉
,就變成了
。這個性質很好證明,只要按照求和展開就一目了然了,之後就可以無腦使用了。
現在終於可以用上述知識解決問題啦。首先從向量點乘開始。
這裡要說明的是,由於要遵守上述的規則1,表示的時候必須要使用和
不同的下標,比如
。不然下標
就重複出現四次了。
向量本身就不難算,所以上述例子還不能體現Index notation的優越性。下面我們來試試二階張量點乘向量,也可以看成是矩陣和向量相乘:
。
上式是traction的計算公式,應力張量和表面法向量的乘積,得到的是向量,通常我們把這個結果記做,帶入上式得到
。
下面就是我覺得index notation最有用的地方了,計算梯度和散度,偏微分。
首先我們引入梯度(gradient),注意這裡也用到了summation convention,其實是三項的和。比如對於標量的梯度:
,得到的是向量。這裡說明下一般會將
簡寫成
這種逗號的形式,同樣遵循上述所說的index notation的所有性質。對於向量的梯度:
。可以看到得到的是二階張量。所以梯度永遠是將該項的階數升高1階。
再來看散度(divergence),多了個點乘。標量沒有散度。向量的散度為:
,可以看到得到的是個標量。對於二階張量的散度:
,結果是一個向量。所以散度是將該項的階數降1階。
作為練習可以嘗試計算Laplace operator:
推薦閱讀: