MATLAB Cristina Campi [email protected] Outline Introduzione a Matlab Matrici Esercizi MATLAB MATrix LABoratory Linguaggio di programmazione interpretato legge un comando per volta eseguendolo immediatamente MATLAB come calcolatrice 4+7 invio è possibile definire variabili e operare su esse x = 9 -> invio Comandi elementari I 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 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 vettori colonna -> matrici n x 1 v = (v1,…, vn)T matrici -> matrici m x n v = (v1,…, vn) a11 a1n A a a mn m1 Vettori Per definire un vettore riga a = [1 2 3 4 5] o a = [1, 2, 3, 4, 5] Per definire un vettore colonna a = [1; 2; 3; 4; 5] o a = [1 2 3 4 5] ’ per separare le righe trasposto Matrici Per definire una matrice: 3 0 R 22 A 1 2 3 0 3 R 23 B 1 2 0 A = [3 0; 1 2] A = [3 0 1 2] B = [3 0 3; 1 2 0] size(B) -> dimensioni della matrice [r c] = size(B) per memorizzare le dimesioni 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 Esercizio 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 3 0 3 R 23 B 1 2 0 B(2,3) B(2,3) = 1; B per selezionare un elemento per modificare l’elemento per visualizzare B Estrarre sottomatrici 3 0 3 R 23 B 1 2 0 B(2,:) estrarre la riga R2 B(:,2) estrarre la colonna C2 B(:,2:3) B(:,[2 3]) sottomatrice 2 x 2 Matrici diagonali 3 0 22 R A 1 2 diagonale di A -> d = diag(A) con d vettore colonna B = diag(d) -> 3 0 B 0 2 Matrici triangolari 3 0 22 A R 1 2 3 0 3 23 R B 1 2 0 matrice triangolare inferiore tril(A) matrice triangolare superiore triu(B) 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 A+B Somma / Differenza A-B A+C Trasposta A’ ??? Error using = => + Matrix dimensions must agree. Operazioni - prodotto 1 A 3 Prodotto Elemento per elemento Prodotto per uno scalare 2 4 1 0 B 1 1 A*B #CA = #RB A.*B size(A) = size(B) A*k Determinante 1 0 B 1 1 3 4 1 D 5 2 3 0 1 1 Determinante Rango Inversa det(B) 1 det(D) 0 rank(D) 2 inv(B) inv(D) 1 0 1 1 ? Esercizio 3 1 2 2 4 A 3 6 8 16 1 0 1 0 1 0 1 0 1 0 0 B 0 1 0 0 0 1 0 0 0 0 0 0 0 0 3