In der Vergangenheit galt das Buch Numerical Recipes als Goldstandard für numerische Algorithmen. Der frühesten Fortran-Edition folgten Editionen in C und C ++ und andere, um sie auf den neuesten Stand zu bringen. Dadurch wurde ein Referenzcode für die aktuellen Algorithmen bereitgestellt.
Ältere Ausgaben sind heutzutage kostenlos online verfügbar .
Leider denke ich, dass es jetzt meist nur als historischer Foliant nützlich ist. Die "Software Engineering" -Praktiken scheinen mir veraltet zu sein, und der tatsächliche Inhalt hat nicht mit der Literatur Schritt gehalten.
Welche ähnlich umfassenden und dennoch ansprechbaren Referenzen sollte sich der moderne Programmierer stattdessen ansehen?
books
algorithms
resources
Stewart
quelle
quelle
Antworten:
In Bezug auf numerische Rezepte benötigen wir zwei Dinge - das Verständnis, wie Algorithmen in die Programmierimplementierung umgesetzt werden, und zweitens eine Referenzimplementierung, die Dinge bucht.
Es scheint KEINE Kombination von BOOK + Reference Software zu geben. Es gibt jedoch einige gute Referenzsoftware, von denen einige auf Arbeiten verweisen, die auf solchen Algorithmen basieren.
Hier ist eine Liste einiger Referenzbibliotheken (meist Open Source), die hilfreich sein könnten:
Andere spezifische Dinge sind
Sie können auch " Datenanalyse mit Open Source Tools " auschecken .
Hier ist eine riesige Vergleichsliste, obwohl ich nicht alles verifiziert habe.
http://www.netlib.org/utk/people/JackDongarra/la-sw.html
quelle
Numerical Recipes ist nach wie vor ein nützliches Buch, IMO. Es beschreibt die Algorithmen sehr gut, einschließlich ihrer Herleitung, der Situationen, in denen sie nützlich sind, und Alternativen, die in Betracht gezogen werden sollten, wenn dies nicht der Fall ist. Ich benutze das Buch seit Jahren.
Eine Sache, die ich nie benutzt habe, ist ihr Code. Ich schreibe immer meine eigene Implementierung basierend auf den beschriebenen Algorithmen. In dieser Hinsicht spielt die Qualität ihres Codes keine Rolle (und es ist in der Tat fraglich: Im C-Buch der 2. Auflage definieren sie eine Sammlung von Funktionen und Makros, um Arrays nach Einheiten zu indizieren, da die Autoren einen Fortran-Hintergrund haben). Als Beispiel: Ich musste einmal FFT in Objective-C implementieren, also benutzte ich NR in Fortran, um zu verstehen, was FFT tat und wie der Code aussehen sollte.
Stellen Sie sich NR genauso vor wie Knuth: Sie würden niemals Code aus diesem Buch in Ihr Projekt einfügen.
quelle
Persönlich mag ich es, es geht um das Niveau, das ich verstehen kann
Der Code ist Fortran übersetzt in 'C', aber das ist in Ordnung. Sie können ihn einfach zurück in Fortran und dann selbst in C ++ übersetzen! Die Fortran- oder C-Versionen haben den Vorteil, dass der Code so gut wie eigenständig ist und Sie nicht eine Reihe von C ++ - Klassen hineinziehen müssen, um Matrizen, Komplexe usw. zu erstellen - insbesondere angesichts der Qualität ihrer Codierung!
Es gibt einen berechtigten Einwand gegen die lächerlichen Urheberrechtsansprüche der Autoren, und ich kenne eine Reihe von Dozenten, die NR in ihren Klassen verbieten. Unter Zahlenexperten gelten die Bücher auch als "genug Informationen, um Sie in Schwierigkeiten zu bringen". Der einzige Vorschlag ist jedoch, den persönlichen Code zu verwenden oder NAG zu kaufen.
Eine empfohlene Sammlung alternativer hochwertiger numerischer Bibliotheken finden Sie unter http://www.netlib.org/
quelle