剛度矩陣(stiffness matrix)
想像一張由彈簧連接一格格樁的網。推一根樁,它就會拉扯與它相連的樁;一個連接愈抗拒被拉伸,它就愈「剛」。如果你對每一對樁都寫下「移動其一對另一者的運動有多大的抗拒」,你就得到一張數字表——剛度矩陣。這名稱是字面上的:在有限元素法誕生的結構力學中,這些元素真的就是把力與位移聯繫起來的剛度。
在數學上,當伽遼金法把弱形式化為線性方程組 K c = F 時,剛度矩陣 K 裝著元素 K_ij = a(phi_j, phi_i),即雙線性形式在成對形狀函數上的取值——對模型問題而言,K_ij = integral of (grad phi_i . grad phi_j) 在區域上的積分。因為每個形狀函數只在碰到其節點的少數元素上非零,所以當節點 i 與 j 不共用任何元素時 K_ij = 0:K 是「稀疏」的,每列只有寥寥幾個非零元。當底層問題對稱時(a(u,v) = a(v,u))K 也對稱,而對良態的橢圓問題(如穩態熱傳或彈性)K 是「正定」的——這正是讓喬列斯基分解與共軛梯度法如此有效的結構。
兩點誠實的告誡。其一,K 是透過「組裝」建立的:你在每個元素上算出一個小小的元素剛度矩陣,再把它的貢獻加進全域 K 中正確的節點索引處——你絕不會用一個巨大的積分一次造出 K。其二,細化網格會讓 K 變大「並」更病態:對二階 PDE,其條件數隨元素縮小如 O(1/h^2) 般增長,所以直接求解變得昂貴,而迭代求解器需要一個預條件子(常是多重網格)才能保持高效。剛度矩陣正是連續 PDE 終於變成電腦實際求解的那個稀疏線性代數問題之處。
對 -u'' = f,用間距 h 之均勻網格上的線性元素,元素剛度矩陣的兩列為 (1/h)(1, -1) 與 (1/h)(-1, 1),把它們在所有元素上組裝起來得到全域三對角矩陣 K = (1/h) * tridiag(-1, 2, -1)。每個內部列都編碼了熟悉的 (-u_{i-1} + 2u_i - u_{i+1})/h 模式。
稀疏、對稱、正定——這正是讓橢圓有限元素法可在大規模下求解的結構。
對良好的橢圓問題,剛度矩陣稀疏且對稱正定,但隨網格細化會變得病態(條件數約 O(1/h^2))。因此細網格需要配備良好預條件子的迭代求解器,而非天真的直接求逆。