- 締切済み
モンテカルロ法の名前の由来
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- info22
- ベストアンサー率55% (2225/4034)
モンテカルロ法の開発者(パイオニア)である命名者やそれを使い始めた当時の人たちに聞くしかないでしょう。 Nick Metropolis(命名者?)そして、 John von Neumann や Stanislaw Ulam など。 参考URL http://lucille.atso-net.jp/wiki/index.php?%A5%E2%A5%F3%A5%C6%A5%AB%A5%EB%A5%ED%CB%A1 http://scienceworld.wolfram.com/biography/Metropolis.html http://www.tscc.tohoku-gakuin.ac.jp/~neichi/lectures/seminar2/monte_carlo.html http://gggzzz.cool.ne.jp/zakkisou/mukasizakkisou/0303zakkisou.html ↑の「030310」の記事 http://monoist.atmarkit.co.jp/terminology/syllabary/ja/mo/montecarlo.html http://www.astro.phys.s.chiba-u.ac.jp/~miyaji/class/keisan-buturi/2009/class07.html
- htms42
- ベストアンサー率47% (1120/2361)
- fantasyman
- ベストアンサー率48% (83/170)
シミュレーションとして簡単に考え単純に 乱数発生>サイコロ>賭博(ギャンブル)>カジノ>モンテカルロ って発想ではないでしょうか?
関連するQ&A
- モンテカルロ法
モンテカルロ法を使って計算を行う際に、 ある方法を用いて乱数列を発生させ、それを用いて行いました。 この乱数列は50の区分に分けた後、 カイ2乗分布による危険率1%の頻度検定 に合格したものを用いたのですが、 これではモンテカルロ法による計算を行うには 正しいとはいえないとのことでした。 これはなぜなのでしょうか。 確かに、50区分の頻度検定だけでは、 極端な話、周期50の数列がちょうど50区分に分かれて発生していて 結果として一様乱数となっているような場合も考えられます。 それでは、周期が計算に必要な乱数の数に対して十分に大きいとき、 モンテカルロ法として正しいと言えるようになるのでしょうか? 解説をよろしくお願いします。
- ベストアンサー
- 数学・算数
- モンテカルロ法の面積近似
Mが2の32乗の、線形合同法で乱数を発生し、 モンテカルロ法を使って、 領域a = {(x,y)|x≧1,y≧2,(x-1)^2 + (y-2)^2 ≦1}の面積の近似値を計算するプログラムを作成し、これを利用してn=10000とした場合の上の領域の面積、および円周率πの近似値を求めよ。 (関数を使う) という課題が出たのですが、乱数の出し方?が変であまり近似されません(^_^;) どなたかどこが変か教えてください(>_<) これだと、2と4になってしまうんです(/_;) #include<stdio.h> #include<stdlib.h> #include<math.h> #define N 100 /*領域Rを含む面積T 領域R=求める面積*/ #define Nx 1 #define Ny 2 /*乱数を発生させる関数*/ unsigned long int random_g(unsigned long int x0, unsigned long int a, unsigned long int c); int main(){ unsigned long int x0, a, c, M; double x, y, s; int n, count_in, count_out; count_in = 0; count_out = 0; printf("x0: ", x0 ); scanf("%d", &x0); a = 61; c = 49; for(n = 0; n < 10000; n++){ /*乱数を発生*/ x = (random_g(x0, 4*a*n+1, c) / (double)4294967296)*Nx + 1; y = (random_g(x0, 4*a*n+1, c) / (double)4294967296)*Ny + 1; if(x >= 1 && y >= 1 && pow(x-1, 2) + pow(y-2, 2) <= 1) count_in++; else count_out++; } s = (double)count_in/(count_in + count_out)*Nx*Ny; printf("s = %f\n", s); printf("pi = %f\n", 2*s); return 0; } unsigned long int random_g(unsigned long int x0, unsigned long int a, unsigned long int c){ int i; x0 = (a*x0 + c); /*printf("%u\n", x0);*/ return x0; }
- ベストアンサー
- C・C++・C#
- 2体衝突近似について
イオンをターゲットに注入する、イオン注入(インプラ)のシミュレーションを行おうと考えています。市販のソフトで有名なものは、“TRIM”や“SRIM”、また最近では“SASAMAL”というものがあると聞いています。この中で用いられている手法は「2体衝突近似」と呼ばれるモンテカルロ法の一種らしいですけど、どなたかこれに関する詳しい書籍・論文等ご存知の方はおりますでしょうか? また、“TRIM”のソースコードは公開されていると聞いたのですが、ネット上で手に入るものなのでしょうか? 宜しくお願いいたします。
- 締切済み
- 物理学
- モンテカルロ法
I=∫ f(x) dx (0から1までの定積分)を評価するために、一様分布U(0,1)に従うU1,...,Unを用いてIn=1/n(f(U1)+...+f(Un))を計算した。 a)E[In],V[In]を求めよ。 b)f(x)=xe^xとして、Inの相対誤差が5%以下になる確率を90%とするには、nをいくらにすればよいか。 ヒント(In-E[In]/sqrt(V[In]) ~ N(0,1)としてよい) とあって、非常に基本的な問題で申し訳ないのですが、a)がよくわかりません。意味的にn->∞の時、E[In]=Iであることはわかるのですが、a)はE[In]=Iとしてよいのでしょうか?
- ベストアンサー
- 数学・算数
- モンテカルロ法
モンテカルロ法で円周率の推定値を計算することを最近習ったのですが、定積分でもそれが可能なのを知り、どうやってプログラムを組めばいいのか分からず、困っています。 例えば、定積分∫[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#
- モンテカルロ法とは?
モンテカルロ法という言葉をたまに耳にするのですが 試行錯誤法とどこが異なるのでしょうか? 検索してみてもどうも同じ手法のように思えて仕方がないのですが。 お願い致します。知っている人がいたら教えてください。
- ベストアンサー
- 数学・算数
- モンテカルロ法について
SPh法を使って、シミュレーションをしようと思ってます。プログラムで粒子を球状に分布させようとしているのですがうまくいきません。どのように書けばいいか教えてください。Fortranを使っています。
- ベストアンサー
- 天文学・宇宙科学
- モンテカルロ法
モンテカルロ法で円(半径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倍している意味 を教えていただきたいです。 よろしくお願いいたします。
- ベストアンサー
- 数学・算数