本文へスキップ
モンテカルロシミュレーション
モンテカルロ・シミュレーションのオンライン教科書  Javaアプレット版

 このホームページは、乱数をたくさん発生させ、確率実験を行なう手法――これをモンテカルロ・シミュレーションといいます――のオンライン教科書です。あなたのパソコンを用いて、実際にプログラミングしてWEB上で実行することができます。

C言語版はこちら

経緯

 1994年に、著者はソフトバンク社から「Cによるシミュレーションプログラミング」 という本を、出版しました。現在それは絶版となっています。しかしながら、その後、それを大学などの教科書に使いたい、再版しないのかなどの問い合わせが ありました。出版したときの電子ファイルが残っていたので、それのすべてをホームページで、公開することといたします。その際、ホームページ上から、直接 プログラムを実行出来るように、CプログラムをJavaアプレットに変換し、公表します。
 このホームページが、シミュレーションに興味をお持ちの方、トラヒック理論の研究者などのお役に立てれば幸いです。

  • 単行本: 286ページ
  • 出版社: ソフトバンク株式会社
  • ISBN-10: 4890525491
  • ISBN-13: 978-4890525492
  • 発売日: 1994/07


このホームページの使い方

 このホームページは、Java言語そのものの解説はありません。専門のホームページに譲ります。
 2章でシミュレーションで基本となる、乱数の発生方法、乱数の性質を学びます。3章では乱数を用い、確率的な簡単な実験をおこないます。4章においては、さまざまな分布の乱数を作りシミュレーションに備えます。5章では、シミュレーションの基本となったモンテカルロ・シミュレーションを、実際にプログラミングしてみます。
 6章では、ランダムウォークとその応用をシミュレーションします。7章では通信分野で、進展が大きい信号処理の初歩を、学びます。8章が、本書の最も重要な部分で、同時に進行する、状態変化をシミュレーションする手法を学び、9章でその手法を用い通信トラヒックの問題を解析します。最後10章でにシミュレーションの様々な応用例、ギャンブルからジェネティック・アルゴリズムまでをプログラミングしてみます。
 すべてのプログラムは、このホームページから実行することが出来ます。したがってこのホームページはは単なる解説ではなく、実際にシミュレーションプロ グラムを作り、動かすことを目的にしています。さらに、公開されたプログラムを土台に、ご自身で自分の問題の解決のためのプログラムを作成し、シミュレー ションを行うことが出来ます。また各章の終りには、演習問題を用意しましたから、理解を深めるため、挑戦してください。 きっと新しい発見と喜びがあるで しょう。

以下のページではJavaのアプレットを用いています。 Javaのアプレットを使うには、ブラウザをアプレットに対応させてください。(Javaの無料ダウンロードサイト http://java.com/ja/でDownload ボタンをクリックしてください。そしてWindows Internet Explorer の、ツール>インターネットオプション>詳細設定><applet>にJRE x.xxを使用、とします)



目次

 1. モンテカルロ法とシミュレーション
 2. 乱数はシュミレーションの基本−− 乱数の発生方法−−
2.1 でたらめな数の列−−乱数−−
2.2 Javaの乱数発生機構 −−Math.random()メソッド−−
2.3 乱数は本当の乱数か−−頻度の検定−−
2.4 もう1つの乱数検定方法−−ポーカ検定−−
演習
 3. 乱数を用いた確率の実験
3.1 コインを投げる実験−−二項分布−−
3.2 ごくまれにしか起こらないこと−−ポアソン分布−−
3.3 ごくまれにしか起こらないことの時間間隔−−指数分布−−
3.4 大数の法則−−何回も繰り返す−−
3.5 中心極限定理−−たくさんのサイコロを投げる−−
演習
 4. どんな分布の乱数でも作り出せる−−乱数の変換方法−−
4.1 区間を決めた一様分布の乱数を作る−−区間一様乱数−−
4.2 指数分布の乱数を作る−−指数乱数−−
4.3 ポアソン分布の乱数発生方法−−ポアソン乱数−−
4.4 アーラン乱数を作る −アーラン乱数−
4.5 正規分布の乱数を作る −正規乱数−
4.6 任意の分布の乱数を作る
演習
 5. 乱数を用いた実験数学−−モンテカルロ法−−
5.1 モンテカルロ法の古典−−ビュフォンの針−−
5.2 乱数によりπを求めるもう1つの例−−モンテカルロ法による数値積分−−
5.3 乱数により球の体積を求める−−モンテカルロ法による多重積分−−
演習
 6. ランダムウォークのシミュレーション
6.1 1次元ランダムウォーク
6.2 2次元ランダムウォークのシミュレーション
6.3 拡散のシミュレーション
6.4 ほこりはすみにたまる
演習
 7. 信号処理−−雑音の中から信号を拾い出す−−
7.1 ショットノイズのシミュレーション
7.2 CRフィルタによる信号の分離
7.3 移動平均による信号の分離
7.4 同期加算
演習
 8. 同時進行のシミュレーション技法−−機械修理の問題を例題に−−
8.1 机上で実験してみる
8.2 コンピュータによる例題のシミュレーション−−固定時間方式−−
8.3 高速な方法−−変化点方式−−
8.4 どちらのシミュレーション方式がいいか
8.5 シミュレーション時間の決め方
演習
 9. 通信トラヒックのシミュレーション−−待ち合わせシステムと即時系システム−−
9.1 待ち合わせシステムの種類
9.2 待時式入線無限大のシステム↑*−−待ち合わせシステムの標準−−
9.3 待ち合わせのないシステム−−即時系システム−−
9.4 プライオリティ待ち合わせシステム−−至急と普通−−
9.5 サービス段が複数の場合−−いくつものサービスを受ける−−
9.6 無線でパケット伝送−−ALOHAシステム−−
9.7 データ伝送の標準方式−−ポーリング・システム−−
演習
10. 何でもシミュレーションしょう−−ギャンブルからジェネティックアルゴリズムまで−−
10.1 ギャンブル必勝法
10.2 在庫管理問題
10.3 欠番
10.4 強磁性体の相転移のシミュレーション
10.5 ジェネティック・アルゴリズム
演習
付録 簡易マルチウインドウシステム
参考文献