Eugenio
2008-03-23 16:18:56 UTC
Dovrei risolvere due sistemi lineari di 4 equazioni in 4 incognite,
di cui ho la matrice dei coefficienti (float) e il vettore dei termini
noti. Una matrice è del tipo
a 0 c 0
0 f g 0
i j k l
m n o p
e devo risolverla solo una volta. L'altra è del tipo
a b c 0
e f g 0
i j 0 l
m n 0 p
e devo risolverla decine di volte al secondo. Cosa potrei usare che
non mi complichi troppo la vita?
Ipotesi 1: appoggiarmi ad una libreria specializzata tipo Lapack++
(che, per quello che devo fare, mi sembra come prendere un aereo per
andare a comprare il pane, e le cui firme dei metodi non mi sembrano
molto user-friendly)
Ipotesi 2: usare il metodo di Cramer, cosa che però implica il calcolo
del determinante della matrice; e il determinante di una matrice 4x4 è
dispendioso da calcolare senza usare programmazione dinamica (a meno
che non debba implementare un metodo veloce... ma allora tanto vale
implementare una fattorizzazione LU con cui risolvere tutto il
sistema!)
Ipotesi 3: sviluppare a manina le formule (es. per sostituzione) e
scriverle direttamente...
Ci sono altre librerie C++ non commerciali che lo fanno in modo
"semplice"? Mi servirebbe un singolo metodo che risolve un sistema 4x4
(o che calcola il determinante in modo veloce). Se può servire,
sviluppo su Linux...
Consigli?
Grazie...
--
Narcolessico
http://binaryunit.blogspot.com
di cui ho la matrice dei coefficienti (float) e il vettore dei termini
noti. Una matrice è del tipo
a 0 c 0
0 f g 0
i j k l
m n o p
e devo risolverla solo una volta. L'altra è del tipo
a b c 0
e f g 0
i j 0 l
m n 0 p
e devo risolverla decine di volte al secondo. Cosa potrei usare che
non mi complichi troppo la vita?
Ipotesi 1: appoggiarmi ad una libreria specializzata tipo Lapack++
(che, per quello che devo fare, mi sembra come prendere un aereo per
andare a comprare il pane, e le cui firme dei metodi non mi sembrano
molto user-friendly)
Ipotesi 2: usare il metodo di Cramer, cosa che però implica il calcolo
del determinante della matrice; e il determinante di una matrice 4x4 è
dispendioso da calcolare senza usare programmazione dinamica (a meno
che non debba implementare un metodo veloce... ma allora tanto vale
implementare una fattorizzazione LU con cui risolvere tutto il
sistema!)
Ipotesi 3: sviluppare a manina le formule (es. per sostituzione) e
scriverle direttamente...
Ci sono altre librerie C++ non commerciali che lo fanno in modo
"semplice"? Mi servirebbe un singolo metodo che risolve un sistema 4x4
(o che calcola il determinante in modo veloce). Se può servire,
sviluppo su Linux...
Consigli?
Grazie...
--
Narcolessico
http://binaryunit.blogspot.com