彈性力學裡的平面問題差分解中如何區分向前差分和向後差分?


Forward / Backward Difference是有限差分法的一個基本概念

  1. 向前差分,Forward Difference,

f

向後差分, Backward Difference

f

  • 中心差分,Central Difference

f

用簡單的泰勒展開可知三者的truncation error (此處h為網格間距)

  • Forward / Backward Difference:O(h)

  • Central Difference Difference: O(h^2)

選用三種差分方式在於是否知道前後步的所有信息以及需要多高的精度;並且以上一階公式只是代表這三種差分方式對於已知信息的要求,比如Forward DIfference需要k+1步,而Backward不需要;高階方法包括Newton,Runge-Kutta等等。換言之,向前向後代表了從x_k
ightarrow x_{k+1}時是否利用了k+1步的信息,也就是所謂的explicit和implicit方法。開頭兩個式子可以寫成如下形式,可以很明顯的看出兩種方法選用了不同步的斜率

  • Forward (explicit): f(x_{k+1})=f(x_k)+f

  • Backward (implicit): f(x_{k+1})=f(x_k)+f

下面結合彈力力學問題再大略說一下,從動量守恆出發可得
ablacdotsigma+
ho b = 
hodot{v} (平面問題只是附加了角動量守恆和不同應力假定,區別只在於Hooke"s Law或者Constitutive equation的不同,跟本回答無關,故略去應力應變關係),我們可以用有限差分解邊界值問題(位移為變數)

  • 去掉慣性力,方程收縮為ordinary differential equation,對位移的差分可以任意選用Forward/Backward/Central,只不過此時要用其二階形式

  • 保留慣性力,此時方程為partial differential equations,需要初值才能求解;同樣對於時間的差分需要二階,比如Newmark Method;此時我們通常用不同差分形式構造predictor-corrector method以提高精度;譬如用普通的forward difference構造predictor,然後用central或者backward構造corrector;具體形式可以參見任何數值分析教科書。

總得來說向前向後並非平面彈性力學問題所獨有,應該從數值求解的角度,根據解析解和數值解的空間,思考需要的信息和適用的數值離散化方式。有限差分不是我平時常用的數值方法,只是很概括的講了一下,希望能給題主一個解釋,也歡迎高人指正。


推薦閱讀:

為什麼不動點迭代法的收斂與其導數有關?
最近在學數值分析,有誰能跟我簡單講講啥是範數啊?
學化學專業必修課程學數值分析的意義在哪?
遊戲內的副本/精力重置,這樣的做法有何用意?以及制定重置時間的依據是什麼?
關於matlab作圖,不知如何具體解釋,langrange基函數,求大神教?

TAG:物理學專業 | 結構力學 | 數值分析 | 材料力學性能 |