Dipartimento di Matematica Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica vigogna@dima.unige.it http://www.dima.unige.it/~vigogna/
Lezione 2 Sistemi lineari Fattorizzazione LU Esercizi
Sistemi lineari : matrice dei coefficienti : vettore delle incognite : vettore dei termini noti
Teorema di Rouchè-Capelli Il sistema ha soluzioni soluzioni.
Metodi risolutivi quadrata e invertibile ( ) Cramer: In generale (se ) ( ) Cramer: In generale (se ) riduzione di Gauss: pivotizzazione parziale o totale. NB: l’algoritmo di Gauss ha un costo computazionale molto più basso.
Risoluzione in MATLAB (1) quadrata e invertibile: controllare >> det(A) Se , si procede con >> x = A\b NB: MATLAB risolve con Gauss. Evitare il comando >> x = inv(A)*b
Esempio >> x = A\b x = 2 1/2 1/2
Risoluzione in MATLAB (2) quadrata (singolare) o rettangolare: controllare >> rank(A) >> rank([A b]) Se , si procede con >> R = rref([A b]) (reduced row echelon form), che riduce la matrice completa con pivotizzazione parziale. Infine, si scrivono le soluzioni.
Esempio >> rref([A b]) ans = 1 0 1 2 0 1 -1 2 0 0 0 0
Esercizio 1 Studiare e se possibile risolvere i seguenti sistemi lineari:
Fattorizzazione LU dove: è la matrice triangolare superiore (Up) ottenuta per pivotizzazione parziale; è, a meno di permutazione delle righe, triangolare inferiore (Low) con tutti 1 sulla diagonale. NB: sia che sono invertibili.
LU in MATLAB >> [L U] = lu(A) restituisce le matrici L e U che fattorizzano A Es: >> A = [1 0 1;1 3 2;1 -3 -8]; >> det(A) (NB: controllare sempre!) L = 1 0 0 U = 1 0 1 1 1 0 0 3 1 1 -1 1 0 0 -8
Risoluzione di un sistema mediante fattorizzazione LU In MATLAB: >> [L U] = lu(A); >> y = L\b; >> x = U\y
Confronto col metodo di Gauss Gauss e LU sono equivalenti per complessità computazionale. Tuttavia, LU risulta conveniente per risolvere diversi sistemi con stessa matrice dei coefficienti; la pivotizzazione viene infatti calcolata una volta per tutte: >> [L U] = lu(A); >> yi = L\bi; >> x = U\yi (i = 1,…,k)
Esercizio 2 Trovare la soluzione del seguente sistema, sia usando Gauss che mediante fattorizzazione LU:
Esercizio 3 Studiare i seguenti sistemi lineari:
Esercizio 4 Sia H la matrice di Hankel 7x7 del vettore v = (7,6,…,1) ( >> H = hankel(v) ); Sia A la matrice tale che le prime sei righe e colonne sono tratte da H l’ultima colonna è 7,6,…,1 l’ultima riga è 3*7-1,3*7-4,…,1; Risolvere se possibile il sistema Ax = b con b = (0 1 2 2 2 1 1)’.