泰勒公式

泰勒公式简单来说就是,可以用一个N次多项式来表示出一个连续可导的函数 f(x)
是一个用函数在某点的信息描述其附近取值的公式

第一步

思考
这是一个sin(x)的图像 用函数在原点的信息描述其附近取值
在这里插入图片描述
用一阶导数贴合:
直接用切线来贴合就好
画一个点(0,sin(0)除的切线 可以由直线的两点式得 :
y = f ( 0 ) + f ′ ( 0 ) ( x − 0 ) y = f(0) + f'(0)(x-0) y=f(0)+f(0)(x0)

在这里插入图片描述
根据图像我们发现在 0 附近这个函数和 s i n ( x ) 很贴合 , 越靠近 0 越贴合 根据图像我们发现在0附近这个函数和sin(x)很贴合,越靠近0越贴合 根据图像我们发现在0附近这个函数和sin(x)很贴合,越靠近0越贴合

找个三次函数来贴合:
在这里插入图片描述
找个五次函数贴合:
在这里插入图片描述

我们发现阶数越高越贴合 , 离 0 越近越贴合 我们发现阶数越高越贴合,离0越近越贴合 我们发现阶数越高越贴合,0越近越贴合

于是我们,大胆假定一个函数可以用N次多项式来进行代替

f ( x ) = C 0 + C 1 x + C 2 x 2 + … + C N − 1 x N − 1 + C N x N f(x) = C_0 + C_1 x + C_2 x^2 + \ldots + C_{N-1} x^{N-1} + C_N x^N f(x)=C0+C1x+C2x2++CN1xN1+CNxN

求系数

所以现在变为,我们怎么得到N次多项式的系数

因为我们是由一个点的信息来描述其附近取值,那么我们可以理解为这个点的附近区域的函数段是相同的,那么它们的各阶导数该点的值也是相同的.
举例子:
给定多项式:
f ( x ) = C 0 + C 1 x + C 2 x 2 + C 3 x 3 f(x) = C_0 + C_1 x + C_2 x^2 + C_3 x^3 f(x)=C0+C1x+C2x2+C3x3

第一步,令 ( x ) 为零,得到:
f ( 0 ) = C 0 f(0) = C_0 f(0)=C0

第二步,对 ( f(x) ) 求导,得到一阶导数:
f ′ ( x ) = C 1 + 2 C 2 x + 3 C 3 x 2 f'(x) = C_1 + 2C_2x + 3C_3x^2 f(x)=C1+2C2x+3C3x2
代入 ( x = 0 ),得到:
f ′ ( 0 ) = C 1 f'(0) = C_1 f(0)=C1

第三步,对 ( f(x) ) 进行二次求导,得到二阶导数:
f ′ ′ ( x ) = 2 C 2 + 6 C 3 x f''(x) = 2C_2 + 6C_3x f′′(x)=2C2+6C3x
代入 ( x = 0 ),得到:
f ′ ′ ( 0 ) = 2 C 2 f''(0) = 2C_2 f′′(0)=2C2
C 2 = f ′ ′ ( 0 ) 2 C_2 = \frac{f''(0)}{2} C2=2f′′(0)

第四步,对 ( f(x) ) 进行三次求导,得到三阶导数:
f ′ ′ ′ ( x ) = 6 C 3 f'''(x) = 6C_3 f′′′(x)=6C3
代入 ( x = 0 ),得到:
f ′ ′ ′ ( 0 ) = 6 C 3 f'''(0) = 6C_3 f′′′(0)=6C3
C 3 = f ′ ′ ′ ( 0 ) 6 C_3 = \frac{f'''(0)}{6} C3=6f′′′(0)

然后,你总结得到多项式的泰勒展开式为:
f ( x ) = f ( 0 ) + f ′ ( 0 ) x + f ′ ′ ( 0 ) 2 ! x 2 + f ′ ′ ′ ( 0 ) 3 ! x 3 f(x) = f(0) + f'(0)x + \frac{f''(0)}{2!}x^2 + \frac{f'''(0)}{3!}x^3 f(x)=f(0)+f(0)x+2!f′′(0)x2+3!f′′′(0)x3

这是一个泰勒展开,适用于充分光滑的函数,通过这个展开式,我们可以近似表示函数在 ( x = 0 ) 附近的行为。

我们通过运算发现
给定函数 f(x),在 x = a 处的 n 阶泰勒展开式为:

P n ( x ) = f ( a ) + f ′ ( a ) ( x − a ) + f ′ ′ ( a ) 2 ! ( x − a ) 2 + f ′ ′ ′ ( a ) 3 ! ( x − a ) 3 + … + f ( n ) ( a ) n ! ( x − a ) n P_n(x) = f(a) + f'(a)(x - a) + \frac{f''(a)}{2!}(x - a)^2 + \frac{f'''(a)}{3!}(x - a)^3 + \ldots + \frac{f^{(n)}(a)}{n!}(x - a)^n Pn(x)=f(a)+f(a)(xa)+2!f′′(a)(xa)2+3!f′′′(a)(xa)3++n!f(n)(a)(xa)n

其中, f ′ ( a ) 表示 f ( x ) 在 x = a 处的一阶导数, f ′ ′ ( a ) 表示二阶导数,以此类推, f ( n ) ( a ) 表示第 n 阶导数。 其中,f'(a) 表示 f(x) 在 x = a 处的一阶导数,f''(a) 表示二阶导数,以此类推,f^{(n)}(a) 表示第 n 阶导数。 其中,f(a)表示f(x)x=a处的一阶导数,f′′(a)表示二阶导数,以此类推,f(n)(a)表示第n阶导数。

通用形式为:

P n ( x ) = ∑ k = 0 n f ( k ) ( a ) k ! ( x − a ) k P_n(x) = \sum_{k=0}^{n} \frac{f^{(k)}(a)}{k!}(x - a)^k Pn(x)=k=0nk!f(k)(a)(xa)k

试试不在0展开

在点1处展开:
一次多项式 : 一次多项式: 一次多项式:
在这里插入图片描述
三次多项式 : 三次多项式: 三次多项式:
在这里插入图片描述
五次多项式 : 五次多项式: 五次多项式:
在这里插入图片描述

为什么可以表示

1阶导数是描述原函数的变化
2阶导数又是描述一阶导数的变化
所以多次在不断的导是要知道原函数在该点的变化,二阶导又看变化的变化怎么变化…
这个过程就仿佛是要把一根直的铁丝掰成函数的形状一样,而描述的点就是重该处开始模仿怎么掰一样,每提高一次多项式,就仿佛是多掰一次一样

参考信息:

B站视频【泰勒公式】

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐