Quali alternative moderne alle ricette numeriche esistono? [chiuso]

20

In passato, il libro Numerical Recipes era considerato il riferimento gold standard per gli algoritmi numerici. La prima edizione Fortran è stata seguita da edizioni in C e C ++ e altre, portandola quindi più aggiornata. Attraverso questi, ha fornito il codice di riferimento per gli algoritmi all'avanguardia del giorno.

Le edizioni precedenti sono disponibili online gratuitamente al giorno d'oggi.

Purtroppo, penso che ora sia per lo più utile solo come un tomo storico. Le pratiche di "ingegneria del software" mi sembrano obsolete e il contenuto effettivo non è al passo con la letteratura.

Quali riferimenti altrettanto completi e accessibili dovrebbero invece guardare i programmatori moderni?

    
posta Stewart 14.11.2011 - 13:15
fonte

3 risposte

7

In termini di Ricette Numeriche, abbiamo bisogno di due cose: la comprensione di come gli algoritmi si traducono in implementazione di programmazione e in secondo luogo, un'implementazione di riferimento che registri le cose.

Sembra esserci una combinazione NO di BOOK + Reference software. Tuttavia, ci sono alcuni buoni software di riferimento e alcuni di questi forniscono riferimenti a documenti sulla base di tali algoritmi.

Ecco un elenco di alcune librerie di riferimento (per lo più open source) che potrebbero aiutare:

  1. GNU Scientific Library
  2. LAPACK ha un buon libro come manuale utente C'è anche LAPACK ++ e altro (TNT ) pacchetti derivati / correlati. Vedi questo per ulteriori informazioni.
  3. Boost Algebra lineare
  4. Armadillo
  5. BLAS

Altre cose specifiche sono

  1. Apophenia per modelli statistici
  2. Colt
  3. FFTW
  4. Il pacchetto R - e un libro
  5. OpenCV
  6. Libreria del kernel Intel Math
  7. Per il riconoscimento del modello

Puoi anche consultare " Analisi dei dati con strumenti open source ".

Ecco un enorme elenco di confronti anche se non ho verificato tutto.
link

    
risposta data 18.11.2011 - 15:50
fonte
4

Numerical Recipes è ancora, IMO, un libro utile. Descrive molto bene gli algoritmi, comprese le loro derivazioni, le situazioni in cui sono utili e le alternative da considerare quando non lo sono. Ho usato il libro per anni.

Una cosa che ho mai usato è il loro codice. Scrivo sempre la mia implementazione basata sugli algoritmi che descrivono. Sotto questo aspetto la qualità del loro codice non ha importanza (ed è davvero discutibile: nella seconda edizione del libro C, definiscono una collezione di funzioni e macro per rendere le matrici indicizzate in unità perché gli autori provengono da uno sfondo di Fortran). Ad esempio: una volta ho dovuto implementare FFT in Objective-C, quindi ho usato NR in Fortran per capire cosa FFT ha fatto e come dovrebbe apparire il codice.

Pensa a NR nello stesso modo in cui pensi a Knuth: non incolleresti mai il codice di quel libro nel tuo progetto.

    
risposta data 14.12.2011 - 11:31
fonte
3

Personalmente mi piace, riguarda il livello che riesco a capire

Il codice è Fortran tradotto in "C", ma va bene, puoi solo tradurlo in Fortran e poi in C ++ te stesso! Ci sono vantaggi nelle versioni Fortran o C in quanto il codice è praticamente autonomo, non è necessario trascinare in un gruppo di classi C ++ per fare matrici, complessi, ecc. - soprattutto data la qualità della loro codifica! p>

Esiste un'obiezione giustificabile alle ridicole affermazioni sul copyright degli autori e conosco un certo numero di docenti che vietano NR nelle loro classi. Tra gli esperti numerici, i libri hanno anche la reputazione di "informazioni sufficienti per metterti nei guai". Ma il loro unico suggerimento è generalmente quello di utilizzare il loro codice personale o acquistare NAG.

Una raccolta suggerita di librerie numeriche alternative di alta qualità è disponibile al link

    
risposta data 14.12.2011 - 19:05
fonte

Leggi altre domande sui tag