1 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA
Desktop del MATLAB Launch Pad : ai tools, demos, e docum. dei prodotti MathWorks istallati sul computer. 4 zone che consentono un facile accesso: workspace : alle variabili memorizzate. Command History : ai comandi eseguiti nel Command Windows.
Command Windows, finestra di lavoro, viene usato per inserire variabili ed eseguire file function e M- file Current Directory: ai file memorizzati nella directory di lavoro.
La directory di lavoro La directory di default è c:\matlab6p1\work Se si vuole usare unaltra directory: –si va nella directory desiderata utilizzando current directory –si inserisce la directory desiderata nel path
Come visualizzare il Path Per visualizzare il path si può: – digitare il comando path – si può selezionare con il mouse dallambiente di calcolo la voce File e dal menu a tendina che compare la voce Set path.
Come utilizzare il Path Per aggiungere una directory al path preesistente selezionare con il mouse la voce File …. Set path …… Add Folder …
Matlab Windows Le tre finestre di lavoro del MATLAB: Comandi utili: clc:ripulisce la finestra Command windows clf :ripulisce la finestra Graphic windows quit o exit: per uscire da MATLAB Command windows Graphic windows Edit windows
Command Windows Utilizzo interattivo » 3*5^13 ans = e+009 » 3*5^13 ans = e+009 » help magic MAGIC Magic square. MAGIC(N) is an N-by-N matrix constructed from the integers 1 through N^2 with equal row, column, and diagonal sums. » help magic MAGIC Magic square. MAGIC(N) is an N-by-N matrix constructed from the integers 1 through N^2 with equal row, column, and diagonal sums. Help online Workspace whos
Introduzione al MATLAB »MATrix LABoratory La MATRICE - la chiave per comprendere MATLAB –nessun dimensionamento –trattata nel suo insieme –operazioni più naturali possibili Gli elementi di una matrice possono essere sia dei numeri che dei caratteri
Array numerici I dati sono memorizzati in Double-Precision Floating-Point » x=4 x = 4 » c=[1,2;3,4]; » x=[-1.6 sqrt(4) (7+5)*4/3] x = » x=4 x = 4 » c=[1,2;3,4]; » x=[-1.6 sqrt(4) (7+5)*4/3] x = ; indica la fine di una riga o la soppressione di un output Virgola/Spazio: gli elementi sono sulla stessa riga Qualunque espressione Matlab può essere usata come elemento di una matrice
Array numerici » x=[-1.6 sqrt(4) (7+5)*4/3]; » x(5)=abs(x(1)) x = » x=0:7 x = » y=0:0.5:3; » z=7:-1:0; » x=linspace(0,7,15); » rand(1,4) ans = » x=[-1.6 sqrt(4) (7+5)*4/3]; » x(5)=abs(x(1)) x = » x=0:7 x = » y=0:0.5:3; » z=7:-1:0; » x=linspace(0,7,15); » rand(1,4) ans = Elementi non definiti sono posti a zero Gli elementi di una matrice si possono individuare mediante numeri allinterno di parentesi tonde Senza assegnazione esplicita: ogni entità è memorizzata in ans Loperatore : crea vettori di elementi equispaziati
La matrice A = Righe (m) Colonne (n) Matrice Rettangolare: Vettore : m x 1 array 1 x n array Matrice: m x n array Scalare : 1 x 1 array Matrice Rettangolare: Vettore : m x 1 array 1 x n array Matrice: m x n array Scalare : 1 x 1 array
Come individuare gli elementi di una matrice A = >> A=magic(5); A(3,2) = A(8) A(3,1) A(3) A([4,5],[2,3]) A(4:5,2:3)
Come estrarre elementi da una matrice A = Si vogliono estrarre gli elementi dellultima colonna. >> A=magic(5);
Come estrarre gli elementi dellultima colonna >> A=magic(5); >> A([1,2,3,4,5],5) >> A(1:5,5) >> A(:,5) >> A(21:25)' ans = Loperatore : crea vettori di elementi equispaziati Loperatore : individua tutte le righe
Esercizio 1 Data la matrice A=ones(5) a) estrarre la seconda riga e la terza colonna; b) sostituire lultima riga di A con il vettore r=[ ]. » A=ones(5); a.» p=A(2,:);q=A(:,3); b.» r=[ ]; » A(end,1:5)=r; %oppure A(end,:)=r; %oppure A(end,:)=[ ];
Formato delloutput Comando format
Array di Stringhe » str1= Questa e una stringa di prova; » str2= che contiene 58 elementi ; » str=[str1 str2] str = Questa e una stringa di prova che contiene 58 elementi » str=[str1;str2] str = Questa e una stringa di prova che contiene 58 elementi » str1= Questa e una stringa di prova; » str2= che contiene 58 elementi ; » str=[str1 str2] str = Questa e una stringa di prova che contiene 58 elementi » str=[str1;str2] str = Questa e una stringa di prova che contiene 58 elementi Loperatore () delimita larray di stringhe Loperatore [ ] serve a concatenare gli array di stringhe
Regole per i nomi delle variabili I nomi devono cominciare con una lettera possono contenere lettere, cifre e il carattere _ Matlab distingue il Maiuscolo dal Minuscolo
Esercizio 2 1.Costruire un vettore x costituito da 10 numeri progressivi (es. da 21 a 30). 2.Si calcoli la somma delle componenti del vettore x e, quindi, della prima ed ultima componente. 3.Si costruisca un vettore p, le cui prime 10 componenti siano le stesse di x, mentre lundicesima e la dodicesima siano rispettivamente la somma e la differenza delle prime due componenti.
Soluzione Esercizio 2 1. » x=21:30; % oppure x=linspace(21,30,10); 2. » sum(x) % somma delle componenti » x(1)+x(10) % oppure x(1)+x(end) % oppure » n=length(x); » x(1)+x(n) 3. » p=x; » p(11)=x(1)+x(2); » p(12)=x(1)-x(2); % oppure p=[x x(1)+x(2) x(1)-x(2)]; % oppure » q=[x(1)+x(2) x(1)-x(2)]; » p=[x q] 1. » x=21:30; % oppure x=linspace(21,30,10); 2. » sum(x) % somma delle componenti » x(1)+x(10) % oppure x(1)+x(end) % oppure » n=length(x); » x(1)+x(n) 3. » p=x; » p(11)=x(1)+x(2); » p(12)=x(1)-x(2); % oppure p=[x x(1)+x(2) x(1)-x(2)]; % oppure » q=[x(1)+x(2) x(1)-x(2)]; » p=[x q]
Variabili predefinite pi i, j eps realmin realmax ans » pi ans = » eps ans = e-016 » realmin ans = e-308 » realmax ans = e+308 » pi ans = » eps ans = e-016 » realmin ans = e-308 » realmax ans = e+308
Variabili non numeriche predefinite NaN (Not a Number) Inf » 0/0 Warning: Divide by zero. ans = NaN » b=1/0 Warning: Divide by zero. b = Inf » 0/0 Warning: Divide by zero. ans = NaN » b=1/0 Warning: Divide by zero. b = Inf
Funzioni di utilità zeros(m,n): matrice mxn con tutti elem. = 0 ones(m,n): matrice mxn con tutti elem. = 1 rand(m,n): matrice mxn con elem. random uniformemente distribuiti magic(n): matrice magica di dimensioni nxn eye (n): matrice identità di dimensioni nxn tril(A): matrice triang. infer. estratta da A triu(A): matrice triang. super. estratta da A diag(A): vettore contenente la diagonale di A
Esercizio 3 1.a) Data la matrice A=[1 2 3; 4 5 6; 7 8 9] estrarre la seconda riga e la terza colonna. b) Sostituire lultima riga di A con il vettore i=[1 3 7]. 2. Estrarre la diagonale della matrice A data in 1. e creare una matrice diagonale avente sulla diagonale gli elementi della diagonale di A. 3. Costruire una matrice 5x5 che abbia tutti 2 sulla diagonale principale e rispettivamente 1 e -1 sulle codiagonali superiore e inferiore.
Soluzione Esercizio 3 1.» A=[1 2 3;4 5 6;7 8 9]; » p=A(2,:);q=A(:,3); » i=[1 3 7]; » A(3,1:3)=i; %oppure A(end,:)=i; %oppure A(3,:)=[1 3 7]; 2.» b=diag(A); » c=diag(b); %oppure c=diag(diag(A)); 3.» n=5; » I1=ones(n,1); » I2=ones(n-1,1); » A=diag(2*I1)+1*diag(I2,1)-1*diag(I2,-1) 1.» A=[1 2 3;4 5 6;7 8 9]; » p=A(2,:);q=A(:,3); » i=[1 3 7]; » A(3,1:3)=i; %oppure A(end,:)=i; %oppure A(3,:)=[1 3 7]; 2.» b=diag(A); » c=diag(b); %oppure c=diag(diag(A)); 3.» n=5; » I1=ones(n,1); » I2=ones(n-1,1); » A=diag(2*I1)+1*diag(I2,1)-1*diag(I2,-1)
Esercizio 4 Data la matrice A=[ ; ; ; … ] calcolarne il determinante; costruire la matrice L, triangolare inferiore, estratta da A (tril) ; costruire la matrice U, triangolare superiore, estratta da A ( triu ); costruire la matrice T, tridiagonale con gli stessi elementi di A sulla diagonale e le codiagonali ( diag ).
Soluzione Esercizio 4 » det(A) » L=tril(A) » U=triu(A) » T1=diag(A,-1) » T2=diag(A) » T3=diag(A,1) » T=diag(T1,-1)+ diag(T2)+diag(T3,1) » det(A) » L=tril(A) » U=triu(A) » T1=diag(A,-1) » T2=diag(A) » T3=diag(A,1) » T=diag(T1,-1)+ diag(T2)+diag(T3,1)
Operazioni su vettori
Esempio di operazione su vettori » a=magic(3) a = » b1=a*a b1 = » b2=a.*a b2 =
Esercizio 5 1.Calcolare il quadrato dei singoli elementi della matrice magica 5x5. 2.Calcolare il prodotto elemento per elemento tra la matrice magica 5x5 e la matrice di elementi random 5x5. 3.Costruire due vettori: il primo x, contiene i numeri pari da 1 a 10, il secondo y, contiene i numeri dispari da 1 a 10. Calcolare il prodotto dei due vettori x, y ed il prodotto delle singole componenti.
Soluzione Esercizio 5 1. » A=magic(5) » A.^2 2. » B=magic(5).*rand(5) 3. » x=2:2:10; » y=1:2:10; » z=x*y; %(z=x*y è una matrice) » z=x.*y; 1. » A=magic(5) » A.^2 2. » B=magic(5).*rand(5) 3. » x=2:2:10; » y=1:2:10; » z=x*y; %(z=x*y è una matrice) » z=x.*y;