[拼音]:jisuan lixue de shuzhi fangfa

[外文]:numerical methods in computational mechanics

力學現象的數學模擬,常常歸結為求解常微分方程、偏微分方程、積分方程、或代數方程。求解這些方程的方法有兩類:一類是求分析解,即以公式表示的解;另一類是求數值解,即以成批數字表示的解。很多力學問題相當複雜,特別是複雜的偏微分方程組,一般難以得出它們的分析解,而用數值方法求解則運算步驟繁複,耗用人力很多,因此在電子計算機出現以前,非不得已不用。20世紀50年代以來,出現了配有現代程式設計語言的通用數字計算機。計算機的快速運算和大存貯量,使解複雜的力學問題成為可能。三十多年來,隨著計算機的改進,數值方法得到廣泛的應用和很大的發展;主要是考慮算得更快、更準、省錢,併為原先不能算的問題構造演算法。

主要數值方法

數值方法很多,求解偏微分方程數值解,以有限差分方法和有限元法使用最廣;此外,還有變分方法、直線法、特徵線法和譜方法,等等。這些方法的實質絕大多數是將偏微分方程問題化成代數問題,然後再用計算機求未知函式的數值解。下面簡要介紹有限差分方法和有限元法。

有限差分方法

具有簡單、靈活和通用性強等特點。用差分方法求數值解時,須先將自變數的定義域“離散化”,即只企圖算自變數定義域中有限個點的未知函式的近似值。如果自變數只有一個,則可把要計算的區間離散成N個線段。如果自變數有兩個,而計算區域是圖1所示的矩形,則最簡單的離散方式是把區域分成Μ乘N個小矩形。小矩形的長 h和寬k分別叫作x方向和y方向的步長。微分方程中出現的偏導數uy(x,y), 在微積分中是差商的極限,在有限差分方法中則代以差商。如圖1中b點的uy有的情形可代以差商(u(a)-u(c))/2k,有的情形可代以(u(a)-u(b)/k,如果有二階偏導數uyy,常常可代以二階差商(u(a)-2u(b)+u(c)/2k,其中u(a)、u(b)和u(c)分別表示相應點的u值。 如以適當的差商來代替微分方程每一個導數,就得到對應於原微分方程的差分方程。怎樣選差商至關重要。此外,偏微分方程總還要附加邊界或初始條件,這些條件也要用差分形式表示。這樣,對於每個網格點的未知函式值作出未知量的代數方程組。如果網格分得較密,即步長h和k都比較小,或Μ與N 的數值都比較大,則所得代數方程組的未知量的數目將很大,但藉助計算機,還是可以很快求出解來。由於步長無法取為零,因此用差分方法只能求得原微分方程的近似解。但只要選擇合理的差商和步長,計算結果仍能令人滿意,有時還能得到精度很高的解。

有限元法

這種方法是把計算區域剖分成大小不等的三角形(或其他形狀的)單元,然後在各單元上用適當的插值函式來代替未知函式。根據變分原理,可將偏微分方程化成代數方程來求解。這種方法具有很廣泛的適應性,特別適於求解具有複雜邊界形狀和物理條件的問題,而且很容易在計算機上實現。1970年以來已研究出一些適用於廣泛的線性問題的有限元通用程式,對工程設計起很大作用。圖2是一輛汽車外殼分割成單元的示意圖。按照有限元法剖分的思想,把汽車外殼剖分成大小不等的許多三角形單元,而對彎曲邊界只須裁彎取直即可。在應力變化劇烈和要求精確計算的地方,須把單元取得小些;在變化不劇烈的地方則可取得大些。用這種方法不僅可以適應複雜的區域,還可以儘量減少總的單元數目,從而減少未知量的數目。如果在有限差分方法中用矩形網格,則較難處理如此複雜的區域。

數值計算的誤差、假象和錯誤

誤差

數值計算的誤差主要有兩種:

(1)舍入誤差:計算機中的數字是有限位的,按十進位制一般只有六位、八位到十位,位數較長的數或無理數如

或圓周率π等,只好捨去尾數才輸送進機器。每一次四則運算都有舍入問題,因而會出現“舍入誤差”。在數值計算過程中,運算的舍入,有時會因相互抵銷而無損於計算結果,有時也會因積累而造成嚴重誤差,例如用“不穩定的”差分格式就會導致舍入誤差的大量積累。

(2)截斷誤差:以差分近似代替微分引起的誤差就屬這種誤差。此外,還有許多原因能導致誤差的出現。例如,對不規則複雜區域進行裁彎取直;採用不準確的原始物理資料進行計算;求線性和非線性代數方程組的近似解;把微分方程的邊界條件用數值方法中的邊界條件來代替也引進了誤差。對這些誤差進行分析並設計好計演算法來控制誤差,是數值方法的一項重要任務。

假象和錯誤

即計算的部分結果或全部結果與客觀真實不盡相合,甚至完全錯誤。原因可能來自對力學問題的數學提法不合理,也可能是由於所用的數值方法和計算機硬體和軟體有問題,分述於下:

(1)如果力學問題的數學提法合理,則它的解存在且唯一,而且還是穩定的。如果數學提法不合理,就不可能得到合適的數值方法,更談不上算出符合實際的解答。力學模型通常忽略一些次要因素,以便使問題簡化。如果忽略的因素太多使模型過分簡單,它的解就不能描述力學現象的主要特點。這時,就必須修改力學模型(或力學提法)和數學提法,使之更符合實際。

(2)用有限差分方法解力學問題時,差分格式應能儘量正確地反映原力學問題所遵循的基本定律(如守恆性)以及計算方法理論所要求的多種準則,否則不會得到合理的數值解。

(3)即使力學模型和數學提法合理,而且數值方法在理論上正確,也經得起多次實踐考驗,計算結果也未必總能完全反映實際情況,因為模型總是要作一定程度的簡化,總會有些因素沒考慮到,而數值方法本身也會在全域性或區域性上有誤差。

(4)在用差分方法或有限元法時,限於計算機的功能或計算經費,網格不一定能取得足夠細,因而不能正確反映某些有急劇變化的區域的情況。

(5)電子計算機的硬體和軟體不能保證絕對無誤,如機器可能受各種干擾而元件損壞,軟體的功能可能不周到,程式的編制也常常有差錯,等等。用若干個有分析解或有可靠資料的典型題目來檢驗數值方法,以及將典型的力學實驗資料與數值計算結果作比較,往往有助於瞭解數值計算中可能出現的假象和錯誤,並驗證方法是否可靠,答案是否正確。

數值計算在力學中的作用

數值計算、力學實驗和求(近似)分析解是相輔相成的,三者的密切配合有利於促進力學理論的發展及應用。有些力學實驗要耗費大量的金錢和時間,如果有成熟的數值方法,則可用計算配合實驗來節省總費用和時間。例如設計一種新型飛行器時,可以先用電子計算機計算若干設計方案並從中挑選幾個較好的作風洞試驗,就能很快得到一個最佳的設計方案,從而大大縮短設計週期。數值計算有時還能啟發人們去安排重要的新實驗。例如運動的等離子體可能會產生 T層的現象就是先用數值方法研究磁場中稠密等離子體的運動發現的,後來從實驗中才得到證實。

數值解有時也能啟發人們尋求相應的分析解。例如非線性方程

的“孤立波”解,以前用解析方法只能求出反映單個孤立波的解;60年代中期,用數值方法發現方程中還有反映多個不同速度的孤立波的相互碰撞、追趕和分散現象。相應的分析解就是在這種啟發下找到的。可見數值計算與力學的結合確能解決技術中提出的許多力學問題,因而越來越受到人們的重視。