Come ridurre il num_condizionamento di un sistema in Matlab?
Salve a tutti,
ho bisogno di una consulenza da voi esperti di Matlab e programmazione.....Ho un sistema (lineare) del tipo Ax=b con "A" matrice dei coeff., "x" vettore incognito e "b" termine noto (vettore). Tale sistema presenta un numero di condizionamento eccessivamente alto causa l'elevata disomogeneità di A. Volevo cortesemente sapere se c'era qualche tecnica particolare per ovviare a ciò o se Matlab già di suo opera per evitare tali inconvenienti. Premetto che ho provato anche risoluzioni dirette tipo Gauss, fattorizzazione L,R e altre che Matlab consente di effettuare tramiti semplici comandi ([L,R]=lu(A) per la fattorizzazione quindi la risoluzione del sistema mediante il comando x=A\b) ma i risultati non variano di molto anzi quasi per nulla.
Vi sarei eternamente grato di un aiuto e vi ringrazio infinitamente della disponibilità.
A presto,
Salvatore.
ho bisogno di una consulenza da voi esperti di Matlab e programmazione.....Ho un sistema (lineare) del tipo Ax=b con "A" matrice dei coeff., "x" vettore incognito e "b" termine noto (vettore). Tale sistema presenta un numero di condizionamento eccessivamente alto causa l'elevata disomogeneità di A. Volevo cortesemente sapere se c'era qualche tecnica particolare per ovviare a ciò o se Matlab già di suo opera per evitare tali inconvenienti. Premetto che ho provato anche risoluzioni dirette tipo Gauss, fattorizzazione L,R e altre che Matlab consente di effettuare tramiti semplici comandi ([L,R]=lu(A) per la fattorizzazione quindi la risoluzione del sistema mediante il comando x=A\b) ma i risultati non variano di molto anzi quasi per nulla.
Vi sarei eternamente grato di un aiuto e vi ringrazio infinitamente della disponibilità.
A presto,
Salvatore.
Risposte
quando A nasce male è un po' difficile farla crescere bene... purtroppo siamo solo in grado di dire quante cifre significative perdiamo in accuratezza della soluzione
E putroppo non è neanche possibile farla nascere diversamente perchè l'ho ricontrollata ed è tutto giusto....ho provato pure a risolvere il sistema utilizzando delle implementazioni "ad-hoc" di metodi iterativi (con le matrici rese ovviamente sparse) come quello di Gauss-Seidel (500 iterazioni max e 1e-6 come tolleranza) o sor (500 iteraz., 1e-6 tolleranza e 1.6 come fattore di rilassamento) ma anche questi conducono pressocchè agli stessi risultati.......non so piu' che altro provare.....