1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA.

Post on 01-May-2015

213 views 0 download

Transcript of 1 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA.

11aa lezione - laboratorio lezione - laboratorio

a.a 2004-2005

Corso di Laurea Ingegneria MECCANICA

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.

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 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

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.

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 …

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

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

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

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

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

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

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)

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);

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

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];

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

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

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

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.

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]

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

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

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

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.

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)

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).

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)

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

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

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.

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;