数值导数计算器

The first or second derivative of any function f(x) at a point, to about 20 significant digits by Richardson extrapolation, with the tangent line drawn.

更新于 已验证的示例:6

Use x as the variable, e.g. x^3 - 2x, exp(x), ln(x). Trig functions use radians here.
更多选项
The chart shows x₀ ± this much
试一试
导数
导数: 2.223244275484
最大小数位数:12;取最近值,等距时远离零
f(x₀)
0.841470984808
Tangent line
y = 2.223244x − 1.381773
Estimated error
9.6 × 10⁻²³

At x = 1 the slope of f is 2.2232443: near that point, f rises by about 2.223 × h when x moves by a small step h.

f and its tangent at x = 1

024-10123xy(1, 0.841471)
f(x)Tangent line
Richardson table (central quotient and best estimate) 行数:6
hDifference quotientBest estimate so far
0.12.219330544382.21933054438
0.052.222266131452.22324466047
0.0252.222999757542.22324427552
0.01252.223183147132.22324427548
0.006252.223228993472.22324427548
0.0031252.223240454982.22324427548
计算方法 S
  1. Central difference quotient

    D(h)=f(x0+h)−f(x0−h)2h,D(0.1)=2.21933054438038D(h) = \frac{f(x_0 + h) - f(x_0 - h)}{2h},\qquad D(0.1) = 2.21933054438038

    Its error has only even powers of h, which Richardson extrapolation removes one at a time.

  2. Richardson extrapolation

    Ti,j=4j Ti,j−1−Ti−1,j−14j−1,hi=h02i  ⇒  f′(1)≈2.223244275483932730705941T_{i,j} = \frac{4^{j}\,T_{i,j-1} - T_{i-1,j-1}}{4^{j} - 1},\quad h_i = \frac{h_0}{2^{i}} \;\Rightarrow\; f'(1) \approx 2.223244275483932730705941

    Halved h 5 times from h₀ = 0.1; the estimated error is 9.6 × 10⁻²³.

  3. Both sides agree

    left 2.22324427548393,right 2.22324427548393\text{left } 2.22324427548393,\quad \text{right } 2.22324427548393

    One-sided quotients from each side converge to the same value, so f is smooth enough here for the derivative to exist.

  4. Tangent line

    y=f(x0)+f′(x0)(x−x0)=0.841470984807897+2.22324427548393 (x−1)y = f(x_0) + f'(x_0)(x - x_0) = 0.841470984807897 + 2.22324427548393\,(x - 1)

    y = 2.223244x − 1.381773

关于数值导数计算器

The derivative f′(x₀) is the slope of f at x₀, the limit of the central difference quotient [f(x₀ + h) − f(x₀ − h)]/2h as h shrinks to 0. The calculator evaluates that quotient for h = 0.1 × max(1, |x₀|) and repeated halvings, then combines the results by Richardson extrapolation (Ridders' method, Numerical Recipes §5.7), which cancels the h², h⁴, … error terms one at a time and reaches about 20 significant digits. The second derivative uses [f(x₀ + h) − 2f(x₀) + f(x₀ − h)]/h² the same way.

Use it to check a derivative worked out by hand, to find a rate of change where no formula is convenient, or to get a tangent line. The default, x² sin x at x = 1, has derivative 2 sin 1 + cos 1 ≈ 2.2232443 and tangent line y = 2.223244x − 1.381773.

Trig functions use radians. When the slopes from the left and right disagree, f has a corner there and the calculator reports that instead of a number.

计算示例

d/dx x³ at x = 2

Function f(x)
x^3
At x =
2
导数
First f′(x)
导数
12
f(x₀)
8
Tangent line
y = 12x − 16

核验来源:3x² = 12 at x = 2; tangent 8 + 12(x − 2)

d/dx sin x at 0 (radians)

Function f(x)
sin(x)
At x =
0
导数
First f′(x)
导数
1

核验来源:cos 0 = 1

d/dx x²·sin x at 1

Function f(x)
x^2 * sin(x)
At x =
1
导数
First f′(x)
导数
2.223244275484

核验来源:2 sin 1 + cos 1 with sin/cos by Taylor series in Python decimal at 70 digits (hp.py)

d/dx eˣ at 1

Function f(x)
exp(x)
At x =
1
导数
First f′(x)
导数
2.718281828459

核验来源:e (Python Decimal(1).exp())

常见问题

What is a derivative?

The derivative of f at x₀ is the slope of its graph there: the limit of [f(x₀ + h) − f(x₀)]/h as h approaches 0. For f(x) = x³ at x = 2 the slope is 3 × 2² = 12, so near x = 2 the function rises about 12 units for each unit of x. The line y = 12x − 16, which touches the curve at (2, 8), is the tangent there.

How do you find a derivative numerically?

Evaluate a difference quotient with a small step h. The central quotient [f(x + h) − f(x − h)]/2h beats the one-sided [f(x + h) − f(x)]/h because its error shrinks like h² rather than h: for sin x at 0 with h = 0.1 it gives 0.998334 against the exact 1. A tiny h eventually fails through rounding error, so this calculator extrapolates from moderate steps instead.

What does the second derivative tell you?

The second derivative f″(x) is the rate of change of the slope, so it measures curvature: positive where the graph bends upward, negative where it bends downward. For ln x, f″(x) = −1/x², so f″(2) = −0.25. Numerically it comes from [f(x + h) − 2f(x) + f(x − h)]/h². Where f″ changes sign the graph has an inflection point.

How do you find the equation of a tangent line?

Use y = f(x₀) + f′(x₀)(x − x₀). For f(x) = x³ at x₀ = 2, f(2) = 8 and f′(2) = 12, so y = 8 + 12(x − 2) = 12x − 16. The tangent is also the best straight-line approximation to f near x₀: it estimates 2.1³ as 8 + 12 × 0.1 = 9.2, against the exact 9.261.

Why does a function have no derivative at some points?

The slopes from the left and the right must agree. |x| at 0 has slope −1 from the left and +1 from the right, a corner, so it has no derivative there, even though the central quotient averages to 0. A jump, or a vertical tangent such as the cube root of x at 0, also rules one out. The calculator compares one-sided quotients and reports the corner.

“数值导数计算器”有多准确?

准确性取决于输入值和方法的假设。十进制运算使用50位有效数字,但估算、数值方法和源数据的精度可能较低;显示时的舍入并不能消除这些限制。 已按独立来源核验的计算示例:6。 例如,“d/dx x³ at x = 2”根据3x² = 12 at x = 2; tangent 8 + 12(x − 2)进行核验。

这种方法出自哪里?

Press et al., Numerical Recipes (3rd ed.) §5.7 — numerical derivatives (Ridders' method); Wolfram MathWorld — Richardson Extrapolation.

关于此计算器

f′(x)=lim⁡h→0f(x+h)−f(x−h)2hf′′(x)=lim⁡h→0δ2fh2δ2f=f(x+h)−2f(x)+f(x−h)\begin{gathered} f'(x) = \lim_{h \to 0}\frac{f(x+h) - f(x-h)}{2h} \\[10pt] f''(x) = \lim_{h \to 0}\frac{\delta^2 f}{h^2} \\[4pt] \delta^2 f = f(x+h) - 2f(x) + f(x-h) \end{gathered}

来源

  1. Press et al., Numerical Recipes (3rd ed.) §5.7 — numerical derivatives (Ridders' method)
  2. Wolfram MathWorld — Richardson Extrapolation

已对照来源验证

此计算器包含 6 个已解示例,答案来自独立来源。这些示例会在测试套件中运行,你也可以在此运行验证。

相关计算器