0阶贝塞尔函数_【高中向】从「如何用多项式函数拟合ln(x)」到「泰勒展开」

题图:莉莉没有卡

一、引言

让我们来看看下面几个多项式函数对

的拟合。

1、一号选手

ce1db976f8ef92538b430360fcf5c6a9.png
黑线为ln(x)

看起来一号选手仅在

拟合得比较好,其余地方便不尽如人意。

2、二号选手

010fbdbe93d507f2e2da2908e48c2ee1.png
黑线为ln(x)

看起来二号选手在

都拟合得很好呢,其余地方也总体还行。

3、三号选手

f6a99b4008782e1b870d8ec2d218f87b.png
黑线为ln(x)

三号选手简直要逆天了,代入

,得到
,误差小于万分之一!

即使代入

这种远到逆天的值,误差也不超过1%的。

或许下一张图会让你感到更震撼一点:

6cd5cc61a6d4bb5c6645ba6417d98b44.png
红线为ln(x),蓝线为多项式3(是不是几乎看不到红线了吧)

啊,这个放缩太紧了……这样下去ln(x)会坏掉……这样不可以(划掉)

二、正文

0、前言

相信读者看到这里时,一定会对这些奇怪的系数感到迷惑,不知道这些系数是怎么构造出来的。但是放心,当你看完本文后,你就会明白这背后的原理竟然是如此地简单,你完全可以仿照我的方法,构造出精度更高(次数更高)的放缩。

1、引子

如果了解对数平均不等式(ALG不等式)的同学,想必不会对一号选手

陌生。因为我们证明ALG不等式时就构造出了
这个不等式。

那么,问题来了:为什么不是

呢?这个函数在
附近也有很高的精度啊。

事实上,需求决定工作。在讨论这个问题前,我们应该先弄清楚——我们究竟想要什么样的函数?然后对着需求找条件,问题自然迎刃而解了。

2、我们想要什么函数?

①首先,我们想要这个函数不出现ln()、e这种超越数、不好计算的东西,尽可能地只有整数相除这种简单的有理数计算。例如ln(2)是比较难计算的,ln(e)=1虽然是有理数,但是e不是。综上考虑,只有ln(1)=0既满足ln(1)=0是有理数,又满足自变量1是有理数。所以,我们选择在x=1附近找拟合函数

我们希望这个函数是「多项式除以多项式」型

这样的话,我们计算时总是做有理数的加减乘除问题,比较简单。

我们希望这个函数精度尽可能地高

对于一个「n次多项式除以m次多项式」型的函数,一般形式是:

考虑到ln(x)增长是很缓慢地,所以我们希望分子次数与分母次数相等,即满足

,这样增长趋势就会与ln(x)相接近。

我们希望这个函数在比较远处依然能维持精度

在前面说的n=m这个前提下,想要更高的精度,我们就应该引入一个叫「泰勒展开」的东西了。具体这是什么东西,请读者继续看下文详解。

3、泰勒展开

对于一个函数,我们想要找到其的一个近似函数,我们一个很自然的想法就是取切线。如下图,在x=0处取e^x的切线,其紧邻处拟合程度良好

e6eeae20edd34bafe328371f36fc299f.png

但是这还远远不够,因为距离稍微大一点后,这个函数的拟合程度就相当地差了。

我们试图延续取切线的思想,这就自然地引入了泰勒展开。

注意到切线对应的是

的斜率为0,即一阶导数为0,那么我们如果构造一个函数,让其二阶导数也为0,那么精度会不会提高呢?

对此,有个直观的理解——如果两个函数[1]零阶导、一阶导、二阶导、……n阶导都相等,那么这两个函数至少在某个邻域内是十分近似的,而且随着n的增大,这个邻域会扩大(当然,不一定能无限扩大,有个叫收敛域的玩意)。就好比:如果你玩游戏,你的分段和某大佬一样,英雄胜率和他基本一样,英雄池和他基本一样,出装套路基本一样,操作意识基本一样,那么你和这个大佬的实力基本上是很相近的

让我们试试

,其中a为待定常数,试求合适的a使得

(因为取的是切线,所以

是显然地)

解:

,故

所以:

即为所求

让我们看看,如下图,确实精度有明显提高

8a1d95340e84b752d2bf55da7c8f9b76.png
蓝线为1+x+x^2/2,显然精度提高了

虽然按照这个思路下去,我们可以求出任意项。而且可以预见的是:精度会随着项数的提升而提升。然而,一项一项地求总是一件很烦人的事情,我们试图归纳总结出一个通项。试试看

(2.3.1)式是被人们称为「麦克劳林展开」的东西。如果要严格讨论这里的「≈」号的具体含义,我们会涉及到诸如「收敛域」、「余项」等繁琐的东西。因此,我们这里不去严格证明它,而是取从直观的角度说明它

观察(2.3.1)式,代入x=0,含

的项都为0,发现左右两端是相等的。

而左右求一阶导后,左右都是

,也是相等……

求n次导后,

求n次导为
(这也是分母凑
的原因),左右依然相等。

因此,我们可以认为(2.3.1)式是f(x)的一个近似展开式

推广地,在

处展开,有:

其中(2.3.2)式被人们称为「泰勒展开」。它能够满足尽可能高精度地拟合函数的要求。

4、尝试构造

学会了泰勒展开后,我们很兴奋,事实上,容易证明(2.4.1)式是成立的:

因此,我们尝试对ln(x)进行泰勒展开——

01656330fc4475a32ea43eb7413c3568.png

abfd53e7558c0b966032b78fcd53ff9f.png

我们发现效果非常不理想,这个函数非常地“飘”,这是因为泰勒展开

幂越来越高,函数就会越来越“不稳定”。事实上,可以证明这一泰勒展开式的收敛域只有
,大于2后,函数就飘走了……

为了克服这一困难,想到之前需求②,我们使用形如(2.2.1)的「多项式除以多项式」函数,并且结合我们的需求③,我们要求它分子分母次数相同(这样就近似于常数,函数就不会“飘”),即满足下式子——

5、一种思路

形式的确找到了,但是我们这里有一串待定系数,这一点是十分烦人的。回想起前面泰勒展开的知识,我们只能将其展成一串次数越来越高的多项式,如何才能展开成这种形式呢?

我们想到一个方法(虽然不是最终方法):

作一个分式线性映射:

易见这一分式线性映射将

就有

将其用(2.4.1)式展开,就有

3阶展开效果如下图所示——

(上方红线为ln(x),黄线为最终思路展开2阶

,下方红线为本思路展开3阶

f338cc2888f6cae31e533fc022ce1bb8.png
上方红线为ln(x),黄线为最终思路展开2阶,下方红线为本思路展开3阶。可以看出:本思路虽然简单,但精度略逊一筹

6、另一种更好的思路(最终思路)

事实上,上式采用分式线性映射换元是具有技巧性的,其实也是本文写到一半(都把最终结果图做出来了)突发奇想做出来的。虽然最终结果容易计算出一般地表达式,但是精度不足。我们希望找到一个最高精度的逼近方式,这也是开头引言用的那三个函数的构造方式

我们知道,(常规方法)泰勒展开无法得到分母上有东西的情形,那么思路就很简单了——我同时乘以分母多项式的话,不就能够和泰勒展开式匹配上了吗?

试试看

推出:

只要将(2.6.2)左式展开,匹配系数即可。

为了方便计算,可以不妨令

,这是因为n次多项式有n个自由系数。

让我们拿n=1的情况练练手——

考虑

自然有:

易推知:

因为n=1,这是在x=1的一阶泰勒展开。但是问题来了——

p是个未知数啊

p是个未知数啊

p是个未知数啊

是的,p是一个未知数。那么我们该怎么办呢?其实很简单——

回归到一阶泰勒展开的几何意义,一阶泰勒展开相当于求切线。我们自然希望切线越直越好,也就是说,如果能取一个合适的p,使得其二阶导为0的话,这个切线就会很直,那么就最满足我们的需求。

回归到这个问题:本质上就是令

,解出

回代,得到

根据公式(2.3.2),我们得到了

即:

相信你有些明白了,让我们试试n=2——

考虑

自然有:

易推知:

因n=2,泰勒展开2阶,有两个未知数p、q,令3、4阶导为0,即:

容易解出:p=4,q=1

得:

故:

即:

对于任意正整数n——

这个思路的缺点就在于——虽然有着较高精度,但是n比较大时计算起来很复杂。下面的推导给出了一个通过计算机求系数的办法,不过手算起来比较难受。可以使用网上一些软件辅助求解会相对简单。总得来说意义不大,如果要比较高的精度,推荐使用上一个思路多展开几阶

考虑:

,其中

,则为

第一部分

其中

第二部分

两者相乘,计算

①若

系数为

交换一下求和顺序:

②若

系数为

交换一下求和顺序:

项到
项为0,即可得到各项系数。

总而言之,分母系数由n元方程组(不妨设

)确定:

分子系数则是:

总之,这个计算量很大,如果不借助计算机的话,建议使用2.5的思路

参考

  1. ^请学过更高知识的同学,不要举形如e^(-1/x^2)这种反例来和我进行无聊的抬杠游戏,如果非要杠的话,我就加一个这个函数是全纯函数的条件。不过如果我为了追求严谨性这么写,高中读者肯定一脸懵逼。所以吧,作为科普文,还是为了直观性而舍弃一些严谨性为好。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值