Math ClubMath Club
v1 · padrão canônico

Lição 98 — Método de Euler (numérico)

Método de Euler explícito para EDOs: discretização, erro local O(h²), erro global O(h), implementação e comparação com Runge-Kutta.

Used in: Cálculo Numérico (UFRGS, USP, UNICAMP) · Spécialité Maths Terminale (França) · Mathematics 4 (IIT-JEE Advanced, Índia)

yn+1=yn+hf(xn,yn),xn+1=xn+hy_{n+1} = y_n + h\,f(x_n,\, y_n), \quad x_{n+1} = x_n + h
Choose your door

Rigorous notation, full derivation, hypotheses

推导与误差分析

初值问题

给定初值问题:

y=f(x,y),y(x0)=y0y' = f(x, y), \quad y(x_0) = y_0

我们希望在 x[x0,X]x \in [x_0, X] 上逼近 y(x)y(x),而无需闭形式表达式。

离散化

将区间分为 NN 个相等的子区间:

h=Xx0N,xn=x0+nh,n=0,1,,Nh = \frac{X - x_0}{N}, \qquad x_n = x_0 + n\,h, \quad n = 0, 1, \ldots, N

"求解 y=f(x,y)y' = f(x,y), y(x0)=y0y(x_0) = y_0 的最简单数值方法是欧拉方法。我们用差分商 (yn+1yn)/h(y_{n+1} - y_n)/h 替换 yy',并在 xnx_n 处求 ff:这给出 yn+1=yn+hf(xn,yn)y_{n+1} = y_n + hf(x_n, y_n)。" — Lebl, Notes on Diffy Qs §1.7

泰勒级数误差分析

方法比较

方法全局阶每步 f 的评估次数成本欧拉(前进)O(h)1Heun (RK2)O(h²)2RK4(标准)O(h⁴)4欧拉隐式O(h)1 + 求解隐式欧拉1阶,A-稳定隐式刚性 OK

常微分方程单步方法的比较。RK4 是精度的行业标准;隐式欧拉用于刚性方程。

已解决的例子

Exercise list

28 exercises · 7 with worked solution (25%)

Application 17Understanding 3Modeling 5Challenge 1Proof 2
  1. Ex. 98.1Application

    使用 h=0.5h = 0.5 的欧拉方法逼近 y(1)y(1),给定 y=y2y' = y^2y(0)=0y(0) = 0

  2. Ex. 98.2Application

    使用 h=0.1h = 0.1 的欧拉方法逼近 y(0.2)y(0.2),给定 y=x+yy' = x + yy(0)=1y(0) = 1。与精确值 y=2exx1y = 2e^x - x - 1 比较。

  3. Ex. 98.3ApplicationAnswer key

    使用 h=0.25h = 0.25 的欧拉方法逼近 y(1)y(1),给定 y=yy' = -yy(0)=1y(0) = 1。精确值:e1e^{-1}

  4. Ex. 98.4Application

    重复练习 98.3,h=0.1h = 0.1。比较误差并验证该方法的一阶性。

  5. Ex. 98.5Application

    使用 h=0.5h = 0.5 的欧拉方法求 y=2xy' = 2xy(0)=0y(0) = 0,并估计 y(2)y(2)。与精确值比较。

  6. Ex. 98.6Application

    使用 h=0.2h = 0.2 的欧拉方法求 y=yx2+1y' = y - x^2 + 1y(0)=0.5y(0) = 0.5,并估计 y(0.4)y(0.4)

  7. Ex. 98.7ApplicationAnswer key

    对于 y=yy' = yy(0)=1y(0) = 1,使用 h=0.1h = 0.1 估计欧拉方法在 [0,1][0, 1] 上的局部误差。

  8. Ex. 98.8Application

    确定欧拉显式方法在 y=2yy' = -2y 中稳定性的最大步长 hmaxh_{\max}

  9. Ex. 98.9Application

    应用隐式欧拉,h=0.5h = 0.5,求 y=yy' = -yy(0)=1y(0) = 1,并估计 y(1)y(1)

  10. Ex. 98.10ApplicationAnswer key

    应用 Heun 方法(RK2),h=0.5h = 0.5,求 y=yy' = -yy(0)=1y(0) = 1,并估计 y(0.5)y(0.5)

  11. Ex. 98.11Application

    对于 y=x+yy' = x + yy(0)=1y(0) = 1:分别用 h=0.1h = 0.1h=0.05h = 0.05 的欧拉方法计算 y(0.2)y(0.2) 的误差。验证一阶性。

  12. Ex. 98.12Application

    对于 y=yy' = yy(0)=1y(0) = 1,在 [0,1][0, 1] 上全局误差小于 10410^{-4} 需要多少步欧拉方法?

  13. Ex. 98.13ApplicationAnswer key

    模拟振荡器 x+x=0x'' + x = 0x(0)=1x(0) = 1x(0)=0x'(0) = 0,使用欧拉方法,h=0.1h = 0.1。计算 (x1,v1)(x_1, v_1)(x2,v2)(x_2, v_2)(x3,v3)(x_3, v_3)

  14. Ex. 98.14Application

    验证欧拉方法不保持振荡器 x+x=0x'' + x = 0 的能量。与辛欧拉比较。

  15. Ex. 98.15Modeling

    P=0.3P(1P/1000)P' = 0.3P(1 - P/1000)P(0)=100P(0) = 100。使用 h=1h = 1 的欧拉方法估计 P(12)P(12)(12个月)。画出计算点的草图。

  16. Ex. 98.16ModelingAnswer key

    RLC 电路:L=1L = 1 H,R=0.5R = 0.5 Ω,C=1C = 1 F,Q(0)=1Q(0) = 1I(0)=0I(0) = 0。使用 h=0.1h = 0.1 的欧拉方法模拟 Q(t)Q(t) 3步。

  17. Ex. 98.17Modeling

    T=0.1(T20)T' = -0.1(T - 20)T(0)=90T(0) = 90 °C。使用 h=5h = 5 分钟的欧拉方法估计 T(10)T(10)

  18. Ex. 98.18Modeling

    碳-14的半衰期为5730年。使用 h=500h = 500 年的欧拉方法估计5000年后剩余的分数。

  19. Ex. 98.19Understanding

    为什么欧拉方法的全局误差为 O(h)O(h)(即使每步的局部误差为 O(h2)O(h^2))?

  20. Ex. 98.20Understanding

    欧拉显式方法在什么情况下因数值不稳定性而变得不可用?

  21. Ex. 98.21Understanding

    RK4 相比欧拉方法的主要优势是什么?

  22. Ex. 98.22ApplicationAnswer key

    使用 h=π/4h = \pi/4 的欧拉方法逼近 y(π/2)y(\pi/2),给定 y=cosxy' = \cos xy(0)=0y(0) = 0。与 sin(π/2)=1\sin(\pi/2) = 1 比较。

  23. Ex. 98.23Application

    使用 h=0.5h = 0.5 的欧拉方法求 y=yy' = \sqrt{y}y(0)=1y(0) = 1。估计 y(1)y(1) 并与精确值 (1.5)2=2.25(1.5)^2 = 2.25 比较。

  24. Ex. 98.24Application

    对于 y=yy' = \sqrt{y}y(0)=1y(0) = 1,用 h=0.5h = 0.5 比较欧拉与 Heun (RK2) 来估计 y(0.5)y(0.5)。精确值:y(0.5)=(1.25)2=1.5625y(0.5) = (1.25)^2 = 1.5625

  25. Ex. 98.25Modeling

    描述如何通过比较 hhh/2h/2 的误差来实验验证数值方法的阶。

  26. Ex. 98.26Proof

    使用 xnx_ny(xn+1)y(x_{n+1}) 的泰勒级数推导欧拉方法的局部误差。

  27. Ex. 98.27Proof

    推导平面 hλh\lambda 中欧拉显式方法的稳定区域,并表明它是圆盘 1+hλ<1|1 + h\lambda| < 1

  28. Ex. 98.28ChallengeAnswer key

    应用 RK4,h=0.1h = 0.1,求 y=yy' = yy(0)=1y(0) = 1。将误差与欧拉比较,并确认 RK4 是四阶的。

来源

  • Lebl, Jiří. Notes on Diffy Qs: Differential Equations for Engineers. 版本 6.4。CC-BY-SA。jirka.org/diffyqs — §1.7 涵盖欧拉方法和泰勒级数误差分析。
  • UFRGS Reamat. Cálculo Numérico (versão Python). CC-BY-SA。ufrgs.br/reamat/CalculoNumerico — 第8章:欧拉、Heun、RK4、稳定性和误差分析,附葡萄牙语 Python 代码。
  • OpenStax. Calculus Volume 2. CC-BY-NC-SA。openstax.org/details/books/calculus-volume-2 — §4.2:方向场和欧拉方法,含图形解释。

Updated on 2026-05-06 · Author(s): Clube da Matemática

Found an error? Open an issue on GitHub or submit a PR — open source forever.