確率分布を試しに書く際、データを発生させたりせず試したかったので、数式を扱うsympyで書いてみました。
使うもの
# 描画 from sympy.plotting import plot # 数式 from sympy import symbols # 計算 from sympy import exp,pi,sqrt
▼上を読んで「ん?」となったらsympyの基本をまとめた記事をどうぞ esu-ko.hatenablog.com
今回書くもの
正規分布を書いてみることにします。
この数式をまずはコードに起こします。
, とxをsymbolsにし、式にします。
mu,sigma,x = symbols('mu,sigma,x') expr = (1/sqrt(2 * pi * sigma**2 )) * exp(-1 * ((x-mu)**2 )/ (2*sigma**2))
プロットしてみる
正規分布は、 ,に値を渡し形を決定するので
上記に代入をします。.subs
で代入です。
plot( expr.subs([ (mu,0), (sigma,1) ]), (x,-2,2) #xの範囲を決定する )
何パターンか試す場合
#sigmaは固定し、平均を動かしてみる ps = [ expr.subs([(sigma,1),(mu,i)])for i in range(5)] plot(*ps,range=(x,-10,10))
オッケーそうです。