Skip to content

泰勒级数

泰勒多项式

用来求解f(x)某一点附近的近似函数g(x),f(x)是一些不太好求值的函数,g(x)则是比较好计算的函数。例如: $$ cos(x_0)在x_0=0时的泰勒多项式可以是g(x)=1-\frac12 x^2,或 g(x)=1-\frac12 x^2+\frac1{24}x^4 $$

这样可以计算函数的近似值,一般幂次越高,精确度越高。

\(1-\frac12x^2\)

taylor1

\(1-\frac12x^2+\frac1{24}x^4\)

taylor2

在这个点\(x_0\)附近时的g(x)时比较"贴合"原函数的,称为收敛;

如果离得远了,就会远离原函数,称为发散。

我们称收敛的最大范围为收敛半径。

泰勒级数

将g(x)的函数幂次拓展到无穷大,那么g(x)的值就称为泰勒级数

\[G(x)=\sum_{n=0}^\infty g(x,n)= \sum_{n=0}^{\infty}\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n=f(x_0)+f'(x_0)(x-x_0)+\frac {f''(x_0)}{2!}(x-x_0)^2+...+ \frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+...\]
\[ \frac{f^{(n)}(x_0)}{n!}(x-x_0)^n 就是G(x)中的第n项g(x,n)\]

应用

cmath pow

用这种方法可以将复杂度降至O(1)

通过以下代码

pow(b,n)=exp(n*log(b));//log(b)=lnb

就是\(b^n=e^{n* lnb}\)来优化,因为exp和log的复杂度可以通过泰勒展开求出他们在每个点附近的低阶近似函数,通过查表的方式O(1)获取函数值。

例如:

$$1.e^x,在x=0处展开 \f(x)=e^x ,则\g(0,n)=x^{n}\ \therefore G(x)=\sum_{n=0}^\infty x^{n}=1+x+x^2+x^3+...+x^n+...\ 2.lnx \f(x)=lnx,在x=1处展开\ G(x)=(x-1)-\frac12(x-1)^2+\frac13(x-1)^3-\frac14(x-1)^4+\frac15(x-1)^5+...\

$$


0.999...=1

直接计算

\[\frac19=0.111... \\ 9 * \frac19=0.999... \\ 9 * \frac19=1 \\ \therefore 0.999...=1 $$ ## 设数 $$x=0.999...\\ 10 * x=9.999... \\10 * x-1 * x=9 * x=9 \\x=1 \\\therefore 0.999...=1 $$ ## 极限 $$ 0.999...=\lim_{n\to\infty}1-\frac1{10^n}\\ \lim_{n\to\infty}\frac1{10^n}=0 \\\therefore0.999...=1 \]

然而,这些都不够严谨

戴德金分割(Dedekind)

\[ 设 t=0.999......,作两个有理数集的分割 \\ A={ [x|x<t,x有理数 ]},B={[x|x>=t,x有理数]} \\ C={[x|x<1,x有理数]},D={[x|x>=1,x有理数]} \\ 分割A/B确定了实数t=0.999......(我们暂时不知道t=0.999...是有理数还是无理数) \\ 分割C/D确定了有理数1 \\ 为证明 t=1,我们只需要证明这两个分割是相同的,即证明 A=C \\ 若有理数 x∈A,则显然有 x<1,于是 x∈C \\ 若有理数 x∈C,则 x<1,不妨设 x>0 \\ 根据有理数的定义,我们可以把x用分数的形式表示为 \\ x=\frac pq,(p,q为正整数) \\ 既然0<x<1,则必有p< q \\ 于是由1-\frac pq>=\frac 1q>0,可得存在正整数n(\frac{p+1}q<=1 可以证明,因为p,q都是正整数),使得 \\ \frac 1q>\frac1{10^n}>0(x是确定的数,则q存在,则比它高阶的n一定存在,不用纠结无穷大的事) \\ x=\frac pq<=1-\frac 1q<1-\frac1{10^n}=0.99...9(n个9)< t \\ 既然x<t,这就说明x∈A \\ 由上,我们就得到了A=C,从而,A/B和C/D是两个相同的分割,因此, 0.999...=t=1 \]

Orz