純粋なJavaで数値アルゴリズムを実装するために読むべき良いリソースは何ですか?
JVM と GC の相互作用については何も知らないので、もっと知りたいと思っています。
ディディエ・ベセットによる数値法のオブジェクト指向実装を楽しみました。正直なところ、私はほとんど C++ しか使用していませんが、それでもこの本は興味深く楽しいものでした。ただし、常にジョブに最適なアルゴリズムを使用するとは限りません。
また、Golub & Van Loan によるMatrix Computationsも紹介します。決して Java に関するものではありませんが、この分野で働くすべての人にとって必須のテキストです。
Numerical Recipes in C++ のコピーを入手してください。NR には、取り組む問題に最適なアルゴリズムが常に含まれているとは限りません。NR は最適化されたコードのライブラリではなく、教育的なテキストです。しかし、説明は全体的によく、トピックの範囲は広いです。C++ バージョンを選択すると、コードを翻訳しながら Java を学ぶことができます。また、浮動小数点演算と数値解析の基礎に関する優れた本を手に取ってください。
Apache Commons Math には、とりわけ優れた線形代数ライブラリがいくつかあります。
線形代数は、多くの深刻な数値計算作業の基礎です (たとえば、固体および流体力学と熱伝達の問題に対する有限差分、有限要素、および境界要素の定式化)。私の知る限り、その作業のほとんどは、FORTRAN で書かれた商用および社内パッケージによってまだ行われています。Java や C++ や C でさえ、私が生計を立てていた頃は、そのようなことを行うのに十分なパフォーマンスを発揮するとは考えられていませんでした。変わっていたらびっくりです。
Java Number Cruncherは良いスタートです。ただし、GCの問題は扱っていないと思います。とにかく、浮動小数点の精度の問題は、通常、数値アルゴリズムに関連している可能性が非常に高いです。この本はdoubles、場合によっては実際に劣る可能性があることを示していfloatsます。