Sei sulla pagina 1di 17

Matrici in Matlab.

Alvise Sommariva

Università degli Studi di Padova


Dipartimento di Matematica

March 24, 2017

Alvise Sommariva Introduzione 1/ 16


Introduzione

Il proposito di questa lezione è di fornire una breve introduzione


sull’utilizzo delle matrici in Matlab.
Ci interesseremo a
come definirle,
selezionare sue componenti, vettori o righe,
menzionare le principali operazioni su matrici,
menzionare le principali funzioni matriciali in Matlab.

Alvise Sommariva Introduzione 2/ 16


Definizione di matrice

Esistono vari metodi per definire le matrici.


Se sono di piccole dimensioni, in molti casi lo si fa direttamente.
Se ad esempio vogliamo definire
 
1 2 3
A= 4 5 6 
7 8 9

un primo metodo è via l’assegnazione diretta


>> A =[1 2 3 ; 4 5 6 ; 7 8 9 ]
A =
1 2 3
4 5 6
7 8 9
>>

Alvise Sommariva Introduzione 3/ 16


Selezione di una componente, riga o colonna

Il comando A(i,j) permette di selezionare la componente (i, j)


della matrice A.
Ad esempio:
>>A =[1 2 3 ; 4 5 6 ; 7 8 9 ] ;
>>A ( 2 , 3 )
ans =
6
>> A ( 2 , end )
ans =
6
>>

Alvise Sommariva Introduzione 4/ 16


Selezione di una componente, riga o colonna

Il comando A(i,:) seleziona la i-sima riga di A, mentre A(:,i)


seleziona la i-sima colonna di A.
Cosı̀ :
>>A =[1 2 3 ; 4 5 6 ; 7 8 9 ] ;
>> A ( : , 1 )
ans =
1
4
7
>> A ( 2 , : )
ans =
4 5 6
>>

Alvise Sommariva Introduzione 5/ 16


Operazioni tra matrici

Tra le più comuni operazioni tra matrici ricordiamo

C=s*A
C=A’
C=A+B
C=A-B
C=A*B
C=A.*B

che assegnano alla variabile C rispettivamente


il prodotto tra lo scalare s e la matrice A,
la trasposta della matrice A,
la somma, la sottrazione, il prodotto e il prodotto puntuale,
cioè componente per componente di due matrici A, B (non
necessariamente quadrate).
Alvise Sommariva Introduzione 6/ 16
Operazioni tra matrici, esempi

>> A =[1 2 ; 3 4 ] ;
A =
1 2
3 4
>> s =10;
>> s∗A
ans =
10 20
30 40
>> A+1 % a g g i u n g e r e numero a m a t r i c e .
ans =
2 3
4 5
>> A ’
ans =
1 3
2 4
>>

Alvise Sommariva Introduzione 7/ 16


Operazioni tra matrici, esempi

>> A =[1 2 ; 3 4 ]
A =
1 2
3 4
>> B =[5 6 ; 7 8 ]
B =
5 6
7 8
>> A+B
ans =
6 8
10 12
>> A . ∗ B
ans =
5 12
21 32
>>

Alvise Sommariva Introduzione 8/ 16


Operazioni tra matrici, esempi

Osserviamo che quello citato non corrisponde all’usuale prodotto di


matrici. Infatti, se
1 A ha m righe ed n colonne,
2 B ha n righe ed p colonne,
allora C = A ∗ B è una matrice con m righe e p colonne tale che
C = (ci,j ) con
n
X
ci,j = ai,k · bk,j , i = 1, . . . , m, j = 1, . . . , p.
k=1

Alvise Sommariva Introduzione 9/ 16


Operazioni tra matrici, esempi

Vediamo un caso particolare. Se D = A ∗ B ed


 
1 2
A=
3 4
 
5 6
B=
7 8
abbiamo
   
(1 · 5 + 2 · 7) (1 · 6 + 2 · 8) 19 22
D= =
(3 · 5 + 4 · 7) (3 · 6 + 4 · 8) 43 50

Alvise Sommariva Introduzione 10/ 16


Operazioni tra matrici, esempi

Eseguiamo dal workspace di Matlab/Octave


>> A =[1 2 ; 3 4 ] ; B =[5 6 ; 7 8 ] ;
>> D=A∗B
D =
19 22
43 50
>> E=B∗A
E =
23 34
31 46
>> % Non v a l e l a p r o p . commutativa d i ∗ .
>> A . ∗ B
ans =
5 12
21 32
>> % A∗B non e ’ A . ∗ B

Alvise Sommariva Introduzione 11/ 16


Operazioni tra matrici, esempi

Osserviamo che le dimensioni devono essere rispettate:


>> A =[1 2 ; 3 4]
A =
1 2
3 4
>> B =[1 2 ; 3 4; 5 6]
B =
1 2
3 4
5 6
>> A∗B
Error using ∗
Inner matrix dimensions must agree .
>> B∗A
ans =
7 10
15 22
23 34
>>
Alvise Sommariva Introduzione 12/ 16
Operazioni tra matrici, esempi

Similmente:
>> A =[1 2 ; 3 4 ]
A =
1 2
3 4
>> B =[1 2 ; 3 4 ; 5 6 ]
B =
1 2
3 4
5 6
>> A . ∗ B
Error using . ∗
Matrix dimensions must agree .

>>

Alvise Sommariva Introduzione 13/ 16


Funzioni di matrice

Altri comandi di comune utilizzo sono

rand(m,n) matrice di numeri random di ordine m per n


det(A) determinante della matrice A
size(A) numero di righe e colonne di A
hilb(n) matrice di Hilbert di ordine n
eye(n) matrice identica di ordine n
zeros(n) matrice nulla di ordine n
ones(n) matrice con componenti 1 di ordine n
diag(A) vettore diagonale della matrice A
inv(A) inversa di A
norm(A) norma di A (anche vettori!)
cond(A) condizionamento di A
eig(A) autovalori di A

Alvise Sommariva Introduzione 14/ 16


Funzioni Matlab e matrici: esempi
>> A =[1 2 ; 3 4 ]
A =
1 2
3 4
>> d e t ( A )
ans =
−2
>> d i a g ( A )
ans =
1
4
>> d i a g ( d i a g ( A ) )
ans =
1 0
0 4
>> e i g ( A ) % a u t o v a l o r i d i A
ans =
−0.3723
5.3723
>>
Alvise Sommariva Introduzione 15/ 16
Funzioni Matlab e matrici: esempi

>> e y e ( 2 ) % i d e n t i t a ’ 2 x 2
ans =
1 0
0 1
>> z e r o s ( 2 )
ans =
0 0
0 0
>>

Alvise Sommariva Introduzione 16/ 16


Sistemi lineari

Dati una matrice quadrata non singolare A di ordine n e un vettore colonna


b ∈ R n , il comando x = A\b calcola la soluzione del sistema lineare Ax = b.
Cosı̀, se vogliamo risolvere il sistema
    
1 2 x1 17
=
3 4 x2 39
la cui soluzione è il vettore
 
5
x∗ =
6
scriveremo
>> A =[1 2 ; 3 4 ] ;
>> b = [ 1 7 ; 3 9 ] ;
>> x=A\b
x =
5.0000
6.0000
>> % n o t a : A \ b non e ’ A / b . . .

Alvise Sommariva Introduzione 17/ 16