以前は、 Numerical Recipes の本は、数値アルゴリズムのゴールドスタンダードリファレンスと見なされていました。最初のFortranエディションの後には、CやC++、その他のエディションが続き、より最新の状態になりました。これらを介して、最新のアルゴリズムのリファレンスコードを提供しました。
古いエディション オンラインで無料で入手可能 今日。
残念ながら、今ではほとんどの場合、歴史的な本としてのみ役立ちます。 「ソフトウェアエンジニアリング」の実践は時代遅れのように思え、実際の内容は文献に追いついていません。
代わりに、現代のプログラマーが代わりに見るべきである、同様に包括的で親しみやすい参考文献は何ですか?
数値レシピに関しては、2つのことが必要です。アルゴリズムがプログラミング実装にどのように変換されるかを理解することと、2つ目は、物事を記録するリファレンス実装です。
BOOK +リファレンスソフトウェアの組み合わせは[〜#〜] no [〜#〜]のようです。ただし、いくつかの優れたリファレンスソフトウェアがあり、その一部はそのようなアルゴリズムに基づいて論文を参照しています。
以下は、参考になる可能性があるいくつかのリファレンス(主にオープンソース)ライブラリのリストです。
他の特定のものは
「 オープンソースツールによるデータ分析 」もご覧ください。
すべてを確認したわけではありませんが、ここに比較の膨大なリストがあります。
http://www.netlib.org/utk/people/JackDongarra/la-sw.html
Numerical RecipesはまだIMOの有用な本です。それはそれらの派生、それらが有用である状況、そしてそれらがそうでないときに考慮すべき代替案を含めて、アルゴリズムを本当によく説明しています。この本を何年も使っています。
私が使用していることの1つは決してそれらのコードです。私は常に、彼らが説明するアルゴリズムに基づいて独自の実装を作成します。その点では、コードの品質は重要ではありません(そして、それは確かに疑わしいです。第2版のCブックでは、著者はFortranのバックグラウンドから来ているため、配列とユニットインデックスを作成する関数とマクロのコレクションを定義しています)。例として、Objective-CでFFTを実装する必要があったため、FortranでNRを使用して、FFTの機能とコードの外観を理解しました。
NRはKnuthと同じように考えてください。その本のコードをプロジェクトに貼り付けることは決してありません。
個人的には好きだし、理解できるレベルだ
コードはFortranで「C」に翻訳されていますが、Fortranに翻訳し直してC++に変換するだけでも問題ありません。 FortranまたはCバージョンには、コードがほとんど自己完結型であるという利点があります。行列や複素数などを行うためにC++クラスの束をドラッグする必要はありません-特にコーディングの品質を考えると!
著者による滑稽な著作権の主張には正当な反対意見があり、私は彼らのクラスでNRを禁止する多くの講師を知っています。数値専門家の間で、この本は「問題を起こすのに十分な情報」としての評判も持っています。しかし、彼らの唯一の提案は、一般的に彼らの個人コードを使うか、NAGを購入することです。
代替の高品質数値ライブラリの推奨コレクションは http://www.netlib.org/ にあります