用Scipy理解Gamma函数

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录

Gamma函数

Γ \Gamma Γ函数是阶乘的解析延拓在概率论中非常常见例如Gamma分布表示某个事件在某个时刻发生第 n n n次的概率Gamma分布详解

Γ \Gamma Γ函数显含在 Γ \Gamma Γ分布中其表达式可以写为

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t \Gamma(z)=\int^\infty_0 t^{z-1}e{-t}\text dt Γ(z)=0tz1etdt

z z z为正整数时有 Γ ( z ) = ( z − 1 ) ! \Gamma(z)=(z-1)! Γ(z)=(z1)!其函数图像如下

在这里插入图片描述
绘图代码为

import numpy as np
from scipy.special import gamma, factorial
import matplotlib.pyplot as plt
x = np.linspace(-3.5, 6, 2000)
y = gamma(x)
plt.plot(x, y, 'b')
plt.ylim(-100, 150)
k = np.arange(1, 7)
plt.plot(k, factorial(k-1), 'k*')
plt.grid()
plt.xlabel('x')
plt.show()

对数Gamma函数

鉴于阶乘函数发散得十分迅速故而scipy提供了两种对数的Gamma函数分别是gammalnloggamma其中后者的自变量大于0。其图像为

在这里插入图片描述

import scipy.special as sc
x = np.linspace(-10, 10, 2000)
plt.plot(x, sc.gammaln(x), 'b')
plt.show()

复数域的Gamma函数

Γ \Gamma Γ函数在复数域也有定义对于 Γ ( x + i ⁡ y ) \Gamma(x+\operatorname{i}y) Γ(x+iy)其实部可写为

ℜ ( Γ ( x + i ⁡ y ) ) = ∫ 1 ∞ t x − 1 e t cos ⁡ ( y ln ⁡ t ) d t + ∑ k = 0 ∞ ( − 1 ) k k ! [ k + x ( k + x ) 2 + y 2 ] \Re(\Gamma(x+\operatorname{i}y)) = \int^\infty_1\frac{t^{x-1}}{e^t}\cos(y\ln t)\text dt+\sum_{k=0}^\infty\frac{(-1)^k}{k!}[\frac{k+x}{(k+x)^2+y^2}] (Γ(x+iy))=1ettx1cos(ylnt)dt+k=0k!(1)k[(k+x)2+y2k+x]

其虚部可写为

ℑ ( Γ ( x + i ⁡ y ) ) = ∫ 1 ∞ t x − 1 e t sin ⁡ ( y ln ⁡ t ) d t − ∑ k = 0 ∞ ( − 1 ) k k ! [ y ( k + x ) 2 + y 2 ] \Im(\Gamma(x+\operatorname{i}y)) = \int^\infty_1\frac{t^{x-1}}{e^t}\sin(y\ln t)\text dt-\sum_{k=0}^\infty\frac{(-1)^k}{k!}[\frac{y}{(k+x)^2+y^2}] (Γ(x+iy))=1ettx1sin(ylnt)dtk=0k!(1)k[(k+x)2+y2y]

scipy中的gamma函数本身就是定义在复数域的故而可以绘制一下复数域的 Γ \Gamma Γ函数

xs = np.linspace(-5, 5, 2000)
ys = np.linspace(-5, 5, 200)
ys, xs = np.meshgrid(ys,xs)
zs = gamma(xs+1j*ys)
ax = plt.subplot(projection='3d')
ax.plot_surface(xs, ys, zs)
plt.show()

结果如下

在这里插入图片描述
沿着实轴看去其实就是 Γ ( x ) \Gamma(x) Γ(x)随着 x x x逐渐变大复数域上其他位置也逐渐出现了凸起。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6