泰勒展开

泰勒展开:用多项式函数来拟合怪模怪样的函数。

幂函数

考虑简单的幂函数$f(x)=x^a$。 显然的性质:

  1. $a$越大则$f(x)$增长越快;
  2. $a$是奇数,则函数关于原点对称;若$a$是偶数,则函数关于$y$轴对称。

幂函数

幂函数的单调性很简单。能不能把幂函数弄出几个突起呢?

突起

可以令$f(x)=x^2+x^9$,这样的函数在前期更多地体现$x^2$的特征,后期更多地体现$x^9$的特征。

如何调整这些突起呢?我们可以给$x^a$乘上常数。有了随意扭曲函数图像的能力,可以很容易地造出一颗心: 心

泰勒展开的实质,就是拿多项式来逼近光滑函数。

泰勒展开

一个极不优雅的公式:$\displaystyle f(x)=\sum _{n=0}^{N}\frac{f^{(n)}(a)}{n!}(x-a)^ n+R_ n(x)$

这里的$f^{(n)}$表示$f(x)$$n$阶导数。例如1阶导数就是$f'(x)$,2阶导数就是$f'(x)$的导数……

上面的式子不优雅,我们令$a=0$,意思就是说只考虑$x=0$的情况下的取值。(即麦克劳伦公式) $\displaystyle f(x)=\sum _{n=0}^{N}\frac{f^{(n)}(0)}{n!}x^n+R_ n(x)$

这篇博客不期望读者能证明泰勒展开的正确性,只需要能用就行。(一贯作风)(逃

$f(x)=e^x$

这个式子很令人不爽吧?尝试展开它。 求导$f(x)=e^x$,导得$f'(x)=e^x$。即$f(x)=e^x$的任意阶导数都是$f(x)=e^x$。 那么代进公式。 $\displaystyle f(x)=\frac{1}{1!}x+\frac{1}{2!}x^2+\frac{1}{3!}x^3+\cdots+R_n(x)$

$R_n(x)$的意思是$x=0$$y$的取值。所以根据幂函数的性质,$R_n(0)=1$。 (其实$R_n(x)$的作用可以理解为:把函数平移到原点,然后进行麦克劳伦展开。

因此最后的展开式为:

$\displaystyle f(x)=1 + \frac{1}{1!}x+\frac{1}{2!}x^2+\frac{1}{3!}x^3+\cdots$

第一象限函数图像和$g(x)=e^x$一唱一和。 exp

代码:

double exp(double x)
{
    double ans=1,k=1,l=1;
    int i;

    for(i=1;i<=1000;i++)
    {
        k=k*i;
        l=l*x;
        ans+=l/k;
    }
    //e^x = 1 + x/1 +x^2/2 + x^3/3 +...
    return ans;
}

$f(x)=\sin(x)$

难以想象,正弦函数都可以泰勒展开。

类似地对$f(x)=sin(x)$进行一系列求导什么的。 得到展开结果: $\displaystyle f(x)=x - \frac{x^3}{3!}+\frac{x^5}{5!} - \frac{x^7}{7!}+\cdots$

它的图像: sin

因此,通过泰勒展开可以很精确地获得$x \in [-\pi , \pi]$$\sin(x)$的值。用诱导公式,所有的$\sin(x)$都可以给出很精确的值。


CC0协议 @ ruanxingzhi 2017. CC0是啥玩意?
Home apps close