基礎:演算法、近似與誤差

計算數學

計算數學是讓電腦去解決那些沒有漂亮公式可寫出答案的數學問題——或者公式太慢、太脆弱而無法直接使用的問題。大多數真實問題都是這樣:你無法用初等函數寫出 e^(-x^2) 的積分,無法用公式解一般的五次多項式,也無法精確儲存 pi 的值。因此,我們不求精確答案,而是刻意計算一個近似答案,並把誤差控制得既小又清楚。

核心想法是把無窮或連續的運算,換成機器真正能執行的有限、機械化步驟。導數(一個極限)變成在小步長 h 上的差商;積分(一塊面積)變成許多薄片之和;非線性方程的解變成一串朝著根前進的猜測。每一次替換都引入誤差,而整個學科都圍繞著三個永恆的問題:答案有多準(精度)、要花多少計算與記憶體(效率)、以及程序是否穩定(輸入或捨入的微小擾動,在輸出中是否仍然微小)。

這與追求精確封閉形式與證明的純數學、符號數學不同。符號計算給你 sqrt(2) 這個符號本身;數值計算給你 1.41421356 以及它有多不準的界。兩者互補——符號精確但可能體積爆炸、無法擴展,數值近似但快速、能擴展到上百萬個未知數。計算數學是天氣預報、飛機設計、藥物研發、影像處理與機器學習背後的引擎室。

要求 sqrt(2),你不是去查公式——而是從 x_0 = 1 出發迭代 x_{n+1} = (x_n + 2/x_n)/2,得到 1.5、1.41666...、1.414215...,每一步正確位數加倍,直到達到機器的精度上限。

一個無法以封閉形式回答的精確問題,變成一個簡短、收斂、機械化的程序——這正是本學科的核心。

常見誤解是電腦給出的是真正的答案。其實幾乎從不如此:每個數值結果都是近似的,目標是讓誤差受控且被理解,而非追求精確。

又稱
numerical mathematicsscientific computing數值數學科學計算