Algebra matriciale e linguaggio matriciale in MATLAB

Slides:



Advertisements
Presentazioni simili
Misure ed Errori Prof Valerio CURCIO.
Advertisements

Dipartimento di Matematica
Dipartimento di Economia
Le operazioni di moltiplicazione e divisione in Aritmetica e geometria
Capitolo 8 Sistemi lineari.
Vettori e matrici algebrici
Autovalori e autovettori
MATLAB Cristina Campi
MATLAB.
MATLAB.
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica
MATLAB.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
MATLAB Stefano Gagliardo
PROPRIETÀ DEI DETERMINANTI
METODI EQUAZIONI DIFFERENZIALI Funzioni che mettono in relazione una variabile indipendente ( es. x), una sua funzione ( es. y = f(x) ) e la.
COORDINATE POLARI Sia P ha coordinate cartesiane
LE MATRICI.
1 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Algebra delle Matrici.
Fogli elettronici Microsoft Excel.
Funzioni definite dall’utente
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
RICHIAMI ELEMENTARI DI ALGEBRA MATRICIALE
Statistica per le decisioni aziendali ed analisi dei costi Modulo II - Statistica per le decisioni Aziendali Richiami di Algebra Matriciale.
MATLAB. Annalisa Pascarella
MATLAB.
MATLAB. Annalisa Pascarella
MATLAB.
MATLAB.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Metodi iterativi G. Puppo.
Algebra lineare G. Puppo.
Soluzione FEM di problemi parabolici
Sistemi di equazioni lineari
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
Importazione di dati Nellambito dellutilizzo di qualsiasi software statistico una necessità è quella di importare dati esterni forniti dallutilizzatore.
Polinomi, integrazione e ottimizzazione
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Trimr Gauss, tra le altre, fornisce una preziosissima funzione che risulta di estrema utilità nell’ambito matriciale. Questa funzione, chiamata trimr(x,t,b),
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Corso di Chimica Fisica II 2013 Marina Brustolon
1a-2a lezione di laboratorio
Le matrici e I Sistemi lineari.
INTRODUZIONE A MATLAB.
I numeri interi relativi
MATRICI classe 3 A inf (a.s ).
Definizione di determinante
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Lezione 3 Vettori e Matrici.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Vettori e Matrici Parte III.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Modulo 4: EXCEL LEZIONE 4 Modulo EXCEL Alessandro Celi.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Elementi di Matlab e di Mathematica
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Lezione 3 Struttura lessicale del linguaggio
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Misure ed Errori.
INTRODUZIONE A MATLAB Sara Poltronieri. Avvio del programma Avvio di Matlab (Windows) Start  Programmi  Matlab (o icona) Avvio di Matlab (Linux) terminale.
Istruzioni per l’uso…….
32 = 9 x2 = 9 x = 3 32 = 9 √9 = 3 L’estrazione di radice
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Prof. Cerulli – Dott. Carrabs
Transcript della presentazione:

Algebra matriciale e linguaggio matriciale in MATLAB

Linguaggio matriciale Come detto, il linguaggio matriciale costituisce il nucleo essenziale della programmazione. Vediamo ora i comandi principali che riguardano creazione e manipolazione delle matrici. Va tenuta a mente una cosa fondamentale: MATLAB lavora su matrici e in tutte le operazioni in cui è possibile utilizzarlo il linguaggio matriciale, anziché codici con loop, if…., risulta di gran lunga il modo più veloce ed efficiente di programmare. Le matrici possono essere registrate: Introducendo un elenco di numeri Creando le matrici in M-files Caricando i dati da files esterni Facendo generare i dati da MATLAB

Linguaggio matriciale Consideriamo l’inserimento manuale di dati nel command di MATLAB; sono tre le indicazioni da seguire: Gli elementi della matrice devono essere racchiusi tra parentesi quadre [] Gli elementi di una stessa riga vanno separati da uno spazio Il passaggio da una riga all’altra avviene con il punto e virgola Quindi per registrare la matrice 1 2 -6 4 -4 5 che chiamiamo “A” va digitato nel command

Linguaggio matriciale A=[1 2 -6; 4 -4 5] e invio. Per ottenere un elemento della matrice, va indicata tra parentesi tonde la posizione dello stesso nel modo seguente: m = A(2,2) e invio ottenendo così l’elemento che occupa la posizione 2,2 nella matrice A. Se commettessimo l’errore di digitare n = A(2,6) e invio avremmo un messaggio di errore, date le dimensioni della nostra matrice.

Linguaggio matriciale Il comportamento di MATLAB non è invece lo stesso se si immagazzina un nuovo numero in una posizione che, per le dimensioni di partenza della matrice, non dovrebbe esistere. Se infatti digitiamo: A(2,4)=7 e invio attribuiamo valore 7 all’elemento di posizione (2,4), che non esisterebbe date le dimensioni (2x3) della matrice. MATLAB allora “allarga” la matrice, inserendo l’elemento 7 nella posizione scelta e ponendo zeri nella colonna (o riga) che è stata aggiunta.

Linguaggio matriciale Tra gli operatori matriciali, ruolo importante è attribuito ai due punti “:” , che indica Tutta la riga o colonna A(1,:) e invio fornisce come output tutti gli elementi della prima riga Tutte le colonne/righe da .. a … A(1 , 2:3) e invio fornisce come output tutti gli elementi della prima riga e delle colonne dalla seconda alla terza

Linguaggio matriciale Un utilizzo altrettanto fondamentale è quello di servire per costituire una sequenza, nel modo start:step:stop ossia viene creata in un vettore riga una sequenza di numeri che iniziano dal numero start, vengono incrementati del valore step e si fermano quando raggiungono lo stop. Ad esempio 1:2:20 e invio crea una sequenza di valori che partono da 1 e vengono incrementati di 2 fino ad arrivare a 20: 1 3 5 …… 19. Se non indicato, il passo di default è 1.

Operazioni con le matrici Data una qualsiasi matrice, possiamo facilmente trasporla con l’apostrofo: B=A’ e invio Data una matrice quadrata, possiamo ottenere il suo determinante con la funzione det(): d = det(matr) e invio L’operatore diag() estrae invece gli elementi della diagonale principale: v=diag(A) e invio tale operazione è applicabile anche a matrici non quadrate.

Operazioni con le matrici Un operatore di fondamentale utilizzo è sum(), che somma gli elementi della matrice. L’operazione di somma avviene di default per colonna, ma è altresì possibile effettuarla per riga specificando sum(matrice,2). Analogo è il comando prod, che applica il prodotto. L’operatore inv() inverte una matrice quadrata non singolare Quindi se definiamo la matrice Z: 2 5 -3 7 -2 4 8 -5 6 possiamo trasporla,estrarne la diagonale principale, calcolarne il determinante e ottenere un vettore che sommi per riga e uno che contenga la somma per colonna con i seguenti comandi:

Operazioni con le matrici Ztr=Z’ Dt = det(Z) V = diag(Z) Vs1=sum(Z) Vs2=sum(Z,2) Le operazioni di somma e sottrazione tra matrici si ottengono con i simboli “+” e “–” e consistono nella somma e sottrazione degli elementi di una matrice con il corrisponente elemento dell’altra, nell’ipotesi che le dimensioni delle matrici coincidano altrimenti il messaggio di errore è ??? Errar using => + Matrix dimension must agree

Operazioni con le matrici L’operazione di prodotto tra matrici si effettua con “*”, e può avvenire solo se il numero di colonne della prima matrice = numero di righe della seconda. Se la condizione non viene rispettata il messaggio di errore è ??? Errar using => * Inner matrix dimension must agree L’operazione di prodotto tra matrici elemento per elemento si effettua con “.*”, e può avvenire solo se le due matrici hanno uguale dimensione, poiché moltiplica ogni elemento della prima per il corrispondente della seconda. L’elevamento a potenza di un elemento si ha con “^”. Applicato ad una matrice quadrata la moltiplica per sé stessa. L’elevamento a potenza elemento per elemento di una qualsiasi matrice si ha con “.^”. Con esso si eleva ogni elemento della matrice alla potenza.

Concatenazione di matrici Due matrici con ugual numero di righe possono essere concatenate orizzontalmente, cioè affiancate orizzontalmente per formare una matrice unica. Definite A (2x3) e B (2x4), possiamo definire C (2x7) come la matrice che otteniamo affiancandole con le parentesi quadre e lo spazio. Quindi le trattiamo come gli elementi di una matrice: >> C=[A B]; Due matrici con ugual numero di colonne possono essere concatenate verticalmente, cioè affiancate verticalmente per formare una matrice unica. Definite D (2x3) e F (4x3), possiamo E (6x3) come la matrice che otteniamo affiancandole con le parentesi quadre e il punto e virgola. Quindi scriviamo: >> E=[D ; F];

Matrici fondamentali Le tre matrici più importanti per la programmazione sono le matrici di zeri e di uno, ottenibili con i comandi: zeros(i,j), che permette di creare una matrice di zeri con i righe e j colonne ones(i,j), che permette di creare una matrice di tutti uno con i righe e j colonne eye(i,j), che permette di creare una matrice di i righe e j colonne con uno sulla diagonale principale e zero altrove

Matrici fondamentali Se per esempio dobbiamo creare una matrice 3x4 con tutti 5, possiamo applicare la moltiplicazione scalare ed usare il comando precedente digitando: >> M=5*ones(3,4);

Altri comandi fondamentali Length(v): calcolato su di un vettore o su una serie, ne dà la lunghezza Size(m): calcolato su di una matrice, ne dà numero di righe e di colonne; in particolare size(m) => numero righe e colonne size(m,1) => numero di righe size(m,2) => numero di colonne

Altri comandi fondamentali È possibile cancellare righe e colonne di una matrice utilizzando le parentesi quadre [], attribuendole alla riga/colonna che si vuole cancellare. Facendo >> m = ones(3,4); >> m(:,4) = [] ho cancellato la quarta colonna di m. Ovviamente non è possibile scrivere >> m(2,2)=[] altrimenti starei cancellando un solo elemento e m non sarebbe più una matrice! Reshape(X,M,N) considera una matrice X e dà come output una matrice di MxN elementi presi da X partendo dalla prima colonna. Se X non ha ugual numero di elementi (MxN) fornisce un messaggio di errore.

Altri comandi Altri comandi utilizzabili in ambito matriciale sono: abs() => calcola il valore assoluto di un numero o la matrice contenente i valori assoluti della matrice cui è applicato fix() => tronca un numero all’intero round() => calcola l’arrotondamento per eccesso/difetto max() e min()=> calcola di un vettore il max o min elemento; di una matrice produce un vettore con il max o min degli elementi per colonne fliplr() => inverte l’ordine degli elementi di un vettore

Altri comandi norm() => calcola la norma 2 di un vettore o matrice eig() => calcola gli autovalori di una matrice quadrata rank(), che calcola il rango di una matrice trace(), che calcola la traccia di una matrice cumprod(x) restituisce un vettore o una matrice con il prodotto cumulato per colonna cumsum(x) restituisce un vettore o una matrice con la somma cumulata per colonna