a
1
lezione - laboratorio
Corso di Laurea Ingegneria
MECCANICA
a.a 2004-2005
Desktop del MATLAB
4 zone che consentono un facile accesso:
Launch Pad: ai
tools, demos, e docum.
dei prodotti
MathWorks istallati
sul computer.
workspace: alle
variabili
memorizzate.
Command History: ai comandi
eseguiti nel Command Windows.
Current Directory: ai file memorizzati
nella directory di lavoro.
Command
Windows,
finestra di
lavoro, viene
usato per
inserire
variabili ed
eseguire file
function e Mfile
La 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 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 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:
Command windows
Graphic windows
Edit windows
Comandi utili:
clc:ripulisce la finestra Command windows
clf :ripulisce la finestra Graphic windows
quit o exit: per uscire da MATLAB
Command Windows
• Utilizzo interattivo
• Workspace
whos
» 3*5^13
ans =
3.6621e+009
•Help online
» 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.
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
“ ; “ indica la
fine di una riga
o la
soppressione di
un output
» x=4
x =
Virgola/Spazio: gli
4
elementi sono sulla » c=[1,2;3,4];
stessa riga
» x=[-1.6 sqrt(4) (7+5)*4/3]
x =
-1.6000
2.0000
16.0000
I dati sono
memorizzati in
Double-Precision
Floating-Point
Qualunque espressione
Matlab può essere usata come
elemento di una matrice
Array numerici
Gli elementi di una
matrice si possono
individuare mediante
numeri all’interno di
parentesi tonde
L’operatore “:”
crea vettori di
elementi
equispaziati
Senza assegnazione
esplicita: ogni entità è
memorizzata in ‘ans’
Elementi non definiti
sono posti a zero
» 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:7
x =
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
La matrice
Matrice Rettangolare:
Vettore : m x 1 array
1 x n array
Matrice: m x n array
Scalare : 1 x 1 array
Colonne
(n)
A=
Righe
(m)
1
2
3
4
5
17
23
4
10
11
24
5
6
12
18
1
7
13
19
25
8
14
20
21
2
15
16
22
3
9
Come individuare gli elementi
di una matrice
>> A=magic(5);
A=
A(3,1)
A(3)
1
2
3
4
17 1
23 2
4 3
10 4
11 5
24 6
57
68
12 9
1810
111
7 12
1313
1914
2515
8 16
1417
2018
2119
2 20
5
1521
1622
2223
3 24
25
9
A(3,2) = A(8)
A([4,5],[2,3])
A(4:5,2:3)
Come estrarre elementi da una
matrice
>> A=magic(5);
A=
1
2
3
4
5
17
23
4
10
11
24
5
6
12
18
1
7
13
19
25
8
14
20
21
2
15
16
22
3
9
Si vogliono estrarre gli elementi dell’ultima
colonna.
Come estrarre gli elementi
dell’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 1
Data 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’output
• Comando format
Comando MATLAB
Cifre decimali
Esempio
Format short
15.2345
Format long
Default (4
cifre)
14 decimali
Format short e
4 decimali
1.5235e+001
Format long e
15 decimali
15.23453333333333e+001
Format rat
Razionale
215/24
15.23453333333333
Array di Stringhe
L’operatore (’)
delimita l’array di
stringhe
L’operatore
[ ] serve a
concatenare
gli 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
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
l’undicesima e la dodicesima siano
rispettivamente la somma e la differenza
delle prime due componenti.
Soluzione Esercizio 2
» x=21:30;
% oppure x=linspace(21,30,10);
1.
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
•pi
ans =
•i, j
3.14159265358979
» eps
•eps
ans =
2.220446049250313e-016
•realmin
» realmin
•realmaxans =
2.225073858507201e-308
•ans
» realmax
ans =
1.797693134862316e+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
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 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 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)
Esercizio 4
Data 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 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)
Operazioni su vettori
+ addizione scalare
- sottrazione scalare
+ addizione tra vettori
- sottrazione tra
vettori
* moltiplicazione
.* moltiplicazione
scalare
tra vettori
/ divisione scalare
. / divisione tra
vettori
^ elevamento a
. ^ elevamento a
potenza
potenza di vettori
’ trasposta
’ trasposta coniugata
() specifica l’ordine di calcolo a cominciare
dalla parentesi più interna
Esempio di operazione su vettori
» a=magic(3)
a=
8 1 6
3 5 7
4 9 2
» b1=a*a
b1 =
91 67 67
67 91 67
67 67 91
» b2=a.*a
b2 =
64 1 36
9 25 49
16 81 4
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;
Scarica

File