- 締切済み
モンテカルロ法
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- moritakeni
- ベストアンサー率100% (2/2)
モンテカルロ法とは乱数を用いて確率的に運動をシミュレートする方法です。 固体中においてある電子は他の電子や中性子、陽子などと衝突(弾性衝突、クーロン衝突など)しながら運動しています。 運動方程式を連立させて数値的に解ければよいのですが、固体中の粒子の数だけの運動方程式を連立させるのはコンピュータのメモリや計算時間の問題で不可能に近いです。 そこで、単位時間後に電子がどの位置に動くかというのを乱数を用いて決めてあげるのがモンテカルロ法なのです。 私が学生時代に入門書として読んだ本を紹介しておきますのでご参考に。 (色々な本が出版されていますので、読みやすそうな本を探してみることをおすすめします) 「コンピュータ・シミュレーションによる物質科学―分子動力学とモンテカルロ法」川添 良幸, 大野 かおる, 三上 益弘 共立出版
関連するQ&A
- モンテカルロ法
モンテカルロ法を使って計算を行う際に、 ある方法を用いて乱数列を発生させ、それを用いて行いました。 この乱数列は50の区分に分けた後、 カイ2乗分布による危険率1%の頻度検定 に合格したものを用いたのですが、 これではモンテカルロ法による計算を行うには 正しいとはいえないとのことでした。 これはなぜなのでしょうか。 確かに、50区分の頻度検定だけでは、 極端な話、周期50の数列がちょうど50区分に分かれて発生していて 結果として一様乱数となっているような場合も考えられます。 それでは、周期が計算に必要な乱数の数に対して十分に大きいとき、 モンテカルロ法として正しいと言えるようになるのでしょうか? 解説をよろしくお願いします。
- ベストアンサー
- 数学・算数
- 凖モンテカルロ法 or モンテカルロ + MT
3次元に広がる物理量を面積分する方法について検討中です。 凖モンテカルロという方法でLDSという数列を用いて計算をすると、積分計算の 誤差の軽減が速まるらしいということがわかりました。原理はまだ勉強中ですが、 対象の空間を区切って、それぞれの細空間に乱数のポイントを配置することが いい方向に働くように見られます。 これに対して、通常のモンテカルロ法でメルセンヌツイスター(MT)を用いた場合との 違いがいまいちわかりません。MTで一様乱数ができるのであれば、凖モンテカルロ のようにする必要はないのでしょうか?
- ベストアンサー
- 数学・算数
- モンテカルロ法とは?
モンテカルロ法という言葉をたまに耳にするのですが 試行錯誤法とどこが異なるのでしょうか? 検索してみてもどうも同じ手法のように思えて仕方がないのですが。 お願い致します。知っている人がいたら教えてください。
- ベストアンサー
- 数学・算数
- モンテカルロ法
モンテカルロ法で円周率の推定値を計算することを最近習ったのですが、定積分でもそれが可能なのを知り、どうやってプログラムを組めばいいのか分からず、困っています。 例えば、定積分∫[0→1]x^2dx=1/3~0.333([0→1]というのは、積分範囲です。)をモンテカルロ法で計算すると、どういうプログラムを組めばいいのでしょうか? わかる範囲で書いてみたのですが…積分の範囲をどうやってプログラミングすればいいのか、いまいち分かりませんでした。 教えていただけると、助かります。よろしくお願いします。 RANDOMIZE INPUT n SET WINDOW -0.1, 1.1, -0.1,1.1 DRAW grid SET POINT STYLE 1 LET sumin=0 FOR i=0 TO n LET x=RND LET r=x*x SET POINT COLOR 2 ! PRINT USING "(%.####, %.####)": x,y; PLOT POINTS: x,y; NEXT i PRINT sumin;n PRINT sumin/n END
- ベストアンサー
- C・C++・C#
- ルーレットのモンテカルロ法
ルーレットの攻略法にモンテカルロ法(赤、黒などの2倍のエリアの場合1,2,3で最初1+3で4を賭け、当たった場合は両脇から1つずつ数字を消していく。負けた場合は4を足して1+4で5を賭けていく。3倍のエリアの場合は当たったとき両脇から2つずつ数字を消していく。)と言う賭け方がありますが、これらはいずれも1箇所に賭ける場合の計算方法です。 3倍のエリアで2箇所に同時に賭ける場合の計算方法がわかりません。 どなたか解りやすく教えて下さい。 お願いします。
- ベストアンサー
- 数学・算数
- モンテカルロ法
モンテカルロ法で円(半径y=1、x=2の楕円)の面積を求める計算なのですが、 http://www.geocities.co.jp/SiliconValley-SanJose/8366/kihonC.html このURLのプログラムについて、 ソースプログラムの15行目をxの半径が2なので、”2*”となっているのは分かるのですが、 ・17行目でx*xを4で割ることの意味 (2x*2xとなるから4で割ってるのかなとか漠然とは思うのですが、理解をつめたいです。。) ・20行目でinを2倍している意味 を教えていただきたいです。 よろしくお願いいたします。
- ベストアンサー
- 数学・算数
- BASICでモンテカルロ法
モンテカルロ法で円周率の推定値を計算することを最近習ったのですが、定積分でもそれが可能なのを知り、どうやってプログラムを組めばいいのか分からず、困っています。 例えば、定積分∫[0→1]x^2dx=1/3~0.333([0→1]というのは、積分範囲です。)をモンテカルロ法で計算すると、どういうプログラムを組めばいいのでしょうか? わかる範囲で書いてみたのですが…積分の範囲をどうやってプログラミングすればいいのか、いまいち分かりませんでした。 教えていただけると、助かります。よろしくお願いします。 RANDOMIZE INPUT n SET WINDOW -0.1,1.1, -0.1,1.1 DRAW GRID SET POINT STYLE 1 LET sumin=0 FOR i=0 TO n LET x=RND LET y=RND SET POINT STYLE 2 IF y<x*x THEN SET POINT COLOR 4 LET sumin=sumin+1 END IF ! PRINT USING "(%.####, %.####)": x,y PLOT POINTS: x,y NEXT i PRINT 1*1*sumin/n END
- ベストアンサー
- その他(プログラミング・開発)
お礼
ありがとうございます。