數值計算方法
黃雲清著圖書
隨著計算機和計算方法的飛速發展,幾乎所有學科都走向定量化和精確化,從而產生了一系列計算性的學科分支,如計算物理、計算化學、計算生物學、計算地質學、計算氣象學和計算材料學等,計算數學中的數值計算方法則是解決“計算”問題的橋樑和工具。我們知道,計算能力是計算工具和計算方法的效率的乘積,提高計算方法的效率與提高計算機硬體的效率同樣重要。科學計算已用到科學技術和社會生活的各個領域中。
數值計算方法,是一種研究並解決數學問題的數值近似解方法,是在計算機上使用的解數學問題的方法,簡稱計算方法。
在科學研究和工程技術中都要用到各種計算方法。例如,在航天航空、地質勘探、汽車製造、橋樑設計、天氣預報和漢字字樣設計中都有計算方法的蹤影。
計算方法既有數學類課程中理論上的抽象性和嚴謹性,又有實用性和實驗性的技術特徵,計算方法是一門理論性和實踐性都很強的學科。在70年代,大多數學校僅在數學系的計算數學專業和計算機系開設計算方法這門課程。隨著計算機技術的迅速發展和普及,現在計算方法課程幾乎已成為所有理工科學生的必修課程。
數值分析的目的是設計及分析一些計算的方式,可針對一些問題得到近似但夠精確的結果。以下是一些會用利用數值分析處理的問題:數值天氣預報中會用到許多先進的數值分析方。計算太空船的軌跡需要求出常微分方程的數值解。汽車公司會利用電腦模擬汽車撞擊來提升汽車受到撞擊時的安全性。電腦的模擬會需要求出偏微分方程的數值解。對沖基金會利用各種數值分析的工具來計算股票的市值及其變異程度。航空公司會利用複雜的最佳化演演算法決定票價、飛機、人員分配及用油量。此領域也稱為作業研究。保險公司會利用數值軟體進行精算分析。計算太空船的軌跡需要求出常微分方程的數值解。
直接法利用固定次數的步驟求出問題的解。這些方式包括求解線性方程組的高斯消去法及QR演演算法(英語:QR algorithm),求解線性規劃的單純形法等。若利用無限精度算術的計算方式,有些問題可以得到其精確的解。不過有些問題不存在解析解(如五次方程),也就無法用直接法求解。在電腦中會使用浮點數進行運算,在假設運算方式穩定的前提下,所求得的結果可以視為是精確解的近似值。
迭代法是通過從一個初始估計出發尋找一系列近似解來解決問題的數學過程。和直接法不同,用迭代法求解問題時,其步驟沒有固定的次數,而且只能求得問題的近似解,所找到的一系列近似解會收斂到問題的精確解。會利用審斂法來判別所得到的近似解是否會收斂。一般而言,即使使用無限精度算術的計算方式,迭代法也無法在有限次數內得到問題的精確解。
在數值分析中用到迭代法的情形會比直接法要多。例如像牛頓法、二分法、雅可比法、廣義最小殘量方法(GMRES)及共軛梯度法等。在計算矩陣代數中,大型的問題一般會需要用迭代法來求解。
許多時候需要將連續模型的問題轉換為一個離散形式的問題,而離散形式的解可以近似原來的連續模型的解,此轉換過程稱為離散化。例如求一個函數的積分是一個連續模型的問題,也就是求一曲線以下的面積若將其離散化變成數值積分,就變成將上述面積用許多較簡單的形狀(如長方形、梯形)近似,因此只要求出這些形狀的面積再相加即可。
例如在二小時的賽車比賽中,記錄了三個不同時間點的賽車速度,如下表:
時間 | 0:20 | 1:00 | 1:40 |
km/h | 140 | 150 | 180 |
利用離散化的方式,可以假設賽車在0:00到0:40之間的速度、0:40到1:20之間的速度及1:20到2:00之間的速度分別為三個定值,因此前40分鐘的總位移可近似為(2/3h × 140 km/h) = 93.3 公里。可依此方式近似二小時內的總位移為93.3 公里 + 100 公里 + 120 公里 = 313.3 公里。位移是速度的積分,而上述的作法是用黎曼和(英語:Riemann sum)進行數值積分的一個例子。