web-dev-qa-db-ja.com

数値レシピに代わる最新の方法は何ですか?

以前は、 Numerical Recipes の本は、数値アルゴリズムのゴールドスタンダードリファレンスと見なされていました。最初のFortranエディションの後には、CやC++、その他のエディションが続き、より最新の状態になりました。これらを介して、最新のアルゴリズムのリファレンスコードを提供しました。

古いエディション オンラインで無料で入手可能 今日。

残念ながら、今ではほとんどの場合、歴史的な本としてのみ役立ちます。 「ソフトウェアエンジニアリング」の実践は時代遅れのように思え、実際の内容は文献に追いついていません。

代わりに、現代のプログラマーが代わりに見るべきである、同様に包括的で親しみやすい参考文献は何ですか?

21
Stewart

数値レシピに関しては、2つのことが必要です。アルゴリズムがプログラミング実装にどのように変換されるかを理解することと、2つ目は、物事を記録するリファレンス実装です。

BOOK +リファレンスソフトウェアの組み合わせは[〜#〜] no [〜#〜]のようです。ただし、いくつかの優れたリファレンスソフトウェアがあり、その一部はそのようなアルゴリズムに基づいて論文を参照しています。

以下は、参考になる可能性があるいくつかのリファレンス(主にオープンソース)ライブラリのリストです。

  1. GNU科学ライブラリ
  2. [〜#〜] lapack [〜#〜] 良いbookユーザーマニュアルLAPACK ++ および other(TNT) 派生/関連パッケージもあります。詳細は this を参照してください。
  3. ブースト線形代数
  4. アルマジロ
  5. [〜#〜]ブラス[〜#〜]

他の特定のものは

  1. アポフェニア 統計モデル用
  2. コルト
  3. [〜#〜] fftw [〜#〜]
  4. The Rパッケージ -と
  5. OpenCV
  6. Intel Mathカーネルライブラリ
  7. パターン認識 の場合

オープンソースツールによるデータ分析 」もご覧ください。

すべてを確認したわけではありませんが、ここに比較の膨大なリストがあります。
http://www.netlib.org/utk/people/JackDongarra/la-sw.html

7
Dipan Mehta

Numerical RecipesはまだIMOの有用な本です。それはそれらの派生、それらが有用である状況、そしてそれらがそうでないときに考慮すべき代替案を含めて、アルゴリズムを本当によく説明しています。この本を何年も使っています。

私が使用していることの1つは決してそれらのコードです。私は常に、彼らが説明するアルゴリズムに基づいて独自の実装を作成します。その点では、コードの品質は重要ではありません(そして、それは確かに疑わしいです。第2版のCブックでは、著者はFortranのバックグラウンドから来ているため、配列とユニットインデックスを作成する関数とマクロのコレクションを定義しています)。例として、Objective-CでFFTを実装する必要があったため、FortranでNRを使用して、FFTの機能とコードの外観を理解しました。

NRはKnuthと同じように考えてください。その本のコードをプロジェクトに貼り付けることは決してありません。

4
user4051

個人的には好きだし、理解できるレベルだ

コードはFortranで「C」に翻訳されていますが、Fortranに翻訳し直してC++に変換するだけでも問題ありません。 FortranまたはCバージョンには、コードがほとんど自己完結型であるという利点があります。行列や複素数などを行うためにC++クラスの束をドラッグする必要はありません-特にコーディングの品質を考えると!

著者による滑稽な著作権の主張には正当な反対意見があり、私は彼らのクラスでNRを禁止する多くの講師を知っています。数値専門家の間で、この本は「問題を起こすのに十分な情報」としての評判も持っています。しかし、彼らの唯一の提案は、一般的に彼らの個人コードを使うか、NAGを購入することです。

代替の高品質数値ライブラリの推奨コレクションは http://www.netlib.org/ にあります

3
Martin Beckett