欧拉法计算器

欧拉方法近似计算

输入方程和初始点

对于 dy/dx = f(x,y),只输入右侧的 f(x,y)。乘法用 *,幂运算用 ^。支持函数:sin、cos、tan、exp、log、sqrt、abs。函数参数须加括号;表达式中的小数点用英文句点。

近似求解 dy/dx = f(x,y) 形式的一阶初值问题,其中已知初始 x 处的 y。输入方程右侧、初始点、正数步长和目标 x。计算器沿目标方向执行前向欧拉法,并显示每一步的中间结果。最终数值是近似值,并非精确解。

如何使用欧拉法

  1. 1

    输入微分方程

    如果方程为 `dy/dx = x + y`,只需将 `x + y` 输入为 f(x,y),再填写已知的初始 x、y 坐标。

  2. 2

    设置计算区间

    输入正数步长 h 和目标 x。目标可以在初始 x 的右侧或左侧。

  3. 3

    查看近似结果

    查看目标 x 处的 y 估计值,以及最多 200 步的 x、y、斜率和实际步长计算表。

计算器具体算什么?

从初始点 (x₀, y₀) 出发,前向欧拉法反复使用 yₙ₊₁ = yₙ + hₙ f(xₙ, yₙ) 和 xₙ₊₁ = xₙ + hₙ 更新数值。每一步的斜率都在该步的起点求得。输入的正数步长是单步长度的上限;若目标在初始点左侧,计算器会按前进方向给实际步长加负号。若剩余距离短于指定步长,则缩短最后一步,让结果落在准确的目标 x 上。

以 dy/dx = x + y、y(0) = 1、h = 0.1、目标 x = 0.3 为例:

步序 x y 的近似值 下一步使用的斜率
0 0 1 1
1 0.1 1.1 1.2
2 0.2 1.22 1.42
3 0.3 1.362 结束

计算器中的表把更新时使用的斜率放在更新后的行,标为“上一步的斜率”。因此斜率 1.42 会出现在第 3 步那一行。此例的精确解为 y = 2eˣ - x - 1,在 x = 0.3 时约为 1.3997。欧拉法所得的 1.362 较低,因为每次更新都沿该步起点的切线前进。对较平滑的问题,减小 h 通常能降低误差,但误差也取决于方程和区间。计算器不估计误差上界。

乘法必须明确写成 2*x、x*y 或 2*sin(x)。表达式支持 x、y、括号、+、-、*、/、^、常量 pi 和 e,以及函数 sin、cos、tan、exp、log、sqrt、abs。表达式内的小数须用英文句点,例如 0.5*y。单独的数值输入框可以使用当前语言设置的小数点符号或不会引起歧义的英文句点,但不能使用千位分隔符。

关于欧拉法及其递推公式,可参阅 OpenStax《微积分》第 2 卷。LibreTexts 数值方法章节解释了步长如何影响近似误差。

常见问题

请输入正数步长。如果目标 x 小于初始 x,计算器会自动向 x 减小的方向推进。表格会显示实际使用的带符号步长。

最后一步会缩短到剩余距离。例如,从 x = 0 以 h = 0.4 走到 x = 1,实际步长为 0.4、0.4、0.2,终点恰好是 x = 1。

不是。前向欧拉法沿局部切线的斜率推进,近似误差会逐步累积。显示的是目标 x 处的估计值,并非符号形式的精确解,也不提供误差保证。

本工具处理已知一个初始 y 值、能够明确写为 dy/dx = f(x,y) 的一阶方程。不支持高阶方程、方程组、需要隐式求解的方程,或沿指定路径存在无定义点的方程。

这个限制让表格便于查看,也避免浏览器进行过大的计算。如果所选区间需要超过 200 步,请增大 h 或将目标 x 设得更近。

可以。下载的 CSV 包含未经舍入的 x、y 数值、走到各行时使用的斜率,以及该行实际使用的带符号步长。屏幕上的表格会将数值舍入,以便阅读。

计算在浏览器中完成。分步流程只把输入值保存在此浏览器标签页,网址中是随机生成的任务 ID,不包含方程或数值。

相关工具

此工具还提供其他语言版本