# Euler 法数值求解器（一阶 ODE 前向欧拉）

用显式（前向）Euler 法求解初值问题 dy/dx = f(x,y)、y(x₀)=y₀：迭代 y_{n+1} = y_n + h·f(x_n, y_n)，逐步给出数值表与最终估计 y(目标)。可选填精确解 y(x) 以显示每步绝对误差，直观呈现一阶方法的 O(h) 全局误差。示例：dy/dx = y、y(0)=1、h=0.1 时 y(1) ≈ 1.1¹⁰ = 2.593742，与 e = 2.718282 相比误差 0.124539。

> 标准页面: https://elysiatools.com/zh/tools/euler-method-solver

- **分类:** Math & Numbers

- **关键词:** 欧拉法, 前向欧拉, 数值解, 数值积分, 常微分方程, 初值问题, 步长, 一阶方法, 近似计算, 微积分

## 概述

Euler 法数值求解器是一款用于计算一阶常微分方程初值问题（ODE IVP）的在线工具。通过显式前向欧拉迭代公式 y_{n+1} = y_n + h·f(x_n, y_n)，该工具可快速生成每一步的数值迭代明细表与目标点近似值，并支持输入解析精确解以直接对比每步绝对误差。

## 输入项

- **dy/dx = f(x, y) 中的 f(x, y)** (text): Right-hand side in terms of x and y (functions: sin, cos, exp, ln, sqrt, …). Write products with *, e.g. x*y.
- **x₀（初始 x）** (number): e.g. 0
- **y₀ = y(x₀)** (number): e.g. 1
- **目标 x** (number): Must be greater than x₀.
- **步数 n** (number): h = (target x − x₀)/n. More steps → smaller error, O(h) globally.
- **精确解 y(x)（可选）** (text): Exact solution in x, used to add an error column. Leave empty to skip.
- **小数位数** (number)

## 适用场景

- 需要对无法求出解析解或解析形式复杂的一阶常微分方程进行数值近似计算时。
- 在数值分析或高等数学教学中，验证前向欧拉法的逐步迭代过程与 O(h) 误差收敛规律时。
- 快速核对常微分方程初值问题的作业答案及特定步长下的离散数据表时。

## 工作原理

- 解析输入的导数表达式 f(x, y)、起始坐标 (x₀, y₀)、目标 x 坐标以及划分的步数 n，计算固定步长 h = (目标 x - x₀) / n。
- 从初始点出发，基于当前斜率 f(x_i, y_i) 执行迭代公式 y_{i+1} = y_i + h·f(x_i, y_i) 推进到下一个网格点。
- 若填入了可选的精确解析解 y(x)，同步计算对应节点的真实值并得出绝对误差 |y_数值 - y_真实|。
- 按照指定的小数保留位数，格式化输出包含步数序号、x 坐标、数值解、斜率及误差分析的完整结果文本。

## 使用案例

- 大学微积分与微分方程课程中，演示前向欧拉法离散逼近连续曲线的过程。
- 工程与物理建模中，对简单的一阶动态系统初值问题进行快速数值估算。
- 对比不同步长（步数）对数值解精度的影响，直观分析一阶数值积分的误差演化。

## 常见问题

### 导数表达式 f(x, y) 支持哪些数学函数？

支持常见数学函数如 sin、cos、exp、ln、sqrt 等，乘法运算请使用星号 *（如 x*y 或 -2*x*y）。

### 目标 x 可以小于初始 x₀ 吗？

不支持，目标 x 必须严格大于起始 x₀。

### 欧拉法的计算误差受哪些因素影响？

显式欧拉法具备 O(h) 的一阶全局截断误差，增加迭代步数 n 可减小步长 h，从而降低数值误差。

### 精确解 y(x) 是必填项吗？

不是必填项。留空时仅输出欧拉数值迭代结果；填写后会自动附带每步的精确值与绝对误差对比。

### 最多可以设置多少计算步数？

步数 n 支持在 1 到 10000 之间任意设置。

## 相关工具

- [卷积积分计算器（数值）](https://elysiatools.com/zh/tools/convolution-integral-calculator): 数值计算两个信号的卷积 (f*g)(t) = ∫ f(τ)g(t−τ)dτ：支持因果模式（两信号在 t<0 时取 0，积分区间 \[max(τmin,0), min(τmax,t)\]，适配拉普拉斯域乘积）与直接窗口模式（在整个 \[τmin, τmax\] 上积分，适配高斯等双边信号），采用复合 Simpson 公式（默认 2000 区间）。经典例：e^(−t)*e^(−2t) = e^(−t)−e^(−2t)，t=1 时为 0.2325；两个高斯卷积仍为高斯：√(π/2)·e^(−t²/2)。
- [数值微分计算器（前向/后向/中心差分）](https://elysiatools.com/zh/tools/numerical-differentiation): 在指定点用三种有限差分近似 f′(x₀)：前向 (f(x₀+h)−f(x₀))/h、后向 (f(x₀−h) 差分) 与中心 (f(x₀+h)−f(x₀−h))/(2h)，另给中心二阶差分 f″。可选填精确导数以显示各方法绝对误差，直观对比 O(h) 与 O(h²) 截断误差。示例：f=x²、x₀=1、h=0.1 时前向 2.1、后向 1.9、中心恰好 2.0。
- [一阶微分方程求解器（分离变量法）](https://elysiatools.com/zh/tools/first-order-ode-solver): 用分离变量法求解 dy/dx = g(x)·h(y)：分离变量、两侧逐项积分得 H(y) = G(x) + C，能反解时给出显式解 y = f(x)。支持单项 h(y)（y、y^n、e^(ky)、ky+m）以及可用部分分式分解的二次多项式（如逻辑斯蒂方程的 y(1−y)）；给定初始条件 y(x₀)=y₀ 时算出常数 C，并检测平衡解。示例：dy/dx = 2x·y → y = e^(x²+C)。
- [蒙特卡洛模拟构建器](https://elysiatools.com/zh/tools/monte-carlo-simulation-builder): 定义输入分布（正态/均匀/对数正态/三角），写出公式，运行上万次模拟，得到输出分布直方图与置信区间。
- [Newton-Raphson 迭代求根计算器](https://elysiatools.com/zh/tools/newton-raphson-root-finder): 用 Newton-Raphson 迭代 x_{k+1} = x_k − f(x_k)/f'(x_k) 求 f(x) = 0 的根：导数可给定解析表达式（留空则用中心差分数值导数），输出逐步迭代表（x_k 与 f(x_k)）、收敛判据（|f| < 容差或 |Δx| < 容差·max(1,|x|)）、迭代次数与最终 |f(root)|。经典例：x²−2 从 x₀=1 出发 4 步收敛到 √2 ≈ 1.4142135624；cos(x)−x 收敛到 Dottie 数 0.7390851332。导数为零、步长发散或超出迭代上限会明确报告。
- [Simpson 辛普森法数值积分器（∫f(x)dx）](https://elysiatools.com/zh/tools/numerical-integration-simpson): 用复合 Simpson 1/3 法计算 ∫ₐᵇ f(x)dx（n 为偶数）：S = h/3·(f(a) + 4Σ奇节点 + 2Σ偶内节点 + f(b))，误差 O(h⁴)，对三次及以下多项式精确。逐节点数值表 + 积分估计 + 可选精确值/误差对比。示例：∫₀¹x²dx 取 n=4 得 0.333333（精确！）；∫₀¹e^(−x²)dx（无初等原函数）取 n=10 得 0.746825。
- [梯形法数值积分器（∫f(x)dx）](https://elysiatools.com/zh/tools/numerical-integration-trapezoid): 用复合梯形法计算 ∫ₐᵇ f(x)dx：T = h/2·(f(a) + 2Σf(xᵢ) + f(b))，逐节点给出数值表、积分估计与可选的精确值/绝对误差对比，误差为 O(h²)（对线性函数精确）。示例：∫₀¹x²dx 取 n=4 得 0.34375，与精确值 1/3 相差 0.010417。
- [四阶 Runge-Kutta（RK4）数值求解器](https://elysiatools.com/zh/tools/runge-kutta-rk4-solver): 用经典四阶 Runge-Kutta（RK4）法求解初值问题 dy/dx = f(x,y)、y(x₀)=y₀：每步计算 k1–k4 四个斜率并加权更新 y_{n+1} = y_n + h/6·(k1+2k2+2k3+k4)，全局误差 O(h⁴)——步长减半误差约缩小 16 倍。输出逐步数值表、前几步的 k1–k4 明细与最终估计；可选填精确解 y(x) 显示误差列。示例：dy/dx = y、y(0)=1、h=0.1 时 y(1) ≈ 2.718282，与 e 几乎一致。

## 示例

- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换
- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Web Rust 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-rust): Web Rust 图像处理示例，包括图像读取保存、缩放和格式转换
