|
漫谈泰勒公式
原创 草稿先生 草稿先生 2024-03-24 20:00 辽宁
哈喽,我是草稿先生。今天“漫谈”的是泰勒公式。
泰勒公式是什么呢?简单地说,它就是一个计算工具,能够把像 e^x , ln(1+x) , sin x 这类不易计算的函数近似成多项式:(以按 x 的幂展开为例)
这样计算起来就方便了。
严谨一点的写法是这样:
其中 o(x^n) 叫佩亚诺余项,可以简单理解为近似的误差。
近似结果叫泰勒公式,近似的过程叫展开成泰勒公式。
现在草稿先生解释一下自己理解的泰勒公式:
我们用微元法,把函数 f(x) 全部切成宽为 Δx 的小段,Δx 极小;每一段的函数值相等,比如我们可以让这个值是左端点的函数值:
(类似的,各阶导数值也取左端点的,比如
是 f'(x0) ,而不是 f'(x0+Δx) )
这个函数的表达式很复杂,所以我们想把它近似成多项式。
首先,我们确定一个“基底” x0 ,f(x0) 和 f(x0) 的各阶导数是要能(轻松)算/表示出来的,以这个基底为起点去近似多项式(用 p(x) 表示)。所以 p(x)=f(x) 。
p(x) 是按 (x-x0) 的幂展开的多项式,即
p(x) 下面的 n 是展开的阶数,一会儿解释;o(x^n) 是极小量,暂时不用管。
(可以理解为现在 x0 的地位类似于正常坐标系里的 y 轴)
下一步,我们确定 p(x) 中的常数项 a0 。因为 p(x0)=f(x0)=a0 ,所以 a0=f(x0) 。
接着,我们把次数+1 ,去考察 a1(x-x0) 中的系数 a1 。注意:此时代 x=x0 没用,因为 a1(x0-x0)=0 。怎么办?
分析:这一步我们要达到的目标是 a1(x-x0)+a0(直线),其斜率就是 a1=f'(x0) 。
直线的表达式 g(x) 就是 g(x)=f'(x0)(x-x0)+g(x0) 。显然 g(x0) 就是第一步求出来的 a0 ,a1=f'(x0) 。
这时候我们要有一个思想:近似宽度(我自己起的名)。画出这条直线,我们已经精确出了 x0 和 x0+Δx 的函数值,但对于 x>x0+Δx 还没有模拟到,还有误差。
再下一步,我们确定 a2 ,同样是近似,这一次要得到 a2(x-x0)^2+a1(x-x0)+a0 ,由二次函数的求导公式,h(x)=a2(x-x0)^2+a1(x-x0)+a0 在 x=x0 处的一阶导数是 2a2(x-x0)+a1 ,二阶导数是 2a2=f''(x0) ,所以 a2=f''(x0)/2 。
此时近似宽度为 x0~x0+2Δx 。
类似的方法,我们可以扩展到三次函数,四次函数,……,直到 n 次函数。因为
在 x=x0 处的 n 阶导数为
所以
n 可以无限大,我们的近似宽度也可以无限大;向 x0 左边也可以做类似的近似,结果类似(此时让函数/导数值为右端点的函数值即可)。
所以我们就得到了函数 f(x) 按 (x-x0) 的幂展开的带有佩亚诺余项的 n 阶泰勒公式:
PS:当 n 够大的时候 o(x^n) 就极小,所以也有的写法去掉了 o(x^n) ;
余项的写法有两种:一种是佩亚诺余项,另一种是拉格朗日余项 Rn(x) ;
当“基底”刚好就是 x=0 时泰勒公式也叫麦克劳林公式。
实际应用中 e^x , ln(1+x) 和正余弦函数做泰勒展开的较多。
以 e^x 为例,很显然这个函数唯一好算的值就是 x=0 时 e^0=1 ,所以展开成麦克劳林公式:
又因为 e^x 求导还是本身,所以 x=0 时函数值和各阶导数的值都是 1 ,即
比如我们把 x=0.1 代入 3 阶公式,e^0.1 = 1+0.1+0.01/2+0.001/6 = 1.105017 ,和计算器算的比一下:
已经很接近了!
ln(1+x) 和 e^x 类似,唯一好算的函数/导数值就是 x=0 时 ln(1+0)=0 ,对 ln(1+x) 求一阶导数得到 1/(1+x)=1(x=0 时),二阶导数是 -1/(1+x)^2=-1 ,三阶导数又变回 1 ,……,具体过程不写了,直接上结果:
sinx 的特点是它的各阶导数是 cosx → -sinx → -cosx → sinx → … 一直循环的(cosx 也差不多),麦克劳林公式是这样的:
今天的内容就到此为止了,泰勒公式本质上就是用各阶导数一步一步逼近函数拟合的多项式,在计算函数值时十分好用。
草稿先生 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|