円内部(2次元)の一様乱数でアホなミスをする、、、球内部(3次元)のときだけ角度に気を付けると思っていた、、、半径もか、、、Pythonで図示して確認する。
ちょっとしたモンテカルロシミュレーション(ってほどでもないが)で円の内部の一様分布している乱数が必要となった。
ああ、これは3次元はヤコビアンとかで気を付けないと、2次元はそのままでよかったな、と思って
x=r cosθ
y=r sinθ
で[0,1)の一様分布する乱数u,vを使ってr=u, θ=2πvとして計算したら、、、
あれ?真ん中が濃いぞ?
・・・ああ、2次元でも半径は変換しないとダメか! r dr dθ = d(r^2/2) dθなので
r=√u としないとダメだった、、、
例えばこんなところ。
https://qiita.com/aa_debdeb/items/e416ae8a018692fc07eb
変換すると、、、
ちゃんと一様っぽくなった。こんなことまで忘れていてダメダメ、、、
ついでに3次元も。
なにも考えず
x=r cosφ sinθ
y=r sinφ sinθ
z=r cosθ
で、[0,1)の一様分布する乱数u,vを使ってr=u, φ=2πv, θ=πwとして計算したら、、
案の定、θ=0,πの方向で濃くなる。これは
sinθ dθ dφ = d(-cosθ) dφなので
φ=2πv
θ=arccos(2*w-1)
これは覚えていたのでやってみたが、
真ん中に集まる、、、のも半径の変換を忘れているから。
実際は r^2 sinθ dr dθ dφ = d(r^3/3) d(-cosθ) dφ
なので
r=∛u
φ=2πv
θ=arccos(2*w-1)
とすればようやく一様な球に。
※表示はPython+Matplotlibを使ってます。
« Python+NumbaでWikipediaのList of chaotic mapsを1つずつ描く(その2) Tinkerbell Map。あのティンカーベルに似ている? | トップページ | 6月19日に公開された厚生労働省の新型コロナウイルス接触確認アプリ(COCOA) をiPhoneにインストールした。 »
「学問・資格」カテゴリの記事
- 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース2021年2月16日 IEEE Microwave Magazineの特集はオールデジタルのRFID、Microwave JournalはEバンド ミリ波通信に衛星や気球を使う話、アメリカの半導体企業がバイデンに投資を迫る、(2021.02.17)
- カオスを生じる電気回路、Chua’s circuitをLTspiceで回路シミュレーションしてみる。(2021.02.19)
- Labyrinth Chaos(迷宮カオス)を生むThomas-Rössler方程式のパラメータbを色々変えて、Python+Scipyでルンゲクッタ8次のDOP853(Dormand&Prince)を使って計算してGIFアニメ(2021.02.16)
- フィッツヒュー・南雲 (FitzHugh-Nagumo) 方程式をPython+Scipyでルンゲクッタ8次のDOP853(Dormand Prince)で計算。(2021.02.23)
- 「水晶振動子の等価回路計算」をカシオの高精度計算サイトkeisan.casio.jpの自作式としてUP! インピーダンスの大きさと位相がグラフ化できる。(2021.02.12)
« Python+NumbaでWikipediaのList of chaotic mapsを1つずつ描く(その2) Tinkerbell Map。あのティンカーベルに似ている? | トップページ | 6月19日に公開された厚生労働省の新型コロナウイルス接触確認アプリ(COCOA) をiPhoneにインストールした。 »
コメント