2016-11-18 99 views
1

我在想數值分析中的一個基本問題。由於二階方法的截斷誤差爲O(dx^2)和O(dx)爲(),因此當離散常微分方程時,衆所周知二階方法比一階方法更精確。一階方法。 0 < dx < 1.二階法比一階法差嗎?

如果dx> 1,該怎麼辦?例如,域爲0到10000,網格大小爲1000,則dx = 10。在這種情況下,由於dx^2 = 100且dx = 10,所以二階方法不像一階方法那樣精確。在處理大規模問題時,我們可以遇到這個問題,例如氣候模擬(雲的大小可能爲幾公里)。

回答

1

二階方法並不比一階方法更準確,因爲對於dx的某個值,dx^2 < dx。這是關於小dx收斂漸近的速率的聲明。

此外,直接比較dx^2與dx沒有任何意義,因爲dx不是無量綱數量,而是長度。所以你試圖比較一個區域的長度,這是沒有意義的。

big-O notation中,如果一個量收斂於O(dx^2),那麼這通常意味着誤差的形式爲e = a2 dx^2 + a3 dx^3 + ...引導係數a2是以X /米^ 2爲單位,其中X是您的錯誤所在的單位,也可能是您使用其他長度而不是米。類似地,對於一階解,誤差的形式爲b1 dx + b2 dx^2 + ...,其中b1的單位是X /米。

因此,如果您決定可以忽略非主要條款(您可能無法獲得較大的dx值),則比較不在dx^2和dx之間,它介於a2 dx^2和b1之間DX。這兩個誤差項之間顯然存在交叉,但它不是在dx = 1,而是在dx = b1/a2。如果你的離散化是粗糙的,那麼你可能不是處於可以忽略高階項的漸近狀態,並且你的解決方案可能無論如何都是非常不準確的。