1 a lezione - laboratorio a.a 2004-2005 corso di laurea ingegneria meccanica
TRANSCRIPT
![Page 1: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/1.jpg)
11aa lezione - laboratorio lezione - laboratorio
a.a 2004-2005
Corso di Laurea Ingegneria MECCANICA
![Page 2: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/2.jpg)
Desktop del MATLABDesktop 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.
![Page 3: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/3.jpg)
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.
![Page 4: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/4.jpg)
La directory di lavoroLa directory di lavoro• La directory di default è c:\matlab6p1\
work
• Se si vuole usare un’altra directory:– si va nella directory desiderata utilizzando
“current directory”
– si inserisce la directory desiderata nel path
![Page 5: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/5.jpg)
Come visualizzare il PathCome visualizzare il Path• Per visualizzare il path si può:
– digitare il comando ” path ” – si può selezionare con il mouse dall’ambiente
di calcolo la voce File e dal menu a tendina che compare la voce Set path.
![Page 6: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/6.jpg)
Come utilizzare il PathCome utilizzare il Path• Per aggiungere una directory al path
preesistente selezionare con il mouse la voce File …. Set path …… Add Folder …
![Page 7: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/7.jpg)
Matlab WindowsMatlab WindowsLe tre finestre di lavoro del MATLAB:
Comandi utili:clc:ripulisce la finestra Command windowsclf :ripulisce la finestra Graphic windowsquit o exit: per uscire da MATLAB
Command windows
Graphic windows
Edit windows
![Page 8: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/8.jpg)
Command WindowsCommand Windows
• Utilizzo interattivo » 3*5^13ans = 3.6621e+009
» 3*5^13ans = 3.6621e+009
» help magic MAGIC Magic square. MAGIC(N) is an N-by-N matrix constructed from the integers 1 through N^2 with equalrow, 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 equalrow, column, and diagonal sums.
•Help online
• Workspace whoswhos
![Page 9: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/9.jpg)
Introduzione al MATLABIntroduzione 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
![Page 10: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/10.jpg)
Array numericiArray numerici
I dati sono memorizzati in Double-Precision Floating-Point
» x=4x = 4» c=[1,2;3,4];» x=[-1.6 sqrt(4) (7+5)*4/3]x = -1.6000 2.0000 16.0000
» x=4x = 4» c=[1,2;3,4];» x=[-1.6 sqrt(4) (7+5)*4/3]x = -1.6000 2.0000 16.0000
“ ; “ 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
![Page 11: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/11.jpg)
Array numericiArray numerici
» x=[-1.6 sqrt(4) (7+5)*4/3];» x(5)=abs(x(1))x = -1.6000 2.0000 16.0000 0 1.6000» x=0:7x = 0 1 2 3 4 5 6 7» y=0:0.5:3;» z=7:-1:0;» x=linspace(0,7,15);» rand(1,4)ans = 0.8913 0.7621 0.4565 0.0185
» x=[-1.6 sqrt(4) (7+5)*4/3];» x(5)=abs(x(1))x = -1.6000 2.0000 16.0000 0 1.6000» x=0:7x = 0 1 2 3 4 5 6 7» y=0:0.5:3;» z=7:-1:0;» x=linspace(0,7,15);» rand(1,4)ans = 0.8913 0.7621 0.4565 0.0185
Elementi non definiti sono posti a zero
Gli elementi di una matrice si possono individuare mediante numeri all’interno di parentesi tonde
Senza assegnazione esplicita: ogni entità è memorizzata in ‘ans’
L’operatore “:” crea vettori di elementi equispaziati
![Page 12: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/12.jpg)
La matriceLa matrice
A =
Righe (m)
Colonne (n)
Matrice Rettangolare:Vettore : m x 1 array 1 x n arrayMatrice: m x n array Scalare : 1 x 1 array
Matrice Rettangolare:Vettore : m x 1 array 1 x n arrayMatrice: m x n array Scalare : 1 x 1 array
17 24 1 8 1523 5 7 14 164 6 13 20 22
10 12 19 21 311 18 25 2 9
17 24 1 8 1523 5 7 14 164 6 13 20 22
10 12 19 21 311 18 25 2 9
1 2 3 4 5 1
2
3
4
5
![Page 13: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/13.jpg)
Come individuare gli elementi Come individuare gli elementi di una matrice di una matrice
A =1 2 3 4 5
1
2
3
4
5
>> A=magic(5);
17 24 1 8 1523 5 7 14 164 6 13 20 22
10 12 19 21 311 18 25 2 9
17 24 1 8 1523 5 7 14 164 6 13 20 22
10 12 19 21 311 18 25 2 9
A(3,2) = A(8)
1
2
3
4
5
6
7
89
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2425
A(3,1)A(3) A([4,5],[2,3])
A(4:5,2:3)
![Page 14: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/14.jpg)
Come estrarre elementi da una Come estrarre elementi da una matrice matrice
A = 17 24 1 8 1523 5 7 14 164 6 13 20 22
10 12 19 21 311 18 25 2 9
17 24 1 8 1523 5 7 14 164 6 13 20 22
10 12 19 21 311 18 25 2 9
1 2 3 4 5 1
2
3
4
5
Si vogliono estrarre gli elementi dell’ultima colonna.
>> A=magic(5);
![Page 15: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/15.jpg)
Come estrarre gli elementi Come estrarre gli elementi dell’ultima colonnadell’ultima colonna
>> A=magic(5); >> A([1,2,3,4,5],5) >> A(1:5,5) >> A(:,5) >> A(21:25)'
ans = 15 16 22 3 9
L’operatore “:” crea vettori di elementi equispaziati
L’operatore “:” individua tutte le righe
![Page 16: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/16.jpg)
Esercizio 1Esercizio 1Data la matrice A=ones(5)
a) estrarre la seconda riga e la terza colonna;
b) sostituire l’ultima riga di A con il vettore
r=[3 3 3 3 3].
» A=ones(5); a.» p=A(2,:);q=A(:,3); b.» r=[1 1 1 1 1]; » A(end,1:5)=r; %oppure A(end,:)=r; %oppure A(end,:)=[1 1 1 1 1];
![Page 17: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/17.jpg)
Formato dell’outputFormato dell’output
Comando MATLAB Cifre decimali Esempio
Format short Default (4 cifre)
15.2345
Format long 14 decimali 15.23453333333333
Format short e 4 decimali 1.5235e+001
Format long e 15 decimali 15.23453333333333e+001
Format rat Razionale 215/24
Comando MATLAB Cifre decimali Esempio
Format short Default (4 cifre)
15.2345
Format long 14 decimali 15.23453333333333
Format short e 4 decimali 1.5235e+001
Format long e 15 decimali 15.23453333333333e+001
Format rat Razionale 215/24
• Comando format
![Page 18: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/18.jpg)
Array di StringheArray 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 provache 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 provache contiene 58 elementi
L’operatore (’) delimita l’array di stringhe
L’operatore [ ] serve a concatenare gli array di stringhe
![Page 19: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/19.jpg)
Regole per i nomi delle variabiliRegole 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
![Page 20: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/20.jpg)
Esercizio 2Esercizio 21. 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 l’undicesima e la dodicesima siano rispettivamente la somma e la differenza delle prime due componenti.
![Page 21: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/21.jpg)
Soluzione Esercizio 2Soluzione Esercizio 21. » 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]
![Page 22: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/22.jpg)
Variabili predefiniteVariabili predefinite
•pi •i, j•eps•realmin •realmax•ans
» pians = 3.14159265358979» epsans = 2.220446049250313e-016» realminans = 2.225073858507201e-308» realmaxans = 1.797693134862316e+308
» pians = 3.14159265358979» epsans = 2.220446049250313e-016» realminans = 2.225073858507201e-308» realmaxans = 1.797693134862316e+308
![Page 23: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/23.jpg)
Variabili non numeriche Variabili non numeriche predefinitepredefinite
•NaN (Not a Number)•Inf
» 0/0Warning: Divide by zero.ans = NaN» b=1/0Warning: Divide by zero.b = Inf
» 0/0Warning: Divide by zero.ans = NaN» b=1/0Warning: Divide by zero.b = Inf
![Page 24: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/24.jpg)
Funzioni di utilità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
![Page 25: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/25.jpg)
Esercizio 3Esercizio 31. a) Data la matrice A=[1 2 3; 4 5 6; 7 8 9]
estrarre la seconda riga e la terza colonna.
b) Sostituire l’ultima 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.
![Page 26: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/26.jpg)
Soluzione Esercizio 3Soluzione Esercizio 31.» 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)
![Page 27: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/27.jpg)
Esercizio 4Esercizio 4Data la matrice
A=[10 2 3 1; 2 8 1 1; 3 1 7 0;… 1 1 0 3]
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).
![Page 28: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/28.jpg)
Soluzione Esercizio 4Soluzione 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)
![Page 29: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/29.jpg)
Operazioni su vettoriOperazioni su vettori
+ addizione scalare + addizione tra vettori - sottrazione scalare - sottrazione tra
vettori * moltiplicazione scalare
.* moltiplicazione tra vettori
/ divisione scalare . / divisione tra vettori
^ elevamento a potenza
. ^ elevamento a potenza di vettori
’ trasposta ’ trasposta coniugata () specifica l’ordine di calcolo a cominciare dalla parentesi più interna
![Page 30: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/30.jpg)
Esempio di operazione su vettoriEsempio di operazione su vettori» a=magic(3)a = 8 1 6 3 5 7 4 9 2» b1=a*ab1 = 91 67 67 67 91 67 67 67 91 » b2=a.*a b2 = 64 1 36
9 25 49 16 81 4
![Page 31: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/31.jpg)
Esercizio 5Esercizio 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.
![Page 32: 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA](https://reader035.vdocuments.site/reader035/viewer/2022062701/5542eb4d497959361e8bb398/html5/thumbnails/32.jpg)
Soluzione Esercizio 5Soluzione 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;