Una Libreria di Algebra Lineare per il Calcolo Scientifico

Documenti analoghi
1. Calcolo dell indice di condizionamento di una matrice

Corso di Geometria e Algebra Lineare

Complementi di Matematica e Calcolo Numerico A.A

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

Soluzione sistemi lineari

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

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

Corso di Matematica per la Chimica

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

Corso di Matematica per la Chimica

Corso di Analisi Numerica

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

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

RISOLUZIONE DI SISTEMI LINEARI

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

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

Programmare con MATLAB c Parte 5 Cicli: for e while

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

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

Corso di Analisi Numerica

Come fatto finora, presentiamo dapprima alcune utili comandi per manipolare matrici e per risolvere sistemi non lineari. c 1 r 2 r 3... r n.

Corso di Calcolo Numerico

Esercizi svolti sui sistemi lineari

Introduzione al Calcolo Scientifico

SISTEMI LINEARI. Ax = b

10 Metodi diretti per la risoluzione di sistemi lineari: fattorizzazione QR

Metodi Diretti per la Risoluzione di Sistemi Lineari

1 Risoluzione di sistemi lineari

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

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

Appunti su Indipendenza Lineare di Vettori

Complementi di Matematica e Calcolo Numerico A.A

Anno accademico

Laboratorio di Calcolo Numerico Laboratorio 11: Metodi diretti per la soluzione di sistemi lineari

Esercitazione 4: Vettori e Matrici

Corso di laurea in Informatica Calcolo Numerico Prof.ssa L. D Amore 12 Dicembre 2008 Esercizi di riepilogo tipo prova d esame

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

Metodi diretti: eliminazione gaussiana

Compito numero 2 - Compito intero

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

Altre trasformazioni elementari

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Mauro Saita, Esercizio 1.1 Determinare tutti i sottospazi vettoriali degli spazi vettoriali R, IR 2, IR 3 motivando

Sistemi di equazioni lineari. la soluzione è unica se det(a) 0 e vale

Laboratorio di Calcolo Numerico

Corso di Matematica per la Chimica

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

PreCorso di Matematica - PCM Corso M-Z

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

Strutture dati e loro organizzazione. Gabriella Trucco

Corso di laurea in Matematica Laboratorio di Programmazione e Calcolo Prof. A. Murli. Esercizi di riepilogo - LABORATORIO

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

Sistemi lineari: metodi diretti II

Esercitazione 5: Sistemi a risoluzione immediata.

Un sistema lineare si rappresenta in generale come

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

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

Analisi Numerica: Introduzione

Esercizio 1 Sia. a n. X (k+1) = X (k) (2I AX (k) )

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

Complementi di Matematica e Calcolo Numerico A.A

EQUAZIONI DIFFERENZIALI

Sistemi Lineari. Andrea Galasso

SISTEMI LINEARI QUADRATI

Sistemi lineari: metodi diretti II

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

Corso di Calcolo Numerico

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

Complementi di Matematica e Calcolo Numerico A.A

Calcolo del precondizionatore K 1

Soluzione. (a) L insieme F 1 e linearmente indipendente; gli insiemi F 2 ed F 3 sono linearmente

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

Risoluzione di più sistemi con la stessa matrice

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

Il ranking di pagine web

MATRICI E SISTEMI LINEARI

METODI NUMERICI - II canale (A.A )

Calcolo Numerico con elementi di programmazione

x t = M t a.

Implementazione degli algoritmi.

Corso di Analisi Numerica

Università Politecnica delle Marche - Facoltà di Ingegneria Ing. Informatica e Automatica - Ing. Logistica e Produzione

1 Spazi vettoriali. Sottospazi.

Algebra Lineare Metodi Iterativi

Corso di Calcolo Numerico

Trasformazione elementari di Givens

Complementi di Matematica e Calcolo Numerico A.A

CORSO DI Analisi Numerica

Introduzione a Matlab (e al Calcolo Numerico)

ESERCIZI DI MATEMATICA DISCRETA ANNO 2006/2007

Esercitazione 4 Sistemi lineari, pivoting

Transcript:

Una Libreria di Algebra Lineare per il Calcolo Scientifico

Introduzione Il Lavoro di Tesi Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Risultati Attesi Verifica delle Performance

Il Lavoro di Tesi Introduzione La risoluzione di sistemi lineari ormai è una pratica molto comune Sistemi di grandi dimensioni, però, possono creare problemi di occupazione di memoria

Il Lavoro di Tesi Il Lavoro di Tesi Lo scopo del lavoro di tesi è stato lo sviluppo di una libreria di software matematico in Fortran e C in aritmetica reale e complessa in singola e doppia precisione per la risoluzione efficiente, dal punto di vista dell occupazione di memoria, di sistemi densi di equazioni lineari, tramite il metodo di Wassing.

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Questo metodo consente di risolvere sistemi lineari utilizzare 1 4 della memoria necessaria a metodi classici (Gauss) Questo guadagno di occupazione di memoria è ottenuto tramite il non richiedere la memorizzazione esplicita della matrice dei coefficienti un metodo opportuno di memorizzazione degli elementi

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Il problema da risolvere è Ax = b Il metodo di Wassing costruisce una nuova matrice: [ ] A T Z = b T che viene fattorizzata LU [ ] A T Z = b T = da cui [ L 0 l T 1 x T = l T L 1 ] [ U 0 T ] ˆLÛ

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Noto che la soluzione è x T = l T L 1 si osservi che ˆL = [ L 0 l T 1 ] [ ˆL 1 = L 1 0 l T L 1 1 ] I primi n elementi dell ultima riga di ˆL contengono la soluzione x T È quindi possibile calcolare solo la matrice ˆL, e non anche Û, per ottenere la soluzione al nostro problema iniziale.

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi I passi che devono essere svolti per risolvere il sistema lineare sono i seguenti: 1. i = 2, 3,..., n, n + 1 z i1 = z i1 /z 11 2. k = 2, 3,..., n, 2.1 i = k, k + 1,..., n, n + 1 k 1 z ik = z ik + z ij z jk j=1 2.2 i = k + 1, k + 2,..., n, n + 1 z ik = z ik /z kk 2.3 j = 1, 2,..., k 1 e i = k + 1, k + 2,..., n, n + 1 z ij = z ij + z ik z kj 3. Il vettore soluzione, sarà x j = z n+1,j j = 1, 2,..., n

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Il metodo può essere facilmente generalizzato al caso di più termini noti AX = B con A n n e X, B n m costruendo la matrice Z come [ ] A T Z = B T Inoltre, la complessità risulta di O( 2 3 n3 ), uguale, cioè, al metodo di Gauss

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Ridurre l Occupazione di Memoria Vediamo ora come sono organizzati i dati necessari all applicazione del metodo di Wassing. Verrà presentato un esempio di un sistema lineare 3 3, mostrando quali elementi della matrice Z sono necessari nei vari passi. Nei grafici vengono usate le convenzioni che le aree evidenziate indicano degli elementi che non sono mai stati utilizzati gli spazi barrati, invece, indicano elementi non più necessari nel proseguio dell algoritmo

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Contenuto della matrice Z al passo 1 Al termine del passo 1 si ha bisogno di memorizzare solo gli elementi sottodiagonali della prima colonna della matrice Z

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Contenuto della matrice Z al passo 2 Al termine del passo 2 si devono memorizzare gli elementi sottodiagonali della seconda colonna e gli elementi omologhi sulla prima colonna un elemento precedentemente memorizzato non sarà più utilizzato

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Contenuto della matrice Z al passo 3 Al termine del terzo ed ultimo passo, devono essere memorizzati solo gli elementi sull ultima riga, la quale contiene il vettore soluzione x T altri 2 elementi non verranno più utilizzati

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Ridurre l Occupazione di Memoria In precedenza, si è evidenziato come alcuni elementi non venissero più utilizzati per il proseguio dell algoritmo. Allora, eliminando questi elementi memorizzando solo quelli necessari in un vettore invece che in una matrice è possibile ridurre l occupazione di memoria ad di memoria, contro le consuete n 2 (n + 1)2 4 locazioni

Introduzione al Metodo Ridurre l Occupazione di Memoria Metodo di Memorizzazione degli Elementi Metodo di Memorizzazione degli Elementi La matrice Z viene memorizzata, per colonne, all interno di un vettore: Z1 Z2 Zi dove, appunto, Zi rappresenta l i-esima colonna di Z. In questo modo, le operazioni vengono eseguite su elementi contigui in memoria, e risultano dunque ottimizzate.

Risultati Attesi Verifica delle Performance La valutazione di performance ed accuratezza dei codici numerici sviluppati è stata una parte fondamentale del lavoro di tesi: è preferibile utilizzare un codice performante un codice poco accurato è inutile

Risultati Attesi Verifica delle Performance Risultati Attesi Vediamo quali risoltati possiamo attenderci dal metodo di Wassing: a causa dei molti spostamenti di dati in memoria, ci si aspetta che le performance siano minori del metodo di Gauss (utilizzato nelle routine LAPACK), sebbene la complessità risulti la stessa ci si attende, però, che l accuratezza del metodo sia confrontabile con quella di altri metodi

Risultati Attesi Verifica delle Performance Verifica delle Performance La verifica delle performance è stata eseguita facendo variare la dimensione del sistema tra n = 250 ed n = 2000 con incrementi di 250 il linguaggio di programmazione il tipo di dato I risultati sono stati confrontati con le routine LAPACK GESV, per matrici dei coefficienti generali POSV, per matrici dei coefficienti simmetriche e definite positive

Risultati Attesi Verifica delle Performance Confronto del Metodo di Wassing con GESV Fortran: Confronto metodo di Wassing con pivoting con GESV 2.8 Real Double Precision 2.6 Complex Double Complex 2.4 Rapporto con GESV 2.2 2 1.8 1.6 1.4 1.2 200 400 600 800 1000 1200 1400 1600 1800 2000 Dimensione della matrice

Risultati Attesi Verifica delle Performance Confronto tra le Implementazioni Fortran e C 1.4 1.3 C vs F: Confronto sul metodo di Wassing con pivoting Real Double Precision Complex Double Complex Rapporto C / F 1.2 1.1 1 0.9 200 400 600 800 1000 1200 1400 1600 1800 2000 Dimensione della matrice

Risultati Attesi Verifica delle Performance Una caratteristica fondamentale di un codice numerico è la sua accuratezza Risulta, pertanto, necessario stimare l accuratezza del codice sviluppato Per far questo si è utilizzato il vettore errore: err = x ˆx la differenza tra la soluzione calcolata e quella esatta

Risultati Attesi Verifica delle Performance Stima dell Accuratezza Il sistema lineare utilizzato per la verifica dell accuratezza era tale per cui la soluzione esatta fosse nota per via algebrica e composta da tutti 1 Per stimare l accuratezza si sono utilizzati due indicatori: la norma 2 pesata 1 n n i=1 err 2 i = err 2 n la norma infinito max i=1,...,n x i ˆx i = err

Risultati Attesi Verifica delle Performance La verifica dell accuratezza è stata eseguita facendo variare la dimensione del sistema tra n = 100 ed n = 2000 con incrementi di 100 il linguaggio di programmazione il tipo di dato I risultati sono stati confrontati con quelli della routine LAPACK GESV

Risultati Attesi Verifica delle Performance Norma 2 Pesata ; Numeri Reali in S.P. Norma 2 Wassing e Lapack (Real) x 10 5 1.6 Wassing Lapack 1.4 1.2 Norma 2 "pesata" 1 0.8 0.6 0.4 0.2 0 0 500 1000 1500 2000 Dimensione della matrice

Risultati Attesi Verifica delle Performance Norma 2 Pesata ; Numeri Reali in D.P. Norma 2 Wassing e Lapack (Double Precision) x 10 15 4.5 Wassing Lapack 4 3.5 Norma 2 "pesata" 3 2.5 2 1.5 1 0 500 1000 1500 2000 Dimensione della matrice

Risultati Attesi Verifica delle Performance Norma 2 pesata ; Numeri Complessi in S.P. Norma 2 Wassing e Lapack (Complex) x 10 6 9 Wassing 8 Lapack 7 Norma 2 "pesata" 6 5 4 3 2 1 0 0 500 1000 1500 2000 Dimensione della matrice

Risultati Attesi Verifica delle Performance Norma 2 pesata ; Numeri Complessi in D.P. Norma 2 Wassing e Lapack (Double Complex) x 10 14 1.4 Wassing Lapack 1.2 1 Norma 2 "pesata" 0.8 0.6 0.4 0.2 0 0 500 1000 1500 2000 Dimensione della matrice

È possibile diminuire di un fattore 4 l occupazione di memoria pagando, al massimo, il raddoppio del tempo di esecuzione del codice. L accuratezza nel risolvere sistemi lineari, inoltre, rimane paragonabile a quella di metodi classici, come l eliminazione di Gauss.