Algoritmi per operazioni con le matrici

Documenti analoghi
MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI

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

Appunti su Indipendenza Lineare di Vettori

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

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

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

( ) TEORIA DELLE MATRICI. A. Scimone a.s pag 1

Corso di Calcolo Numerico

Le matrici. Sia K un campo con elemento neutro dell addizione 0 ed elemento neutro della moltiplicazione 1.

Sistemi lineari - Parte Seconda - Esercizi

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

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con

Esercitazione 6 - Soluzione

Il teorema di Rouché-Capelli

Vettori e matrici. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

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 di equazioni lineari

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

Corso di Calcolo Numerico

SISTEMI LINEARI, METODO DI GAUSS

ESERCIZI SULLE MATRICI

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale

Richiami di aritmetica(2)

Corso di Matematica per la Chimica

Geometria BIAR Esercizi 2

Esercitazione 5: Sistemi a risoluzione immediata.

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

Inversa di una matrice

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Sistemi di equazioni lineari

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

3. Vettori, Spazi Vettoriali e Matrici

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

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

Prontuario degli argomenti di Algebra

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

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

Esercitazione di Matematica su matrici e sistemi lineari

ALGEBRA LINEARE PARTE II

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

Corso di Matematica per la Chimica

RICHIAMI DI ALGEBRA LINEARE E NORME DI MATRICI E VETTORI. a 11 a 12 a 1n a 21 a 22 a 2n. a m1 a m2 a mn

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

a + 2b + c 3d = 0, a + c d = 0 c d

Stabilità e retroazione

Equazioni di secondo grado

Richiami di aritmetica

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

POTENZE DI MATRICI QUADRATE

Metodi per la risoluzione di sistemi lineari

TEMPUS PECUNIA EST COLLANA DI MATEMATICA PER LE SCIENZE ECONOMICHE FINANZIARIE E AZIENDALI

Giuseppe Accascina. Note del corso di Geometria e Algebra

Autovalori e autovettori, matrici simmetriche e forme quadratiche (cenni) (prof. M. Salvetti)

MATRICI Vol.1. Pag. 1/24

4 0 = 4 2 = 4 4 = 4 6 = 0.

Parte 1. Sistemi lineari, algoritmo di Gauss, matrici

Argomento 13 Sistemi lineari

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Disequazioni in una incognita. La rappresentazione delle soluzioni

ottenuta scambiando in A, le righe con le colonne, così, ad esempio, posto

RIDUZIONE E RANGO , C = 2 5 1

1. Proprietà della somma di matrici. 1. (A + B) + C = A + (B + C) qualunque. 2. A + B = B + A qualunque siano le matrici

Un monomio è in forma normale se è il prodotto di un solo fattore numerico e di fattori letterali con basi diverse. Tutto quanto sarà detto di

I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.

Esercizi svolti sui sistemi lineari

Inversa. Inversa. Elisabetta Colombo

Lezione 9: Le matrici

Note per il corso di Geometria e algebra lineare Corso di laurea in Ing. Elettronica e delle Telecomunicazioni

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

Anno 4 Matrice inversa

Esercitazioni di Algebra e Geometria

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

Matematica Discreta e Algebra Lineare (per Informatica)

Esercitazione 1-I parte

ESERCIZI IN PIÙ I NUMERI COMPLESSI

Lezione 4 - Esercitazioni di Algebra e Geometria - Anno accademico

Sistemi sovradeterminati

Informatica B

ESTRAZIONE DI RADICE

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Moltiplicazione. Divisione. Multipli e divisori

Decomposizione LU di una matrice quadrata

Risoluzione di problemi ingegneristici con Excel

Matematica II,

Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo.

08 - Matrici, Determinante e Rango

La tabella dell addizione Completa la tabella e poi rispondi alle domande.

BREVE RIEPILOGO SULLE FRAZIONI

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

Le operazioni fondamentali in R

1) Quali dei seguenti sottoinsiemi del campo dei numeri reali ℝ sono sottospazi vettoriali?

MATRICI. 1. Esercizi

1 Definizione di sistema lineare omogeneo.

Chi non risolve esercizi non impara la matematica.

Matrici quadrate particolari

Richiami di algebra delle matrici

QUADERNI DI DIDATTICA

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

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Transcript:

Algoritmi per operazioni con le matrici 1

Sommario Definizioni Alcune operazioni principali sulle matrici Somma di due matrici Trasposta di una matrice Prodotto di matrici: algoritmo classico Prodotto di matrici: algoritmo di Strassen Soluzione di sistemi di equazioni lineari: Algoritmo di eliminazione di Gauss 2

Definizioni Una matrice è un array rettangolare di numeri A (3X4) = 1 1 1 3 2 1-1 0 1 2-1 -1 La trasposta di una matrice A è la matrice A T ottenuta scambiando le righe con le colonne di A 1 2 1 A T (4X3) = 1 1 2 1-1 -1 Una matrice simmetrica soddisfa la condizione A= A T 3 0 1 Una matrice triangolare superiore U è tale che u ij =0 per i>j (tutti gli elementi sotto la diagonale principale sono nulli). Rango di una matrice: massimo numero di righe linearmente indipendenti Matrice singolare: con determinate nullo Una matrice ha rango massimo se e solo se è non singolare 3

Operazioni sulle matrici Somma di matrici: associativa e commutativa La dimensione delle matrici deve essere compatibile Sottrazione di matrici: A-B= A+(-B) La dimensione delle matrici deve essere compatibile Trasposizione di matrici: A -> A T Prodotto di matrici: associativo ma NON commutativo A(BC)= (AB)C AB!= BA Dimensioni compatibili: il numero di colonne di A deve essere uguale al numero di righe di B. Determinante di una matrice quadrata 4

Operazioni sulle matrici: somma Input: A(nxm), B(nxm) Output C(nxm) Algoritmo for i = 1 to n for j = 1 to m do C[i,j] <- A[i,j] + B[i,j] 5

Operazioni sulle matrici: trasposta Input: A(nxm) Output: B(mxn) Algoritmo: for i = 1 to n for j = 1 to m do B[j,i] <- A[i,j] L algoritmo va bene anche se vogliamo modificare la matrice A, senza crearne una nuova? Input: A(nxm) Output: A T (mxn) for i = 1 to n for j = 1 to m do A[j,i] <- A[i,j] Esercizio: modificare il secondo algoritmo in modo che sia corretto 6

Operazioni sulle matrici: prodotto Input: A(nxm), B(mxh) Output C(nxh) Algoritmo classico: moltiplicazione righe per colonne for i=1,n for j=1,h RIS =0; for k=1,m RIS = RIS+A[i,k]*B[k,j]; C[i,j]=RIS; Complessità asintotica n =max(n,m,h) O(n 3 ) Esempio 1 2 1 1 2 0 1 A (2X3) = B (3X4) = 1 1 0 0 C (2X4) = 0 1 3 2 0 3 0 1+2+2 2+2+0 0+0+3 1+0+0 0+1+6 0+1+0 0+0+9 0+0+0 7

Algoritmo di Strassen Complessità asintotica O(n 2,81 ); Basato sul paradigma divide et impera; Si applica a matrici A,B,C di dimensione nxn con n=2 m Idea: A,B e C vengono divise in 4 sottomatrici: Che corrispondono a: r = ae + bg s = af + bh t = ce + dg u = cf + dh r s t u = a b c d e f g h Ogni equazione contiene 2 prodotti di matrici di dimensione n/2 x n/2 e le relative 4 somme O(n 2 ) Utilizzando il paradigma divide et impera si ottiene la ricorrenza T(n) = 8 T(n/2) + O(n 2 ) La soluzione della ricorrenza è O(n 3 ) 8

Algoritmo di Strassen L approccio di Strassen richiede solo 7 moltiplicazioni ricorsive di matrici n/2 x n/2 e 18 tra addizioni e sottrazioni: O(n 2 ) T(n) = 7 T(n/2) + O(n 2 ) la cui soluzione è O(n log 2 7 ) ~ O(n 2.81 ) Perché solo 7 prodotti? Gli 8 prodotti possono essere ricavati solo mediante somme e sottrazioni dei 7 seguenti sottoprodotti: P1 = (b-d)(g+h) P2 = (a+d)(e+h) P3 = (a+c)(e+f) P4 = (a+b)h P5 = a(f-h) P6 = d(g-e) P7 = (c+d)e Inoltre: r = P1 + P2 P4 +P6 s = P4 + P5 t = P6 + P7 u = P2 P3 + P5 P7 Esempio: s = P4 + P5 = (a+b)h + a(f-h) = ah + bh + af ah = bh + af 9

Algoritmo di Strassen: considerazioni I fattori costanti sono più alti dei fattori costanti dell algoritmo classico con tempo O(n 3 ). Non è efficieinte per la moltiplicazione di matrici sparse. L algoritmo si usa quando le dimensioni delle matrici sono molto grandi. Quando la dimensione dei sottoproblemi è relativamente piccola si usa il metodo classico. Ci sono algoritmi più efficienti I limiti della complessità computazionale finora conosciuti sono O(n 2,376 ) e Ω(n 2 ) Non si conosce un limite asintotico esatto per il problema della moltiplicazione 10

Algoritmo di Strassen: tempi d esecuzione Tempo d esecuzione (ms) Dim. Matrice (n) 11

Risoluzione di un sistema di equazioni lineari Sistema: Ax = b A: matrice nxn B: array unidimensionale esempio: A B x + y + z = 3 1 1 1 3 2x + y - z = 0 x + 2y - z = -1 2 1-1 0 1 2-1 -1 12

Metodo di eliminazione di Gauss per la triangolarizzazione di una matrice Gaussian Elimination Operando trasformazioni lineari il sistema non cambia Scambio di due righe Moltiplicazione di una riga per un coefficiente Somma o sottrazione di una riga per un altra Si operano opportune trasformazioni lineari della matrice e del relativo array dei termini noti in modo che la matrice diventi triangolare superiore L ultima riga ha solo un incognita, la penultima 2 etc Si opera una sostituzione all indietro trovando tutte le soluzioni Esempio: la seconda riga viene trasformata moltiplicando la prima riga per 2 e sottraendola alla seconda; la terza riga è ottenuta dalla sottrazione tra la prima e la terza. 1 1 1 3 1 1 1 3 2 1-1 0 0 1 3 6 1 2-1 -1 0 0 1 2 13

Triangolarizzazione della matrice Si trasforma la matrice in una matrice triangolare superiore 2 1 1 1 3 moltiplico la 2 1-1 0 prima riga per 2 e la sottraggo 1 2-1 -1 alla seconda 1 1 1 3 0 1 3 6 1 2-1 -1 sottraggo la prima riga alla terza 1 1 1 3 0 1 3 6 0-1 2 4 moltiplico la seconda riga per -1 sottraggo la seconda riga alla terza 1 1 1 3 0 1 3 6 0 0-5 - 10 moltiplico la terza riga per -1/5-1/5 1 1 1 3 x=1 0 1 3 6 y=0 0 0 1 2 z = 2 14

Metodo di Gauss: pseudocodifica A: matrice quadrata di dimensione NxN; B: array di dimensione N; ;; eliminazione della i-esima colonna for i <- 1,N-1 for j <- i+1,n ;;j e l indice di riga successivo a i molt <- A[j,i]/A[i,i] ;; calcolo del coeff. moltiplicativo ;; semplificazione delle k colonne della j-esima riga for k <- i,n A[j,k] <- molt * A[i,k] - A[j,k] B[j] <- molt * B[i] B[j] 15

Evoluzione dei calcoli i i i+1=j 0 0 0 a i,i 0 16

Problemi di stabilità numerica Cosa succede quando il coefficiente moltiplicativo molt = A[j,i]/A[i,i] è un numero molto grande? A[j,i]>>A[i,i] Si possono verificare errori di approssimazione, visto che l insieme dei numeri in virgola mobile non è uniformemente distribuito rispetto all asse reale, ma i valori floating-point sono densi intorno allo zero e sempre più sparsi verso gli estremi dell intervallo di definizione. Inoltre Sistemi mal condizionati possono dar luogo a problemi di instabilità numerica 17

Problemi mal condizionati Un problema si dice mal condizionato quando, variando di poco i dati del problema, i risultati possono variare di molto. Un tipico problema mal condizionato e x + y = 10 1.002x + y = 0 le cui soluzioni sono x =-5000 y = 5010 Se il coefficiente della x diventa 1.001 le soluzioni diventano x=-10000 y= 10010 Un esempio di problema ben condizionato: x + y = 10 1.002 x - y = 0 le cui soluzioni sono x =-5000 y = 5010 Il malcondizionamento è intrinseco al problema Associato al mal condizionamento c è il problema della stabilità 18

Algoritmi stabili Un procedimento numerico o algoritmo si dice (numericamente) stabile quando, al crescere del numero dei passi, l errore si mantiene limitato. Se questo non succede l algoritmo si dirà (numericamente) instabile. L instabilità numerica è una caratteristica dell algoritmo, Possono esistere procedimenti stabili ed altri instabili per la soluzione dello stesso problema. Come rendere stabile l algoritmo di eliminazione di Gauss? Facendo in modo che il coefficiente moltiplicativo sia sempre un valore minore di 1. Si calcola il massimo sulla colonna i-esima per le righe dalla i-esima alla n- esima. Sia m la riga in cui si trova il massimo. Si scambia la riga m con la riga i e si procede al calcolo. Essendo il denominatore il più grande di tutti i valori sulla colonna, il coefficiente moltiplicativo sarà sempre minore di 1. 19

Sostituzione all indietro Back substitution X: array delle soluzioni ;;calcolo l ultima soluzione X[N] <- B[N]/A[N,N] for i <- N-1,1,-1 ;;termine noto QUOT=B[i] ;; porto tutti i valori noti a destra dell uguaglianza for j <- i+1,n QUOT <- QUOT A[i,j] * X[j] ;;divido per il coeff. dell incognita da calcolare X[i] <- QUOT/A[i,i] 20

Come verificare che l algoritmo sia corretto Il sistema originario deve essere conservato Le soluzioni vengono sostituite nel sistema originario esempio: 2 3 1 4 3 0 0 3 8 2 3 9 9 1 0 3 2 1 1 2 9 4 5 6 2 3 0 0 2 1 COEFFICIENTI DEL SISTEMA: dimensione 5 2.000000 3.000000 1.000000 4.000000 3.000000 0.0000000E+00 0.0000000E+00 3.000000 8.000000 2.000000 3.000000 9.000000 9.000000 1.000000 0.0000000E+00 3.000000 2.000000 1.000000 1.000000 2.000000 9.000000 4.000000 5.000000 6.000000 2.000000 3.000000 0.0000000E+00 0.0000000E+00 2.000000 1.000000... MATRICE TRIANGOLARIZZATA 2.000000 3.000000 1.000000 4.000000 3.000000 0.0000000E+00 0.0000000E+00-3.000000-8.000000-2.000000-3.000000-9.000000 0.0000000E+00 0.0000000E+00 28.83333-6.666667 1.000000 8.50000 0.0000000E+00 0.0000000E+00 0.0000000E+00-3.323699-2.751445 5.069365 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 2.537391-4.118261 21

SOLUZIONI 0.4050715 1.145305 1.349554-0.1816313-1.623030 VERIFICA SULLA RIGA 1 SBAGLIATA VERIFICA SULLA RIGA 2 CORRETTA VERIFICA SULLA RIGA 3 SBAGLIATA VERIFICA SULLA RIGA 4 SBAGLIATA VERIFICA SULLA RIGA 5 SBAGLIATA... con DOUBLE PRECISION... SOLUZIONI 0.405071967100754 1.14530500342700 1.34955448937629-0.181631254283756-1.62302947224126 VERIFICA SULLA RIGA 1 CORRETTA VERIFICA SULLA RIGA 2 CORRETTA VERIFICA SULLA RIGA 3 CORRETTA VERIFICA SULLA RIGA 4 CORRETTA VERIFICA SULLA RIGA 5 CORRETTA 22