[Matlab] LU contro QR

Injo
Dato un sistema lineare generato casualmente con Matlab della forma [tex]Ax=b[/tex] mi sono calcolato la soluzione tramite fattorizzazione LU e QR. Vorrei confrontare la precisione delle due soluzioni ma, essendo il sistema generato casualmente, non conosco a priori la soluzione esatta. Avevo pensato di sostituire le due soluzioni nel sistema ma in questo modo non ottengo niente di apprezzabile, anzi, così facendo in genere sembra essere più stabile LU quando invece dovrebbe esserlo QR.

Sapreste darmi qualche indicazione?

Risposte
Rubini7
ma precisamente cosa devi fare?
io per fare un test analogo ho fatto matrice casuale A, vettore soluzione x fatto di 1 e il termine noto b=Ax. risolvevo il sistema mediante le due fattorizzazioni e trovavo la soluzione x_approx. E valuto l'errore ad esempio come abs(x - x_approx).

vict85
La stabilità dipende dall'algoritmo usato. In generale la QR dovrebbe essere più stabile (calcolata con Householder) ma se usi Gram–Schmidt invece è instabile.

Raptorista1
Quoto vict: gram-schmidt porta molti errori di conto, anche se ne esiste una versione modificata che ne migliora la precisione al costo del doppio della complessità computazionale.
LU invece è un buon metodo, e con la tecnica dei raffinamenti successivi se ne può aumentare la precisione ad ogni passaggio di (addirittura) un fattore paragonabile all'unità di roundoff \(u \simeq 10^{-16}\).

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.