( ), i, j = 1,2,...,n, si cerca un vettore x!r n tale che

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "( ), i, j = 1,2,...,n, si cerca un vettore x!r n tale che"

Transcript

1 4. Sistemi di equazioni algebriche lineari La soluzione numerica della maggior parte dei problemi di interesse nell ingegneria, anche molto complessi, si riduce alla soluzione di un sistema di equazioni algebriche lineari. Ad esempio, i sistemi a parametri concentrati lineari in condizioni stazionarie sono governati da equazioni algebriche lineari. Inoltre, se si risolve un sistema di equazioni algebriche non lineari con il metodo di Newton-Raphson ad ogni passo bisogna risolvere un sistema di equazioni algebriche lineari (vedi Nota 5). Più in generale, la discretizzazione di equazioni differenziali e integrali lineari porta alla soluzione di sistemi di equazioni algebriche lineari (vedi Nota 2 e Nota 3). In questa Nota considereremo il seguente problema. Dato un vettore b!r n e una matrice A = a ij ( ), i, j = 1,2,...,n, si cerca un vettore x!r n tale che " 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 Ax = b! # $... % $ a n1 x 1 + a n2 x a nn x n = b n. (4.1) In forma compatta si ha n! a ij x j = b i i = 1,2,...,n. (4.2) j =1 Il problema (4.1) è un sistema di n equazioni algebriche lineari in n incognite 1. Se det A ( )! 0, si ha x = A!1 b (4.3) 1 In queste Lezioni non considereremo il problema più generale in cui il numero di equazioni (vincoli) è diverso dal numero di incognite (gradi di libertà).

2 2 dove A!1 MATLAB det A ( ) indica il determinante. In ( ) è l istruzione per il calcolo del determinante e inv( A) è l istruzione indica la matrice inversa della matrice A e det A per il calcolo dell inversa. Pertanto, risolvere il sistema (4.1) è, in un certo senso, equivalente a determinare l inversa della matrice A. Esempio 4.1 La soluzione di un circuito resistivo lineare o di un circuito di impedenze si riduce alla soluzione di un sistema di equazioni algebriche lineari. Questo è solo un esempio tra quelli più vicini a uno studente di ingegneria. Figura 4.1 Un esempio di circuito resistivo lineare. Si consideri il circuito resistivo lineare descritto in Figura 4.1. Risolviamolo applicando il metodo dei potenziali nodali. Poniamo uguale a zero il potenziale del nodo 0, e 0 = 0. In questo modo il potenziale del nodo 3 è noto, e 3 = E. Bisogna, allora, determinare i potenziali e 1 ed e 2. Applicando la legge di Kirchhoff per le correnti ai nodi 1 e 2 otteniamo, rispettivamente, " $ ( G 1 + G 2 + G 3 )e 1! G 3 e 2 = G 1 E # %$!G 3 e 1 + ( G 3 + G 4 + G 5 )e 2 = G 5 E (4.4) dove G h = 1 / R h per h = 1,5. Questo è l esempio più semplice di sistema di equazioni algebriche lineari. Il sistema (4.4) può essere espresso nella forma matriciale (4.1). Si ha x = e 1,e 2 T, (4.5) ( )!G 3 ( ), (4.6) A = G 1 + G 2 + G 3!G 3 G 3 + G 4 + G 5 T b = EG 1,EG 5. (4.7)

3 3 Siccome la matrice A è a dominanza diagonale stretta 2 si ha che det( A)! 0, [4.1]. 4.1 Esistenza e unicità della soluzione Prima di cercare di risolvere un equazione bisogna sempre domandarsi se essa ammette soluzioni, e se la soluzione è unica. Si considerino le matrici A e A,b. Se il rango della matrice A è uguale al rango della matrice A,b, rank( A) = rank( A,b ), (4.8) il sistema (4.1) ammette soluzioni. La soluzione è unica se rank( A) = n, cioè se la matrice A ha rango massimo. La matrice quadrata A ha rango massimo se e solo se il suo determinante è diverso da zero, ( ) = n implica rank A,b det( A)! 0. (4.9) ( ) = rank A Siccome rank A ( ), la (4.9) è condizione necessaria e sufficiente per l esistenza e l unicità della soluzione del sistema di equazioni (4.1). Invece, se rank A ( )! rank A,b ( ) il sistema (4.1) non ammette soluzioni: in questo caso ( ) < n. si dice che il sistema è inconsistente. Ciò può accadere solo se rank A Assumeremo, salvo avviso contrario, che sia sempre verificata la condizione (4.9). Il sistema (4.1) può essere risolto sia attraverso metodi diretti che attraverso metodi iterativi. Esistono due metodi diretti per la soluzione del sistema (4.1): la regola di Cramer e il metodo di fattorizzazione di Gauss. Illustreremo prima i metodi diretti e poi i metodi iterativi. 4.2 Regola di Cramer La soluzione del sistema di equazioni algebriche lineari (4.1) può essere calcolata tramite la regola di Cramer. Indichiamo con A i la matrice ( n! n) ottenuta sostituendo la i! esima colonna di A con il vettore colonna b. La soluzione del sistema (4.1) è data allora da 2 Una matrice A = ( a ij ), i, j = 1, 2,..., n, si dice a dominanza diagonale stretta per righe se n a ii > " a ij per i = 1, 2,..., n ; la matrice si si dice a dominanza diagonale stretta per colonne se j=1, j!i n a ii > " a j=1, j!i ji per i = 1, 2,..., n. La matrice A è a dominanza diagonale stretta se è dominanza diagonale stretta sia per righe che per colonne.

4 4 ( ) ( ) x i = det A i det A i = 1,2,...,n. (4.10) Stimiamo, ora, il costo computazionale. Nella regola di Cramer, calcolando i determinanti a partire dalla loro definizione, il costo in termini di moltiplicazioni è di ( n + 1) ( n! 1)n!, ovvero dell ordine di n n per n >> 1. Ipotizzando di usare una macchina in grado di eseguire 10 9 moltiplicazioni al secondo, per risolvere un sistema di n = 20 equazioni con la regola di Cramer c è bisogno di circa 3.07! 10 4 anni. Anche per sistemi di modeste dimensioni il metodo di Cramer si rivela, quindi, impraticabile. Al contrario, come vedremo, il metodo di fattorizzazione di Gauss consente di risolvere in tempi ragionevoli sistemi anche di grosse dimensioni. Vedremo più avanti che il numero di moltiplicazioni in questo metodo è di ordine n 3 per n >> Sistemi triangolari Si tratta di un caso particolare molto importante perché, come vedremo tra poco, la forma triangolare è anche il risultato finale dell applicazione del metodo di eliminazione per sostituzione di Gauss. Introduciamo, prima, due forme speciali di matrici, le matrici triangolari superiori (che qui indicheremo con U ) e le matrici triangolari inferiori (che qui indicheremo con L ). Una matrice n! n ( ) U u ij ( ) si dice triangolare superiore se u 11 u u 1n"1 u 1n u ij = 0 per i > j! U = 0 u u 2n"1 u 2n u n"1n"1 u n"1n u nn ; (4.11) una matrice ( n! n) L( l ij ) si dice triangolare inferiore se l ij = 0 per i < j! L = l l 21 l l n"11 l n"12... l n"1n"1 0 l n1 l n2... l nn"1 l nn. (4.12) Si consideri, ora, un sistema di equazioni algebriche lineari di tipo triangolare inferiore,

5 5 # % % Ly = b! $ % % &% l 11 y 1 = b 1 l 21 y 1 + l 22 y 2 = b 2... l n"11 y 1 + n"12 y l n"1n"1 y n"1 = b n"1 l n1 y 1 + l n2 y l nn"1 y n"1 + l nn y n = b n. (4.13) La soluzione di questo sistema è molto semplice. Si ha (eliminazione in avanti) y 1 = 1 l 11 b 1, y i = 1 (4.14) # i!1 & b i! " l ij y j l % ( ii $ ' i = 2, 3,...,n. Per calcolare y i sono richieste le seguenti operazioni: i! 1 divisione. Pertanto il numero totale di operazioni è n j =1 ( ) prodotti, ( i! 1) somme e 1 N oper =! 1+ 2! ( i " 1) = 2! i " n = n 2. (4.15) Consideriamo, ora, un sistema di tipo triangolare superiore, i=1 n i=1 n i=1 # u 11 x 1 + u 12 x u 1n"1 x n"1 + u 1n x n = y 1 % u 22 x u 2n"1 x n"1 + u 2n x n = y 2 % Ux = y! $... % u n"1n"1 x n"1 + u n"1n x n = y % n"1 &% u nn x n = y n. (4.16) Anche la soluzione di questo sistema è molto semplice. Si ha (eliminazione all indietro) x n = 1 u nn y n, x i = 1 (4.17) # n & y i! " u ij x j u % ( ii $ ' i = n! 1,n! 2,...,1. j =i+1 Anche in questo caso bisogna effettuare n 2 soluzione. operazioni elementari per determinare la

6 6 Esercizio 4.1 Implementare in MATLAB gli algoritmi (4.14) e (4.17). 4.4 Il metodo della fattorizzazione di Gauss Il metodo della fattorizzazione di Gauss consiste nel trasformare il sistema (4.1) in un sistema del tipo LUx = b (4.18) dove L è una matrice triangolare inferiore e U è una matrice triangolare superiore. Ciò equivale a dire che la matrice A può essere espressa come prodotto tra una matrice triangolare inferiore e una matrice triangolare superiore, A = LU. (4.19) La rappresentazione della matrice A attraverso la (4.19) prende il nome di fattorizzazione di Gauss o fattorizzazione LU. Supponiamo, per il momento, che sia possibile esprimere la matrice A attraverso la (4.19) e che siano note le matrici di fattorizzazione L ed U. Allora la soluzione del sistema (4.1) è immediata. Infatti, il sistema (4.1) può essere riscritto nella forma (4.18). Posto, allora, il sistema (4.18) è equivalente ai due sistemi triangolari y! Ux (4.20) Ly = b, (4.21) Ux = y. (4.22) Il primo sistema è di tipo triangolare inferiore e può essere risolto attraverso l algoritmo (4.14) (eliminazione in avanti). Una volta determinato y, si risolve il sistema (4.22) attraverso l algoritmo (4.17) (eliminazione all indietro). Una volta effettuata la decomposizione LU, occorrono 2n 2 operazioni per calcolare al soluzione. E evidente, allora, che il punto centrale di questo metodo è nella determinazione (quando possibile) di una fattorizzazione LU della matrice A. Esempio 4.2 Prima di considerare il problema fattorizzazione nella sua forma più generale, esemplifichiamo attraverso un sistema di due equazioni in due incognite,

7 7! a 11 x 1 + a 12 x 2 = b 1 " # a 21 x 1 + a 22 x 2 = b 2. (4.23) Moltiplichiamo ambo i membri della prima equazione per!a 21 / a 11. Otteniamo!a 21 x 1! a 21 a 12 a 11 x 2 =! a 21 a 11 b 1. (4.24) Sommando membro a membro la seconda equazione del sistema (4.23) e l equazione (4.24) abbiamo " # $ a 22! a 12a 21 a 11 % & ' x = b! a b 1. (4.25) a 11 Abbiamo, allora, ricondotto la soluzione del sistema (4.23) alla soluzione del sistema triangolare alto!# " $# ( ) ( 1 x 1 + a ) 12 x 2 = y 1 a 11 1 ( 2 a ) 22 x 2 = y 2 (4.26) dove e ( 1 a ) ( 1 11 = a 11, a ) 12 = a 12, ( 1 a ) ( 1 21 = a 21, a ) 22 = a 22, ( 2 a ) ( 2 21 = 0, a ) ( 1 22 = a ) 22! a 12 ( 1 ) 1 a 21 ( ) ( ), a 22 1 (4.27) y 1 = b 1, y 2 = b 2! a 21 a 22 b 1. (4.28) Questa procedura può essere effettuata solo se a 22! 0. Il sistema (4.26) è del tipo (4.16) con U = a a 12, (4.29) 2 0 a 22 e termine noto y = y 1, y 2 T. (4.30)

8 8 E evidente dalle (4.28) che il termine noto y è, a sua volta, soluzione di un sistema di equazioni di tipo triangolare basso con L = 1 0 a / a 11 1, (4.31) e termine noto b = b 1,b 2 T. (4.32) Ora illustreremo una procedura generale per la determinazione della fattorizzazione LU. Sia la matrice L che la matrice U hanno, in generale, n( n + 1) / 2 elementi diversi da zero. Gli elementi di L ed U devono verificare il sistema di equazioni non lineari min( i, j)! l ir u rj = a ij i, j = 1,2,...,n. (4.33) r =1 Il sistema (4.33) è sotto determinato perché il numero di equazioni indipendenti è n 2, mentre il numero di gradi di libertà è n 2 + n. Di conseguenza se esiste una fattorizzazione LU, essa non è unica. Se si fissano gli n elementi della diagonale principale della matrice L, ad esempio, uguali a 1, il sistema (4.33) diventa determinato e può essere risolto attraverso il seguente algoritmo: per k = 1,2,...,n! 1 per i = k + 1,...,n l ik = a ( k) ik ( k) a, kk per j = k + 1,...,n ( k+1 a ) ( k ij = a ) ( k) ij! l ik a kj (4.34) ( 1 dove a ) ij = a ij per i, j = 1,2,...,n. Gli elementi della matrice triangolare superiore U sono dati da ( i u ij = a ) ij i! j = 1,2,...,n. (4.35) L algoritmo (4.34) è valido solo se a kk k ( )! 0. Per un approfondimento si rimanda alle referenze [4.1] e [4.2].

9 9 Esercizio 4.1(bis) Verificare che l algoritmo (4.34) con la (4.35) dà la soluzione del sistema (4.33) con l ii = 1 per i = 1,2,...,n. Il passo k della fattorizzazione LU comporta n! k moltiplicazioni e addizioni. Il costo totale dell algoritmo è, quindi, n!1 "( n! k) ( n! k + 1) = 1 3 n n2! 1 k =1 ( ) divisioni e ( n! k) ( n! k + 1) ( ). (4.36) ( k) ( k Gli elementi a kk vengono chiamati pivot. L algoritmo (4.34) richiede che a ) kk! 0 per ogni k = 1,2,...,n! 1. Allora, la matrice A ha una fattorizzazione LU se i pivot sono tutti diversi da zero. Se almeno un pivot è uguale a zero l algoritmo (4.34) non può essere implementato e la matrice A non è fattorizzabile. ( k) Assumiamo che i pivot a kk s0no tutti diversi da zero e, quindi, la matrice A sia fattorizzabile. Allora, la soluzione del sistema (4.1) attraverso il metodo della fattorizzazione LU consiste nel: - determinare la fattorizzazione LU della matrice A attraverso l algoritmo (4.34)- (4.35); - risolvere il sistema triangolare basso (4.21) attraverso l algoritmo (4.14) per determinare l incognita ausiliaria y ; - risolvere il sistema triangolare alto (4.22) attraverso l algoritmo (4.17). Il numero di moltiplicazioni, divisioni e addizioni richiesto per risolvere il sistema (4.1) con il metodo della fattorizzazione di Gauss è ( n 3 / 3 + 2n 2! n / 3), quindi di ordine n 3 / 3 per n >> 1. Programma 4.1: Fattorizzazione LU function [L,U,A]=lu_gauss(A) % Fattorizzazione LU n=max(size(a)); for k=1:n-1 for i=k+1:n A(i,k)=A(i,k)/A(k,k); for j=k+1:n A(i,j)=A(i,j)-A(i,k)*A(k,j); end end end if nargout==2, U=triu(A); L=eye(n)+tril(A,-1);end return

10 10 Riportiamo nel Programma 4.1 un implementazione dell algoritmo (4.34)-(4.35) utilizzando il linguaggio di programmazione MATLAB, [4.3]. Se la chiamata alla function ha una sola variabile di uscita le due matrici L e U sono memorizzate in una sola matrice, invece se ha due variabili di uscita L e U sono memorizzate in due matrici distinte (il comando nargout serve per contare il numero di variabili di uscita). Si osservi, inoltre, che nell implementazione non è necessario memorizzare tutte le matrici A ( k), è sufficiente scrivere di volta in volta sugli elementi della matrice di partenza A. Esercizio 4.2 Si risolva il sistema x = (4.37) determinando prima la fattorizzazione LU della matrice attraverso il Programma 4.1 e applicando, poi, gli algoritmi (4.14) e (4.17) per risolvere i due sistemi di equazioni triangolari, implementati nell Esercizio 4.1. La fattorizzazione LU è alla base dei comandi MATLAB [ L,U] = lu( A), A\b e inv( A). Il primo comando dà la fattorizzazione LU della matrice A, il secondo comando consente di risolvere direttamente il sistema (4.1), il terzo comando dà l inversa della matrice A Esistenza della fattorizzazione LU ( i La fattorizzazione LU esiste solo se nell algoritmo (4.34) a ) ii! 0 per ogni i. Ora discuteremo questo aspetto. Le sottomatrici principali di A di ordine i = 1,2,...,n! 1 sono le matrici quadrate ottenute considerando solo gli elementi delle prime i righe e colonne; indichiamo con A i la sottomatrice principale di ordine i. Si mostra che (vedi, ad esempio, [4.1]) da cui ( 1 det( A i ) = a ) ( 2 11 a ) ( i) 22...a ii det A n ( ) = a ii i (4.38) ( )!. (4.39) i=1

11 11 Criterio di esistenza della fattorizzazione LU Se A e tutte le sue sottomatrici ( i principali sono non singolari si ha che a ) ii! 0 per ogni i e, quindi, esiste ed è unica la decomposizione LU. Osservazione Può accadere che una sottomatrice principale A i con i < n possa essere singolare pur essendo det A ( )! 0. Si consideri, ad esempio, una matrice A 2! 2. In questo caso si ( 1 ( ) = a ) ( 2 11 a ) 22! 0 : in ( 1 ha a ) ( 2 11 = a 11, a ) 22 = a 22! a 12 a 21 / a 11. Può accadere che a 11 = 0 e det A ( 1 questo caso il prodotto a ) ( 2) 11 a 22 k proprietà generale. Infatti, se a kk (4.39) diventa una forma indeterminata. Esempio 4.3 Determiniamo la fattorizzazione LU della matrice ( 2 è una forma indeterminata perché a ) 22 =!. Questa è una ( ) ( k +1) = 0 dalla (4.34) segue che a k +1k +1 =! e quindi la A = (4.40) La matrice A è non singolare perché det( A) = 8 e tutte le sottomatrici principali sono non singolari. Applicando il Programma 4.1 si ha L = ,U = !4!4 0 0!2. (4.41) Il criterio che abbiamo appena illustrato non è agevole da applicare a matrici di grossa dimensione. Per questa ragione è utile individuare quelle classi di matrici per le quali esso è certamente verificato. Si dimostra che se è verificata almeno una delle seguenti condizioni: a) la matrice A è simmetrica e definita positiva (vedi Appendice 1); b) la matrice A è a dominanza diagonale stretta per righe o per colonne; allora esiste ed è unica la fattorizzazione LU di A. Per un approfondimento si rimanda alle referenze [4.1] e [4.2].

12 12 Osservazione: fattorizzazione di Cholesky Se la matrice A è simmetrica e definita positiva esiste una matrice triangolare inferiore H con elementi positivi sulla diagonale principale tale che A = HH T. (4.42) La (4.42) prende il nome di fattorizzazione di Cholesky. Gli elementi di H possono essere determinati attraverso l algoritmo h ij = 1 j!1 # & a ij! " h ik h jk h jj $ % ' ( j = 1,2,...,i! 1, i!1 k =1 2 h ii = a ii! " h ik i = 1,2,..., N. k =1 (4.43) La fattorizzazione di Cholesky richiede n 3 / 6 operazioni, metà di quelle richieste dalla fattorizzazione LU. La fattorizzazione di Cholesky viene richiamata in MATLAB con il comando H = chol A ( ). Esercizio 4.2 Implementare in MATLAB l algoritmo (4.43). Quando la matrice A non verifica le condizioni a) e/o b) può accadere che, pur essendo det A ( )! 0, non esista una fattorizzazione LU per A. Esempio 4.4 Si consideri, ora, la matrice A = (4.44) Essa è non singolare perché det A Programma 4.1 si ha 1 ( ) = 12, ma det( A 2 ) = a 11 ( ) a 22 2 ( ) = 0. Applicando il

13 13 L = ,U = 3 Inf !4 0 0 Inf. (4.45) Pur essendo A non singolare, la fattorizzazione di Gauss non può essere effettuata in ( 2 quanto nell algoritmo (4.34) a ) 22 = 0. Ciò è dovuto al fatto che la seconda sottomatrice principale di A (cioè quella ottenuta da A considerando solo le prime due righe e due colonne) è singolare. Questo problema può essere risolto, in generale, permutando tra loro alcune righe (o colonne) di A. Si consideri la matrice ottenuta scambiando la prima riga della (4.44) con la terza!a = (4.46) Tutti le sottomatrici principali di! A sono non singolari. Applicando, ora, il Programma 4.1 si ha:!l = , U! = !2! (4.47) Matrice di permutazione Nell esempio appena svolto abbiamo fatto vedere che permutando in modo opportuno le righe della matrice A è possibile costruire una nuova matrice! A che abbia tutte le sottomatrici principali non singolari e, quindi, abbia una ed una sola fattorizzazione LU. Siccome lo scambio tra righe comporta un cambiamento dei pivot, questa tecnica viene chiamata pivoting per righe. La fattorizzazione che si trova dà la matrice di partenza a meno di una matrice di permutazione fra le righe. Per una generica matrice A non singolare esiste sempre una matrice di permutazione delle righe P tale che

14 14 PA = LU. (4.48) La matrice P è posta uguale alla matrice identità all inizio del processo di fattorizzazione. Se nel corso della fattorizzazione le righe r e s di A vengono scambiate a causa della presenza di pivot uguali a zero, le corrispondenti colonne di P vengono scambiate. Allora, la soluzione del sistema (4.1) si riduce alla soluzione dei due sistemi triangolari L!y = Pb (4.49) Ux =!y. (4.50) In MATLAB l istruzione lu calcola la fattorizzazione LU con pivoting per righe [ L,U,P] = lu( A). Esempio 4.5 Fattorizziamo la matrice (4.44) utilizzando l istruzione di MATLAB appena descritta. Si ottengono le matrici L e U (4.47) e la matrice di permutazione P = (4.51) La (4.51) è la matrice di permutazione che scambia la prima riga con la terza riga di una matrice 3! 3 ( ). Esercizio 4.3 Si risolva il sistema x = (4.52) determinando prima la fattorizzazione LU con l istruzione lu di MATLAB e applicando, poi, gli algoritmi (4.14) e (4.17) per risolvere i due sistemi di equazioni triangolari.

15 Errori di arrotondamento Nel calcolo numerico esistono, almeno in linea di principio, due sorgenti di errore: l errore generato dall approssimazione introdotta dall algoritmo utilizzato per la soluzione del problema; l errore generato dal fatto che una qualsiasi macchina per il calcolo può rappresentare solo un numero finito di cifre. Il metodo della fattorizzazione di Gauss è un metodo diretto, quindi il primo errore è assente. Ora ci occuperemo di capire quali sono gli effetti nella soluzione del sistema (4.1) con il metodo della fattorizzazione di Gauss degli errori dovuti al numero finito di cifre della macchina di calcolo. Un calcolatore numerico è in grado di rappresentare soltanto un numero finito di cifre. Ciò dà luogo ad errori che possono essere generati in due modi diversi: i numeri introdotti nel calcolatore sono memorizzati in forma approssimata; le operazioni elementari (addizioni, moltiplicazioni, divisioni, ) su tali numeri danno numeri non rappresentabili esattamente sul calcolatore. Pertanto, in un algoritmo implementato sul calcolatore attraverso una successione di operazioni elementari si ha una successiva creazione e propagazione degli errori. Tali errori sono chiamati errori di arrotondamento. L entità di questi errori dipende, ovviamente, dal modo in cui i numeri sono rappresentati sul calcolatore. Il sistema floating-point è il sistema di rappresentazione più utilizzato per il calcolo scientifico. Esso è caratterizzato dal fatto che permette di rappresentare un ampio intervallo della retta reale con una distribuzione uniforme degli errori relativi. Il sistema floating point è definito dal numero di cifre significative t, dalla base! e dagli estremi ( l,u) dell intervallo di numeri interi di variabilità dell esponente. In rappresentazione posizionale un numero macchina x! 0 viene denotato con x = ±.d 1 d 2...d t! p (4.53) dove l! p! u. Ad esempio, in MATLAB si utilizza! = 2, t = 53, l =!1021 e u = In effetti 53 cifre significative in base 2 corrispondono alle 15 cifre significative in base 10 mostrate da MATLAB con il format long. In MATLAB con i comandi realmin e realmax è possibile determinare il numero reale, in valore assoluto, più piccolo e il numero reale, in valore assoluto, più grande che è possibile rappresentare. Essi sono, rispettivamente, e-308 e e+308. Il numero 0 viene rappresentato a parte. Un numero in valore assoluto minore di realmin produce una segnalazione di underflow e viene trattato come 0 (come, ad esempio, in MATLAB). Un numero in modulo maggiore di realmax produce invece una segnalazione di overflow e viene memorizzato come Inf. La maggior parte dei calcolatori ha la possibilità di operare con lunghezze diverse, ovvero con diversi t, a cui corrispondono, ad esempio, la singola e la doppia precisione. Nell aritmetica in floating point molte delle proprietà che sono alla base dell aritmetica dei numeri reali sono violate: l unicità dello zero, la proprietà distributiva,

16 16 la proprietà associativa. Qui ci limiteremo a fare qualche considerazione sulle conseguenze della violazione della proprietà associativa. Esempio 4.6 ([4.3]) Si considerino i tre numeri a = 1.0e + 308, b = 1.5e e c =!1.0e ed eseguiamo la loro somma in modi diversi. Abbiamo a + ( b + c) = 1.5e + 308, ( a + b) + c = Inf. Questo è un caso particolare di un fenomeno che si verifica quando si sommano numeri dello stesso ordine di grandezza in modulo, ma diversi di segno. In tal caso il risultato della somma può essere molto impreciso. Quello che accade è un fenomeno di cancellazione di cifre significative che introduce termini spuri caratterizzati da una mancanza di informazione. Esempio 4.7 ([4.1]) Si considerino i tre numeri a = !10 "4, b = !10 2 e c =! "10 2 ed eseguiamo la loro somma in modi diversi con una aritmetica floating point con 8 cifre significative. Abbiamo ( a + b) + c = !10-3, a + ( b + c) = !10 "3. Il risultato esatto è dato da a + b + c = !10 "3. Il primo risultato ha tre cifre esatte, quindi, un errore relativo di! 5.78 "10 #2, mentre il secondo ha cinque cifre esatte, quindi è molto più accurato. Nel primo calcolo c è stato un fenomeno di cancellazione che ha dato origine ad una perdita di informazione. Esempio 4.8 ([4.3]) Consideriamo in MATLAB la seguente operazione (( 1 + x)! 1) / x con x! 0. Il risultato in aritmetica esatta è 1 per x! 0. Troviamo, invece >> x = 1.e-15 ; 1+ x ans= (( )! x) / x Il risultato ottenuto non è accurato.

17 17 Il risultato della fattorizzazione LU può essere non accurato se un pivot è troppo piccolo. Innanzitutto il pivot non deve essere inferiore al numero più piccolo rappresentabile dalla macchina, altrimenti sarebbe considerato come se fosse identicamente nullo. In realtà, errori consistenti possono generarsi anche per un pivot molto più grande di realmin. Esempio 4.9 ([4.3]) Consideriamo la matrice non singolare !10 "15 3 A = (4.54) Durante il calcolo della fattorizzazione LU con il Programma 4.1 non si generano ( 2 elementi di pivot nulli. Pur essendo a ) 22 = 10!15, l algoritmo (4.34) dà una fattorizzazione. Nonostante ciò, il calcolo dei fattori L ed U non è accurato, come si verifica calcolando A! LU ( ), A! LU = (4.55) ( ) sarebbe uguale alla matrice identicamente nulla. Ciò non In aritmetica esatta A! LU accade nel caso reale a causa del fenomeno della cancellazione di cifre significative nelle operazioni di somma. ( 2 Nell esempio precedente il pivot a ) 22 = 10!15 produce numeri molto grandi nell algoritmo di fattorizzazione (4.34). Ciò è all origine della cancellazione di cifre significative che dà luogo al risultato (4.55). Questo problema può essere risolto scambiando le righe di A in modo tale che ad ogni passo dell iterazione (4.34) i pivot siano, in valore assoluto, i più grandi possibili tra tutti quelli disponibili. Un semplice algoritmo per realizzare ciò, che generalizza l algoritmo (4.34), è [4.3] per k = 1,2,...,n per i = k + 1,...,n cercare m k tale che a mk k = max a ( k) ik i= k,...,n scambiare la riga k con la riga m k, l ik = a ( k) ik ( k) a, kk per j = k + 1,...,n ( k +1 a ) ( k ij = a ) ( k ij! l ik a ) kj. (4.56)

18 18 Esercizio 4.5 Si calcolino i fattori L e U per la matrice (4.54) utilizzando il Programma 4.1 e si verifichi che il risultato non è accurato. Esercizio 4.6 Implementare in MATLAB l algoritmo (4.56) e verificare che la fattorizzazione LU della matrice (4.54) è molto più accurata di quella ottenuta con il Programma 4.1. Il programma MATLAB lu, cui abbiamo in precedenza accennato, si base sostanzialmente su di un algoritmo di fattorizzazione con pivoting per righe del tipo (4.56). 4.6 Matrici sparse, matrici bandate Lo strumento matrice è efficace sia per formulare in maniera semplice e sintetica un sistema di equazioni algebriche lineari, sia per studiarne le proprietà. Tuttavia, può capitare che esso si riveli ridondante. Come abbiamo visto nelle Note 2 e 3, esistono molti modelli caratterizzati da matrici che hanno una buona parte degli elementi uguali a zero. Una matrice n! n diversi da zero è di ordine O n ( ) con n >> 1 si dice che è sparsa quando il numero di elementi ( ). Avere matrici sparse è molto vantaggioso perché è sufficiente memorizzare solo gli elementi diversi da zero. Ciò comporta un notevole risparmio di memoria e di operazioni. Una matrice sparsa può essere memorizzata attraverso tre vettori: un vettore contiene gli elementi della matrice e gli altri due contengono i corrispondenti indici di riga e colonna. Pertanto, bisogna memorizzare 3n variabili (di cui 2n sono interi) invece che n 2 variabili reali. Figura 4.2 Struttura di una matrice a bande.

19 19 Osserviamo subito che la fattorizzazione di Gauss può introdurre nuovi elementi diversi da zero. In generale, pur essendo A sparsa, le matrici L ed U possono essere matrici non sparse. Riordinando la matrice A è possibile ridurre al minimo la generazione di nuovi elementi nelle matrici L ed U. I metodi iterativi che in seguito studieremo preservano le proprietà di sparsità delle matrici. Le matrici a bande rappresentano un significativo esempio di matrice sparsa. Esse si ottengono quando le equazioni del sistema possono essere ordinate in maniera che ogni incognita x i appaia solo in poche equazioni vicine alla i! esima. Esse si incontrano nell analisi dei circuiti e nei modelli discreti di equazioni differenziali. Si dice che la matrice A = ( a ij ) ha una banda superiore q se a ij = 0 per j > i + q e una banda inferiore p se a ij = 0 per i > j + p, Figura 4.2. Una proprietà importante della fattorizzazione LU è che è preservata la struttura a banda. Si consideri una matrice a banda superiore q e a banda inferiore p. Si può mostrare che se esiste la fattorizzazione LU per la matrice A, allora la matrice U è a banda superiore q e la matrice L è a banda inferiore p. L algoritmo di fattorizzazione LU per le matrici a banda richiede, pertanto, un numero di operazioni notevolmente più basso rispetto al caso più generale se non è richiesta l operazione di pivoting, ad esempio, per le matrici a predominanza diagonale stretta o le matrici simmetriche e definite positive. Per un approfondimento si rimanda alla referenze [4.1] e [4.2]. In molte applicazioni è necessario risolvere un sistema di equazioni con matrici a bande n! n ( ) della forma A = a 1 c 1 0 b 2 a c n!1 0 b n!1 a n. (4.57) In questo caso la matrice A viene detta tri-diagonale. Si verifica facilmente che, se la fattorizzazione LU esiste, allora L ed U sono due matrici bi-diagonali [4.3], L = l ,U = l n!1 1 u 1 c u c n!1 0 0 u n. (4.58) I coefficienti l i e u i possono essere determinati imponendo che LU = A. In tal modo si trova che u 1 = a 1, l i = b i u i!1, u i = a i! l i u i!1, i = 2,...,n. (4.59)

20 20 L algoritmo (4.59) è noto come algoritmo di Thomas ed è una forma particolarmente conveniente di fattorizzazione LU. Per n >> 1il numero di operazioni cresce come n al crescere di n. Esercizio 4.7 Implementare in MATLAB l algoritmo (4.59). Esempio 4.10 ([4.3]) In MATALB per costruire una matrice tri-diagonale è possibile utilizzare il comando spdiags. Ad esempio, per costruire la matrice tri-diagonale ( 20! 20) che ha elementi pari ad 5 sulla diagonale principale, pari a 1 sulla prima sottodiagonale e pari a 2 sulla prima sopradiagonale basta scrivere i seguenti comandi: >> a=ones(20,1); b=5*a; c=2*a; >> A=spdiags([a b c],-1:1, 20, 20); Si noti che A viene memorizzata in MATLAB in forma sparsa. Quando in MATLAB si risolve un sistema la cui matrice è memorizzata in tale formato, vengono automaticamente richiamate delle tecniche di risoluzione che consentono di ottimizzare i tempi di calcolo e l occupazione di memoria. 4.7 Il problema del condizionamento e della stabilità numerica Come abbiamo già avuto modo di notare nel 4.4, a causa dell errore di arrotondamento, il prodotto LU non riproduce dà esattamente la matrice A. Abbiano anche visto che l uso del pivoting consente di risolvere questo problema. Purtroppo ciò non è sempre possibile come mostra l esempio che segue. Esempio 4.11 ([4.3]) Consideriamo come matrice A la matrice di Hilbert cui elementi sono definiti come segue a ij = 1 i + j! 1 i, j = 1,2,...,n. (4.60) Essa è simmetrica e definita positiva. Scegliamo, inoltre, il termine noto b del sistema (4.1) in modo tale che la soluzione esatta sia x = 1,1,...,1 T,

21 21 b = A 1,1,...,1 T. (4.61) Indichiamo con ˆx la soluzione del sistema (4.1) ottenuta con il comando A\b di MATLAB. Se non vi fosse l errore dovuto all arrotondamento avremmo x! ˆx = 0. In realtà, a causa di questo errore risulta x! ˆx " 0. Consideriamo due tipi di misura dell errore: l errore relativo e il residuo relativo e! x " ˆx x r! Aˆx " b b (4.62). (4.63) Tabella 4.1 n e r !10 "5 1.3!10 " !10 " !10 " !10 " !10 "16 In Tabella 4.1 sono riportati e ed r per diversi valori di n. Al crescere di n pur restando il residuo relativo dell ordine di 10!16, l errore relativo cresce in modo vertiginoso. In questo paragrafo cercheremo di stabilire una relazione tra il residuo relativo e l errore relativo. Indichiamo con ˆx la soluzione numerica dell equazione (4.1). A causa degli errori di arrotondamento si ha Aˆx = ˆb (4.64) con ˆb! b. Pertanto la soluzione numerica dell equazione (4.1) è equivalente alla soluzione esatta dell equazione (4.64). Posto!b = ˆb " b (4.65) e!x = ˆx " x (4.66)

22 22 si pone il problema di determinare una stima dell errore!x a partire dalla conoscenza di!b. Data un equazione possiamo in linea schematica distinguere, per quanto riguarda la propagazione dell errore, il comportamento dell equazione dal comportamento del particolare algoritmo utilizzato per risolverla. Supponiamo che sia possibile risolvere l equazione esattamente. Ci poniamo la seguente domanda: eventuali perturbazioni sui dati dell equazione come influenzano la soluzione? Per caratterizzare un equazione rispetto a questo tipo di comportamento si utilizza il termine condizionamento. Un equazione si dice ben condizionata se eventuali perturbazioni sui dati non influenzano eccessivamente la soluzione, altrimenti si dice mal condizionata. La definizione di equazione ben condizionata è più restrittiva di quella di equazione ben posta secondo Hadamard 3. Nel caso di un algoritmo, per indicare il suo comportamento rispetto alla propagazione dell errore si usa il termine stabilità numerica. Un algoritmo si dice stabile numericamente se l errore non si amplifica eccessivamente nella successione delle operazioni, altrimenti si dice numericamente instabile Condizionamento di un sistema lineare Il problema del condizionamento di un sistema di equazioni algebriche lineari consiste nel studiare come varia la soluzione del sistema al variare dei dati, cioè della matrice e del termine noto. Studiamo dapprima il caso in cui varia solo il termine noto. Indichiamo con x e ˆx = x +!x le soluzioni dell equazione (4.1) con i termini noti b e ˆb = b +!b, rispettivamente, Sottraendo membro a membro otteniamo Ax = b, A( x +!x) = b +!b. (4.67) quindi A!x =!b, (4.68)!x = A "1!b. (4.69) Per misurare l entità della perturbazione nel termine noto e l entità della perturbazione indotta nella soluzione introduciamo una norma! :!b e!x danno una misura delle perturbazioni!b e!x. C è una relazione tra!x e!b? Dalla (4.69) si!x = A "1!b. (4.70) Dalla definizione di norma di una matrice (vedi Appendice 2) abbiamo che 3 Un equazione è ben posta secondo Hadamard quando ammette una ed una sola soluzione ed inoltre, la soluzione dipende con continuità dai dati.

23 23 A!1 "b # A!1 "b. (4.71) Combinando le (4.70) e (4.71) otteniamo la relazione cercata!x " A #1!b. (4.72) E evidente che sono di particolare interesse la misura delle variazioni relative!x / x e!b / b. Dividendo ambo i membri della (4.72) per x abbiamo!x x " A #1 x!b. (4.73) Dalla prima equazione delle (4.67) si ha anche Allora, combinando le (4.73) e (4.74) b! A x. (4.74)! " #x x $ ( A ) #b A%1 b. (4.75) Consideriamo, ora, il caso in cui varia la matrice. Indichiamo con x e ˆx = x +!x le soluzioni dell equazione (4.1) con le matrici A e  = A +!A, rispettivamente, (stiamo implicitamente assumendo che A e  siano invertibili) Ax = b, ( A +!A)( x +!x) = b. (4.76) Da queste equazioni abbiamo da cui e quindi Essendo Ax = ( A +!A)( x +!x), (4.77)!A( x +!x) + A!x = 0, (4.78)!x = A "1!A( x +!x). (4.79) A!1 "A( x + "x) # A!1 "A ( x + "x) (4.80)

24 24 dalla (4.79) si ha finalmente! " #x ( x + #x) $ A A%1 ( ) #A A. (4.81) Indichiamo con! l ampiezza della perturbazione del dato in entrambi i casi: nel primo caso! " #b / b, nel secondo caso! " #A / A. Quindi, sia per la perturbazione del termine noto che per la perturbazione della matrice l ampiezza relativa della perturbazione della soluzione! è legata all ampiezza della perturbazione del dato! dalla relazione! " K ( A)#, (4.82) dove è detto condizionamento della matrice A. Essendo A!1 ha che K ( A)! A A "1 (4.83) A " 1 (vedi Appendice 2), si K ( A)! 1 (4.84) per ogni matrice A (invertibile). Dunque il condizionamento di una matrice è sempre maggiore di 1. Il condizionamento di una matrice può essere calcolato in MATLAB attraverso il comando cond(a). Se il condizionamento di A è piccolo, cioè dell ordine dell unità, la matrice A è detta ben condizionata ed a perturbazioni sui dati corrispondono perturbazioni sulla soluzione al più dello stesso ordine di grandezza di quelle sui dati. Se invece il condizionamento è grande la matrice si dice mal condizionata e a piccole perturbazioni sui dati possono corrispondere grandi perturbazioni sulla soluzione. Esempio 4.7 La matrice di Hilbert definita dalla (4.60) è mal condizionata già per n! 4. In Tabella 4.2 riportiamo il condizionamento per diversi valori di n. In base a questo risultato non ci dobbiamo meravigliare di quanto abbiamo visto nell Esempio 4.6. n Tabella 4.2 K A ( ) ! ! ! ! !10 19

25 25 Alcune proprietà del numero di condizionamento sono raccolte nel seguente enunciato Proprietà del numero di condizionamento 1. K (!A) = K ( A) per ogni matrice A e per ogni scalare!. 2. K 2 ( A) =! max dove! max e! min sono, rispettivamente, il valore singolare più! min grande e più piccolo di A (vedi Appendici 1 e 2) Se A è simmetrica K 2 ( A) =! max dove!! max e! min sono, rispettivamente, min l autovalore della matrice in valore assoluto più grande e più piccolo. 4. Se A è simmetrica e definita positiva K 2 ( A) =! max dove! max e! min sono,! min rispettivamente, l autovalore più grande e più piccolo. 5. K 2 ( A) = 1 se e solo se A =!I. La dimostrazione delle proprietà 2. viene data in Appendice 2. La dimostrazione delle proprietà 3. e 4. è immediata se si ricorda che gli autovalori di una matrice simmetrica sono reali e i valori principali sono uguali agli autovalori presi in valore assoluto. Inoltre, se la matrice è anche definita positiva gli autovalori sono tutti positivi (vedi Appendice 1). Lasciamo al lettore la dimostrazione delle altre. In base a queste proprietà abbiamo che una matrice mal condizionata è caratterizzata da un valore singolare massimo molto più grande di quello minimo. Se la matrice è simmetrica essa è mal condizionata se l autovalore in modulo più grande è molto più grande dell autovalore in modulo più piccolo. Infine, quando la matrice A è simmetrica e definita positiva essa è mal condizionata se l autovalore più grande è molto più grande dell autovalore più piccolo. Infine, essendo (vedi Appendice 1) ( ) =! i ( A) det A n ", (4.85) dove! i A in generale, alcuna relazione tra il determinante di A e il numero di condizionamento. i=1 ( ) per i = 1,2,...,n sono gli autovalori della matrice A, si evince che non c è, Analisi dell errore Sappiamo che un algoritmo implementato in aritmetica finita crea errori di arrotondamento. La stabilità è una misura di come tali errori si propagano. 4 Con K p ( A) intendiamo il condizionamento definito attraverso la p-norma! p.

26 26 E possibile avere due diverse stime dell errore, una si basa su una stima a posteriori e l altra su una stima a priori. In entrambi i casi il numero di condizionamento di A gioca un ruolo fondamentale. L idea di base consiste nel cercare di valutare la variazione sui dati necessaria a produrre, quando il problema è risolto esattamente, la stessa variazione sui risultati ottenuta per effetto degli errori di arrotondamento. Una volta valutate queste variazioni, attraverso le (4.75) e (4.81) si può avere una stima dell errore se A non è mal condizionata. Consideriamo dapprima una stima a posteriori. A causa degli errori di arrotondamento la soluzione dell equazione (4.1) con il metodo della fattorizzazione di Gauss x! non è soluzione esatta della (4.1) e r! Ax * " b # 0. (4.86) Il residuo r sarebbe uguale a zero se non vi fossero errori di arrotondamento. Allora, la soluzione x! è la soluzione che si avrebbe se il sistema (4.1) fosse risolto esattamente con ˆb = b + r ( ) al posto del termine noto b. Allora, applicando la (4.75) si ha x! x " x # K ( A) r b. (4.87) Quando la matrice A è ben condizionata, K ( A)! 1, il residuo relativo r / b rappresenta una buona stima dell errore relativo e / x, dove e! x " x #. Attenzione, quando la matrice A è mal condizionata r / b non dà alcuna informazione utile sull errore, come gli Esempi 4.6 e 4.7 evidenziano. La (4.87) è una stima a posteriori perché può essere ottenuta solo dopo che il problema è stato risolto. Consideriamo, ora una stima a priori. Indichiamo sempre con x! la soluzione ottenuta con il metodo della fattorizzazione di Gauss e con E una matrice tale che ( A + E)x! = b. (4.88) La soluzione x! è la soluzione che si avrebbe se il sistema (4.1) fosse risolto esattamente con  = A + E ( ) al posto della matrice A. Allora, applicando la (4.81) si ha x! x " x " # K ( A) E A. (4.89) Come nel caso precedente, quando la matrice A è ben condizionata la quantità E / A è una buona indicazione della precisione della soluzione. E possibile avere una stima della norma di E. Per la fattorizzazione LU con pivoting si dimostra che [4.2]

27 27 E! " # $t A! (4.90) dove! è la base e t è il numero di cifre significative dell aritmetica impiegata. Combinando le (4.89) e (4.90) si ottiene x! x " # x " # $ %!t K # ( A). (4.91) Questa è una stima a priori perché può essere ottenuta senza risolvere il problema. Si osservi che! "t << 1, ad esempio in MATLAB! "t = 10 "15. Inoltre, essendo per definizione ( A + E)x! = b (4.92) si ha r! = Ax " # b! = Ex "! $ % #t A! x "!. (4.93) Allora, la soluzione del sistema (4.1) con il metodo della fattorizzazione di Gauss: (a) dà un residuo relativamente piccolo; (b) produce una soluzione che ha almeno t log 10! " log 10 $% K # ( A) &' cifre decimali corrette. In conclusione, la soluzione con il metodo della fattorizzazione LU dà una soluzione accurata se il condizionamento della matrice è basso. Esempio 4.8 ([4.3]) Consideriamo la matrice A =! /! (4.94) e ipotizziamo che! sia piccolo (!! 1). Per questa matrice si ha A! = 1 / " e A!1 = 1 / #, quindi K "! ( A) = 1 / " 2. Con riguardo alla soluzione del sistema lineare (4.1), si può moltiplicare la seconda equazione per! 2, cioè scalare la matrice in modo da avere!a =! 0 0!. (4.95) Essendo! A! = " e! A!1 = 1 / #, si ha K! "! ( A) = 1.

28 28 In generale, il condizionamento di una matrice può essere modificato dallo scaling. Un problema molto interessante, ma di difficile soluzione, è la determinazione di due matrici D 1 e D 2 tali da minimizzare K ( D 1 AD 2 ). Si tratta di un problema di preprocessing (precondizionamento). Per ulteriori approfondimenti si veda in [4.2]. 4.8 Metodi iterativi Il metodo della fattorizzazione di Gauss è un metodo diretto: la soluzione esatta del problema è determinata con un numero finito di operazioni elementari in assenza di errori di arrotondamento. Un metodo iterativo per la soluzione del sistema (4.1) consiste nel costruire, a partire da un dato iniziale x ( 0), una successione x ( 1),x ( 2),...,x ( k),... (4.96) convergente alla soluzione x per k! " attraverso l iterazione x ( k +1) = Bx ( k) + g. (4.97) La (4.97) ricorda l iterazione di punto fisso descritta nella Nota 5: la soluzione del sistema (4.1) è cercata come punto fisso della funzione di iterazione che è, quindi, la soluzione dell equazione!( x) = Bx + b, (4.98) x = Bx + b. (4.99) Come costruire l iterazione (4.97)? Consideriamo la seguente decomposizione della matrice A : con det( V)! 0. Si ha allora da cui il procedimento iterativo A = V + W (4.100) Ax = b! Vx = "Wx + b (4.101) Vx ( k +1) =!Wx ( k) + b per k! 0. (4.102)

29 29 Il punto fisso della (4.102) è la soluzione dell equazione (4.101) ovvero del sistema (4.1). La matrice di iterazione B è data da e g è dato da B =!V!1 W = V!1 A! I (4.103) g = V!1 b. (4.104) La decomposizione (4.100) deve essere fatta in modo tale da garantire due requisiti: i) l iterazione (4.97) sia convergente; ii) il costo computazionale sia più basso di quello che si avrebbe con il metodo della fattorizzazione di Gauss. Quando l iterazione converge, essa, in generale, dà la soluzione solo per k! ". Dunque, come nell iterazione di punto fisso studiata nella Nota 5, anche in questo caso bisogna introdurre un criterio di arresto. Posto e!x ( k +1) " x ( k +1) # x ( k) (4.105) r ( k)! b " Ax ( k), (4.106) per arrestare l iterazione possiamo utilizzare uno dei due criteri!x ( M ) " #, (4.107) r ( M )! ", (4.108) dove! è una norma naturale (vedi Appendice 2). Ora mostreremo che c è una relazione tra il residuo r ( k) e l incremento!x ( k +1). Essendo dalla (4.102) segue che!wx ( k) + b = ( V! A)x ( k) + b = Vx ( k)! r ( k). (4.109) quindi ( ( ) ) =!r k V x ( k+1)! x k ( ), (4.110) V!x ( k+1) = r ( k) o!x ( k+1) = V "1 r ( k). (4.111)

30 30 Tra le norme del residuo e dell incremento ci sono le relazioni r ( k)! V "x ( k+1) o!x ( k+1) " V #1 r ( k). (4.112) Per descrivere i vari metodi iterativi conviene rappresentare la matrice A come segue A = D +! L +! U (4.113) dove D è la matrice diagonale formata dagli elementi della diagonale di A,! L è la matrice triangolare inferiore formata dagli elementi della parte triangolare inferiore di A con elementi nulli sulla diagonale e! U è la matrice triangolare superiore formata dagli elementi della parte triangolare superiore di A con elementi nulli sulla diagonale, Figura 4.3. Figura Metodo di Jacobi Il metodo iterativo di Jacobi consiste nello scegliere e La matrice di iterazione è V = D (4.114) W =!( U! + L! ). (4.115) B =!D!1 ( U! + L! ) = I! D!1 A. (4.116) La matrice D è invertibile se a ii! 0 per i = 1,2,...,n. L inversa di D si calcola immediatamente, essa è ancora una matrice diagonale, D!1 =!1 a !1 a ! a nn. (4.117)

31 31 In forma esplicita l algoritmo che descrive l iterazione di Jacobi è ( k +1 x ) i = 1 a ii $ & b i! % n # j =1, j "i ( k) ' a ij x j ) ( i = 1,2,...,n (4.118) per k = 0,1,.... Il metodo di Jacobi è implementato nel Programma 4.2, [4.3]. I parametri di ingresso sono la matrice A, il termine noto b, il dato iniziale x 0 per l iterazione, il numero massimo di iterazioni consentite e l errore toll del criterio d arresto dell iterazione, err = r ( k) / r ( 0)! toll. Programma 4.2: Iterazione di Jacobi function [x,iter]=jacobi(a,b,x0,nmax,toll) % Iterazione di Jacobi [n,n]=size(a); iter=0;r=b-a*x0;r0=norm(r);x_old=x0; err=r0; while err>toll&iter<nmax iter=iter+1; for i=1:n s=a(i,1:i-1)*x_old(1:i-1); s=s+a(i,i+1:n)*x_old(i+1:n); x(i)=(b(i)-s)/a(i,i); end x_old=x'; r=b-a*x' ; err=norm(r)/r0; end x=x'; return Il metodo di Jacobi converge se la matrice A è a dominanza diagonale stretta per righe. La dimostrazione è data nel 4.9. Esempio 4.9 Risolviamo il sistema x = (4.119)

32 32 con il metodo di Jacobi. La matrice è dominanza diagonale stretta per righe. Con x 0 = 0 e toll = 10!6 dopo 28 iterazioni si ottiene la soluzione x = ,0.2143, T. Esempio 4.10 Risolviamo il sistema x = (4.120) con il metodo di Jacobi. L iterazione di Jacobi non converge perché la matrice non è a dominanza diagonale stretta per righe. Quale è il vantaggio dal punto di vista del costo computazionale di questo metodo rispetto a quello della fattorizzazione di Gauss? Ad ogni iterazione del metodo di Jacobi bisogna effettuare ( 2n! 1)n operazioni (addizioni, moltiplicazioni e divisioni). E evidente, allora, che se il numero di iterazioni M necessarie per raggiungere la precisione desiderata è tale che M << n, allora il costo computazionale per implementare al metodo di Jacobi è molto più basso di quello richiesto per implementare la fattorizzazione di Gauss. Il vantaggio è ancora più evidente se la matrice A è sparsa. Si può mostrare che in questo caso il numero delle operazioni ad ogni iterazione è dell ordine di n per n >> 1. Invece nella fattorizzazione di Gauss le matrici L e U sono, in generale, piene anche se A è sparsa. e Metodo di Gauss-Seidel Il metodo iterativo di Gauss-Seidel consiste nello scegliere La matrice di iterazione è V = D +! L (4.121) W =! U. (4.122) B =!( D + L! )!1 U! = I! ( D + L! )!1 A. (4.123)

33 33 Ad ogni passo dell iterazione di Gauss-Seidel bisogna risolvere il sistema ( D + L! )x ( k +1) =! Ux! ( k) + b. (4.124) Essendo D +! L una matrice triangolare bassa il sistema (4.124) può essere risolto con l algoritmo (4.14). Si ottiene lo schema iterativo in forma esplicita ( k +1 x ) 1 = 1 n # b 1! " a 1h x h a 11 $ % h=2 ( k) ( k +1 x ) 2 = 1 ( k +1 b 2! a 21 x ) n # k 1! " a 2h x h a 22 $ % ( k +1 x ) 3 = 1 # b 3! a 31 x 1 a 33 $ % e così via. In termini più generali si ha h= 3 ( k +1 ) k +1! a 31 x 2 & ' ( (4.125) ( ) & ' ( (4.126) ( ) n ( k) &! " a 3h x h ' ( (4.127) h= 4 ( k +1 x ) i = 1 a ii i!1 ( k +1 b i! a ih x ) n # ( k) & " h! " a ih x $ % h ' ( h=1 h=i+1 i = 1,2,...,n (4.128) per k = 0,1,... ; la prima sommatoria non dà contributo per se i = 1, mentre la seconda sommatoria non dà contributo se i = n. La (4.128) può essere espressa nella forma compatta x ( k +1) =!D!1 Lx! ( k +1 )! D!1 Ux! ( k ) + D!1 b (4.129) per k = 0,1,.... Il metodo di Gauss-Seidel converge se la matrice A verifica una di queste due condizioni: i) la matrice A è a dominanza diagonale stretta per righe; ii) la matrice A è simmetrica e definita positiva. Nel metodo di Jacobi le componenti del vettore x ( k +1) vengono calcolate indipendentemente le une dalle altre, invece nel metodo di Gauss-Seidel per calcolare ( k +1) ( k +1 x i si impiegano le componenti x ) ( k +1 i, x ) ( k +1) 2,..., x i!1 calcolate in precedenza. Ciò rende il metodo di Gauss-Seidel più veloce di quello di Jacobi. Si osservi che il numero di operazioni ad ogni iterazione è uguale al numero di operazioni richieste dal metodo di Jacobi. Il metodo di Gauss-Seidel è implementato nel Programma 4.3, [4.3]. I parametri di ingresso sono la matrice A, il termine noto b, il dato iniziale x 0 per l iterazione, il

34 34 numero massimo di iterazioni consentite e l errore toll del criterio d arresto dell iterazione, err = r ( k) / r ( 0)! toll. Esempio 4.11 Risolviamo il sistema (4.119) con il metodo di Gauss-Seidel. La matrice è dominanza diagonale stretta per righe. Con x 0 = 0 e toll = 10!6 dopo 8 iterazioni si ottiene la soluzione x = ,0.2143, T, 20 iterazioni in meno del metodo di Jacobi. Programma 4.3: Iterazione di Gauss-Seidel function [x,iter]=gseidel(a,b,x0,nmax,toll) % Iterazione di Gauss-Seidel [n,n]=size(a); iter=0;r=b-a*x0;r0=norm(r);x=x0; err=r0; while err>toll&iter<nmax iter=iter+1; for i=1:n s=a(i,1:i-1)*x(1:i-1); s=s+a(i,i+1:n)*x(i+1:n); x(i)=(b(i)-s)/a(i,i); end r=b-a*x;err=norm(r)/r0; end return Metodi di rilassamento Con l obiettivo di accelerarne la convergenza, si possono modificare i metodi iterativi che abbiamo precedentemente illustrato, introducendo un parametro! reale da scegliere opportunamente. Sia x ( k) la soluzione calcolata al passo k e x ( k +1/2) la soluzione al passo k + 1 / 2 calcolata tramite uno dei metodi precedenti. La soluzione al passo k + 1 è determinata attraverso la combinazione lineare In questo modo partendo dal metodo di Jacobi si ottiene x ( k +1) =!x ( k +1/2) + ( 1 "! )x ( k). (4.130) x ( k +1/2) = ( I! D!1 A)x ( k) + D!1 b, (4.131)

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Pivoting e stabilità Se la matrice A non appartiene a nessuna delle categorie precedenti può accadere che al k esimo passo risulti a (k) k,k = 0, e quindi il

Dettagli

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Pivoting e stabilità Se la matrice A non appartiene a nessuna delle categorie precedenti può accadere che al k esimo passo risulti a (k) k,k = 0, e quindi il

Dettagli

Corso di Calcolo Numerico

Corso di Calcolo Numerico Corso di Calcolo Numerico Dottssa MC De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Corso di Calcolo Numerico - Dottssa MC De Bonis

Dettagli

Complementi di Matematica e Calcolo Numerico A.A

Complementi di Matematica e Calcolo Numerico A.A Complementi di Matematica e Calcolo Numerico A.A. 205-206 Laboratorio 9 Metodo di Eliminazione Gaussiana per sistemi lineari Siano A R n n una matrice quadrata non singolare (det(a) 0) e b R n un vettore

Dettagli

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

n +1 determinanti (D i, i =1,...,n e det A) n! prodotti per ciascun determinante n 1 moltiplicazioni per ciascun prodotto METODI NUMERICI (A.A. 2007-2008) Prof. F.Pitolli Appunti delle lezioni sui sistemi lineari: metodi diretti; condizionamento Metodi diretti per la soluzione di sistemi lineari Metodi diretti Sono basati

Dettagli

4. Algoritmi per la soluzione di sistemi lineari.

4. Algoritmi per la soluzione di sistemi lineari. CALCOLO NUMERICO Francesca Mazzia Dipartimento Interuniversitario di Matematica Università di Bari 4. Algoritmi per la soluzione di sistemi lineari. 1 Sistemi triangolari inferiori Sia L triangolare inferiore.

Dettagli

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Risoluzione di sistemi lineari sparsi e di grandi dimensioni Risoluzione di sistemi lineari sparsi e di grandi dimensioni Un sistema lineare Ax = b con A R n n, b R n, è sparso quando il numero di elementi della matrice A diversi da zero è αn, con n α. Una caratteristica

Dettagli

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

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 Sistemi lineari 2x 1 + x 2 x 3 = 2 x 1 x 2 + x 3 = 1 x 1 + 3x 2 2x 3 = 0 2 1 1 1 1 1 1 3 2 x 1 x 2 x 3 = 2 1 0 n j=1 a i,jx j = b i, i = 1,, n Ax = b A = (a i,j ) R n n matrice invertibile (det(a) 0) b

Dettagli

Corso di Geometria e Algebra Lineare

Corso di Geometria e Algebra Lineare Prof. C. Vergara, Dott.ssa N. Franchina, Dr. A. Colombo Corso di Geometria e Algebra Lineare Laboratorio 3: sistemi lineari 25 29 Maggio 2015 Metodi diretti per sistemi lineari Si consideri il seguente

Dettagli

Complementi di Matematica e Calcolo Numerico A.A

Complementi di Matematica e Calcolo Numerico A.A Complementi di Matematica e Calcolo Numerico A.A. 207-208 Laboratorio 5 Metodi diretti per sistemi lineari Siano A R n n una matrice quadrata non singolare (det(a) 0) e b R n un vettore assegnati, allora

Dettagli

Complementi di Matematica e Calcolo Numerico C.L. Chimica Industriale A.A

Complementi di Matematica e Calcolo Numerico C.L. Chimica Industriale A.A Complementi di Matematica e Calcolo Numerico C.L. Chimica Industriale A.A. 208-209 Laboratorio 4-4 aprile 209 Metodo delle sostituzioni in avanti per sistemi lineari con matrice triangolare inferiore Siano

Dettagli

SISTEMI LINEARI. Metodi diretti. Calcolo numerico 07/08 p. 1/1

SISTEMI LINEARI. Metodi diretti. Calcolo numerico 07/08 p. 1/1 SISTEMI LINEARI Metodi diretti Calcolo numerico 07/08 p. 1/1 Sistemi lineari Ax = b, A R n n, b R n b INPUT x OUTPUT A relazione funzionale non ambigua det(a) 0 ( un unica soluzione) (Esercizio 1) Se det

Dettagli

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

Per esempio, una matrice 4 4 triangolare alta ha la forma. 0 a. mentre una matrice di ordine 4 triangolare bassa è del tipo Matrici triangolari Prima di esporre il metodo LU per la risoluzione di sistemi lineari, introduciamo la nozione di matrice triangolare Ci limiteremo al caso di matrici quadrate anche se l estensione a

Dettagli

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

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara Sistemi lineari Lorenzo Pareschi Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara http://utenti.unife.it/lorenzo.pareschi/ lorenzo.pareschi@unife.it Lorenzo Pareschi (Univ. Ferrara)

Dettagli

Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica, Sistemi lineari Lucia Gastaldi DICATAM - Sez. di Matematica, http://lucia-gastaldi.unibs.it Indice 1 Risoluzione di sistemi lineari Risoluzione di sistemi lineari in Matlab Metodi di risoluzione Fattorizzazione

Dettagli

Corso di Calcolo Numerico

Corso di Calcolo Numerico Corso di Laurea in Ingegneria Gestionale Sede di Fermo Corso di 7 - CALCOLO NUMERICO CON MATRICI Richiami teorici Operazioni fondamentali Siano A = {a ij } e B = {b ij }, i = 1,..., m, j = 1,..., n due

Dettagli

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 =

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 = Esercitazione di Calcolo Numerico 22 Aprile 29. Determinare la fattorizzazione LU della matrice a A = 3a 2 a 2a a a 2 ed utilizzarla per calcolare il det(a). 2. Calcolare il determinante della matrice

Dettagli

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis Dipartimento di Matematica, Informatica e Economia Università della Basilicata a.a. 2014-15 Propagazione degli errori introdotti nei dati

Dettagli

Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica, Sistemi lineari Lucia Gastaldi DICATAM - Sez. di Matematica, http://www.ing.unibs.it/gastaldi/ Indice 1 Risoluzione di sistemi lineari Risoluzione di sistemi lineari in Matlab Metodi di risoluzione Fattorizzazione

Dettagli

1 Risoluzione di sistemi lineari

1 Risoluzione di sistemi lineari Risoluzione di sistemi lineari La presente nota è in parte ripresa dal testo D Bini M Capovani O Menchi Metodi numerici per l algebra lineare Zanichelli Editore Siano A una matrice non singolare di ordine

Dettagli

Compito numero 2 - Compito intero

Compito numero 2 - Compito intero Esercitazione 6 - Correzione esame dell 8//3 Lucia Pilleri 9//3 Compito numero - Compito intero Esercizio del parziale - del compito intero Risolvere, mediante la fattorizzazione P A = LU, il sistema lineare

Dettagli

+ Analisi Numerica (1 modulo) Docente: M.Gaviano; domande di ripasso a.a

+ Analisi Numerica (1 modulo) Docente: M.Gaviano; domande di ripasso a.a + Analisi Numerica ( modulo) Docente: M.Gaviano; domande di ripasso a.a. - Idee di base e richiami. Quale è lo scopo dell Analisi numerica. Attraverso quali fasi si passa nel risolvere un problema reale..

Dettagli

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare: Esercizi sui metodi diretti per la risoluzione di sistemi lineari 1. Data la matrice 1 0 2 1 3 1 5 2 1 determinare la sua fattorizzazione P LR. Risolvere il sistema Ax = b con b = (3, 5, 6) T mediante

Dettagli

Esercitazione 5: Sistemi a risoluzione immediata.

Esercitazione 5: Sistemi a risoluzione immediata. Esercitazione 5: Sistemi a risoluzione immediata. Ipotesi: Supponiamo le matrici non singolari. Nota: Per verificare che si ha risolto correttamente il sistema lineare Ax = b basta calcolare la norma del

Dettagli

Complementi di Matematica e Calcolo Numerico A.A

Complementi di Matematica e Calcolo Numerico A.A Complementi di Matematica e Calcolo Numerico A.A. 206-207 Laboratorio Autovalori, raggio spettrale e norme di matrici Sia A una matrice quadrata di ordine n a valori reali o complessi, il numero λ C si

Dettagli

Metodi diretti: eliminazione gaussiana

Metodi diretti: eliminazione gaussiana Calcolo numerico 08/09 p. 1/1 SISTEMI LINEARI Metodi diretti: eliminazione gaussiana Calcolo numerico 08/09 p. 2/1 Sistemi lineari Ax = b, A R n n, b R n b INPUT x OUTPUT A relazione funzionale non ambigua

Dettagli

Algoritmi per la soluzione di sistemi lineari

Algoritmi per la soluzione di sistemi lineari Capitolo Algoritmi per la soluzione di sistemi lineari. Sistemi triangolari inferiori Le matrici L con n righe ed n colonne ed elementi uguali a zero al di sopra della diagonale principale: l, 0... 0.

Dettagli

Programma del corso di: Laboratorio di Programmazione e Calcolo Corso di laurea in Matematica a.a Proff. B. Paternoster, D.

Programma del corso di: Laboratorio di Programmazione e Calcolo Corso di laurea in Matematica a.a Proff. B. Paternoster, D. Programma del corso di: Laboratorio di Programmazione e Calcolo Corso di laurea in Matematica a.a.009-0 Proff. B. Paternoster, D. Conte Risoluzione di un problema con il calcolatore: dal problema reale

Dettagli

Programmare con MATLAB c Parte 5 Cicli: for e while

Programmare con MATLAB c Parte 5 Cicli: for e while Programmare con MATLAB c Parte 5 Cicli: for e while Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 La notazione due punti 2 Ciclo: for 3 Ciclo con controllo: while

Dettagli

Un sistema lineare si rappresenta in generale come

Un sistema lineare si rappresenta in generale come SISTEMI LINEARI Un sistema lineare si rappresenta in generale come n j=1 a ij x j = b i i = 1, 2,..., m o anche AX = B. La soluzione esiste se e solo se B appartiene allo spazio lineare generato dalle

Dettagli

Argomento 13 Sistemi lineari

Argomento 13 Sistemi lineari Sistemi lineari: definizioni Argomento Sistemi lineari Un equazione nelle n incognite x,, x n della forma c x + + c n x n = b ove c,, c n sono numeri reali (detti coefficienti) e b è un numero reale (detto

Dettagli

Calcolo Numerico (CdS in Matematica) A.A. 2012/13

Calcolo Numerico (CdS in Matematica) A.A. 2012/13 Calcolo Numerico (CdS in Matematica) A.A. 2012/13 Esercitazione di Laboratorio sulla risoluzione di sistemi di equazioni lineari Parte 1. Fattorizzazione di matrici Scrivere una funzione Matlab che implementi

Dettagli

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

Problema. Sistemi lineari. Problema. Problema. Quali sono i potenziali in ogni nodo? Leggi di Kirkoff e di Ohm: Problema 4 Ω 3 3 Ω 2 2 Ω 40 V Sistemi lineari 2 Ω Ω 2 Ω Ω 5 6 7 8 Ω 4 Ω Ω 0 V Quali sono i potenziali in ogni nodo? 2 4 Ω Problema 3 3 Ω 2 2 Ω 40 V 4 Ω Problema 3 3 Ω 2 2 Ω 40 V 2 Ω Ω 2 Ω Ω 2 Ω Ω 2 Ω Ω

Dettagli

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

Note per il corso di Geometria Corso di laurea in Ing. Edile/Architettura. 4 Sistemi lineari. Metodo di eliminazione di Gauss Jordan Note per il corso di Geometria 2006-07 Corso di laurea in Ing. Edile/Architettura Sistemi lineari. Metodo di eliminazione di Gauss Jordan.1 Operazioni elementari Abbiamo visto che un sistema di m equazioni

Dettagli

Applicazioni eliminazione di Gauss

Applicazioni eliminazione di Gauss Applicazioni eliminazione di Gauss. Premessa Nel seguito supporremo sempre di applicare il metodo di eliminazione di Gauss allo scopo di trasformare la matrice del sistema Ax = b in una matrice triangolare

Dettagli

Geometria BAER I canale Foglio esercizi 2

Geometria BAER I canale Foglio esercizi 2 Geometria BAER I canale Foglio esercizi 2 Esercizio 1. Calcolare il determinante e l inversa (quando esiste) della matrice ( ) cos θ sin θ R θ =, θ [0, 2π] sin θ cos θ Soluzione: Il determinante ( é cos

Dettagli

Metodi Diretti per la Risoluzione di Sistemi Lineari

Metodi Diretti per la Risoluzione di Sistemi Lineari Metodi Diretti per la Risoluzione di Sistemi Lineari Luca Gemignani luca.gemignani@unipi.it 20 marzo 2018 Indice Lezione 1: Sistemi Triangolari. 1 Lezione 2: Matrici Elementari di Gauss ed il Metodo di

Dettagli

Note sull algoritmo di Gauss

Note sull algoritmo di Gauss Note sull algoritmo di Gauss 29 settembre 2009 Generalità Un sistema lineare di m equazioni in n incognite x,..., x n è un espressione del tipo: a x + a 2 x 2 + + a n x n = b a 2 x + a 22 x 2 + + a 2n

Dettagli

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

CORSO DI ALGEBRA LINEARE Anno Accademico 2004/2005 Appunti su SISTEMI di EQUAZIONI LINEARI CORSO DI ALGEBRA LINEARE Anno Accademico 2004/2005 Appunti su SISTEMI di EQUAZIONI LINEARI Lo studente ha forse già incontrato i sistemi di equazioni lineari alla scuola secondaria Con il termine equazione

Dettagli

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 6 Metodi iterativi per sistemi lineari

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 6 Metodi iterativi per sistemi lineari Complementi di Matematica e Calcolo Numerico A.A. 2017-2018 Laboratorio 6 Metodi iterativi per sistemi lineari Dati una matrice A R N N non singolare e un vettore b R N, un metodo iterativo per la risoluzione

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

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

Sistemi lineari. Lucia Gastaldi. 11 novembre Dipartimento di Matematica, Sistemi lineari Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 11 novembre 2007 Outline 1 Come risolvere un sistema lineare con MATLAB Il comando per risolvere i sistemi lineari

Dettagli

Calcolo Numerico con elementi di programmazione

Calcolo Numerico con elementi di programmazione Calcolo Numerico con elementi di programmazione (A.A. 2014-2015) Appunti delle lezioni sui metodi numerici per la soluzione di sistemi lineari Metodi Iterativi la soluzione si ottiene tramite approssimazioni

Dettagli

Matrici. 3. Costruire le seguenti matrici, contarne gli elementi non nulli e visualizzarle con spy: . B 10x10 = ; D 7x7 =

Matrici. 3. Costruire le seguenti matrici, contarne gli elementi non nulli e visualizzarle con spy: . B 10x10 = ; D 7x7 = Matrici diag, tril, triu. Sia v il vettore colonna casuale di lunghezza. Calcolare: diag(v), diag (v,), diag (v,-), diag(v,), diag(v,-). Sia A la matrice magica x. Calcolare: tril(a), tril(a, ), tril(a,

Dettagli

MATRICI E SISTEMI LINEARI

MATRICI E SISTEMI LINEARI 1 Rappresentazione di dati strutturati MATRICI E SISTEMI LINEARI Gli elementi di una matrice, detti coefficienti, possono essere qualsiasi e non devono necessariamente essere omogenei tra loro; di solito

Dettagli

Motivazioni. Sistemi lineari. Obiettivo. Il problema

Motivazioni. Sistemi lineari. Obiettivo. Il problema Motivazioni Sistemi lineari Metodo di eliminazione di Gauss Molti problemi si possono rappresentare mediante un sistema lineare La soluzione di un sistema lineare costituisce un sottoproblema di moltissime

Dettagli

Esercitazione 4: Vettori e Matrici

Esercitazione 4: Vettori e Matrici Esercitazione 4: Vettori e Matrici Richiami di teoria: Norme di vettore Principali norme di vettore:. x = n i= x i 2. x 2 = n i= x i 2 3. x = max i n x i Ad esempio dato il vettore x = (, 2, 3, 4) abbiamo.

Dettagli

SISTEMI LINEARI. Ax = b

SISTEMI LINEARI. Ax = b SISTEMI LINEARI Un sistema lineare di n equazioni algebriche in n incognite è esprimibile come: a 11 x 1 + a 1 x + a 13 x 3 +... + a 1n x n = b 1 a 1 x 1 + a x + a 3 x 3 +... + a n x n = b a n1 x 1 + a

Dettagli

Matrici triangolari [Abate, 3.2] Lezioni 05 e 06. Determinante di una matrice triangolare [Abate, es. 9.3] Matrici ridotte per righe.

Matrici triangolari [Abate, 3.2] Lezioni 05 e 06. Determinante di una matrice triangolare [Abate, es. 9.3] Matrici ridotte per righe. Matrici triangolari [Abate, 32] Definizione Una matrice A = a ij ) R m,n si dice triangolare superiore se a ij = 0 per ogni i > j; triangolare inferiore se a ij = 0 per ogni i < j Lezioni 05 e 06 Una matrice

Dettagli

Fattorizzazione LU (lu)

Fattorizzazione LU (lu) Fattorizzazione LU (lu) Pivoting Esercizio Si consideri la matrice d A = / d d / d = LU; dove d è un parametro reale non nullo. Si utilizzi la fattorizzazione di A per risolvere il sistema Ax = b, con

Dettagli

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

LABORATORIO DI PROGRAMMAZIONE E CALCOLO Docente E. Carlini A.A. 2012/13 Foglio di esercizi N.8 con la collaborazione di Andrea Pugliese LABORATORIO DI PROGRAMMAZIONE E CALCOLO Docente E. Carlini A.A. / Foglio di esercizi N.8 con la collaborazione di Andrea Pugliese Dovete strutturare i programmi dei seguenti esercizi in funzioni ) (Metodo

Dettagli

UNIVERSITÀ DEGLI STUDI DI TERAMO FACOLTÀ DI SCIENZE POLITICHE CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA

UNIVERSITÀ DEGLI STUDI DI TERAMO FACOLTÀ DI SCIENZE POLITICHE CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA UNIVERSITÀ DEGLI STUDI DI TERAMO FACOLTÀ DI SCIENZE POLITICHE CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA II Parziale - Compito C 3/5/25 A. A. 24 25 ) Risolvere il seguente sistema

Dettagli

Preparazione orale analisi numerica:

Preparazione orale analisi numerica: Preparazione orale analisi numerica: CAPITOLO Errori (1): Ricavare il coefficiente di amplificazione: Sviluppare la serie di Taylor su di centro CAPITOLO Gerschgorin (4): Primo teorema di Gershgorin (Massimizzare

Dettagli

Geometria BAER PRIMO CANALE Foglio esercizi 1

Geometria BAER PRIMO CANALE Foglio esercizi 1 Geometria BAER PRIMO CANALE Foglio esercizi 1 Esercizio 1. Risolvere le seguenti equazioni lineari nelle variabili indicate trovando una parametrizzazione dell insieme delle soluzioni. a) x + 5y = nelle

Dettagli

Algebra Lineare Metodi Iterativi

Algebra Lineare Metodi Iterativi Algebra Lineare Metodi Iterativi Stefano Berrone Sandra Pieraccini DIPARTIMENTO DI MATEMATICA POLITECNICO DI TORINO, CORSO DUCA DEGLI ABRUZZI 24, 10129, TORINO, ITALY e-mail: sberrone@calvino.polito.it,

Dettagli

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria. Capitolo 2 Campi 2.1 Introduzione Studiamo ora i campi. Essi sono una generalizzazione dell insieme R dei numeri reali con le operazioni di addizione e di moltiplicazione. Nel secondo paragrafo ricordiamo

Dettagli

8 Metodi iterativi per la risoluzione di sistemi lineari

8 Metodi iterativi per la risoluzione di sistemi lineari 8 Metodi iterativi per la risoluzione di sistemi lineari È dato il sistema lineare Ax = b con A R n n e x, b R n, con deta 0 Si vogliono individuare dei metodi per determinarne su calcolatore la soluzione,

Dettagli

Geometria BAER I canale Foglio esercizi 2

Geometria BAER I canale Foglio esercizi 2 Geometria BAER I canale Foglio esercizi Esercizio. ( ) Data la matrice, determinare tutte le matrici X Mat( ) tali che AX = 0 e tutte le matrici Y Mat( ) tali che Y 0. ( ) ( ) ( ) x y x + z y + w Soluzione:

Dettagli

MATRICI E SISTEMI LINEARI

MATRICI E SISTEMI LINEARI MATRICI E SISTEMI LINEARI - PARTE I - Felice Iavernaro Dipartimento di Matematica Università di Bari 27 Febbraio 2006 Felice Iavernaro (Univ. Bari) Matrici e Sistemi lineari 27/02/2006 1 / 1 Definizione

Dettagli

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

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso Domanda 1 1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso x n+1 = x n f(x n), n = 0, 1, 2,... K dove x 0 è il punto iniziale, f(x) = x 3 cos(x) e K è una costante assegnata.

Dettagli

1. Calcolo dell indice di condizionamento di una matrice

1. Calcolo dell indice di condizionamento di una matrice 1 Esercizi sul condizionamento con matlab laboratorio di Calcolo Scientifico per Geofisici Prof. A. Murli a.a. 2006/07 1. Calcolo dell indice di condizionamento di una matrice Determinare una function

Dettagli

RISOLUZIONE DI SISTEMI LINEARI

RISOLUZIONE DI SISTEMI LINEARI 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

Dettagli

Algoritmi per la soluzione di sistemi lineari

Algoritmi per la soluzione di sistemi lineari Algoritmi per la soluzione di sistemi lineari Corso di Calcolo Numerico, a.a. 2005/2006 Francesca Mazzia Dipartimento di Matematica Università di Bari 31 Marzo 2009 Francesca Mazzia (Univ. Bari) Algoritmi

Dettagli

Raccolta di esercizi di Calcolo Numerico Prof. Michela Redivo Zaglia

Raccolta di esercizi di Calcolo Numerico Prof. Michela Redivo Zaglia Raccolta di esercizi di Calcolo Numerico Prof. Michela Redivo Zaglia Nota Bene: Gli esercizi di questa raccolta sono solo degli esempi. Non sono stati svolti né verificati e servono unicamente da spunto

Dettagli

UNIVERSITÀ DEGLI STUDI DI TERAMO FACOLTÀ DI SCIENZE POLITICHE CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA

UNIVERSITÀ DEGLI STUDI DI TERAMO FACOLTÀ DI SCIENZE POLITICHE CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA UNIVERSITÀ DEGLI STUDI DI TERAMO FACOLTÀ DI SCIENZE POLITICHE CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA II Parziale - Compito B 3/05/005 A. A. 004 005 ) Risolvere il seguente sistema

Dettagli

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo Capitolo Esercizi a.a. 206-7 Esercizi Esercizio. Dimostrare che il metodo iterativo x k+ = Φ(x k ), k = 0,,..., se convergente a x, deve verificare la condizione di consistenza x = Φ(x ). Ovvero, la soluzione

Dettagli

ALGEBRA LINEARE PARTE III

ALGEBRA LINEARE PARTE III DIEM sez Matematica Finanziaria Università degli studi di Genova Dicembre 200 Indice PREMESSA 2 GENERALITA 2 RAPPRESENTAZIONE DI UN SISTEMA LINEARE IN FORMA MATRI- CIALE 2 3 SOLUZIONE DI SISTEMI LINEARI

Dettagli

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

A =, c d. d = ad cb. c d A = Geometria e Algebra (II), 271112 1 Definizione D ora innanzi, al posto di dire matrice quadrata di tipo n n o matrice quadrata n n diremo matrice quadrata di ordine n o in breve matrice di ordine n Il

Dettagli

ossia può anche essere localizzato univocamente sul piano complesso con la sua forma polare.

ossia può anche essere localizzato univocamente sul piano complesso con la sua forma polare. ALGEBRA COMPLESSA Nel corso dei secoli gli insiemi dei numeri sono andati man mano allargandosi per rispondere all esigenza di dare soluzione a equazioni e problemi sempre nuovi I numeri complessi sono

Dettagli

Cenni sui metodi iterativi per sistemi lineari. Analisi Numerica Prof. M. Lucia Sampoli a.a. 2014/2015

Cenni sui metodi iterativi per sistemi lineari. Analisi Numerica Prof. M. Lucia Sampoli a.a. 2014/2015 Cenni sui metodi iterativi per sistemi lineari Analisi Numerica Prof. M. Lucia Sampoli a.a. 2014/2015 Metodi numerici per sistemi lineari Nei metodi diretti la presenza di eventuali elementi nulli nella

Dettagli

Sistemi sovradeterminati

Sistemi sovradeterminati Sistemi sovradeterminati Sia A una matrice m n ove m > n sia b R m trovare una soluzione del sistema sovradeterminato Ax = b significa cercare di esprimere un vettore di R m come combinazione lineare di

Dettagli

A titolo di esempio proponiamo la risoluzione del sistema sia con il metodo della matrice inversa sia con il metodo di Cramer.

A titolo di esempio proponiamo la risoluzione del sistema sia con il metodo della matrice inversa sia con il metodo di Cramer. ) Trovare le soluzioni del seguente sistema lineare: x+ y+ z = 3x y + z = 0 x + 5y 4z = 5 Osserviamo in primo luogo che il sistema dato è un sistema quadrato di tre equazioni in tre incognite, precisamente

Dettagli

Appunti su Indipendenza Lineare di Vettori

Appunti su Indipendenza Lineare di Vettori Appunti su Indipendenza Lineare di Vettori Claudia Fassino a.a. Queste dispense, relative a una parte del corso di Matematica Computazionale (Laurea in Informatica), rappresentano solo un aiuto per lo

Dettagli

Motivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali

Motivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali Motivazione: Fattorizzazioni di matrici speciali Diminuire la complessità computazionale = evitare operazioni inutili = risparmiare tempo di calcolo Diminuire l occupazione di memoria Come si fa? Si tiene

Dettagli

Corso di Analisi Numerica

Corso di Analisi Numerica con pivoting Corso di Laurea in Ingegneria Informatica Corso di Analisi Numerica 6 - METODI DIRETTI PER I SISTEMI LINEARI Lucio Demeio Dipartimento di Scienze Matematiche con pivoting 1 Introduzione algebrica

Dettagli

LEZIONE i i 3

LEZIONE i i 3 LEZIONE 5 51 Determinanti In questo lezione affronteremo da un punto di vista prettamente operativo la nozione di determinante, descrivendone le proprietà ed i metodi di calcolo, senza entrare nei dettagli

Dettagli

Federica Gregorio e Cristian Tacelli

Federica Gregorio e Cristian Tacelli 1 Sistemi lineari Federica Gregorio e Cristian Tacelli Un sistema lineare m n (m equazioni in n incognite) è un insieme di equazioni lineari che devono essere soddisfatte contemporaneamente a 11 x 1 +

Dettagli

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g LEZIONE 3 3.. Matrici fortemente ridotte per righe. Nella precedente lezione abbiamo introdotto la nozione di soluzione di un sistema di equazioni lineari. In questa lezione ci poniamo il problema di descrivere

Dettagli

Matrici di permutazione

Matrici di permutazione Matrici di permutazione Si dice matrice di permutazione elementare una matrice ottenuta dall identità scambiando due righe i e j o due colonne i e j. P ij =...... P ij ha come effetto di scambiare le righe

Dettagli

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI Appunti presi dalle lezioni del prof. Nedo Checcaglini Liceo Scientifico di Castiglion Fiorentino (Classe 4B) January 17, 005 1 SISTEMI LINEARI Se a ik, b i R,

Dettagli

Carla Guerrini 1. Sistemi e matrici semplici

Carla Guerrini 1. Sistemi e matrici semplici Carla Guerrini 1 Sistemi e matrici semplici Vi sono delle funzioni MatLab che generano delle matrici particolari, per esempio zeros(m, n) produce una matrice m n con tutti gli elemnti nulli, ones(m, n)

Dettagli

Capitolo 3 Matrici. Marco Robutti. Facoltà di ingegneria Università degli studi di Pavia. Anno accademico

Capitolo 3 Matrici. Marco Robutti. Facoltà di ingegneria Università degli studi di Pavia. Anno accademico Capitolo 3 Matrici Marco Robutti Facoltà di ingegneria Università degli studi di Pavia Anno accademico 2017-2018 Tutorato di geometria e algebra lineare Definizione (Matrice) Una matrice A M R (k, n) è

Dettagli

Corso di Analisi Numerica

Corso di Analisi Numerica con pivoting Corso di Laurea in Ingegneria Informatica Corso di Analisi Numerica 6 - METODI DIRETTI PER I SISTEMI LINEARI Lucio Demeio Dipartimento di Scienze Matematiche con pivoting 1 2 3 con pivoting

Dettagli

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

LEZIONE i 0 3 Le sottomatrici 2 2 di A sono. 1 2 i i 3. Invece ( LEZIONE 6 6 Determinanti In questa lezione affronteremo da un punto di vista prettamente operativo la nozione di determinante, descrivendone le proprietà ed i metodi di calcolo, senza entrare nei dettagli

Dettagli

Esercitazione di Calcolo Numerico 1 27 Maggio Calcolare la fattorizzazione P A = LU della matrice A =

Esercitazione di Calcolo Numerico 1 27 Maggio Calcolare la fattorizzazione P A = LU della matrice A = Esercitazione di Calcolo Numerico 1 27 Maggio 29 1. Calcolare la fattorizzazione P A = LU della matrice 1 2 3 A = 2 3 3, ed utilizzarla per risolvere il sistema lineare Ax = b, con b = (1, 2,, 16) T. 2.

Dettagli

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

Introduzione soft alla matematica per l economia e la finanza. Marta Cardin, Paola Ferretti, Stefania Funari Introduzione soft alla matematica per l economia e la finanza Marta Cardin, Paola Ferretti, Stefania Funari Capitolo Sistemi di equazioni lineari.8 Il Teorema di Cramer Si consideri un generico sistema

Dettagli

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

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati. LEZIONE 2 2 Sistemi di equazioni lineari Definizione 2 Un equazione lineare nelle n incognite x, x 2,, x n a coefficienti reali, è un equazione della forma (2 a x + a 2 x 2 + + a n x n = b, ove a j, b

Dettagli

Laboratorio di Calcolo Numerico

Laboratorio di Calcolo Numerico Laboratorio di Calcolo Numerico M.R. Russo Università degli Studi di Padova Dipartimento di Matematica Pura ed Applicata A.A. 2009/2010 INDICE Sistemi lineari Casi particolari Eliminazione di Gauss Fattorizzazione

Dettagli

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Sistema decimale La base del sistema è 10 Ogni numero viene rappresentato come con 0 a i 9. a = ±a m a m 1 a 1 a 0.a 1 a 2 a M Il sistema è detto posizionale:

Dettagli

Numeri floating point

Numeri floating point Numeri floating point Corso di Calcolo Numerico, a.a. 2008/2009 Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Numeri floating point 1 / 32 Rappresentazione

Dettagli

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

Note per le esercitazioni di Geometria 1 a.a. 2007/08 A. Lotta. Metodi per il calcolo del rango di una matrice Note per le esercitazioni di Geometria 1 a.a. 2007/08 A. Lotta Versione del 21/12/07 Metodi per il calcolo del rango di una matrice Sia A M m,n (K). Denotiamo con A (i) la riga i-ma di A, i {1,..., m}.

Dettagli

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

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 Determinanti Sia data la matrice quadrata a... a n a a n =...... a... a n nn Chiamiamo determinante di il numero det o che ad essa viene associato. det = a a... a... a... a n n n... a nn Un generico elemento

Dettagli

A.A Prof. R. Morandi

A.A Prof. R. Morandi Svolgimento di alcuni esercizi del corso di Calcolo Numerico A.A. - Prof. R. Morandi Versione in aggiornamento ( gennaio ): ogni segnalazione di imprecisioni è gradita Aritmetica Finita Esercizio : Assegnati

Dettagli

Fattorizzazione QR e matrici di Householder

Fattorizzazione QR e matrici di Householder Fattorizzazione QR e matrici di Householder ottobre 009 In questa nota considereremo un tipo di fattorizzazione che esiste sempre nel caso di matrici quadrate non singolari ad entrate reali. Definizione

Dettagli