泰勒展开

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

幂函数

考虑简单的幂函数f(x)=xa。 显然的性质:
  1. a越大则f(x)增长越快;
  2. a是奇数,则函数关于原点对称;若a是偶数,则函数关于y轴对称。
59eb6654682d2.png (230×230)
幂函数的单调性很简单。能不能把幂函数弄出几个突起呢?
59eb6654682d2.png (230×230)
可以令f(x)=x2+x9,这样的函数在前期更多地体现x2的特征,后期更多地体现x9的特征。
如何调整这些突起呢?我们可以给xa乘上常数。有了随意扭曲函数图像的能力,可以很容易地造出一颗心: 
59eb6654682d2.png (230×230)
泰勒展开的实质,就是拿多项式来逼近光滑函数。

泰勒展开

一个极不优雅的公式:f(x)=n=0Nf(n)(a)n!(xa)n+Rn(x)
这里的f(n)表示f(x)n阶导数。例如1阶导数就是f(x),2阶导数就是f(x)的导数……
上面的式子不优雅,我们令a=0,意思就是说只考虑x=0的情况下的取值。(即麦克劳伦公式) f(x)=n=0Nf(n)(0)n!xn+Rn(x)
这篇博客不期望读者能证明泰勒展开的正确性,只需要能用就行。(一贯作风)(逃

f(x)=ex

这个式子很令人不爽吧?尝试展开它。 求导f(x)=ex,导得f(x)=ex。即f(x)=ex的任意阶导数都是f(x)=ex。 那么代进公式。 f(x)=11!x+12!x2+13!x3++Rn(x)
Rn(x)的意思是x=0y的取值。所以根据幂函数的性质,Rn(0)=1。 (其实Rn(x)的作用可以理解为:把函数平移到原点,然后进行麦克劳伦展开。
因此最后的展开式为:
f(x)=1+11!x+12!x2+13!x3+
第一象限函数图像和g(x)=ex一唱一和。 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)进行一系列求导什么的。 得到展开结果: f(x)=xx33!+x55!x77!+
它的图像: 
59eb6654682d2.png (230×230)
因此,通过泰勒展开可以很精确地获得x[π,π]sin(x)的值。用诱导公式,所有的sin(x)都可以给出很精确的值。

评论

此博客中的热门博文

将博客部署到星际文件系统(IPFS)

高中地理必修一知识点总结

一场CF的台前幕后(下)