我想绘制泊松分布图,并且在 lambda >= 9 时得到负概率。
以下代码可以生成不同 lambda 值的图表:
请看这两个图:
我认为Lambda = 5看起来不错。
给我:2357947691(在WolframAlpha中相同)。
但是如果我避免使用np.power,而使用
用于计算概率的时候,我得到了负值。我完全糊涂了。有人能解释一下这个影响或者我做错了什么吗?提前谢谢。 :)
以下代码可以生成不同 lambda 值的图表:
import numpy as np
import matplotlib.pyplot as plt
from scipy.special import factorial
for lambda_val in range(1, 12, 2):
plt.figure()
k = np.arange(0,20)
y = np.power(lambda_val, k)*np.exp(-lambda_val)/factorial(k)
plt.bar(k, y)
plt.title('lambda = ' + str(lambda_val))
plt.xlabel('k')
plt.ylabel('probability')
plt.ylim([-0.1, 0.4])
plt.grid()
plt.show()
请看这两个图:
我认为Lambda = 5看起来不错。
Lambda = 9 不是。
我相当确信它与np.power有关,因为。np.power(11, 9)
给我:-1937019605,而
11**9
给我:2357947691(在WolframAlpha中相同)。
但是如果我避免使用np.power,而使用
y = (lambda_val**k)*math.exp(-lambda_val)/factorial(k)
用于计算概率的时候,我得到了负值。我完全糊涂了。有人能解释一下这个影响或者我做错了什么吗?提前谢谢。 :)
np.finfo(float).bits
。 - 9769953