泰勒展开是希望基于某区间一点
x
0
x_0
x0展开,用一组简单的幂函数
x
a
x^a
xa来近似一个复杂的函数
f
(
x
)
f(x)
f(x)在该区间的局部。公式如下:
f
(
x
)
=
a
0
+
a
1
(
x
−
x
0
)
+
a
2
(
x
−
x
0
)
2
+
a
3
(
x
−
x
0
)
3
+
.
.
.
f(x) = a_0 + a_1(x - x_0) + a_2(x - x_0)^2 + a_3(x - x_0)^3 + ...
f(x)=a0+a1(x−x0)+a2(x−x0)2+a3(x−x0)3+...
实际效果如下图所示。蓝色的线条是
s
i
n
sin
sin函数,黄色线条是
s
i
n
sin
sin函数不同阶(即上式右侧保留的项数)在
x
=
0
x=0
x=0处的泰勒展开,随着阶数升高(保留其泰勒展开的更多项),其泰勒级数在更广的区间上近似
s
i
n
sin
sin函数。
泰勒展开的应用场景例如:我们很难直接求得
s
i
n
(
1
)
sin(1)
sin(1)的值,但我们可以通过
s
i
n
sin
sin的泰勒级数求得
s
i
n
(
1
)
sin(1)
sin(1)的近似值,且展开项越多,精度越高。
s
i
n
(
1
)
=
0.8414709848078965
t
a
y
l
o
r
_
e
x
p
a
n
s
i
o
n
_
o
f
_
s
i
n
_
w
i
t
h
_
o
r
d
e
r
_
3
(
1
)
=
0.8333333333333334
t
a
y
l
o
r
_
e
x
p
a
n
s
i
o
n
_
o
f
_
s
i
n
_
w
i
t
h
_
o
r
d
e
r
_
5
(
1
)
=
0.8416666666666667
t
a
y
l
o
r
_
e
x
p
a
n
s
i
o
n
_
o
f
_
s
i
n
_
w
i
t
h
_
o
r
d
e
r
_
7
(
1
)
=
0.841468253968254
sin(1) = 0.8414709848078965 \\ taylor\_expansion\_of\_sin\_with\_order\_3(1) = 0.8333333333333334 \\ taylor\_expansion\_of\_sin\_with\_order\_5(1) = 0.8416666666666667 \\ taylor\_expansion\_of\_sin\_with\_order\_7(1) = 0.841468253968254
sin(1)=0.8414709848078965taylor_expansion_of_sin_with_order_3(1)=0.8333333333333334taylor_expansion_of_sin_with_order_5(1)=0.8416666666666667taylor_expansion_of_sin_with_order_7(1)=0.841468253968254
现在我们来求得上式中各项的系数。为求
a
0
a_0
a0,令
x
=
x
0
x=x_0
x=x0:
f
(
x
0
)
=
a
0
+
a
1
(
x
0
−
x
0
)
+
a
2
(
x
0
−
x
0
)
2
+
a
3
(
x
0
−
x
0
)
3
+
.
.
.
f(x_0) = a_0 + a_1(x_0 - x_0) + a_2(x_0 - x_0)^2 + a_3(x_0 - x_0)^3 + ...
f(x0)=a0+a1(x0−x0)+a2(x0−x0)2+a3(x0−x0)3+...
因此,
a
0
=
f
(
x
0
)
a_0=f(x_0)
a0=f(x0)。为求
a
1
a_1
a1,我们先对原始左右求导:
d
d
x
f
(
x
)
=
a
1
+
2
a
2
(
x
−
x
0
)
+
3
a
3
(
x
−
x
0
)
2
+
.
.
.
\frac{d}{dx}f(x) = a_1 + 2a_2(x - x_0) + 3a_3(x - x_0)^2 + ...
dxdf(x)=a1+2a2(x−x0)+3a3(x−x0)2+...
再令
x
=
x
0
x=x_0
x=x0:
d
d
x
f
(
x
0
)
=
a
1
+
2
a
2
(
x
0
−
x
0
)
+
3
a
3
(
x
0
−
x
0
)
2
+
.
.
.
\frac{d}{dx}f(x_0) = a_1 + 2a_2(x_0 - x_0) + 3a_3(x_0 - x_0)^2 + ...
dxdf(x0)=a1+2a2(x0−x0)+3a3(x0−x0)2+...
因此,
a
1
=
d
f
d
x
∣
x
=
x
0
a_1 = \frac{df}{dx}\Big|_{x=x_0}
a1=dxdf∣∣∣x=x0。为求
a
2
a_2
a2,我们先对原始左右求二阶导:
d
2
d
x
2
f
(
x
)
=
2
a
2
+
3
a
3
(
x
−
x
0
)
+
4
∗
3
a
4
(
x
−
x
0
)
2
+
.
.
.
\frac{d^2}{dx^2}f(x) = 2a_2 + 3a_3(x - x_0) + 4*3a_4(x - x_0)^2 + ...
dx2d2f(x)=2a2+3a3(x−x0)+4∗3a4(x−x0)2+...
再令
x
=
x
0
x=x_0
x=x0:
d
2
d
x
2
f
(
x
0
)
=
2
a
2
+
3
a
3
(
x
0
−
x
0
)
+
4
∗
3
a
4
(
x
0
−
x
0
)
2
+
.
.
.
\frac{d^2}{dx^2}f(x_0) = 2a_2 + 3a_3(x_0 - x_0) + 4*3a_4(x_0 - x_0)^2 + ...
dx2d2f(x0)=2a2+3a3(x0−x0)+4∗3a4(x0−x0)2+...
因此,
a
2
=
1
2
d
2
f
d
x
2
∣
x
=
x
0
a_2 = \frac{1}{2}\frac{d^2f}{dx^2}\Big|_{x=x_0}
a2=21dx2d2f∣∣∣x=x0。如此往复,我们得到
a
k
a_k
ak的计算通式:
a
k
=
1
k
!
d
k
f
d
x
k
∣
x
=
x
0
a_k = \frac{1}{k!}\frac{d^kf}{dx^k}\Big|_{x=x_0}
ak=k!1dxkdkf∣∣∣x=x0
最后,我们得到函数
f
(
x
)
f(x)
f(x)在
x
=
x
0
x=x_0
x=x0处展开的泰勒级数:
f
(
x
)
=
f
(
x
0
)
+
f
′
(
x
0
)
Δ
x
+
1
2
!
f
′
′
(
x
0
)
(
Δ
x
)
2
+
1
3
!
f
′
′
′
(
x
0
)
(
Δ
x
)
3
+
.
.
.
f(x) = f(x_0) + f^{\prime}(x_0)\Delta{x} + \frac{1}{2!}f^{\prime \prime}(x_0)(\Delta{x})^2 + \frac{1}{3!}f^{\prime \prime \prime}(x_0)(\Delta{x})^3 + ...
f(x)=f(x0)+f′(x0)Δx+2!1f′′(x0)(Δx)2+3!1f′′′(x0)(Δx)3+...
其中,
Δ
x
=
x
−
x
0
\Delta{x} = x-x_0
Δx=x−x0。
对于
f
(
x
±
h
)
f(x\pm h)
f(x±h)的泰勒展开,我们只需要将上式中的
x
x
x替换为
x
±
h
x \pm h
x±h,
x
0
x_0
x0替换为
x
x
x:
f
(
x
±
h
)
=
f
(
x
)
+
f
′
(
x
)
(
±
h
)
+
1
2
!
f
′
′
(
x
)
(
±
h
)
2
+
1
3
!
f
′
′
′
(
x
)
(
±
h
)
3
+
.
.
.
f(x \pm h) = f(x) + f^{\prime}(x)(\pm h) + \frac{1}{2!}f^{\prime \prime}(x)(\pm h)^2 + \frac{1}{3!}f^{\prime \prime \prime}(x)(\pm h)^3 + ...
f(x±h)=f(x)+f′(x)(±h)+2!1f′′(x)(±h)2+3!1f′′′(x)(±h)3+...
二元函数 f ( x , y ) f(x, y) f(x,y)的泰勒展开
对于
f
(
x
,
y
)
f(x, y)
f(x,y)在
(
x
0
,
y
0
)
(x_0, y_0)
(x0,y0)处的泰勒展开为:
f
(
x
,
y
)
=
f
(
x
0
,
y
0
)
+
f
x
′
(
x
0
,
y
0
)
(
x
−
x
0
)
+
f
y
′
(
x
0
,
y
0
)
(
y
−
y
0
)
+
1
2
!
f
x
′
′
(
x
0
,
y
0
)
(
x
−
x
0
)
2
+
1
2
!
f
y
′
′
(
x
0
,
y
0
)
(
y
−
y
0
)
2
+
1
2
!
f
x
y
′
′
(
x
0
,
y
0
)
(
x
−
x
0
)
(
y
−
y
0
)
+
1
2
!
f
y
x
′
′
(
x
0
,
y
0
)
(
x
−
x
0
)
(
y
−
y
0
)
+
.
.
.
\begin{aligned} f(x, y) = & f(x_0, y_0) + f^{\prime}_x(x_0,y_0)(x-x_0) + f^{\prime}_y(x_0,y_0)(y-y_0) \\ & + \frac{1}{2!}f^{\prime \prime}_x(x_0,y_0)(x-x_0)^2 + \frac{1}{2!}f^{\prime \prime}_y(x_0,y_0)(y-y_0)^2 \\ & + \frac{1}{2!}f^{\prime \prime}_{xy}(x_0,y_0)(x-x_0)(y-y_0) + \frac{1}{2!}f^{\prime \prime}_{yx}(x_0,y_0)(x-x_0)(y-y_0) \\ & + ... \end{aligned}
f(x,y)=f(x0,y0)+fx′(x0,y0)(x−x0)+fy′(x0,y0)(y−y0)+2!1fx′′(x0,y0)(x−x0)2+2!1fy′′(x0,y0)(y−y0)2+2!1fxy′′(x0,y0)(x−x0)(y−y0)+2!1fyx′′(x0,y0)(x−x0)(y−y0)+...
多元函数 f ( x 1 , x 2 , . . . , x n ) f(x_1, x_2, ..., x_n) f(x1,x2,...,xn)的泰勒展开
对于
f
(
x
1
,
x
2
,
.
.
.
,
x
n
)
f(x_1, x_2, ..., x_n)
f(x1,x2,...,xn)在
(
x
1
,
0
,
x
2
,
0
,
.
.
.
,
x
n
,
0
)
(x_{1,0}, x_{2,0}, ..., x_{n,0})
(x1,0,x2,0,...,xn,0)处的泰勒展开为:
f
(
x
1
,
x
2
,
.
.
.
,
x
n
)
=
a
0
+
∑
m
=
1
∞
[
∑
j
k
j
=
m
∑
a
x
1
,
.
.
.
,
x
n
;
m
(
x
1
−
x
1
,
0
)
k
1
…
(
x
n
−
x
n
,
0
)
k
n
]
f(x_1, x_2, ..., x_n) = a_0 + \sum^{\infty}_{m=1}\Big[_{\sum_{j}k_j = m} \sum a_{x_1,...,x_n;m} (x_1-x_{1,0})^{k_1}\dots(x_n-x_{n,0})^{k_n}\Big]
f(x1,x2,...,xn)=a0+m=1∑∞[∑jkj=m∑ax1,...,xn;m(x1−x1,0)k1…(xn−xn,0)kn]
系数
a
a
a的计算通式为:
a
0
=
f
(
x
1
,
0
,
x
2
,
0
,
.
.
.
,
x
n
,
0
)
a
x
1
,
.
.
.
,
x
n
;
m
=
1
m
∂
m
f
∂
k
1
x
1
…
∂
k
n
x
n
∣
x
1
,
0
,
x
2
,
0
,
.
.
.
,
x
n
,
0
\begin{aligned} & a_0 = f(x_{1,0}, x_{2,0}, ..., x_{n,0}) \\ & a_{x_1,...,x_n;m} = \frac{1}{m}\frac{\partial^mf}{\partial^{k_1}x_1\dots\partial^{k_n}x_n} \Big|_{x_{1,0}, x_{2,0}, ..., x_{n,0}} \end{aligned}
a0=f(x1,0,x2,0,...,xn,0)ax1,...,xn;m=m1∂k1x1…∂knxn∂mf∣∣∣x1,0,x2,0,...,xn,0
其中,
x
1
,
.
.
.
,
x
n
;
m
x_1,...,x_n;m
x1,...,xn;m表示对
{
x
1
,
.
.
.
,
x
n
}
\{x_1,...,x_n\}
{x1,...,xn}进行
m
m
m次有放回的排列组合。