文章目录
- 泰勒级数是如何被发现的
- 用图像理解Taylor级数的逼近过程
前情提要 R语言微积分
- 极限
- π,e,γ\pi, e, \gammaπ,e,γ
- 洛必达法则
- 连续性和导数
- 数值导数
- 差商与牛顿插值
- 方向导数
泰勒级数是如何被发现的
如果我是泰勒,我会把思考的起点建立在这样的一个等式上
f(n)(x)=P(n)(x)f^{(n)}(x)=P^{(n)}(x) f(n)(x)=P(n)(x)
即如果想用一个多项式函数PPP来对f(x)f(x)f(x)进行逼近,则要求这个多项式的任意阶导数均与f(x)f(x)f(x)相等。
这个条件过于严格,简单起见,不妨添加一个最接近的点x0x_0x0,要求
f(n)(x0)=P(n)(x0)f^{(n)}(x_0)=P^{(n)}(x_0) f(n)(x0)=P(n)(x0)
则多项式函数可以十分便利地写为
P(x)=∑i=0Nai(x−x0)iP(x)=\sum_{i=0}^{N}a_i(x-x_0)^i P(x)=i=0∑Nai(x−x0)i
从而当i<ni<ni<n时,有((x−x0)i)(n)=0((x-x_0)^i)^{(n)}=0((x−x0)i)(n)=0,故而
P(n)(x)=∑i=nN(x−x0)i−n1n!P^{(n)}(x)=\sum_{i=n}^{N}(x-x_0)^{i-n}\frac{1}{n!} P(n)(x)=i=n∑N(x−x0)i−nn!1
当x=x0x= x_0x=x0时,有
limx→x0P(n)(x0)=n!an+n!∑i=n+1N(x−x0)N−i=ann!\lim_{x\to x_0}P^{(n)}(x_0)=n!a_n+n!\sum_{i=n+1}^{N}(x-x_0)^{N-i}=\frac{a_n}{n!} x→x0limP(n)(x0)=n!an+n!i=n+1∑N(x−x0)N−i=n!an
由于f(x)=P(x)f(x)=P(x)f(x)=P(x),从而,当x→x0x\to x_0x→x0时,
an=f(n)(x0)n!a_n=\frac{f^{(n)}(x_0)}{n!} an=n!f(n)(x0)
就此得出了f(x)f(x)f(x)的多项式拟合表达式
f(x)=∑i=0f(i)(x0)i!(x−x0)if(x)=\sum_{i=0}\frac{f^{(i)}(x_0)}{i!}(x-x_0)^i f(x)=i=0∑i!f(i)(x0)(x−x0)i
用图像理解Taylor级数的逼近过程
那么接下来我们直观地感受一下Taylor级数时如何逐渐逼近某个函数的。简单起见,在此选择sinx\sin xsinx作为被拟合的函数。
library(ggplot2)
library(gganimate)
library(av)
library(tibble)x = seq(-pi,pi,0.1)
n = length(x)xs = rep(x,11)
ys = rep(sin(0),n)
ts = rep(0,n)for(i in 1:10){y <- if(i%%2==0) 0 else 1if((i-1)%%4>1)y = -yy = y/factorial(i)*x^im = length(ys)y = y+ys[(m-n+1):m]ys = c(ys,y)ts = c(ts,rep(i,n))
}
data<-tibble(x=xs,y=ys,t=ts)
ggplot(data,aes(x,y))+geom_point()+transition_time(t)+ease_aes('linear')
如下图所示,随着阶数的不断增多,Taylor级数对三角函数的形式越来越适应,最后大约在第5次之后,其变化就已经微不可察了,这就是多项式逼近的强大之处。