3.5!——阶乘的插值(python)

来源:互联网 发布:windows引导修复工具 编辑:程序博客网 时间:2024/05/22 11:32

本文的全部理论基础见于 神奇的Gamma函数(scipy)。

k!x!,x0

阶乘插值,在更大的范围里说这其实是一个数列插值的问题,通俗地说,就是把数列的通项公式定义从整数集合延拓到实数集合
nR

例如数列 1,4,9,16, 可用通项公式 n2自然表达,即便 n为实数的时候,这个通项公式也有良好定义。直观地说,也就是可以找到一条平滑的曲线通过 y=x2 通过所有的整数点((n,n2))这些点,从而可以把定义在整数集上的公式延拓到整个实数集合。可是对于阶乘序列 1,2,6,24,120,720,,我们是否像计算 2.52一样计算 3.5!的呢。
答案是显然地:
k!=0xkexdx

kR 对等式右边有意义,自然可通过等式右边计算正实数的阶乘,下面我们就用python(scipy)简单仿真实践插值:

import numpy as npimport matplotlib.pyplot as pltfrom scipy import integratedef 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()



0 0
原创粉丝点击