欧拉方法
此條目可参照英語維基百科相應條目来扩充。 (2021年9月25日) |
在数学和计算机科学中,欧拉方法(英語:Euler method[註 1]),是一种一阶数值方法,用以对给定初值的常微分方程[註 2]求解。
欧拉方法是常微分方程數值方法中最基本的显式方法;是一阶的方法,意味着其局部截断误差[註 3]正比于步长的平方,并且其全局截断误差正比于步长。[註 4]
非正式的几何描述
编辑考虑计算這樣的一个未知曲線的形状:它具有给定的起点并且满足一个给定的微分方程。 这里,所谓“微分方程”可以看作能够通过曲线上任意点的位置而计算出这一点的切线斜率的公式。
思路是,一开始只知道曲線的起点(假设为 ),曲線其他部份是未知的,不過通过微分方程, 的斜率可以被计算出来,也就得到了切线。
顺着切线向前走一小步到点 。如果假设 是曲线上的一点(实际上通常不是),那么同样的道理就可以确定下一条切线,依此类推。在经过几步之后,一条折线 就被计算出来了。一般情况下,这条折线与原先的未知曲线偏离不远,并且任意小的误差都可以通过减少步长来得到。
欧拉方法的推导
编辑以以下微分方程為例
希望用 y 在點 (t0,y(t0)) 附近的線性近似來得到其近似解(也就是 y 的泰勒展開式的前二項)。利用時間 tn 時的數值,若用單步的欧拉方法,可得到時間 tn+1 = tn + h 時的近似值如下:
欧拉方法是一種顯型方法,也就是說 的解是 , 的顯函數。
欧拉方法可以求解一階的微分方程,而任何 階的微分方程都可以表示成一階的微分方程。
對於微分方程
可以通過新設輔助變量 ,得到以下的等價方程
這是一個以 為變量的一階系統,因此可以用歐拉法求解,也可以使用其他的一階數值方法。[1]
应用例题
编辑设微分方程为 ,初始值为 ,试用欧拉方法求 的近似值,步长为 。
欧拉法為:
首先求 (当 ), 的定義為 ,因此有
透過以上步驟,求得解曲線在点 的切线斜率。回顾直線斜率的定义: 变化量和 变化量的比值,亦記作 。
接著是
重复以上步骤求出 和 的值。
由于欧拉法属于递归算法,把運算整理成表格也許有助於避免計算錯誤。
1 | 0 | 1 | 1 | 1 | 2 |
2 | 1 | 2 | 1 | 2 | 4 |
4 | 2 | 4 | 1 | 4 | 8 |
局部截尾误差
编辑欧拉法的局部截尾误差(Local truncation error, LTE)是指在实施一次欧拉法所产生的误差,是指经过一步的数值解 与在 时精确解的误差。数值解 由以下给出:
对于精确解,使用泰勒级数展开给出:
欧拉法的局部截尾误差为:
当 拥有三阶有界导数时,这个结果是成立的。[2]
结果显示:当步长 很小时,局部截尾误差近似与 成比例。也就是说,欧拉法精确度不如其他的高阶方法(如龙格-库塔法和线性多步法),这些方法的局部截尾误差与 (p>2)成比例。
全局截尾误差
编辑全局截尾误差(Global truncation error, GTE)是指在一个固定时间 时的误差,但是很多步之后该方法需要以从初始时间到达该时间来计算。全局截尾误差可以看做是一个每一步的局部截尾误差的累积效应。[3] 经过的步骤數為 ,而每步的误差则正比于 。因此,可以预期全局截尾误差是正比于 的。[4]
这个直观的推测可以被嚴謹地證明。如果解 存在二阶有界导数,并且 關於 是利普希茨连续的,那么全局截尾误差是有界的:
其中 是在给定区间内 的二阶导数的上界, 是 的利普希茨常数。[5]
这种精确的形式其实是没有什么意义的,通常情况下这个上界都會嚴重高估了欧拉法所造成的实际误差。[6]重要的是,这顯示了全局截尾误差是近似正比于 的,所以欧拉法被稱为是一阶的。[7]
相關條目
编辑註腳
编辑参考资料
编辑- ^ Butcher 2003,第3頁;Hairer, Nørsett & Wanner 1993,第2頁
- ^ Butcher 2003,第60頁
- ^ Atkinson 1989,第344頁
- ^ Butcher 2003,第49頁
- ^ Atkinson 1989,第346頁;Lakoba 2012,公式 (1.16)
- ^ Iserles 1996,第7頁
- ^ Butcher 2003,第63頁
参考文献
编辑- Atkinson, Kendall A., An Introduction to Numerical Analysis 2nd, New York: John Wiley & Sons, 1989, ISBN 978-0-471-50023-0.
- Ascher, Uri M.; Petzold, Linda R., Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations, Philadelphia: Society for Industrial and Applied Mathematics, 1998, ISBN 978-0-89871-412-8.
- Butcher, John C., Numerical Methods for Ordinary Differential Equations, New York: John Wiley & Sons, 2003, ISBN 978-0-471-96758-3.
- Hairer, Ernst; Nørsett, Syvert Paul; Wanner, Gerhard, Solving ordinary differential equations I: Nonstiff problems, Berlin, New York: Springer-Verlag, 1993, ISBN 978-3-540-56670-0.
- Iserles, Arieh, A First Course in the Numerical Analysis of Differential Equations, Cambridge University Press, 1996, ISBN 978-0-521-55655-2.
- Lakoba, Taras I., Simple Euler method and its modifications (PDF) (Lecture notes for MATH334, University of Vermont), 2012 [2016-01-02], (原始内容存档 (PDF)于2012-07-12).