RISOLUZIONE DI SISTEMI LINEARI

Documenti analoghi
Sistemi lineari. 2x 1 + x 2 x 3 = 2 x 1 x 2 + x 3 = 1 x 1 + 3x 2 2x 3 = 0. x 1 x 2 x 3

Problema. Sistemi lineari. Problema. Problema. Quali sono i potenziali in ogni nodo? Leggi di Kirkoff e di Ohm:

Motivazioni. Sistemi lineari. Obiettivo. Il problema

Calcolo matriciale: metodi diretti. 2.1 Introduzione al calcolo numerico matriciale

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica

LABORATORIO DI PROGRAMMAZIONE E CALCOLO Docente E. Carlini A.A. 2012/13 Foglio di esercizi N.8 con la collaborazione di Andrea Pugliese

Corso di Calcolo Numerico

n +1 determinanti (D i, i =1,...,n e det A) n! prodotti per ciascun determinante n 1 moltiplicazioni per ciascun prodotto

MATRICI E SISTEMI LINEARI

Soluzione sistemi lineari

Matrici Un po di esercizi sulle matrici Semplici Lettura e scrittura Calcolo della trasposta Media difficoltà Calcolo l del determinante t È Difficili

... b 2 X 2. . b N X N. a 11 a 12.. a 1N a 21 a 22.. a 2N A =. a N1... a NN

Un sistema di equazioni lineari ( o brevemente un sistema lineare) di m equazioni in n incognite, si presenta nella forma:

Matrici.h Definizione dei tipi #define MAXROWS 10 #define MAXCOLS 10 #define ELEMENT int #define ELEMENTFORMAT "%d" Tipo degli elementi della matrice

Sistemi di equazioni lineari

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Note per il corso di Geometria Corso di laurea in Ing. Edile/Architettura. 4 Sistemi lineari. Metodo di eliminazione di Gauss Jordan

Elementi di Algebra Lineare Matrici e Sistemi di Equazioni Lineari

Note sull algoritmo di Gauss

Corso di Analisi Numerica

Esercitazione 5: Sistemi a risoluzione immediata.

3x 2 = 6. 3x 2 x 3 = 6

Appunti su Indipendenza Lineare di Vettori

Sistemi lineari. a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2 : : : a m1 x 1 + a m2 x 2 +..

Argomento 13 Sistemi lineari

Calcolo Numerico con elementi di programmazione

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili

Corso di Matematica e Statistica 3 Algebra delle matrici. Una tabella rettangolare: la matrice. Una tabella rettangolare: la matrice

Calcolo Numerico con elementi di programmazione

Laboratorio di Calcolo Numerico

Metodi Diretti per la Risoluzione di Sistemi Lineari

Sistemi di equazioni lineari

VETTORI E MATRICI. Ing. Nicola Cappuccio 2014 U.F.5 ELEMENTI SCIENTIFICI ED ELETTRONICI APPLICATI AI SISTEMI DI TELECOMUNICAZIONI

PreCorso di Matematica - PCM Corso M-Z

Note per le esercitazioni di Geometria 1 a.a. 2007/08 A. Lotta. Metodi per il calcolo del rango di una matrice

ALGEBRA LINEARE PARTE III

1 Risoluzione di sistemi lineari

Esercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =

SISTEMI LINEARI. Ax = b

Programmare con MATLAB c Parte 5 Cicli: for e while

Esercitazione di Matematica su matrici e sistemi lineari

SISTEMI LINEARI. x y + 2t = 0 2x + y + z t = 0 x z t = 0 ; S 3 : ; S 5x 2y z = 1 4x 7y = 3

Applicazioni eliminazione di Gauss

Matematica II,

Per esempio, una matrice 4 4 triangolare alta ha la forma. 0 a. mentre una matrice di ordine 4 triangolare bassa è del tipo

Complementi di Matematica e Calcolo Numerico A.A

Sistemi lineari. a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2 : : : a m1 x 1 + a m2 x 2 +..

Algoritmi per operazioni con le matrici

1. Calcolo dell indice di condizionamento di una matrice

Metodi numerici con elementi di Programmazione A.A

A =, c d. d = ad cb. c d A =

1 1, { x1 2x 2 + x 3 = 0 2x 2 8x 3 = 1 x 1 x 4 = = 0

La riduzione a gradini e i sistemi lineari (senza il concetto di rango)

CORSI DI LAUREA IN MATEMATICA E FISICA. Esercizio 1.1. Risolvere graficamente e algebricamente i seguenti sistemi di due equazioni in due incognite:

Esercizi svolti sui sistemi lineari

MATRICI E SISTEMI LINEARI

APPLICAZIONI. Im f = {b B a A tale che f (a) = b}.

Lezioni di Algebra Lineare. II. Aritmetica delle matrici e eliminazione di Gauss. versione ottobre 2008

Altre trasformazioni elementari

Corso di Calcolo Numerico

Sistemi lineari. Lucia Gastaldi. 11 novembre Dipartimento di Matematica,

LEZIONE i 0 3 Le sottomatrici 2 2 di A sono. 1 2 i i 3. Invece (

CORSO DI ALGEBRA LINEARE Anno Accademico 2004/2005 Appunti su SISTEMI di EQUAZIONI LINEARI

1. Un sistema di m equazioni lineari in n incognite x 1,... x n aventi tutte termine noto nullo A =...

Sistemi di equazioni lineari

1 se k = r i. 0 altrimenti. = E ij (c)

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

2x 5y +4z = 3 x 2y + z =5 x 4y +6z = A =

Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite

LEZIONE i i 3

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Registro Lezioni di Algebra lineare del 15 e 16 novembre 2016.

I sistemi lineari di n equazioni in n incognite

Istituzioni di Matematiche prima parte

Matematica II, aa

SISTEMI LINEARI, METODO DI GAUSS

SISTEMI LINEARI MATRICI E SISTEMI 1

il determinante che si ottiene da A, sopprimendo la i - esima riga e la j - esima colonna. Si definisce complemento algebrico dell'elemento a ij

Sistemi lineari - Parte Seconda - Esercizi

Corso di Matematica Generale M-Z Dipartimento di Economia Universitá degli Studi di Foggia ALGEBRA LINEARE. Giovanni Villani

SISTEMI DI DUE EQUAZIONI IN DUE INCOGNITE

Trasformazione elementari di Givens

Introduzione soft alla matematica per l economia e la finanza. Marta Cardin, Paola Ferretti, Stefania Funari

Richiami di algebra delle matrici a valori reali

Una Libreria di Algebra Lineare per il Calcolo Scientifico

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

Prima di risolverli, è necessario prevedere se ci saranno soluzioni e, eventualmente, quante saranno.

LEZIONE 4. { x + y + z = 1 x y + 2z = 3

Def. 1. Si chiamano operazioni elementari sulle righe di A le tre seguenti operazioni:

CORSO DI LAUREA IN INGEGNERIA EDILE/ARCHITETTURA

Matrici elementari e fattorizzazioni

Elementi di Algebra Matriciale. (richiami)

Esercitazione Fondamenti di Informatica 2

Corso introduttivo pluridisciplinare Matrici e sistemi lineari

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Sistemi lineari: metodi diretti II

Transcript:

RISOLUZIONE DI SISTEMI LINEARI

Algebra lineare numerica 1 La risoluzione di un sistema lineare è il nucleo principale del processo di risoluzione di circa il 70% di tutti i problemi reali Per la risoluzione di un sistema di equazioni lineari, è necessario disporre di metodi, algoritmi e software efficienti

Algebra lineare numerica 2 Esempio Risolviamo il sistema: 10x 1 +x 2 5x 3 = 1 20x 1 +3x 2 +20x 3 = 2 5x 1 +3x 2 +5x 3 = 6 Uno dei metodi di risoluzione piú noti è il metodo di Cramer passo 1: calcolo di 10 1 5 20 3 20 5 3 5 10 1 5 20 3 20 5 3 5 = 10 3 20 3 5 +20 1 5 3 5 +5 1 5 3 20 = 10 (3 5 20 3)+20 (1 5+5 3)+5 (1 20+5 3) = 125 =

Algebra lineare numerica 3 passo 2: calcolo della soluzione: x 1 = 1 1 5 2 3 20 6 3 5 125 = 1 x 2 = 10 1 5 20 2 20 5 6 5 125 = 2 x 3 = 10 1 1 20 3 2 5 3 6 125 = 1.4

Algebra lineare numerica 4 Calcolo delle operazioni effettuate M = numero di moltiplicazioni A = numero di addizioni passo 1 (calcolo di un determinante di ordine 3): 9M + 5A passo 2 (calcolo di 3 determinanti di ordine 3 ed esecuzione di 3 divisioni): (3 9 + 3)M + (3 5)A TOTALE = 39M + 20A

Algebra lineare numerica 5 In generale: la risoluzione di un sistema lineare di ordine n con il metodo di Cramer richiede il calcolo di n+1 determinanti di ordine n, ciascuno dei quali richiede la somma di n termini, ciascuno a sua volta costruito mediante 1+(n-1)! moltiplicazioni (n + 1)[n(1 + (n 1)!)] = = (n + 1)n(n 1)! + (n + 1)n moltiplicazioni T Cramer (n) = O((n + 1)!)

Algebra lineare numerica 6 Numero di operazioni e tempo di calcolo per la risoluzione di un sistema lineare di ordine n con il metodo di Cramer su una ws IBM RS6000 F50 con velocità operativa pari a 317 Mflops: 1 n (n + 1)! = # operazioni Tempo di calcolo (317 Mflops) 10 39 916 800 0.13 secondi 12 6 227 020 800 19 secondi 14 1 307 674 368 000 1 ora 16 355 687 428 096 000 12 giorni 18 121 645 100 408 832 000 12 anni 20 51 090 942 171 709 440 000 51 secoli 1 Mflops= Milioni di operazioni floating-point (cioè fra numeri reali) al secondo

Algebra lineare numerica 7 pur utilizzando un elaboratore con elevata potenza di calcolo, il tempo richiesto per risolvere un sistema di ordine basso (fino a 14) è eccessivo, mentre per ordini maggiori la risoluzione del problema diventa impossibile. Il metodo di Cramer non è utilizzabile nella risoluzione di problemi concreti Illustreremo di seguito alcuni dei metodi piú utilizzati per la risoluzione dei sistemi lineari, iniziando da quelli per sistemi con matrice dei coefficienti di forma particolare: diagonale triangolare superiore triangolare inferiore

Algebra lineare numerica 8 D = d 1,1 d 2,2 d 3,3... d n,n matrice diagonale U = u 1,1 u 1,2 u 1,3... u 1,n u 2,2 u 2,3... u 2,n u 3,3... u 3,n... u n,n u i,j = 0 per i > j matrice triangolare superiore L = l 1,1 l 2,1 l 2,2 l 3,1 l 3,2 l 3,3...... l n,1 l n,2 l n,3... l n,n l i,j = 0 per i < j matrice triangolare inferiore

Algebra lineare numerica 9 Risoluzione di un sistema diagonale Esempio 7x 1 = 3 6.5x 2 = 2 8x 3 = 1.4 sistema diagonale La forma del sistema suggerisce il metodo di risoluzione: x 1 = 3 7 x 2 = 2 6.5 x 3 = 1.4 8 operazioni effettuate: 3M

Algebra lineare numerica 10 In generale: a 1,1 x 1 = b 1 a 2,2 x 2 = b 2 a 3,3 x 3 = b 3.... a n,n x n = b n sistema diagonale (compatibile e determinato a i,i 0) metodo di risoluzione: x i = b i /a i,i, i = 1,..., n (a i,i 0) operazioni effettuate: nm T diag (n) = O(n)

Algebra lineare numerica 11 Risoluzione di un sistema triangolare Esempio 2x 1 +2x 2 +4x 3 = 5 7x 2 +11x 3 = 8 2x 3 = 2 sistema triangolare superiore La forma del sistema suggerisce il metodo di risoluzione: x 3 = 2 2 = 1 x 2 = 8 11x 3 7 = 8 11 1 7 = 3 7 x 1 = 5 2x 2 4x 3 2 = 5 2 ( 3/7) 4 1 2 = 13 14 metodo di back-substitution (sostituzione all indietro) operazioni effettuate: 3A + 6M

Algebra lineare numerica 12 In maniera analoga: 2x 1 = 4 3x 1 +2x 2 = 5 x 1 +2x 2 3x 3 = 1 sistema triangolare inferiore x 1 = 4 2 = 2 x 2 = 5 3x 1 2 = 5 3 2 2 = 1 2 x 3 = 1 x 1 2x 2 3 = 1 2 2 ( 1/2) 3 = 0 metodo di forward-substitution (sostituzione in avanti) operazioni effettuate: 3A + 6M

Algebra lineare numerica 13 In generale: u 1,1 x 1 +u 1,2 x 2 +u 1,3 x 3 +... +u 1,n x n = b 1 u 2,2 x 2 +u 2,3 x 3 +... +u 2,n x n = b 2 u 3,3 x 3 +... +u 3,n x n = b 3.... u n,n x n = b n sistema triangolare superiore (compatibile e determinato u i,i 0) metodo di back-substitution x n = b n /u n,n x i = (b i u i,i+1 x i+1 u i,i+2 x i+2... u i,n x n )/u i,i = (b i ( n k=i+1 u i,k x k )) /u i,i i = n 1, n 2,..., 1

Algebra lineare numerica 14 Analogamente: l 1,1 x 1 = b 1 l 2,1 x 1 +l 2,2 x 2 = b 2 l 3,1 x 1 +l 3,2 x 2 +l 3,3 x 3... = b 3. l n,1 x 1 +l n,2 x 2 +l n,3 x 3 +... +l n,n x n = b n sistema triangolare inferiore (compatibile e determinato l i,i 0, i) metodo di forward-substitution x 1 = b 1 /l 1,1 x i = (b i l i,1 x 1 l i,2 x 2... l i,i 1 x i 1 )/l i,i = ( b i ( i 1 k=1 l i,k x k )) /li,i i = 2, 3,..., n

Algebra lineare numerica 15 Algoritmo B-S (Back-Substitution) versione 1 Ux = b U triangolare superiore. x n := b n /u n,n for i = n 1 to 1 by 1 x i := b i for j = i + 1 to n x i := x i u i,j x j endfor x i := x i /u i,i endfor.

Algebra lineare numerica 16 Algoritmo F-S (Forward-Substitution) Lx = b L triangolare inferiore. x 1 := b 1 /l 1,1 for i = 2 to n x i := b i for j = 1 to i 1 x i := x i l i,j x j endfor x i := x i /l i,i endfor.

Algebra lineare numerica 17 Numero di operazioni effettuate dall algoritmo B-S 1 M per x n 1 A + 2 M per x n 1 2 A + 3 M per x n 2 (n i)a + (n i + 1)M per x i, i = n 3,..., 1 n(n + 1) (1+2+3+...+(n 1)+n) M = M 2 n(n 1) (1+2+3+...+(n 2)+(n 1)) A = 2 A Analogamente: T B S (n) = O( n2 2 ) T F S (n) = O( n2 2 )

Algebra lineare numerica 18 Si ha: OSSERVAZIONE 1 1+ 2+ 3+... + (n 1)+ n+ n+ (n 1)+ (n 2)+... + 2+ 1 = (n + 1)+ (n + 1)+ (n + 1)+... + (n + 1)+ (n + 1) = = n(n + 1) (1 + 2 + 3 +... + (n 1) + n) = = n(n + 1) 2

Algebra lineare numerica 19 x i = OSSERVAZIONE 2 b i n k=i+1 u i,kx k u i,i i = n 1,..., 1 (back-substitution) n u i,kx k = (u i,i+1 u i,i+2... u i,n ) k=i+1 prodotto scalare di due vettori i+1 x i+1 x i+2. x n i i+1 n la quantità u ikx k può essere calcolata k=i+1 mediante la function dot(u n i, x n i ) di BLAS, u n i = (u i,i+1,..., u i,n ), x n i = (x i+1,..., x n )

Algebra lineare numerica 20 OSSERVAZIONE 3 Negli algoritmi di back e forwardsubstitution ad ogni passo si effettua una divisione per un elemento diagonale condizione di applicabilità: elementi diagonali 0

Algebra lineare numerica 21 U triangolare superiore con u i,i = 0 0x i +u i,i+1 x i+1 +u i,i+2 x i+2 +...+u i,n x n = b i (i-ma equazione) r i = b i n u i,kx k = 0 k=i+1 (resto i-ma equazione)

Algebra lineare numerica 22 1 caso: r i 0 sistema incompatibile: l algoritmo termina Esempio: x 1 +x 2 +x 3 +x 4 = 6 0x 2 +3x 3 +x 4 = 5 3x 3 +x 4 = 2 0x 4 = 1 r 4 = 1 sistema incompatibile

Algebra lineare numerica 23 2 caso: r i = 0 sistema incompatibile o indeterminato: l algoritmo termina Esempio: a) x 1 +x 2 +x 3 +x 4 = 6 0x 2 +3x 3 +x 4 = 5 3x 3 +x 4 = 2 0x 4 = 0 r 4 = 0 scelta arbitraria di x 4 r 2 = 5 (3x 3 + x 4 ) MA 3x 3 + x 4 = 2 (terza equazione) sistema incompatibile.

Algebra lineare numerica 24 b) x 1 +x 2 +x 3 +x 4 = 6 0x 2 +2x 3 +x 4 = 5 3x 3 +x 4 = 2 0x 4 = 0 r 4 = 0 scelta arbitraria di x 4 r 2 = 5 (2x 3 + x 4 ) = 5 2 (2 x 4) 3 x 4 = = 5 4 3 x 4 3 r 2 = 0, per x 4 = 11 verificato per x 1 = 2 x 2, x 4 = 11, x 3 = 3 e x 2 sistema indeterminato

Algebra lineare numerica 25 Algoritmo B-S versione 2 (con controllo esistenza soluzioni). l :=.true. indica sistema determinato calcolo di x n e controllo compatibilità sistema if (U(n, n) 0) then x(n) := b(n)/u(n, n) elseif (b(n) = 0) then sistema incompatibile o indeterminato l :=.false. else sistema incompatibile l :=.false. endif ciclo per il calcolo degli x i i := n 1 while (l.and.i 0) calcolo della somma dei termini u i,k x k le istruzioni successive realizzano il prodotto scalare dei due vettori (u i,i+1 u i,i+2... u i,n )(x i+1 x i+2... x n ) T cont.

Algebra lineare numerica 26 sum := 0 for k = i + 1 to n sum := sum + U(i, k)x(k) endfor calcolo resto i-ma equazione r := b(i) sum controllo compatibilità sistema if (U(i, i) 0) then calcolo finale di x i x(i) := r/u(i, i) elseif (r = 0) then sistema incompatibile o indeterminato l :=.false. else sistema incompatibile l :=.false. endif i := i 1 endwhile.

Algebra lineare numerica 27 OSSERVAZIONE 4 Nel caso in cui la memorizzazione della matrice avviene per colonne, si può ottenere una implementazione del metodo di back-substitution piú efficiente. Essa viene realizzata nella seguente versione dell algoritmo B-S, dove si accede agli elementi di U procedendo per colonne: ad ogni passo, ai termini noti si sottrae l ultimo valore calcolato, x i+1, moltiplicato per il relativo coefficiente in tutte le righe dalla prima alla (i) ma, con i = n 1,..., 1.

Algebra lineare numerica 28 Algoritmo B-S versione 3 (accesso per colonne). l :=.true. indica sistema determinato calcolo di x n e controllo compatibilità sistema if (U(n, n) 0) then x(n) := b(n)/u(n, n) elseif (b(n) = 0) then sistema incompatibile o indeterminato l :=.false. else sistema incompatibile l :=.false. endif ciclo per il calcolo degli x i i := n 1 while (l.and.i 0) aggiornamento dei termini noti cont.

Algebra lineare numerica 29 for k = 1 to i b(k) := b(k) U(k, i + 1)x(i + 1) endfor controllo compatibilità sistema if (U(i, i) 0) then calcolo di x i x(i) := b(i)/u(i, i) elseif (b(i) = 0) then sistema incompatibile o indeterminato l :=.false. else sistema incompatibile l :=.false. endif i := i 1 endwhile.

Algebra lineare numerica 30 In generale, per risolvere un sistema qualsiasi Ax = b con A matrice n n non singolare, si può sviluppare l idea seguente: Ax = b viene trasformato in un sistema equivalente Ux = b con U almeno triangolare (equivalente: ammette stessa soluzione) In tal modo, una volta effettuata la trasformazione, il sistema può essere risolto con uno dei metodi illustrati in precedenza.

Algebra lineare numerica 31 Esempio Consideriamo il sistema: 2x + y = 4 x 0.5y = 1 la cui soluzione è (1.5,1). Un sistema ad esso equivalente è dato dal sistema triangolare: 2x + y = 4 y = 1

Algebra lineare numerica 32 Questo sistema si può ottenere algebricamente con una opportuna combinazione lineare dei vettori riga associati alle due equazioni del sistema: Dunque l equazione: ( 1 0.5 1 ) 1 2 ( 2 1 4 ) 0 1 1 y = 1 diventa la nuova seconda equazione che dà luogo al sistema equivalente: 2x + y = 4 y = 1

Algebra lineare numerica 33 Seguendo questa idea, si arriva al metodo di eliminazione di Gauss Obiettivo: trasformare Ax = b in Ux = b triangolare superiore equivalente Esempio Dato il sistema: 2x 1 +2x 2 4x 3 = 4 3x 1 +6x 2 +3x 3 = 3 5x 1 8x 2 x 3 = 9 ad esso è associata la matrice: 2 2 4 4 A b = 3 6 3 3 5 8 1 9

Algebra lineare numerica 34 passo 1 scopo: eliminare x 1 dalla seconda e terza equazione procedimento: 1) moltiplicare per 3/2 la prima riga della matrice A b e sottrarla dalla seconda: II riga ( 3 6 3 3) 3 2 I riga 3 2 ( 2 2 4 4) nuova II riga ( 0 3 9 3) = moltiplicatore relativo alla II riga 2) moltiplicare per 5/2 la prima riga e sottrarla dalla terza: III riga (5 8 1 9) 5 2 I riga 5 2 ( 2 2 4 4) nuova III riga ( 0 3 11 1) = moltiplicatore relativo alla III riga

Algebra lineare numerica 35 Al termine del passo 1, il sistema equivalente ottenuto è: 2x 1 +2x 2 4x 3 = 4 3x 2 +9x 3 = 3 3x 2 11x 3 = 1 passo 2 scopo: eliminare x 2 dalla terza equazione procedimento: moltiplicare per 3/3 = 1 la seconda riga della matrice aumentata e sottrarla dalla terza: III riga (0 3 11 1) II riga 1(0 3 9 3) nuova III riga (0 0 2 2) 1 = moltiplicatore relativo alla III riga

Algebra lineare numerica 36 Al termine del passo 2, il sistema equivalente ottenuto è: 2x 1 +2x 2 4x 3 = 4 3x 2 +9x 3 = 3 2x 3 = 2 sistema triangolare superiore questo sistema è risolubile con il metodo di back-substitution x 3 = 2 2 = 1 x 2 = 1 3 (3 9 ( 1)) = 4 x 1 = 2 1 ( 4 2 4 + 4 ( 1)) = 8

Algebra lineare numerica 37 RISOLUZIONE DI Ax = b metodo di eliminazione di Gauss (triangolarizzazione) + back-substitution (risoluzione sistema triangolare)

Algebra lineare numerica 38 eliminazione di Gauss caso generale passo 1 passo 2 A b A (1) b (1)... passo n-1 A (2) b (2) A (n 1) b (n 1)

Algebra lineare numerica 39 Passo 1 scopo annullare tutti gli elementi della prima colonna di A tranne a 11 procedimento per i = 2,..., n sottrarre dalla i-ma riga della matrice aumentata A b, la prima riga moltiplicata per m i1 = a i1 a 11 Ciò significa che ciascuna riga della matrice aumentata A b, a partire dalla seconda, viene sostituita con una combinazione lineare della riga stessa e della prima moltiplicata per un opportuno scalare (moltiplicatore m i1 ): m 21 = a 21 a 11. m n 1 1 = a n 1 1 a 11 m n1 = a n1 a 11 a 11 a 12... a 1n b 1 a 21 a 22... a 2n b 2....... a n 1 1 a n 1 2... a n 1 n b n 1 a n1 a n2... a nn b n

Algebra lineare numerica 40 La matrice A b diventa: a 11 a 12... a 1n b 1 0 a 22 a 21 a 11 a 12... a 2n a 21 a 11 a 1n b 2 a 21 a 11 b 1....... 0 a n 1 2 a n 1 1 a 11 a 12... a n 1 n a n 1 1 a 11 a 1n b n 1 a n 1 1 a 11 b 1 0 a n2 a n1 a 11 a 12... a nn a n1 a 11 a 1n b n a n1 a 11 b 1 Al termine del passo 1, si ottiene il sistema equivalente: A (1) x = b (1)

Algebra lineare numerica 41 con: A (1) = a 11 a 12... a 1n 0 a (1) 22... a (1) 2n...... 0 a (1) n 1 2... a(1) n 1 n 0 a (1) n2... a (1) nn ; dove: b (1) = b 1 b (1) 2. b (1) n a (1) ij = a ij m i1 a 1j ; i, j = 2, 3,..., n b (1) i = b i m i1 b 1 ; i = 2, 3,..., n m i1 = a i1 a 11 ; i = 2, 3,..., n (moltiplicatori)

Algebra lineare numerica 42 Passo 2 scopo annullare tutti gli elementi della seconda colonna di A (1) a partire da a (1) 32 procedimento per i = 3,..., n sottrarre dalla i-ma riga della matrice aumentata A (1), la seconda riga moltiplicata per m i2 = a(1) i2 a (1) 22 b Al termine del passo 2 si ottiene il sistema equivalente: A (2) x = b (2)

Algebra lineare numerica 43 con: A (2) = a 11 a 12 a 13... a 1n 0 a (1) 22 a (1) 23... a (1) 2n 0 0 a (2) 33... a (2) 3n....... 0 0 a (2) n 1 3... a(2) n 1 n 0 0 a (2) n3... a (2) nn ; b (2) = b 1 b (1) 2 b (2) 3. b (2) n 1 b (2) n dove: a (2) ij = a(1) ij m i2a (1) 2j ; i, j = 3,..., n b (2) i = b (1) i m i2 b (1) 2 ; i = 3,..., n m i2 = a(1) i2 a (1) 22 ; i = 3,..., n (moltiplicatori)

Algebra lineare numerica 44 Al generico passo k, con k < n: inalterati riga pivot k 0 matrice attiva vet to re at ti vo m ik k n k modificare

Algebra lineare numerica 45 Passo k: scopo annullare tutti gli elementi della k-ma colonna di A (k 1) a partire da a (k 1) k+1 k procedimento per i = k + 1,..., n sottrarre dalla i-ma riga della matrice aumentata A (k 1) b, la k-ma riga moltiplicata per m ik = a(k 1) ik a (k 1) kk Al termine del generico passo k si ottiene il sistema equivalente: A (k) x = b (k)

Algebra lineare numerica 46 con: A (k) = a 11 a 12... a 1k a 1 k+1... a 1n 0 a (1) 22... a(1) 2k a (1) 2 k+1... a (1) 2n....... 0 0... a (k 1) kk a (k 1) k k+1 0 0... 0 a (k)... a (k 1) kn.... k+1 k+1... a(k) k+1 n..... 0 0... 0 a (k) n 1 k+1... a(k) n 1 n 0 0... 0 a (k) n k+1... a (k) nn b (k) = (b 1 b (1) 2... b (k 1) k dove: b (k) k+1... b(k) n 1 b(k) n ) T a (k) ij = a (k 1) ij m ik a (k 1) kj ; i, j = k + 1,..., n b (k) i = b (k 1) i i = k + 1,..., n m ik b (k 1) k ; m ik = a(k 1) ik ; a (k 1) kk

Algebra lineare numerica 47 Il procedimento si ripete fino ad ottenere il sistema equivalente: con: A (n 1) = A (n 1) x = b (n 1) a 11 a 12 a 13... a 1n 0 a (1) 22 a(1) 23... a(1) 2n 0 0 a (2) 33... a(2) 3n... 0 0... 0 a (n 1) nn (triangolare superiore) b (n 1) = (b 1 b (1) 2 b (2) 3... b (n 1) n ) T il metodo di Gauss termina dopo n 1 passi

Algebra lineare numerica 48 Ax = b A (1) x = b (1).. A (n 1) x = b (n 1) A (n 1) = U b (n 1) = b Ux = b equivalente ad Ax = b Per il ruolo svolto nel metodo di eliminazione, gli elementi a (k 1) k k pivot (cardini) sono detti

Algebra lineare numerica 49 Algoritmo di Gauss Schema:. per k = 1 fino a n 1 per i = k + 1 fino a n calcolo moltiplicatori m ik modifica riga i ma matrice e vettore attivi.

Algebra lineare numerica 50 Algoritmo di Gauss versione 1. ciclo sui passi for k = 1 to n 1 cicli per ottenere A (k) e b (k) for i = k + 1 to n moltiplicatore i-ma riga m ik := a ik /a kk ; a ik := 0; modifica elementi matrice attiva for j = k + 1 to n a ij := a ij m ik a kj ; endfor modifica vettore termini noti b i := b i m ik b k ; endfor endfor.

Algebra lineare numerica 51 Calcolo del numero delle operazioni effettuate dall algoritmo di Gauss passo k calcolo di n k moltiplicatori k riga k k n-k costo per 1 moltiplicatore m ik = a i,k a k,k : 1M costo totale moltiplicatori: (n k)m

Algebra lineare numerica 52 modifica matrice e vettore attivi k in al te ra ta inalterata riga k matrice attiva k vet to re at ti vo n-k modificare costo per 1 elemento matrice attiva a i,j = a i,j m ik a k,j : 1M + 1A costo per 1 elemento vettore attivo b i = b i m ik b k : 1M + 1A numero totale di elementi =(n k) 2 +(n k) costo totale modifica: (n k)(n k +1)M +(n k)(n k +1)A

Algebra lineare numerica 53 Eseguendo tutti i passi dell algoritmo, si ha in definitiva: Costo globale = calcolo moltiplicatori (n 2 n) M 2 + modifica matrici e vettori attivi 2 (n 3 n) (A + M) 3 2 n 1 k=1 = n 1 (n k)(n k + 1) = n 1 (n k) 2 + n 1 (n k) = k=1 k 2 + n 1 k=1 k=1 k=1 k = 1 6 n(n 1)(2n 1) + 1 n(n 1) = 2 = 1 3 n(n 1)(n + 1) = 1 3 (n3 n)

Algebra lineare numerica 54 Algoritmo di Gauss T Gauss (n) = n3 n 3 (A+M)+ n2 n 2 M = = O n 3 3 Risoluzione del sistema (Gauss + Back-substitution) T Gauss+Back (n) = O n 3 3 + n2 2 = O n 3 3

Algebra lineare numerica 55 Numero di operazioni e tempo di calcolo per la risoluzione di un sistema lineare di ordine n con l algoritmo di Gauss e di back-substitution, su una workstation IBM RS6000 F50 con velocità operativa pari a 317 Mflops: = # operazioni Tempo di calcolo (317 Mflops) 10 333 0.000001 secondi n n 3 3 20 2.666 0.000008 secondi 50 41.666 0.0001 secondi 100 333.333 0.001 secondi 1.000 333.333.333 1 secondo 10.000 333.333.333.333 17 minuti Il metodo di Gauss è utilizzabile per la risoluzione di sistemi lineari

Algebra lineare numerica 56 Complessità di spazio algoritmo di Gauss Al passo k la costruzione di A (k) e b (k) richiede solo A (k 1) e (b (k 1) a (k) i,j b (k) i possono essere memorizzati su a(k 1) i,j può essere memorizzato su b (k 1) i algoritmo in place

Algebra lineare numerica 57 Inoltre a (k) i,k, i = k + 1,..., n sono eliminati m ik, i = k + 1,..., n possono essere memorizzati su a (k) i,k, i = k + 1,..., n complessità di spazio algoritmo di Gauss S Gauss (n) = n 2 + n = O(n 2 )

Algebra lineare numerica 58 OSSERVAZIONE Una implementazione del metodo di Gauss che risulta piú efficiente nel caso in cui la memorizzazione della matrice avviene per colonne, viene realizzata nella seguente versione dell algoritmo, dove si accede agli elementi della matrice attiva per colonne, calcolando, ad ogni passo k, prima tutti i moltiplicatori e poi modificando gli elementi procedendo sulle colonne invece che sulle righe (semplicemente scambiando le iterazioni su i e su j).

Algebra lineare numerica 59 Algoritmo di Gauss versione 2 (accesso per colonne). ciclo sui passi for k = 1 to n 1 cicli per ottenere A (k) e b (k) for i = k + 1 to n moltiplicatori di tutte le righe a ik := a ik /a kk ; endfor modifica matrice attiva e vettore termini noti for j = k + 1 to n for i = k + 1 to n a ij := a ij m ik a kj ; b i := b i m ik b k ; endfor endfor endfor.