MATLAB Cristina Campi campi@dima.unige.it
Outline Introduzione a Matlab Matrici Esercizi
MATLAB MATrix LABoratory Linguaggio di programmazione interpretato legge un comando per volta eseguendolo immediatamente MATLAB puo’ essere definito come un un ambiente di lavoro particolarmente adatto ad applicazioni numeriche E’ un programma studiato per operare su matrici, infatti MATLAB sta x MATRIX LABORATORY E’ un linguaggio di programmazione interpretato, in quanto legge un comando x volta e lo esegue immediatamente
MATLAB come calcolatrice 4 + 7 invio x = 9 -> invio è possibile definire variabili e operare su esse
Comandi elementari I 2/0 -> Inf 0/0 -> NaN (Not-a-Number) Operatori aritmetici + - * / ^ Caratteri speciali ; % : Variabili predefinite i, pi, NaN, Inf 2/0 -> Inf 0/0 -> NaN (Not-a-Number)
Comandi elementari II Funzioni elementari: sin, cos, log, exp Comandi speciali: clear, clc help lookfor
In MATLAB tutte le variabili sono trattate Lavorare con MATLAB In MATLAB tutte le variabili sono trattate come matrici, e quindi: scalari -> matrici 1 x 1 vettori riga -> matrici 1 x n v = (v1,…, vn) vettori colonna -> matrici n x 1 v = (v1,…, vn)T matrici -> matrici m x n
Vettori Per definire un vettore riga Per definire un vettore colonna per separare le righe a = [1; 2; 3; 4; 5] o a = [1 2 3 4 5] ’ trasposto
Per definire una matrice: Matrici Per definire una matrice: A = [3 0; 1 2] A = [3 0 1 2] B = [3 0 3; 1 2 0] Il punto e virgola dopo il comando fa si che il risultato nn venga visualizzato size(B) -> dimensioni della matrice [r c] = size(B) per memorizzare le dimesioni
v=val_iniziale:p:val_finale Creazione vettori vettori che siano delle progressione aritmetiche di passo costante p: v=val_iniziale:p:val_finale b = 1: .2 : 4 c = 3: -1: 1 Se p=1 si può omettere Un comando importante in Matlab è :. Tale simbolo è importante x la manipolazione delle matrici. L’incremento di default è 1 ma si possono assegnare passi diversi. Per avere dei passi negativi è necessario assegnare il passo
Esercizio 1 i primi 20 elementi sono 1,2,…,20 gli ultimi 20 20,19,…,1 Costruire un vettore di 40 elementi così fatto: i primi 20 elementi sono 1,2,…,20 gli ultimi 20 20,19,…,1 Chiamare questo vettore v SOLUZIONE: v = [1:20 20:-1:1]
Individuare\modificare elementi per selezionare un elemento per modificare l’elemento per visualizzare B B(2,3) B(2,3) = 1; B
Estrarre sottomatrici B(2,:) estrarre la riga R2 B(:,2) estrarre la colonna C2 B(:,2:3) sottomatrice 2 x 2 B(:,[2 3])
Matrici diagonali diagonale di A -> d = diag(A) con d vettore colonna B = diag(d) -> la funzionale diag applicata ad una matrix restituisce la matrix colonna contenente la diag di A diag(vettore) restituisce una matrix diagonale avente sulla diagonale il vettore
Matrici triangolari matrice triangolare inferiore tril(A) triu(B) matrice triangolare superiore
Matrici notevoli identità di ordine n -> eye(n) matrice nulla m x n -> zeros(m,n) matrice m x n di 1 -> ones(m,n)
Esercizio 2 Costruire una matrice A 3 x 7 cosi fatta: la prima riga a1 = 7,6,…,1 la seconda riga a2 = 1,1,…,1 la terza riga a3 = 0,0,…,0 Estrarre 2 sottomatrici: una costituita dalle ultime 3 colonne una costituita dagli elementi della I e III riga , II e IV colonna
Operazioni I clear A=[1 2;3 4]; B=[1 0;-1 1]; C=[0 3 1;1 2 4]; D=[3 4 -1;5 2 3;0 1 -1];
Operazioni - somma Somma / Differenza Trasposta A’ A+B A-B A+C ??? Error using = => + Matrix dimensions must agree. Somma / Differenza A-B A+C Trasposta A’
Operazioni - prodotto Prodotto A*B #CA = #RB Elemento per elemento size(A) = size(B) Prodotto per uno scalare A*k
Determinante ? det(B) 1 Determinante det(D) 2 Rango rank(D) inv(B) ÷ ø ö ç è æ - = 1 3 2 5 4 D B det(B) det(D) 1 Determinante Rango rank(D) 2 inv(B) inv(D) Inversa ?
Esercizio 3