我在思考数值分析中的一个基本问题。
当离散常微分方程时,众所周知二阶方法比一阶方法更准确,因为二阶方法的截断误差是O(dx ^ 2)和O(dx)一阶法。当0 <0时,这是真的。 dx&lt; 1.
如果dx&gt; 1?例如,域为0到10000,网格大小为1000,然后dx = 10.在这种情况下,二阶方法是不正确的一阶方法,因为dx ^ 2 = 100且dx = 10?在处理大规模问题时我们可以遇到这种情况,例如气候模型(云大小可能是几公里)。
答案 0 :(得分:1)
二阶方法并不比一阶方法更准确,因为dx ^ 2&lt; dx,对于某些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之间的比较不是,它是&#39; s在a2 dx ^ 2和b1 dx之间。这两个错误术语之间显然存在交叉,但它不是在dx = 1,而是在dx = b1 / a2。如果您的离散化很粗糙,那么您可能不会处于忽略高阶项的渐近机制中,并且您的解决方案可能非常不准确。