封存 Archive
封存 Archive
計算數學入門系列 - 計算區域的離散化(一)
- 取得連結
- X
- 電子郵件
- 其他應用程式
很多的計算問題,我們都需要將計算的區域 (Domain)標示出來。我們要定義一個數學上的函數 (Function),就必須要提供兩個東西。第一個就是如何運算數字的方式。比如說f(x)=sin(x) 的這一個三角函數。 你給我一個數字x,計算機就可以把它變成另外一個數字。中間這個過程就是運算數字的方式。對於我們來說,這個運算模式可以算是一個黑盒,電腦當然不可能根據定義繪畫一個半徑為一的圓形,再將你放入的數字x作為角度,然後看一下在圓形裏形成的三角形高度是多少。不過沒關係,就算中間的過程是一個黑盒,在運用上,我們還是可以把它定義為一個函數。第二個需要定義的,是到底什麼東西可以放入函數裏面。我們把可以放入這個函數的數字收集起來, 這個就是我們所說的「區域」。
上面所舉例的函數,我們可以放進任何的數字,所以他的區域是可以由負無限去到正無限大的。另外一些例子,譬如說我們需要解決一些拋物線型偏微分方程 (Parabolic Partial Differential Equation),就好像是要知道在一個空間裏面溫度的分布如何隨着時間而改變。所以放入去函數 (在這個例子裏面,這個函數就是溫度)的數字,就是在空間裏面一點的座標。 當然我們可以問在這無限三維空間裏面的溫度,但是這些關於無限空間的問題在計算數學裏面一般是不會考慮的。其中一個原因,是當數字越來越大,可以正確表示的數字分布將會越來越稀疏。那我們可以得到的數值解就越來越不準確。第二,就算可以計算出來,我們也沒有辦法把它畫出來,要清楚表示你計算出來的答案將不會是一件容易的事情。通常我們只會把計算集中在一個有限的區域以內,然後假設在這個區域以外,答案可能不太重要又或者是沒有趣味。如果真的是需要計算在一個無限空間上面的答案, 我們可以把問題進行傅立葉 (Fourier Transform)變換, 然後在頻率空間上面只考慮有限的頻率來進行計算。 這些我就不再繼續討論。
就算我們考慮有限的區域,一般計算我們也不會要求將區域內所有地方的答案都找出來。純數學裏面一般都會考慮那一段數線 內所有的數值,就是所說的for all 或者for any。可是在應用或者計算數學裏面我們一般都會把這些計算區域先做一個離散化 (Discretization), 就是說我們會先做一個取樣過程,只計算在某些地方的答案。而如果有需要,我們就會再用插補 (Interpolation) 的方法把 其他地方的答案找出來。這個方法的好處,就是可以減少計算量,既然方法裏面都一定會有其他近似值方法,我們也不需要把取樣量選得非常大,也只會浪費計算的時間和效能而已。
- 取得連結
- X
- 電子郵件
- 其他應用程式
留言
發佈留言