本文的全部理论基础见于 神奇的Gamma函数(scipy)。
k!⇒x!,x≥0
阶乘插值,在更大的范围里说这其实是一个 数列插值的问题,通俗地说,就是把数列的通项公式定义从 整数集合延拓到实数集合。
n⇒R
例如数列 1,4,9,16,… 可用通项公式 n2 自然表达,即便 n 为实数的时候,这个通项公式也有良好定义。直观地说,也就是可以找到一条平滑的曲线通过
答案是显然地:
k!=∫∞0xke−xdx
k∈R 对等式右边有意义,自然可通过等式右边计算正实数的阶乘,下面我们就用python(scipy)简单仿真实践插值:
import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
def fact_int(x, k):
return x**k*np.exp(-x)
if __name__ == '__main__':
x = np.arange(0, 4, .01)
plt.plot(x, [integrate.quad(fact_int, 0, np.inf, args=k)[0] for k in x], 'g', lw=2)
k = np.arange(0, 5)
plt.plot(k, [integrate.quad(fact_int, 0, np.inf, args=k)[0] for k in k], 'r--', marker='o', markersize=10)
plt.show()