カルノー エンジンをモデル化するプログラムを Java で作成しています。完了した作業を計算したいので、統合を使用する必要があります。Google で探し回っていますが、探しているものがまったく見つかりませんでした。何か提案はありますか?
4 に答える
Apache Commons Mathには、統合のためのすぐに使える実装などが含まれています。
Java Number Cruncherは、自分でやりたい場合に適した本です。
数値積分を調べてください。一般的なアプローチは、積分区間内のさまざまなポイントで被積分関数をサンプリングしてから、サンプルの重み付き合計で積分を近似することです-リーマン和を考えてください。さまざまな種類の被積分関数に最適なさまざまなサンプリング分布と重み付け関数を備えた、さまざまな求積規則が多数あります。
均一幅の求積法 (例: 中点法) のほとんどは非常に単純で、コーディングに多くの作業は必要ありませんが、許容できる精度を得るには非常に多くのサンプルが必要になる場合があります。Gauss-Hermite などの可変幅サンプリング ルールはかなり複雑ですが、被積分関数が十分に滑らかであると仮定すると、同じレベルの精度で必要なサンプル数ははるかに少なくなります。さまざまなルールについて読んで、ニーズに最も適したものを見つけ出す必要があります。
Numerical Recipes という本をお勧めします。これは、数値積分法 (および科学計算の他のほぼすべてのトピック) を幅広くカバーしています。
this oneまたはthis other one のような外部ライブラリを使用する必要があります。ネイティブメソッドだけでそれを行うことはできません(まあ、他の回答が示唆するように統合アルゴリズムを自分で実装しない限り、それはあなたが望むものではないと思います-そうでなければ、ここで尋ねていませんでした:-)
Didier H Besset によるObject-Oriented Implemenation of Numerical Methods を見てください。
正確に必要なものに応じて、使用できるさまざまな方程式があります。