(メモ)processingでガウス分布を可視化
NATUREofCODE
processingを用いたプログラミングの書籍として、「NATUREofCODE」というとてもおもしろいものがあります。ざっくりいうとprocessingを使って物理シミュレーションを行う内容なのですが、高校の物理の教科書に出てくるような簡単な物理法則の式を実装・適用するだけで、驚くほど生き生きと物体をシミュレートすることができます。
勉強をかねて、コードを実装していきます。
ガウス分布
正規分布とも言いますし、ラプラス分布とも言います。
正規分布という堅苦しい感じですが、「ありふれた」ぐらいの意味と思っていいと思います。
自然界にありふれた分布ということです。
それでは可視化してみます。
以下がコードになります。
//ガウス分布 import java.util.Random; Random generator; void setup(){ size(640,360); generator = new Random(); frameRate(50); } void draw(){ float num=(float)generator.nextGaussian(); float sd=60; float mean=320; float x=sd*num+mean; noStroke(); fill(255,10); ellipse(x,180,25,25); }
nextGaussian()で標準正規分布(平均0,標準偏差1)に従うお行儀の良い分布を発生させています。
そのあと、画面に合わせて中心が320pixel、左右の標準偏差が60pixelの分布にしています。
この結果、下のようなガウス分布の軌跡が残ります。
分布の中心(320pixel)付近に多く円が描かれていますが、左右の離れたところにも時折円が描画されています。この円の出現位置をカウントしてグラフにすれば、よく見る釣鐘型曲線になります。
せば