幂函数与指数函数的近似

幂函数 ( 1 + x ) α (1+x)^\alpha (1+x)α 可以近似为指数函数 e α x e^{\alpha x} eαx,甚至可以进一步近似为 1 + α x 1+\alpha x 1+αx。在一本书中指数平滑方法的介绍中见到了这个近似,总结一下。

1. ( 1 + x ) α ≈ 1 + α x (1+x)^{\alpha}\approx 1+\alpha x (1+x)α1+αx

( 1 + x ) α (1+x)^\alpha (1+x)α x = 0 x=0 x=0 处泰勒展开,可以得到
( 1 + x ) α = 1 + α x + α ( α − 1 ) 2 x 2 + α ( α − 1 ) ( α − 2 ) 6 x 3 + … (1+x)^\alpha=1+\alpha x+\frac{\alpha(\alpha-1)}{2}x^2+\frac{\alpha(\alpha-1)(\alpha-2)}{6}x^3+\dots (1+x)α=1+αx+2α(α1)x2+6α(α1)(α2)x3+

∣ x ∣ < 1 |x|<1 x<1 时, x 2 , x 3 , … x^2, x^3,\dots x2,x3, 越来越小,若进一步 ∣ α x ∣ ≪ 1 |\alpha x| \ll 1 αx1 (表示 ∣ α x ∣ |\alpha x| αx 足够小于 1),则上式中右端各项会越来越小,可以将后面的项省略,所以 ( 1 + x ) α ≈ 1 + α x (1+x)^{\alpha}\approx 1+\alpha x (1+x)α1+αx

  • 没有找到上面这两个条件的严谨证明,但似乎也是合理的

2. ( 1 + x ) α ≈ e α x (1+x)^{\alpha}\approx e^{\alpha x} (1+x)αeαx

这个近似可以通过泰勒展开,轻易看出:
e α x = 1 + α x + α 2 2 x 2 + α 3 6 x 3 + … e{^\alpha x}=1+\alpha x+\frac{\alpha^2}{2}x^2+\frac{\alpha^3}{6}x^3+\dots eαx=1+αx+2α2x2+6α3x3+

∣ x ∣ |x| x 比较小时, ( 1 + x ) α (1+x)^\alpha (1+x)α e α x e^{\alpha x} eαx 就比较接近。

  • 指数平滑方法中,第 i i i 个历史需求值当权重 α ( 1 − α ) i \alpha(1-\alpha)^i α(1α)i 可以近似为 α e − α i \alpha e^{-\alpha i} αeαi,下面这些图形中显示两个函数的近似程度

幂函数与指数函数的近似_第1张图片
幂函数与指数函数的近似_第2张图片
幂函数与指数函数的近似_第3张图片

  • 从图形上,确实比较接近的,尤其是当 α \alpha α 比较小时。

代码:

import numpy as np
import matplotlib.pyplot as plt


alpha = 0.2
x = np.arange(0, 50)
y1 = [(1 - alpha)**i for i in x]
y2 = [np.exp(-alpha*i) for i in x]

plt.plot(x, y1, label = r'$(1-\alpha)^i$')
plt.plot(x, y2, label = r'$e^{-\alpha i}$')
plt.title(r'$\alpha$ = ' + str(alpha) )
plt.legend()
plt.show()

plt.figure()
alpha = 0.5
x = np.arange(0, 50)
y1 = [(1 - alpha)**i for i in x]
y2 = [np.exp(-alpha*i) for i in x]

plt.plot(x, y1, label = r'$(1-\alpha)^i$')
plt.plot(x, y2, label = r'$e^{-\alpha i}$')
plt.title(r'$\alpha$ = ' + str(alpha) )
plt.legend()
plt.show()

plt.figure()
alpha = 0.8
x = np.arange(0, 50)
y1 = [(1 - alpha)**i for i in x]
y2 = [np.exp(-alpha*i) for i in x]

plt.plot(x, y1, label = r'$(1-\alpha)^i$')
plt.plot(x, y2, label = r'$e^{-\alpha i}$')
plt.title(r'$\alpha$ = ' + str(alpha) )
plt.legend()
plt.show()

你可能感兴趣的:(数学优化,python/R,幂函数,指数函数,近似,指数平滑,二项近似)