泰勒多项式为什么要设计成那个样子?它到底在"匹配"什么?
-
- 一、先忘掉泰勒公式,想一个简单问题
- 二、先看第一条:函数值一样
- 三、第二条:一阶导数一样
- 四、第三条:二阶导数一样
- 五、现在回答你的核心疑问
-
- [1. 什么是"近似多项式"?](#1. 什么是“近似多项式”?)
- [2. 什么是"在 ( x 0 (x_0 (x0) 处的二阶导数"?](#2. 什么是“在 ( x 0 (x_0 (x0) 处的二阶导数”?)
- [3. 什么是"原函数的二阶导数"?](#3. 什么是“原函数的二阶导数”?)
- [4. "保证相等"是什么意思?](#4. “保证相等”是什么意思?)
- 六、为什么非让二阶导数也相等?
泰勒公式要保证近似多项式在 x_0 处的二阶导数等于原函数的二阶导数。不懂,举个例子
一、先忘掉泰勒公式,想一个简单问题
假设你有一个函数 ( f ( x ) = e x (f(x) = e^x (f(x)=ex),你想在 ( x = 0 (x = 0 (x=0) 附近用一个二次多项式去近似它:
P ( x ) = a + b x + c x 2 P(x) = a + bx + cx^2 P(x)=a+bx+cx2
你希望这个 ( P ( x ) (P(x) (P(x)) 在 ( x = 0 (x = 0 (x=0) 附近尽量像 ( e x (e^x (ex)。
那怎么才算"像"?
最自然的想法是:
- 在 ( x = 0 (x = 0 (x=0) 处,函数值要一样: ( P ( 0 ) = f ( 0 ) (P(0) = f(0) (P(0)=f(0))
- 在 ( x = 0 (x = 0 (x=0) 处,斜率要一样: ( P ′ ( 0 ) = f ′ ( 0 ) (P'(0) = f'(0) (P′(0)=f′(0))
- 在 ( x = 0 (x = 0 (x=0) 处,弯曲程度要一样: ( P ′ ′ ( 0 ) = f ′ ′ ( 0 ) (P''(0) = f''(0) (P′′(0)=f′′(0))
这三条就是"匹配"的含义。
二、先看第一条:函数值一样
P ( x ) = a + b x + c x 2 P(x) = a + bx + cx^2 P(x)=a+bx+cx2
代入 (x = 0):
P ( 0 ) = a P(0) = a P(0)=a
而:
f ( 0 ) = e 0 = 1 f(0) = e^0 = 1 f(0)=e0=1
所以:
a = 1 a = 1 a=1
现在:
P ( x ) = 1 + b x + c x 2 P(x) = 1 + bx + cx^2 P(x)=1+bx+cx2
三、第二条:一阶导数一样
先求 (P'(x)):
P ′ ( x ) = b + 2 c x P'(x) = b + 2cx P′(x)=b+2cx
代入 (x = 0):
P ′ ( 0 ) = b P'(0) = b P′(0)=b
而:
f ′ ( x ) = e x ⇒ f ′ ( 0 ) = 1 f'(x) = e^x \Rightarrow f'(0) = 1 f′(x)=ex⇒f′(0)=1
所以:
b = 1 b = 1 b=1
现在:
P ( x ) = 1 + x + c x 2 P(x) = 1 + x + cx^2 P(x)=1+x+cx2
四、第三条:二阶导数一样
先求 (P''(x)):
P ′ ( x ) = 1 + 2 c x P'(x) = 1 + 2cx P′(x)=1+2cx
P ′ ′ ( x ) = 2 c P''(x) = 2c P′′(x)=2c
注意:(P''(x) = 2c) 是一个常数,代入 (x = 0) 还是:
P ′ ′ ( 0 ) = 2 c P''(0) = 2c P′′(0)=2c
而:
f ′ ′ ( x ) = e x ⇒ f ′ ′ ( 0 ) = 1 f''(x) = e^x \Rightarrow f''(0) = 1 f′′(x)=ex⇒f′′(0)=1
所以要求:
2 c = 1 2c = 1 2c=1
c = 1 2 c = \frac{1}{2} c=21
于是:
P ( x ) = 1 + x + 1 2 x 2 P(x) = 1 + x + \frac{1}{2}x^2 P(x)=1+x+21x2
这就是 (e^x) 在 (x = 0) 处的二阶泰勒展开。
五、现在回答你的核心疑问
你说:
因为泰勒公式要保证近似多项式在 ( x 0 (x_0 (x0) 处的二阶导数等于原函数的二阶导数。不懂。
现在我们也它拆开:
1. 什么是"近似多项式"?
就是我们构造的:
P ( x ) = a + b x + c x 2 P(x) = a + bx + cx^2 P(x)=a+bx+cx2
2. 什么是"在 ( x 0 (x_0 (x0) 处的二阶导数"?
就是 ( P ′ ′ ( 0 ) (P''(0) (P′′(0))。
对 ( P ( x ) = a + b x + c x 2 (P(x) = a + bx + cx^2 (P(x)=a+bx+cx2) 求两次导:
P ′ ( x ) = b + 2 c x P'(x) = b + 2cx P′(x)=b+2cx
P ′ ′ ( x ) = 2 c P''(x) = 2c P′′(x)=2c
所以:
P ′ ′ ( 0 ) = 2 c P''(0) = 2c P′′(0)=2c
3. 什么是"原函数的二阶导数"?
就是 ( f ′ ′ ( 0 ) (f''(0) (f′′(0))。
对 ( f ( x ) = e x (f(x) = e^x (f(x)=ex) 求两次导:
f ′ ′ ( x ) = e x f''(x) = e^x f′′(x)=ex
f ′ ′ ( 0 ) = 1 f''(0) = 1 f′′(0)=1
4. "保证相等"是什么意思?
就是让:
P ′ ′ ( 0 ) = f ′ ′ ( 0 ) P''(0) = f''(0) P′′(0)=f′′(0)
也就是:
2 c = 1 2c = 1 2c=1
所以:
c = 1 2 c = \frac{1}{2} c=21
这就是为什么二次项系数是 ( 1 2 (\frac{1}{2} (21),而不是随便一个数。
六、为什么非让二阶导数也相等?
因为如果只匹配函数值和一阶导数,你得到的是:
P ( x ) = 1 + x P(x) = 1 + x P(x)=1+x
这是一条直线,它和 ( e x (e^x (ex) 在 ( x = 0 (x = 0 (x=0) 处有相同的值和斜率,但弯曲方向不对。
比如 ( x = 0.5 (x = 0.5 (x=0.5):
- 直线近似: ( 1 + 0.5 = 1.5 (1 + 0.5 = 1.5 (1+0.5=1.5)
- 真实值: ( e 0.5 ≈ 1.6487 (e^{0.5} \approx 1.6487 (e0.5≈1.6487)
- 误差:约 ( 0.1487 (0.1487 (0.1487)
而加上二阶项:
1 + 0.5 + 0.25 2 = 1.625 1 + 0.5 + \frac{0.25}{2} = 1.625 1+0.5+20.25=1.625
- 误差:约 ( 0.0237 (0.0237 (0.0237)
明显更准。
所以让二阶导数也相等,就是为了让抛物线弯曲得和原函数一样,从而更贴近。