In one dimension, if the spacing between points in the grid is h , then the five-point stencil of a point x in the grid is
{
x
−
2
h
,
x
−
h
,
x
,
x
+
h
,
x
+
2
h
}
.
{\displaystyle \{x-2h,x-h,x,x+h,x+2h\}.}
The first derivative of a function f of a real variable at a point x can be approximated using a five-point stencil as:[ 1]
f
′
(
x
)
≈
−
f
(
x
+
2
h
)
+
8
f
(
x
+
h
)
−
8
f
(
x
−
h
)
+
f
(
x
−
2
h
)
12
h
{\displaystyle f'(x)\approx {\frac {-f(x+2h)+8f(x+h)-8f(x-h)+f(x-2h)}{12h}}}
The center point f (x ) itself is not involved, only the four neighboring points.
This formula can be obtained by writing out the four Taylor series of f (x ± h ) and f (x ± 2h ) up to terms of h 3 (or up to terms of h 5 to get an error estimation as well) and solving this system of four equations to get f ′(x ). Actually, we have at points x + h and x − h :
f
(
x
±
h
)
=
f
(
x
)
±
h
f
′
(
x
)
+
h
2
2
f
″
(
x
)
±
h
3
6
f
(
3
)
(
x
)
+
O
1
±
(
h
4
)
.
(
E
1
±
)
.
{\displaystyle f(x\pm h)=f(x)\pm hf'(x)+{\frac {h^{2}}{2}}f''(x)\pm {\frac {h^{3}}{6}}f^{(3)}(x)+O_{1\pm }(h^{4}).\qquad (E_{1\pm }).}
Evaluating
(
E
1
+
)
−
(
E
1
−
)
{\displaystyle (E_{1+})-(E_{1-})}
gives us
f
(
x
+
h
)
−
f
(
x
−
h
)
=
2
h
f
′
(
x
)
+
h
3
3
f
(
3
)
(
x
)
+
O
1
(
h
4
)
.
(
E
1
)
.
{\displaystyle f(x+h)-f(x-h)=2hf'(x)+{\frac {h^{3}}{3}}f^{(3)}(x)+O_{1}(h^{4}).\qquad (E_{1}).}
The residual term O1 (h 4 ) should be of the order of h 5 instead of h 4 because if the terms of h 4 had been written out in (E 1+ ) and (E 1− ), it can be seen that they would have canceled each other out by f (x + h ) − f (x − h ) . But for this calculation, it is left like that since the order of error estimation is not treated here (cf below).
Similarly, we have
f
(
x
±
2
h
)
=
f
(
x
)
±
2
h
f
′
(
x
)
+
4
h
2
2
!
f
″
(
x
)
±
8
h
3
3
!
f
(
3
)
(
x
)
+
O
2
±
(
h
4
)
.
(
E
2
±
)
{\displaystyle f(x\pm 2h)=f(x)\pm 2hf'(x)+{\frac {4h^{2}}{2!}}f''(x)\pm {\frac {8h^{3}}{3!}}f^{(3)}(x)+O_{2\pm }(h^{4}).\qquad (E_{2\pm })}
and
(
E
2
+
)
−
(
E
2
−
)
{\displaystyle (E_{2+})-(E_{2-})}
gives us
f
(
x
+
2
h
)
−
f
(
x
−
2
h
)
=
4
h
f
′
(
x
)
+
8
h
3
3
f
(
3
)
(
x
)
+
O
2
(
h
4
)
.
(
E
2
)
.
{\displaystyle f(x+2h)-f(x-2h)=4hf'(x)+{\frac {8h^{3}}{3}}f^{(3)}(x)+O_{2}(h^{4}).\qquad (E_{2}).}
In order to eliminate the terms of ƒ (3) (x ), calculate 8 × (E 1 ) − (E 2 )
8
f
(
x
+
h
)
−
8
f
(
x
−
h
)
−
f
(
x
+
2
h
)
+
f
(
x
−
2
h
)
=
12
h
f
′
(
x
)
+
O
(
h
4
)
{\displaystyle 8f(x+h)-8f(x-h)-f(x+2h)+f(x-2h)=12hf'(x)+O(h^{4})}
thus giving the formula as above. Note: the coefficients of f in this formula, (8, -8,-1,1), represent a specific example of the more general Savitzky–Golay filter .
The error in this approximation is of order h 4 . That can be seen from the expansion[ 2]
−
f
(
x
+
2
h
)
+
8
f
(
x
+
h
)
−
8
f
(
x
−
h
)
+
f
(
x
−
2
h
)
12
h
=
f
′
(
x
)
−
1
30
f
(
5
)
(
x
)
h
4
+
O
(
h
5
)
{\displaystyle {\frac {-f(x+2h)+8f(x+h)-8f(x-h)+f(x-2h)}{12h}}=f'(x)-{\frac {1}{30}}f^{(5)}(x)h^{4}+O(h^{5})}
which can be obtained by expanding the left-hand side in a Taylor series . Alternatively, apply Richardson extrapolation to the central difference approximation to
f
′
(
x
)
{\displaystyle f'(x)}
on grids with spacing 2h and h .
1D higher-order derivatives
edit
The centered difference formulas for five-point stencils approximating second, third, and fourth derivatives are
f
″
(
x
)
≈
−
f
(
x
+
2
h
)
+
16
f
(
x
+
h
)
−
30
f
(
x
)
+
16
f
(
x
−
h
)
−
f
(
x
−
2
h
)
12
h
2
f
(
3
)
(
x
)
≈
f
(
x
+
2
h
)
−
2
f
(
x
+
h
)
+
2
f
(
x
−
h
)
−
f
(
x
−
2
h
)
2
h
3
f
(
4
)
(
x
)
≈
f
(
x
+
2
h
)
−
4
f
(
x
+
h
)
+
6
f
(
x
)
−
4
f
(
x
−
h
)
+
f
(
x
−
2
h
)
h
4
{\displaystyle {\begin{aligned}f''(x)&\approx {\frac {-f(x+2h)+16f(x+h)-30f(x)+16f(x-h)-f(x-2h)}{12h^{2}}}\\[1ex]f^{(3)}(x)&\approx {\frac {f(x+2h)-2f(x+h)+2f(x-h)-f(x-2h)}{2h^{3}}}\\[1ex]f^{(4)}(x)&\approx {\frac {f(x+2h)-4f(x+h)+6f(x)-4f(x-h)+f(x-2h)}{h^{4}}}\end{aligned}}}
The errors in these approximations are O (h 4 ), O (h 2 ) and O (h 2 ) respectively.[ 2]
Relationship to Lagrange interpolating polynomials
edit
As an alternative to deriving the finite difference weights from the Taylor series, they may be obtained by differentiating the Lagrange polynomials
ℓ
j
(
ξ
)
=
∏
i
=
0
,
i
≠
j
k
ξ
−
x
i
x
j
−
x
i
,
{\displaystyle \ell _{j}(\xi )=\prod _{i=0,\,i\neq j}^{k}{\frac {\xi -x_{i}}{x_{j}-x_{i}}},}
where the interpolation points are
x
0
=
x
−
2
h
,
x
1
=
x
−
h
,
x
2
=
x
,
x
3
=
x
+
h
,
x
4
=
x
+
2
h
.
{\displaystyle x_{0}=x-2h,\quad x_{1}=x-h,\quad x_{2}=x,\quad x_{3}=x+h,\quad x_{4}=x+2h.}
Then, the quartic polynomial
p
4
(
x
)
{\displaystyle p_{4}(x)}
interpolating f (x ) at these five points is
p
4
(
x
)
=
∑
j
=
0
4
f
(
x
j
)
ℓ
j
(
x
)
{\displaystyle p_{4}(x)=\sum _{j=0}^{4}f(x_{j})\ell _{j}(x)}
and its derivative is
p
4
′
(
x
)
=
∑
j
=
0
4
f
(
x
j
)
ℓ
j
′
(
x
)
.
{\displaystyle p_{4}'(x)=\sum _{j=0}^{4}f(x_{j})\ell '_{j}(x).}
So, the finite difference approximation of f ′(x ) at the middle point x = x 2 is
f
′
(
x
2
)
=
ℓ
0
′
(
x
2
)
f
(
x
0
)
+
ℓ
1
′
(
x
2
)
f
(
x
1
)
+
ℓ
2
′
(
x
2
)
f
(
x
2
)
+
ℓ
3
′
(
x
2
)
f
(
x
3
)
+
ℓ
4
′
(
x
2
)
f
(
x
4
)
+
O
(
h
4
)
{\displaystyle f'(x_{2})=\ell _{0}'(x_{2})f(x_{0})+\ell _{1}'(x_{2})f(x_{1})+\ell _{2}'(x_{2})f(x_{2})+\ell _{3}'(x_{2})f(x_{3})+\ell _{4}'(x_{2})f(x_{4})+O(h^{4})}
Evaluating the derivatives of the five Lagrange polynomials at x = x 2 gives the same weights as above. This method can be more flexible as the extension to a non-uniform grid is quite straightforward.
In two dimensions, if for example the size of the squares in the grid is h by h , the five point stencil of a point (x , y ) in the grid is
{
(
x
−
h
,
y
)
,
(
x
,
y
)
,
(
x
+
h
,
y
)
,
(
x
,
y
−
h
)
,
(
x
,
y
+
h
)
}
,
{\displaystyle \{(x-h,y),(x,y),(x+h,y),(x,y-h),(x,y+h)\},}
forming a pattern that is also called a quincunx . This stencil is often used to approximate the Laplacian of a function of two variables:
∇
2
f
(
x
,
y
)
≈
f
(
x
−
h
,
y
)
+
f
(
x
+
h
,
y
)
+
f
(
x
,
y
−
h
)
+
f
(
x
,
y
+
h
)
−
4
f
(
x
,
y
)
h
2
.
{\displaystyle \nabla ^{2}f(x,y)\approx {\frac {f(x-h,y)+f(x+h,y)+f(x,y-h)+f(x,y+h)-4f(x,y)}{h^{2}}}.}
The error in this approximation is O (h 2 ),[ 3] which may be explained as follows:
From the 3 point stencils for the second derivative of a function with respect to x and y:
∂
2
f
∂
x
2
=
f
(
x
+
Δ
x
,
y
)
+
f
(
x
−
Δ
x
,
y
)
−
2
f
(
x
,
y
)
Δ
x
2
−
2
f
(
4
)
(
x
,
y
)
4
!
Δ
x
2
+
⋯
∂
2
f
∂
y
2
=
f
(
x
,
y
+
Δ
y
)
+
f
(
x
,
y
−
Δ
y
)
−
2
f
(
x
,
y
)
Δ
y
2
−
2
f
(
4
)
(
x
,
y
)
4
!
Δ
y
2
+
⋯
{\displaystyle {\begin{aligned}{\frac {\partial ^{2}f}{\partial x^{2}}}&={\frac {f\left(x+\Delta x,y\right)+f\left(x-\Delta x,y\right)-2f(x,y)}{\Delta x^{2}}}-2{\frac {f^{(4)}(x,y)}{4!}}\Delta x^{2}+\cdots \\[1ex]{\frac {\partial ^{2}f}{\partial y^{2}}}&={\frac {f\left(x,y+\Delta y\right)+f\left(x,y-\Delta y\right)-2f(x,y)}{\Delta y^{2}}}-2{\frac {f^{(4)}(x,y)}{4!}}\Delta y^{2}+\cdots \end{aligned}}}
If we assume
Δ
x
=
Δ
y
=
h
{\displaystyle \Delta x=\Delta y=h}
:
∇
2
f
=
∂
2
f
∂
x
2
+
∂
2
f
∂
y
2
=
f
(
x
+
h
,
y
)
+
f
(
x
−
h
,
y
)
+
f
(
x
,
y
+
h
)
+
f
(
x
,
y
−
h
)
−
4
f
(
x
,
y
)
h
2
−
4
f
(
4
)
(
x
,
y
)
4
!
h
2
+
⋯
=
f
(
x
+
h
,
y
)
+
f
(
x
−
h
,
y
)
+
f
(
x
,
y
+
h
)
+
f
(
x
,
y
−
h
)
−
4
f
(
x
,
y
)
h
2
+
O
(
h
2
)
{\displaystyle {\begin{aligned}\nabla ^{2}f&={\frac {\partial ^{2}f}{\partial x^{2}}}+{\frac {\partial ^{2}f}{\partial y^{2}}}\\[1ex]&={\frac {f\left(x+h,y\right)+f\left(x-h,y\right)+f\left(x,y+h\right)+f\left(x,y-h\right)-4f(x,y)}{h^{2}}}-4{\frac {f^{(4)}(x,y)}{4!}}h^{2}+\cdots \\[1ex]&={\frac {f\left(x+h,y\right)+f\left(x-h,y\right)+f\left(x,y+h\right)+f\left(x,y-h\right)-4f(x,y)}{h^{2}}}+O\left(h^{2}\right)\\\end{aligned}}}