# 数值微分计算器（前向/后向/中心差分）

在指定点用三种有限差分近似 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/numerical-differentiation

- **分类:** Math & Numbers

- **关键词:** 数值微分, 有限差分, 前向差分, 后向差分, 中心差分, 导数计算器, 二阶导数, 步长, 微积分, 数值方法

## 概述

数值微分计算器利用有限差分法快速估算函数在指定点的一阶与二阶导数。工具同步输出前向差分、后向差分、中心差分以及中心二阶差分的数值结果，并支持输入精确导数公式进行绝对误差对比，直观展示一阶精度 O(h) 与二阶精度 O(h²) 的截断误差差异。

## 输入项

- **f(x)** (text): Function of x (functions: sin, cos, exp, ln, sqrt, …).
- **求导点 x₀** (number): e.g. 1
- **步长 h** (number): Difference step, 0 < h ≤ 1. Central differences: truncation O(h²); too small an h amplifies round-off.
- **精确导数 f′(x)（可选）** (text): Exact derivative in x; the tool reports the absolute error of each method. Leave empty to skip.
- **小数位数** (number)

## 适用场景

- 解析求导过于复杂或难以推导闭式解，需要快速获取某点导数数值近似时。
- 学习或讲授数值分析课程，需要对比不同有限差分格式及其截断误差表现时。
- 验证算法或仿真模型中数值梯度与二阶导数实现的正确性与收敛阶时。

## 工作原理

- 输入目标函数表达式 f(x)、待求导点 x₀ 以及差分步长 h（0 < h ≤ 1）。
- 系统分别在 x₀、x₀+h 和 x₀-h 处求值，并代入前向差分、后向差分、中心差分公式以及中心二阶差分公式完成计算。
- 若填入了可选的精确导数公式 f′(x)，工具会自动计算理论真值，并列出三种差分近似方法的绝对误差。

## 使用案例

- 数值分析实验与课后作业检验，观察步长 h 减小时差分误差的衰减速率。
- 科学计算与物理建模中，快速评估非线性系统在特定平衡点处的切线斜率与曲率。
- 数值优化算法开发时，为无导数目标函数构造局部的差分梯度参考值。

## 常见问题

### 支持在函数中输入哪些数学运算符与常用函数？

支持常见的代数运算（如 +、-、*、/、^）以及标准数学函数，例如 sin、cos、exp、ln、sqrt 等。

### 为什么中心差分的计算误差通常比前向或后向差分更小？

前向差分与后向差分的截断误差为 O(h)，而中心差分通过对称采样抵消了一阶误差项，截断误差达到 O(h²)，因此在步长 h 较小时精度更高。

### 步长 h 可以设置得任意小吗？

不可以。步长过大会增大公式的截断误差，而步长过小（如接近浮点精度极限）则会因浮点数相减产生显著的舍入误差放大。

### 如果不填写精确导数 f′(x) 会影响计算吗？

不会。精确导数仅用于计算各方法的绝对误差，留空时工具仍会正常输出各差分公式的近似结果及二阶差分。

### 工具输出的二阶导数是采用哪种方法计算的？

工具采用标准中心二阶差分公式 (f(x₀+h) - 2f(x₀) + f(x₀-h)) / h² 来估算二阶导数 f″(x₀)。

## 相关工具

- [卷积积分计算器（数值）](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。
- [四分位距计算器](https://elysiatools.com/zh/tools/interquartile-range-calculator): 计算 Q1、Q3、IQR 和可选的 1.5 x IQR 异常值围栏
- [四分位数计算器](https://elysiatools.com/zh/tools/quartile-calculator): 计算 Q1、中位数、Q3、四分位距和可选异常值围栏
- [一阶微分方程求解器（分离变量法）](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。

## 示例

- [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 图像处理示例，包括图像读取保存、缩放和格式转换
