6

私はシミュレーションの世界では初心者で、プログラマーが Java で実際のシミュレーション プロジェクトを開発する方法を学びたいと思っています。日食を使用します。私が知る必要がある他のこと (例: 他のパッケージ、ソフトウェアなどとその目的) を誰か指摘できますか?

私が話しているプロジェクトのタイプが明確でないため、質問が少し曖昧に思えるかもしれません。しかし、初心者なので、シミュレーション プロジェクトのコーディング方法を開始する必要があると言わせてください。

4

6 に答える 6

11

離散イベント シミュレーション用のモンテカルロ モデル、またはデリバティブの価格設定用のシミュレーション モデルを構築している場合は、フレームワークコードの本体が既にそこにあることに気付くはずです。有限要素モデルなどの数値シミュレーションを行う場合、シミュレーションは行列計算ライブラリ に基づいています。他のタイプのシミュレーションも存在しますが、これらは最も可能性の高い 2 つのケースです。

私は有限要素モデルを書いたことがなく、これらについてほとんど知りませんが、ある時点でDEC Visual FORTRANに移植する機会がありました。プログラム ( SAFIR 、気にするなら) はフランス語でコメントされていましたが、移植作業は、合計 6 行の FORTRAN コードの 2 つの日付関数を変更し、makefile を作成することで構成されていました。

モンテカルロ モデルは、対象となる1 つまたは複数の変数の分布を取得するために、いくつかの基本母集団を測定することで構成されます。次に、優れた統計的および幾何学的特性を備えた疑似乱数ジェネレーターを使用し (これにはメルセンヌ ツイスターアルゴリズムが広く使用されています)、この出力を適切な分布を持つ確率変数に変換する関数を記述します。変数の分布が非常に異常でない限り、おそらくこれを行うライブラリ関数 を見つけることができるでしょう。

次に、シミュレーション フレームワークを構築または取得し、確率変数を受け取り、モデルに対して実行したい計算を実行するルーチンを記述します。エラーが望ましい許容レベル内に収まるまで、各シミュレーションの結果を保存して実行します。その後、シミュレーション モデルのすべての実行から統計 (平均、分布など) を計算します。

Web には非常に多くのリソースがあり、特にデリバティブの価格設定の分野で、シミュレーション モデリングに関する書籍が多数あります。探し回って、見つけられるものを確認する必要があります。

余談ですが、 Pythonrandomのモジュールにはかなりの数のディストリビューション用の変換関数があります。必要な場合は、それを取得して、適切な変換関数を Java に移植できます。同じ乱数シードを持つ python の出力を使用して、java の正確性をテストできます。

于 2009-02-07T12:26:58.697 に答える
1

簡単に言えば、それは依存するということです。

質問をもっと具体的にしない限り、答えを出す方法はありません。

何をシミュレートしますか?

たとえば、2 つの数値の加算をシミュレートする場合は、次のようなものを使用して実行できます。

a = b + c;

ボールの跳ね返りをシミュレートしたい場合は、ちょっとした数式とグラフィック ライブラリを使用してそれを行うことができます。

Web ブラウザーをシミュレートしたい場合は、それもできます。

したがって、正確な答えは、実行したいシミュレーションによって異なります。

于 2009-02-07T09:59:04.297 に答える
0

これは古い質問ですが、Javaでのシミュレーションでは、ニューカッスルアポンタイン大学のMarkLittleによってJavaSimをインストールしてテストしました。私の知る限り、離散イベントシミュレーションに変換できるモデルがある場合は非常にうまく機能します。Markのサイトhttp://markclittle.blogspot.com.au/2008/03/csimjavasim.htmlを参照してください。また、非常に広範囲で2DグラフィカルモードのDesmo-Jを使用しようとしましたが、MacのJDK1.6では使用できませんでした。

于 2012-09-29T10:15:01.810 に答える
0

まず問題を出してください。

一般的な「シミュレーション」などはありません。そこにはたくさんのテクニックがあります。

あなたが疑似物理学を持ちたいだけのゲーマーなら、おそらくこのようなものが頭に浮かんだでしょう.

于 2009-02-07T15:42:11.373 に答える
0

Repast Symphony をご覧ください: http://repast.sourceforge.net/repast_simphony.html

「2010 年 12 月 3 日にリリースされた Repast Simphony 2.0 Beta は、Microsoft Windows、Apple Mac OS X、および Linux で動作する、緊密に統合された、豊富な対話型のクロスプラットフォーム Java ベースのモデリング システムです。非常に柔軟な開発をサポートします。ワークステーションや小規模なコンピューティング クラスタで使用するための相互作用するエージェントのモデル。 

Repast Simphony モデルは、ロゴの ReLogo ダイアレクト、ポイント アンド クリック フローチャート、Groovy、または Java など、いくつかの異なる形式で開発できます。これらはすべて流動的にインターリーブでき、NetLogo モデルもインポートできます。

Repast Simphony は、社会科学、消費財、サプライ チェーン、将来の水素インフラ、古代の歩行者交通など、多くのアプリケーション ドメインで成功裏に使用されています。」

于 2011-11-24T21:24:13.433 に答える