
λ = 1,2,3,4,5 のグラフ。
def poisson_distribution(k, lambda_):
# return(lambda_**k * math.exp(-lambda_)) / math.factorial(k)
return (lambda_**k * math.exp(-lambda_)) / scipy.special.factorial(k)
数式はこれ。Bingチャット先生の回答、本でも数式は確認したので正しい。実はこれがなかなかうまく行かず。
原因 math.factorial() は引数に配列を取れない。よってに上のkを
k = np.arange(0, 20) とした場合には計算してくれないの。エラー出た。
そこでBard先生に訊いた次第である。配列が取れるfactorial()があったのだった。
import scipy.special
scipy.special.factorial(k)
これで思惑通りの結果になった。もっとも学習用として数式書いているのであって実際はライブラリを使いますね。数式書いている・・・・間違いでBingチャット先生の回答からのコピペですけどね(笑)
他にカシオのサイト
https://keisan.casio.jp/menu/system/000000000850
いいですね。便利ですね。やっぱ、計算はカシオですね。知らんけど。