円内部(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ニュース 2026年3月11日 STMicroelectronicsが新UWBチップ発表、Ericssonが主導のVICTOR6G発足、Silicon LabsのBluetooth SoCがBANFのタイヤモニタリングシステムに採用、京セラが新しい差動クロック水晶発振器を発表など(2026.03.11)
- 高周波・RFニュース 2026年3月10日 IEEE Microwave MagazineはHF-VHF-UHF特集、Pythonの高周波ライブラリscikit-rfがv1.11.0に、Samsung Galaxy S26 Ultra分解動画、フジクラが4000心SWR/WTC製品化、Perasoの60GHzモジュールが軍用ドローン識別に採用など(2026.03.10)
- RF Weekly Digest (Gemini 3.1 Pro・Google AI Studio BuildによるAIで高周波・RF情報の週刊まとめアプリ)2026/3/1-3/8(2026.03.08)
- MATLAB OnlineでAntenna ToolboxのantennaDesigner機能を使って様々なアンテナ(ホーン、フラクタル(スノーフレーク)パッチ、Vivaldi、誘電体共振器)のSパラメータ、指向性を計算する。(2026.03.11)
- MATLAB OnlineでAntenna ToolboxのantennaArrayDesigner機能を使って一行もスクリプトを書かずにパッチアンテナアレイを設計してSパラメータ、指向性などを計算する。1素子とちがって計算にはかなり時間がかかるのでとりあえず2素子のアレイで。(2026.03.09)
« Python+NumbaでWikipediaのList of chaotic mapsを1つずつ描く(その2) Tinkerbell Map。あのティンカーベルに似ている? | トップページ | 6月19日に公開された厚生労働省の新型コロナウイルス接触確認アプリ(COCOA) をiPhoneにインストールした。 »







コメント