# 四阶 Runge-Kutta（RK4）数值求解器

用经典四阶 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 几乎一致。

> 标准页面: https://elysiatools.com/zh/tools/runge-kutta-rk4-solver

- **分类:** Math & Numbers

- **关键词:** 龙格库塔, rk4, 四阶龙格库塔, 数值解, 数值积分, 初值问题, 常微分方程, 步长, 微积分

## 概述

四阶 Runge-Kutta（RK4）数值求解器是一款用于计算一阶常微分方程初值问题 dy/dx = f(x, y) 的在线工具。该工具通过在每个步长内计算 k1 至 k4 四个加权斜率，提供具有 O(h⁴) 全局精度的逐步数值解表格、中间斜率明细以及可选的精确解误差比对。

## 输入项

- **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)

## 适用场景

- 解析法难以或无法直接求得一阶常微分方程的精确解时
- 需要验证常微分方程数值算法作业或教学中的逐步递推计算过程时
- 在工程与物理建模中需要评估不同步长对初值问题求解精度的影响时

## 工作原理

- 输入一阶微分方程右端项 f(x, y)、初始条件 (x₀, y₀) 以及求解目标终点 xEnd
- 设置迭代步数 n（自动确定步长 h = (xEnd - x₀)/n）和输出保留的小数位数
- 可选填已知解析解 y(x) 以生成每一步的绝对误差分析列
- 系统通过 RK4 公式计算每一步的 k1、k2、k3、k4 斜率并输出最终估计值与详细迭代数据表

## 使用案例

- 高等数学与数值分析课程中验证常微分方程数值解与手算步骤
- 动力学与传热学中一阶衰减或增长微分模型的离散化数值模拟
- 对比 RK4 数值解与解析解在不同步长下的收敛速度与误差分布

## 常见问题

### RK4 算法的全局误差阶数是多少？

RK4 的局部截断误差为 O(h⁵)，全区间全局截断误差为 O(h⁴)。当步长减半时，理论误差约缩小 16 倍。

### 在表达式中如何输入数学函数与乘法？

乘法必须使用星号 *（例如 2*x*y），支持的内置函数包括 sin、cos、exp、ln、sqrt 等。

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

求解器要求目标 x 必须大于初始值 x₀，计算沿正方向步进。

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

不是必填项。留空时求解器输出常规数值表；填入后会额外生成一列与理论值的绝对误差对比。

### 求解器最大支持设置多少步？

步数 n 支持在 1 到 10000 之间设置，步数越多，单步步长越小，通常计算精度越高。

## 相关工具

- [一阶微分方程求解器（分离变量法）](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)。
- [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。
- [级数收敛性判别器（比值/根值/积分/比较）](https://elysiatools.com/zh/tools/series-convergence-tester): 判别数项级数 Σ aₙ 的收敛性（aₙ 为 n 的表达式）：按序运行项判别法（aₙ → 0?）、比值判别法 L = |aₙ₊₁/aₙ|、根值判别法 ρ = |aₙ|^(1/n)、p-级数比较估计 p = −ln|a(N)|/ln N，以及积分判别法（Simpson 数值积分 + 逐十进位增长比较）；交错级数自动识别并用 Leibniz 判别法分类条件收敛，收敛时还给出和的估计（部分和 + 几何/p 律尾部）。经典例：Σ1/n² 收敛（p≈2，和≈1.6449）；Σ1/n 发散（调和）；Σ0.5ⁿ 收敛；Σcos(πn)/n 条件收敛（和≈−ln2）。
- [偏度分析器](https://elysiatools.com/zh/tools/skewness-analyzer): 分析数据偏度来衡量概率分布的不对称性并识别数据模式
- [卷积积分计算器（数值）](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)。
- [Euler 法数值求解器（一阶 ODE 前向欧拉）](https://elysiatools.com/zh/tools/euler-method-solver): 用显式（前向）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。

## 示例

- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [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 Rust 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-rust): Web Rust 图像处理示例，包括图像读取保存、缩放和格式转换

## 相关内容

- [音频编码与格式转换工具](https://elysiatools.com/zh/hubs/audio-convert): 在一个专题里比较音频格式转换、码率调整、采样率转换、编码切换和导出工具，适合交付与归档工作流。
- [图片格式转换与动画导出工具](https://elysiatools.com/zh/hubs/image-convert): 在一个专题里比较 JPG、PNG、GIF、AVIF、WebP、TIFF、ICO、base64 以及动画导出相关的图片格式转换工具。
- [JSON 交换与格式翻译工具](https://elysiatools.com/zh/hubs/json-convert): 在一个专题里比较 JSON 与 CSV、YAML、TOML、GraphQL、XML、Markdown、Excel、BSON、EDN 等结构化格式之间的转换工具。
- [面向网页与印刷的色彩空间转换工具](https://elysiatools.com/zh/hubs/design-convert): 围绕网页到印刷的色彩空间转换整理的一组工具。
