代码:
# -*- coding: utf-8 -*-'''Created on 5月15日@author: user@attention: gama function'''import numpy as npimport matplotlib.pyplot as pltfrom scipy.special import gamma, factorial def test_gamma_funciton():#整数集阶乘拓展到实数集、复数集#整数print (gamma([0, 1, 5, 10]))#实数print (gamma([0.5, 1.8, 5.9, 10.2]))#复数z = 2.5 + 1jprint (gamma(z))print (gamma(z+1))print (z*gamma(z)) # Recurrence property)#计算π值print (gamma(0.5)**2) # gamma(0.5) = sqrt(pi)#gama和阶乘示意图x = np.linspace(-3.5, 5.5, 2251)y = gamma(x)plt.plot(x, y, 'b', alpha=0.6, label='gamma(x)')k = np.arange(1, 7)plt.plot(k, factorial(k-1), 'k*', alpha=0.6,label='(x-1)!, x = 1, 2, ...')plt.xlim(-3.5, 5.5)plt.ylim(-10, 25)plt.grid()plt.xlabel('x')plt.legend(loc='lower right')plt.show()if __name__ == '__main__': test_gamma_funciton()#gama函数
结果:
[ inf 1.0000e+00 2.4000e+01 3.6288e+05][1.77245385e+00 9.31383771e-01 1.01270191e+02 5.70499028e+05](0.7747621045510835+0.7076312043795929j)(1.2292740569981173+2.5438401155000685j)(1.2292740569981158+2.543840115500066j)3.1415926535897927