Corsi di Laurea in Ingegneria Meccanica Trasmissione del calore con applicazioni numeriche: informatica applicata a.a. 16/17 Teoria – Parte II Ing. Nicola Forgione Dipartimento di Ingegneria Civile E-mail: [email protected]; tel. 0502218057 Sistemi di equazioni algebriche lineari Introduzione • La regola di Cramer è inefficiente per la soluzione dei sistemi lineari perché coinvolge un numero elevato di operazioni. • Si adottano perciò altri metodi che vengono suddivisi in due categorie: • metodi diretti: forniscono virtualmente la soluzione esatta (l’errore dipende solo dall’arrotondamento) con un numero finito di operazioni (es.: metodo di Gauss, di Gauss Jordan, ecc.) ; • metodi iterativi: forniscono la soluzione come limite di successive approssimazioni (metodo di Jacobi, di Gauss-Seidel, SOR, ecc.). • Nel seguito faremo riferimento ad un sistema lineare avente la forma matriciale: Ax=b in cui si suppone la matrice dei coefficienti, A, non singolare per garantire l'esistenza e l’unicità della soluzione. Il teorema di Rouché-Capelli afferma che esistono soluzioni per il sistema se e solo se il rango della matrice completa è uguale al rango della matrice incompleta. Sistemi di equazioni algebriche lineari Metodo di Gauss (o delle eliminazioni successive) • Il metodo consiste nel sommare le equazioni tra loro dopo averle moltiplicate per opportuni coefficienti in modo da ottenere un sistema lineare equivalente, caratterizzato da una matrice triangolare superiore (eliminazione in avanti). a11 a 21 a31 a41 a51 a12 a13 a14 a22 a23 a24 a32 a33 a34 a42 a52 a43 a53 a44 a54 a15 x1 b1 aˆ11 a25 x2 b2 0 a35 x3 b3 0 a45 x4 b4 0 a55 x5 b5 0 aˆ12 aˆ22 aˆ13 aˆ23 aˆ14 aˆ24 0 aˆ33 0 0 0 0 aˆ34 aˆ44 ˆ aˆ15 x1 b1 bˆ2 aˆ25 x2 aˆ35 x3 bˆ3 aˆ45 x4 bˆ 4 aˆ55 x5 ˆ b5 0 • La soluzione del sistema così ottenuto è immediata, perché basta risolvere l’ultima equazione (che è banale) e sostituire nelle precedenti fino alla prima (sostituzione all’indietro). x 5 = bˆ5 / aˆ 55 ; x 4 = bˆ4 aˆ 45 x 5 ˆ / aˆ 44 ; ... x i = b i n aˆ ij x j / aˆ ii ; ... j i 1 Sistemi di equazioni algebriche lineari Metodo di Gauss • I passi da eseguire per ottenere la matrice triangolare sono i seguenti: 1. si somma la prima equazione a ciascuna delle successive dopo averla moltiplicata per opportuni coefficienti; in particolare, per l’ r-esima equazione (r ≥ 2) il coefficiente per cui moltiplicare la prima è pari a (-ar1/a11); si ha: Elemento pivot Equazione pivot a11 a 21 a31 a41 a51 a12 a22 a32 a42 a13 a23 a33 a43 a14 a24 a34 a44 a52 a53 a54 a15 x1 b1 a11 a25 x2 b2 0 a35 x3 b3 0 a45 x4 b4 0 a55 x5 b5 0 a12 a22 a13 a23 a14 a24 a32 a42 a52 a33 a43 a53 a34 a44 a54 a15 x1 b1 x2 b2 a25 x3 b3 a35 x4 b4 a45 x5 b5 a55 2. si somma la seconda equazione a tutte le successive (r ≥ 3) dopo averla moltiplicata per (-a´r2/a´22), ottenendo: Elemento pivot Equazione pivot a11 0 0 0 0 a12 a22 a32 a42 a52 a13 a23 a33 a43 a53 a14 a24 a34 a44 a54 a15 x1 b1 a11 0 x2 b2 a25 0 a35 x3 b3 x4 b4 a45 0 0 x5 b5 a55 a12 a22 0 0 0 a13 a23 a33 a43 a53 a14 a24 a34 a44 a54 a15 x1 b1 x2 b2 a25 a35 x3 b3 x4 b4 a45 x5 b5 a55 3. si procede analogamente fino alla (n-1)-esima equazione ottenendo il sistema con matrice triangolare superiore, U. Sistemi di equazioni algebriche lineari Metodo di Gauss, problema del mal condizionamento • La bontà della soluzione del metodo di Gauss dipende da come è costituito il sistema in esame. In termini matematici, i sistemi ben condizionati sono quelli per i quali un piccolo cambiamento in uno o più coefficienti risulta in un cambiamento della stessa entità nella soluzione. Nei sistemi mal condizionati, invece, piccole variazioni nei coefficienti portano a grandi variazioni nella soluzione. • L’algoritmo di eliminazione gaussiano fallisce quando l’elemento pivot è uguale a zero. Anche se il pivot è prossimo a zero, ma non esattamente uguale a zero, possono sorgere problemi di amplificazione degli errori di arrotondamento nei calcoli (mal condizionamento). • In generale, per ridurre gli errori di arrotondamento si può cambiare l’ordine delle equazioni (righe della matrice) in modo che risulti: a11 ar 1 r 3, 4.. ecc. r 2, 3, .. , a22 ar 2 tecnica detta del pivoting parziale. • Se la ricerca dell’elemento adatto ed il successivo scambio avvengono sia secondo le righe che secondo le colonne della matrice dei coefficienti, si parla di pivoting completo. Sistemi di equazioni algebriche lineari Metodo di Gauss-Jordan • Si tratta di una variante dell’eliminazione gaussiana; la differenza principale è che nel metodo di Gauss-Jordan quando si elimina una variabile la si elimina da tutte le equazioni del sistema e non solo da quelle al di sotto della riga corrente. • La fase di eliminazione dà luogo pertanto ad una matrice diagonale anziché triangolare superiore. Non è quindi necessaria la sostituzione all’indietro per arrivare alla soluzione. a11 a 21 a31 a41 a51 a12 a22 a13 a23 a14 a24 a32 a33 a34 a42 a43 a44 a52 a53 a54 a15 x1 b1 aˆ11 0 a25 x2 b2 a35 x3 b3 0 a45 x4 b4 0 0 a55 x5 b5 0 aˆ22 0 0 0 aˆ33 0 0 0 0 0 aˆ44 0 0 0 • E’ possibile anche in questo caso adottare la tecnica del pivoting. ˆ 0 x1 b1 bˆ2 0 x2 0 x3 bˆ3 0 x4 bˆ 4 aˆ55 x5 ˆ b5 Sistemi di equazioni algebriche lineari Metodi di fattorizzazione • Il metodo di Gauss può essere considerato un particolare metodo di fattorizzazione triangolare • si decompone la matrice A nel prodotto di una matrice triangolare inferiore L ed una triangolare superiore U. A=LU (fattorizzazione LU) dove U è la matrice ottenuta dal processo di eliminazione in avanti del metodo di Gauss ed L è una matrice triangolare inferiore tale che lii=1, lik=-aik(k)/akk(k). • La soluzione del sistema si riconduce a quella di due sistemi con matrice triangolare (che è immediata): LUx b Ly = b, Ux=y • Esistono altri metodi di fattorizzazione che non ricorrono al processo delle eliminazioni del metodo di Gauss, ma sono basati sulla costruzione diretta delle matrici L ed U. Ad esempio: metodi di Doolittle, Crout, Choleski (v. ad es. Ghelardoni- Marzulli, ETS 1979). Sistemi di equazioni algebriche lineari Norme e raggio spettrale Def. Una norma vettoriale è una applicazione n : n 0 tale che, dati due vettori u e w n ed uno scalare , si abbia: n v 0 , e n v 0 v 0 n v n v , v n , n v w n v n w , v, w n Le norme vettoriali più comunemente adottate sono: max vi • norma ∞ o norma massima: v • norma 1 o norma assoluta: v 1 vi i i n • norma 2 o norma euclidea: v 2 v v 2 i v i 1 e possono essere ottenute ponendo p = ∞, 1, 2 nella formula generale v p p vi i 1 p Sistemi di equazioni algebriche lineari Norme e raggio spettrale Data una norma vettoriale, p si dice norma matriciale indotta dalla (o compatibile con la) norma vettoriale l’applicazione da nxn in 0 che soddisfa la relazione B p sup v0 Bv v p p Si può dimostrare che le tre norme vettoriali viste inducono le seguenti norme matriciali (dette naturali) • norma ∞ o norma massima sulle righe: B max bi , j i j • norma 1 o norma massima sulle colonne: B 1 max bi , j j i • norma 2 o norma spettrale o di Hilbert: B 2 r BT B N.B.: Il raggio spettrale r(H) di una matrice H è il massimo modulo dei suoi autovalori. Sistemi di equazioni algebriche lineari Norme e raggio spettrale Valgono alcune proprietà delle norme matriciali e vettoriali che richiamiamo brevemente: B 0 B 0 • B 0 • B B • AB A B AB A B B v B v Ai nostri scopi è poi interessante notare che vale il seguente: Teorema di Hirsch: Per ognuna delle tre norme matriciali considerate si ha: r B B Sistemi di equazioni algebriche lineari Metodi iterativi Nei metodi iterativi la soluzione del sistema lineare Ax=b viene ottenuta come limite di una successione di vettori x(k) con x(0) dato. Ci occuperemo di metodi della forma x(k+1) = B x(k) + g, k ≥ 0 (*) dove B è la matrice di iterazione e g è un opportuno vettore; la definizione di B e di g caratterizza il particolare metodo iterativo. Tali metodi vengono detti: • stazionari se B e g non dipendono da k; • non stazionari in caso contrario. Nel seguito tratteremo solo alcuni metodi iterativi stazionari (Jacobi, Gauss-Seidel, SOR). Sistemi di equazioni algebriche lineari Metodi iterativi Se f è il vettore soluzione esatta del sistema A x = b , si avrà f=Bf+g sottraendo membro a membro questa equazione con la x(k+1) = B x(k) + g , si ha x(k+1) – f = B (x(k)-f, k≥1 e introducendo il vettore errore e(k+1) x(k+1) - f, si ottiene e(k+1) = B e(k), k≥1 e quindi e(k+1) = Bk+1 e(0), k≥1 Passando alle norme, si ha e k 1 Bk 1 e 0 Sistemi di equazioni algebriche lineari Metodi iterativi Condizione necessaria e sufficiente perché il metodo iterativo converga, e cioè perché si abbia k lim e 0 k per qualunque e(0), è che sia anche lim B k 0 k che si esprime dicendo che la matrice di iterazione deve essere convergente. Def. Una matrice B si dice convergente se: lim B k 0 k Ai nostri scopi, è utile ricordare che: TEOREMA: Condizione necessaria e sufficiente perché una matrice B sia convergente è che sia r(B) < 1. Perciò, per poter applicare con successo un metodo iterativo è necessario che la matrice di iterazione, B, abbia raggio spettrale r(B) < 1. Dal teorema di Hirsch discende poi che condizione sufficiente perché una matrice B sia convergente è che una sua qualunque norma naturale sia minore di uno. Sistemi di equazioni algebriche lineari Metodo di Jacobi (o delle sostituzioni simultanee) Per ottenere lo schema iterativo di questo metodo si decompone la matrice A come segue: A a11 a12 a a22 21 a31 a32 an1 an 2 D a13 a1n a11 0 a23 a2 n 0 a22 a33 a3n 0 0 an3 ann 0 0 e si scrive il sistema lineare come 0 0 a33 0 0 0 a12 0 a 0 21 0 a31 a32 ann an1 an 2 E a13 a1n a23 a2 n 0 a3n an 3 0 D x Ex b E’ bene notare che, poiché nel nostro caso si suppone ai,i ≠ 0 , esiste D-1, che è data dalla matrice diagonale avente come elementi i reciproci degli elementi diagonali di D. Perciò, si può scrivere: x D 1 E x D 1 b ovvero D 1 E g D 1 b x Bx g Sistemi di equazioni algebriche lineari Metodo di Jacobi (o delle sostituzioni simultanee) Si nota che bi,i = 0 : 0 a21 a 22 B a31 a 33 an1 ann a12 a11 a13 a11 0 a23 a22 a32 a33 0 an 3 ann an 2 ann a1n a11 a2 n a22 a3 n a33 0 Se A è diagonalmente dominante (in senso stretto), cioè se ai ,i a i, j , i , si ha, quindi: j ji n b i, j 1 i 1, ..., n B 1 r B 1 j 1 La maggior parte dei problemi di ingegneria possiedono questa caratteristica. Sistemi di equazioni algebriche lineari Metodo di Jacobi (o delle sostituzioni simultanee) Viene, quindi, spontaneo definire il processo iterativo: x g , x 1 k 1 B x g k Si ha allora x g 1 x B g g 2 x B2 g B g g 3 ...... x k 1 B k g B k 1 g ..... B g g (Serie geometrica di ragione B con r (B) <1) x Bx g 1 f I B g lim x k 1 k perciò, la soluzione esatta viene ottenuta nella forma di una serie di Neumann; infatti: La dominanza diagonale in senso stretto della matrice A è condizione sufficiente per la convergenza del metodo di Jacobi Sistemi di equazioni algebriche lineari Metodo di Jacobi (o delle sostituzioni simultanee) Le singole equazioni algebriche dell’equazione iterativa matriciale x k 1 B x g k si possono scrivere, in termini di componenti, come: n a1 j x (jk ) b1 x1( k 1) j2 a11 i 1 aij x xi( k 1) j 1 k 0,1, 2, .... , n (k ) j j i 1 aii aij x (j k ) bi , i 2, ..., n 1 k 0,1, 2, .... n 1 anj x (j k ) bn xn( k 1) j 1 , k 0,1, 2, .... ann Il vettore x(k+1) ottenuto con l’algoritmo di Jacobi viene prima memorizzato in una posizione di memoria distinta da quella occupata da x(k) poi le n componenti xi(k+1) vengono trasferite simultaneamente nelle posizioni prima occupate dalle xi(k). Per questo motivo il metodo è detto anche metodo delle sostituzioni simultanee. Sistemi di equazioni algebriche lineari Esempio applicativo del metodo di Jacobi Il sistema di equazioni Ax = b lo si scrive in forma estesa come: a11 x1 a12 x2 a13 x3 b1 a21 x1 a22 x2 a23 x3 b2 a x a x a x b 31 1 32 2 33 3 3 x1 a12 x2 a13 x3 / a11 b1 / a11 x2 a21 x1 a23 x3 / a22 b2 / a22 x a x a x / a b / a 31 1 32 2 33 3 33 3 (*) Il procedimento comincia con la scelta dei valori iniziali per x (la scelta più semplice è quella di assumere tutte le xi siano uguali a zero). I valori iniziali vengono sostituiti a secondo membro delle equazioni del sistema (*) precedente e si ottengono i seguenti nuovi valori per xi x1( k 1 ) a12 x2( k ) a13 x3( k ) / a11 b1 / a11 ( k 1 ) a21 x1( k ) a23 x3( k ) / a22 b2 / a22 x2 ( k 1 ) a31 x1( k ) a32 x2( k ) / a33 b3 / a33 x3 x1(1) b1 / a11 (1) x2 b2 / a22 x (1) b / a 3 33 3 A questo punto si sostituiscono questi nuovi valori delle xi a secondo membro delle equazioni del sistema (*) per ottenere una nuova stima della soluzione esatta del sistema Ax=b. Si ripete questo processo finché non risulta soddisfatto il criterio di arresto. Sistemi di equazioni algebriche lineari Metodo di Gauss-Seidel (o delle sostituzioni successive) La matrice B del metodo di Jacobi viene ulteriormente suddivisa: BJ 0 a21 a22 a 31 a33 an1 ann a12 a11 0 a32 a33 an 2 ann a13 a11 a 23 a22 0 an 3 ann a1n 0 a11 a 21 a2 n a22 a22 a 31 a3n a33 a33 a n1 0 ann L 0 0 0 0 a 32 a33 an 2 ann 0 0 a12 a11 0 0 0 0 0 0 0 0 0 0 a n3 ann U a13 a11 a23 a22 0 0 a1n a11 a2 n a22 a3n a33 0 si ha perciò x BJ x g x Lx Ux g Si definisce il processo iterativo x k 1 L x k 1 U x g k che in termini di componenti i 1 aij x xi( k 1) j 1 n ( k 1) j j i 1 aii aij x (j k ) bi , i 1, 2, ..., n k 0,1, 2, .... NB: L’idea di base è di utilizzare subito nel calcolo le componenti aggiornate nel corso della iterazione stessa Sistemi di equazioni algebriche lineari Metodo di Gauss-Seidel (o delle sostituzioni successive) L’algoritmo di Gauss-Seidel consente una maggiore economia di memoria rispetto a quello di Jacobi, in quanto ogni singola componente xi(k+1) appena calcolata può essere subito memorizzata nella posizione di memoria prima occupata dalla vecchia componente xi(k). Ciò giustifica la denominazione di metodo delle sostituzioni successive spesso usata per il processo. La matrice di iterazione si ottiene scrivendo il processo iterativo nella forma x k 1 L x k 1 U x g x k k 1 1 1 I L U x I L g BGS k gGS ovvero: 1 BGS I L U Sotto ipotesi non troppo restrittive per la matrice A si può dimostrare che: r BGS r 2 BJ perciò il metodo di Gauss-Seidel converge più rapidamente di quello di Jacobi, impiegando un numero di iterazioni pari a circa la metà. Sistemi di equazioni algebriche lineari Esempio applicativo del metodo di Gauss-Seidel Il sistema di equazioni Ax=b lo si scrive in forma estesa come: a11 x1 a12 x2 a13 x3 b1 a21 x1 a22 x2 a23 x3 b2 a x a x a x b 31 1 32 2 33 3 3 x1 a12 x2 a13 x3 / a11 b1 / a11 x2 a21 x1 a23 x3 / a22 b2 / a22 x a x a x / a b / a 31 1 32 2 33 3 33 3 (*) Il procedimento comincia con la scelta dei valori iniziali per x (la scelta più semplice è quella di assumere tutte le xi siano uguali a zero). I valori iniziali vengono sostituiti a secondo membro della prima equazione del sistema (*) in modo da ottenere un nuovo valore della componente x1 che poi viene subito utilizzato nella seconda equazione per trovare il nuovo valore della componente x2 e così via. x1( k 1 ) a12 x2( k ) a13 x3( k ) / a11 b1 / a11 ( k 1 ) a21 x1( k 1 ) a23 x3( k ) / a22 b2 / a22 x2 ( k 1 ) a31 x1( k 1 ) a32 x2( k 1 ) / a33 b3 / a33 x3 x1( 1 ) b1 / a11 (1) (1) x2 a21 x1 b2 / a22 x( 1 ) a x( 1 ) a x( 1 ) b / a 31 1 13 2 3 33 3 A questo punto si sostituiscono questi nuovi valori delle xi a secondo membro delle equazioni del sistema (*) per ottenere una nuova stima della soluzione esatta del sistema Ax=b, sempre utilizzando immediatamente nelle equazioni successive i nuovi valori delle componenti incognite a mano a mano trovate. Si ripete questo processo finché non risulta soddisfatto il criterio di arresto. Sistemi di equazioni algebriche lineari Metodo di sovrarilassamento (SOR=Successive Over-Relaxation) L’idea di base è quella di estrapolare la predizione ottenuta dal metodo di Gauss-Seidel per mezzo di un fattore di sovrarilassamento w > 1 x k 1 k k 1 k x w x x GS in cui x k 1 x k L x k 1 U I x k g GS Per componenti si ha: xi k 1 xi w xi k i 1, 2, ..., n k 1 k xi GS k 0,1, 2, .... n i 1 ( k 1) (k) a x a x b ij j i k ij j k j 1 j i 1 xi w xi aii GS Sistemi di equazioni algebriche lineari Metodo di sovrarilassamento (SOR=Successive OverRelaxation) Per la matrice di iterazione del SOR si ottiene: x k 1 1 1 I w L 1 w I w U x w I w L g k g SOR BSOR Si può dimostrare che il raggio spettrale della matrice di iterazione del SOR è minimo quando si scelga: w wopt 2 1 1 r 2 BJ 1 wopt 2 dove rB è il raggio spettrale della matrice di iterazione del metodo di Jacobi. La scelta del valore più appropriato del fattore di sovrarilassamento dipende strettamente dal problema e viene spesso determinato per tentativi. Sistemi di equazioni algebriche lineari Criteri di arresto Un criterio di arresto di un metodo iterativo visto in precedenza potrebbe essere quello basato sull’uso del residuo: k k r b A x Essendo r(k) = 0 quando x(k) = f è logico pensare di arrestare il processo iterativo quando: r k Sfortunatamente questa conclusione è vera solo per matrici ben condizionate in quanto (dall’analisi a priori per i sistemi lineari) si ricava che f x f k m A r k b In generale non si conosce la matrice inversa di A (il calcolo di A-1 equivarrebbe, infatti, alla risoluzione diretta del sistema Ax=b) e quindi il numero di condizionamento m(A) ( ||A|| ||A-1|| ≥ 1); tuttavia l’equazione precedente può essere effettivamente utilizzata ricorrendo ad appositi procedimenti per il calcolo approssimato di m(A). Sistemi di equazioni algebriche lineari Criteri di arresto Un criterio di arresto alternativo potrebbe essere quello basato sulla differenza fra iterate consecutive: il metodo si arresta al primo k tale che x x k x k k 1 (errore relativo approssimato) Questo criterio ha però l’inconveniente che se la velocità di convergenza è molto bassa l’errore relativo approssimato, calcolato con la formula precedente, può essere piccolo senza che lo sia l’errore effettivo. NF1 Sistemi di equazioni algebriche lineari (riepilogo) Soluzione numerica dei sistemi di equazioni lineari Ax=b Metodi diretti Metodi iterativi A x = b x = B x + g x ( k 1) = B x ( k ) + g Metodo di Gauss Metodo di Gauss-Jordan Metodi di fattorizzazione Metodo di Jacobi (o delle sostituzioni simultanee) Condizione necessaria e sufficiente perché il metodo iterativo converga è che sia r(B) < 1 Metodo di Gauss-Seidel (o delle sostituzioni successive) Criteri di arresto Metodo di sovrarilassamento SOR Diapositiva 26 NF1 jacobi.m gauss_sidel.m SOR.m Nicola Forgione; 29/04/2015