本文描述CFD理論中常用的矩陣、張量及其運算法則。
註:本文內容譯自《The finite volume method in computational fluid dynamics _ an advanced introduction with OpenFOAM® and Matlab》,F.Moukalled, L.Mangani, M.Darwish
1 矩陣
一個 階的矩陣是一個矩形數組,其由 行 列數據組成。矩陣 中第 行第 列的元素記作 ,如下面 的矩陣元素 的值為12。
因此,向量 是一個 的矩陣,標量 是一個 的矩陣。
階的矩陣 的轉置矩陣 是一個 階的矩陣,數學上可以表述為:
如果兩個階次相同的矩陣對應的元素都相等,那麼這兩個矩陣相等。兩個相同階次的矩陣可以逐元素加減。例如,矩陣 、 定義為:
則有 及 有:
矩陣與標量的乘積得到的矩陣為原矩陣的所有元素與標量的乘積:
兩個矩陣的乘積較為複雜,其對矩陣的階次存在要求。若矩陣 與矩陣 相乘,則要求矩陣 的列數與矩陣 的行數相等。如矩陣 的階次為 ,則矩陣 的階次必須為 ,它們的乘積矩陣 的階次為 。矩陣 的元素值為:
如矩陣 為 的矩陣,矩陣 為 的矩陣:
則矩陣 是一個 的矩陣:
2 方陣
若矩陣 的行數 與列數相等,則稱矩陣 為 階方陣。一個方陣的所有元素 構成其主對角線(從左上角到右下角),方陣元素 (其中 )稱之為矩陣的交叉對角線(從矩陣的左下角到右上角)。
方陣具有一些其它類型矩陣所不具有的特性,如對稱性和反對稱性。此外,許多運算(如取行列式和計算特徵值等)只對方陣有意義。一個N階方陣與自身相乘的結果仍然是一個N階方陣,因此一個方陣可以根據需要與自身進行多次乘積運算,標記 為矩陣 與自身進行 次乘積運算:
當方陣 中的元素 時(此時 )稱之為對稱矩陣,當元素 時稱之為反對稱矩陣。如下面的3階方陣是一個對稱方陣:
下面的4階矩陣是一個反對稱矩陣。
對角方陣D是一個除主對角外其它所有元素都是零的矩陣。下面的矩陣是一個3階的對角方陣:
主對角線上的所有元素都是1的N階對角矩陣稱為N階單位矩陣,通常標記為 ,如下為一個4階單位矩陣:
方陣 的逆矩陣 的階次與原矩陣相同,且有:
上三角矩陣 是一個主對角線以下元素均為零的方陣,數學定義為:
下三角矩陣 是一個主對角線以上所有元素均為零的方陣,其數學定義為:
如下面兩個矩陣分別為上三角矩陣與下三角矩陣:
3 利用矩陣描述方程組
利用矩陣可以非常方便地描述方程組。一個有N個未知數N個方程的方程組可以寫成:
可以將其轉化為矩陣方程的形式:
寫成緊湊形式的矩陣方程為:
4 矩陣的行列式
行列式是一個與方陣 相關的值,其可以通過矩陣的元素通過一系列的數學方法及性能計算。方陣的行列式記作 或 ,注意這裡不是絕對值計算。
2階矩陣的行列式的計算很簡單,它是主對角線上元素的乘積減去交叉對角線上元素的乘積,可以表述為數學計算方式為:
對於高階矩陣,這個過程更加複雜,並且基於餘子式與代數餘子式的概念。
元素 的餘子式 為行列式中去除第 行及第 列後剩餘的矩陣元素,其代數餘子式 為餘子式的值與 或 的乘積,寫成數學表達式為:
一個方陣 (N階)的行列式是通過找到它的某行或列元素的代數餘子式,將每個代數餘子式與相應的元素相乘,然後將結果相加來進行計算的,數學表達為:
很容易得到一個N階的上三角矩陣、下三角矩陣或對角矩陣 的行列式是其主對角上的元素的乘積 。
5 特徵向量與特徵值
當方陣 與向量 的乘積 的方向與向量 的方向相同時,可稱向量 為矩陣 的一個特徵向量。矩陣與其特徵向量的乘積不會改變其方向,僅改變其大小。因此存在標量 使得 ,此處的標量 稱之為矩陣 的特徵值。顯然對於任意常數 ,向量 是矩陣 的特徵向量,因為存在 ,因此一個縮放的特徵向量依然是原矩陣的特徵向量。
若矩陣 是一個N階對稱矩陣,則顯然其擁有一組線性無關的特徵向量 ,而且可以證明特徵向量集合不是唯一的。然而其對應的特徵值(記作 是唯一的,其值可以相當也可以不相等。單位矩陣的特徵值均為1,且所有非零向量均為單位矩陣 的特徵向量。
通常,一個N階方陣 的特徵值可以通過下面的方式求解得到:
根據定義,特徵向量非零,則有:
可將方程展開為:
求解此方程即可得到特徵值 。
6 正定矩陣
N階對稱矩陣 ,若對任意列向量 均滿足以下不等式:
則稱矩陣 為正定矩陣。
如矩陣 為3階對稱矩陣:
對於任意3階向量 ,存在:
因此,矩陣 是正定矩陣。
如果矩陣 為N階正定矩陣:
其具備以下一些特性:
若矩陣
為正定矩陣,則矩陣 可分解為 ,其中 為下三角矩陣。7 矩陣運算若 及 為標量, 為單位矩陣, 為矩陣,存在以下的一些運算規則:
8 張量與張量運算張量可以被看作是已經在定義標量和向量等量時所使用的思想的擴展。標量是一個秩為0的張量,而向量是一個秩為1的張量。高秩張量的主要用途是處理和變換方程組。在CFD中只需要秩為2的張量。與速度向量 相似,CFD中常使用偏應力張量 ,如下圖所示。這裡以其作為張量介紹的對象。
以 表示正交笛卡爾坐標系中的三個方向,則應力張量 及其轉置形式 以其分量值表示為:
張量也可以使用以 表示的形式:
上式允許定義第三種向量積,其用於將兩個向量相乘,稱為向量並積(dyadic product),其結果為一個張量,它的分量由兩個向量的有序對組成。具體地說,向量 與其自身的向量並積為:
向量 的梯度計算結果是一個張量:
兩個張量 和 的和是一個張量 ,其分量是兩個張量相應分量之和:
張量 與標量 的乘積仍然是一個張量,其分量為原張量的分量與標量的乘積:
張量 與向量 的點積結果是一個向量,表示為:
展開後可得到:
可進一步化簡為:
上面的方程可以寫成矩陣乘法的形式:
張量 的散度是一個向量,計算結果為:
張量 與 的雙點積為一個標量:
將上式展開並應用相應的計算規則,如:
最終結果為:
CFD理論中存在眾多的矩陣及張量計算,若有志於從事CFD理論研究的道友,則很有必要找一兩本場論或張量分析方面的專業教材仔細研究。若僅為CFD應用的話,找本計算流體力學書籍的附錄看看也差不多夠用了。