Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
Lezione 4
Vettori e Matrici
Parte II
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
Matrici: introduzione matematica
Cenni di Algebra Matriciale
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
3
Definizione di Matrice
Tutte le variabili numeriche in MATLAB vengono trattate come
matrici, ossia come tabelle bidimensionali di numeri, organizzate in
righe e colonne:
A è una matrice di
ordine (n x m) in
quanto è formata da n
righe ed m colonne
Ogni elemento ai,j della matrice A è contraddistinto da un indice di
riga (i) e di colonna (j) che ne individua la posizione all’interno della
matrice stessa.
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
4
Vettori
Vengono chiamate vettori quelle matrici che hanno o numero di
righe o di colonne unitario:
 v1,1 
 
 v2,1 
Vettore
v 
Colonna

 
v 
 n ,1  n1
v  v1,1 v1, 2  v1,n 1n
Vettore Riga
Gli scalari altro non sono che matrici formate da una solo riga ed una
sola colonna
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
5
Prodotto Matrice Scalare
Data una matrice A di ordine (n
complesso, il prodotto:
x
m) ed un numero c, reale o
B = cA
è una matrice di ordine (n x m) i cui elementi sono i corrispondenti
elementi di A moltiplicati per lo scalare c
bi,j = c · ai,j
 a1,1 a1, 2  a1,m 
 c  a1,1 c  a1, 2  c  a1,m 




 a2,1 a2, 2  a2,m 
 c  a2,1 c  a2, 2  c  a2,m 
B  cA  c 









 




a



a

a
c

a
c

a

c

a
n
,
1
n
,
2
n
,
m
n
,
1
n
,
2
n
,
m

n x m 
n x m
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
6
Esempi:
c=5
c=5

2
 
9
a 
4
 
11 4 x 1

 3 5


A  6 2
1 4

3x2


 10 
 
 45 
ca 
20
 
 55  4 x 1
 15 25 


c A   30 10 
 5 20 

3x2
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
7
Somma Algebrica di Matrici
Date due matrici A e B di uguale ordine (n x m), resta definita la
matrice C, di ordine (n x m), ottenuta dalla somma algebrica
delle matrici date:
C = B ± A
e i cui elementi sono dati dalla somma algebrica elemento a
elemento degli elementi corrispondenti delle matrici A e B.
ci,j = bi,j ± ai,j
Due Matrici A e B possono essere sommate o sottratte
solo se hanno lo stesso ordine.
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
8
Esempi:
 b1,1  a1,1 b1, 2  a1, 2  b1,m  a1,m 


 b2,1  a2,1 b2, 2  a2, 2  b2,m  a2,m 
CBA 







b  a

b

a

b

a
n
,
1
n
,
1
n
,
2
n
,
2
n
,
m
n
,
m

n x m
Somma Vettori riga
Somma Matrici
 3 5
 15 25 
 18 30 






 6 2    30 10    36 12 
1 4
 5 20 
 6 24 

 3x2 
 3x2 
 3x2
2
9
11
7
5
2 19  1 x 4 
9
4 1 x 4 
14 13 23 1 x 4
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
9
Trasposizione di Matrici
Data la matrice A la sua trasposta A' si ottiene scambiando le
righe con le colonne:
3 6 1
A  

 5 2 4  2 x3
 3 5


A   6 2 
1 4

 3x2

A  ai, j   ai , j   a j ,i 
a 2 ,1  6  a1, 2
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
10
Prodotto di Matrici
Il prodotto di una matrice A, di ordine (n  s), per la matrice B di
ordine (s  m), è la matrice C, di ordine (n  m):
C(nm) = A(ns)  B(sm)
il cui elemento generico ci,j è dato dalla somma dei prodotti degli
elementi della riga i-esima della matrice A per i corrispondenti
elementi della j-esima colonna della matrice B.
S
ci , j   ai ,k bk , j  ai ,1b1, j  ai ,2b2, j 
k 1
 ai , S bS , j
Due Matrici A e B possono essere moltiplicate fra loro
solo se il numero di colonne di A è uguale al numero di
righe di B.
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
11
Prodotto di Matrici
Il prodotto di matrici così definito viene anche detto:
prodotto righe per colonne
Dimensioni esterne
C(nm) = A(ns)  B(sm)
Dimensioni interne
Le dimensioni interne devono essere uguali
La matrice risultato C ha le dimensioni esterne
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
12
c1,2   a1,k  bk ,2
Esempi
 a1,1b1,1  a1, 2 b2,1    a1,S bS ,1

 a 2,1b1,1  a 2, 2 b2,1    a 2,S bS ,1
AB  


a b  a b  a b
n , 2 2 ,1
n , S S ,1
 n ,1 1,1
3 5
 a1


6 2  a
 2
1 4

32
!
S
k 1
a1,1b1, 2  a1, 2 b2, 2    a1,S bS , 2  a1,1b1,m  a1, 2 b2,m    a1,S bS ,m 

a 2,1b1, 2  a 2, 2 b2, 2    a 2,S bS , 2  a 2,1b1,m  a 2, 2 b2,m    a 2,S bS ,m 





a n ,1b1, 2  a n , 2 b2, 2    a n ,S bS , 2  a n ,1b1,m  a n , 2 b2,m    a n ,S bS ,m  n x m
b1 

b2 22
 3a1  5a2

  6a1  2a2
 a  4a
2
 1
Anche se esiste C = A  B non è
detto che sia definito il prodotto:
BA
3b1  5b2 

6b1  2b2 
b1  4b2 3x2
 a1

 a2
3 5
b1 



6
2


b2 22 

 1 4 32
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
14
Prodotti righe per colonne
Prodotto
matrice  vettore
Prodotto
vettore riga  vettore colonna
Prodotto
vettore colonna  vettore riga



  
 ns 










1s


 

 s1


 


1 p


 
   
  n1

 sx1


  c

 sx1









 s p
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
15
Matrice identità E
Si definisce matrice identità E la matrice
quadrata che ha elementi tutti nulli eccetto quelli
sulla diagonale principale che sono uguali ad 1.
1 0

0 1

E  (ei , j ) 


0 0
0

0


1
Proprietà della matrice identità
Il prodotto della matrice identità E per una qualsiasi
matrice quadrata A restituisce la matrice A stessa
 a1,11  a1,2 0 

a2,11  a2,2 0 

AE 


 an ,11  an ,2 0 
 a1,n 0
AE  E A  A
a1,1 0  a1,21 
 a1, n 0
a1,1 0  a1,2 0 
 a2, n 0 a2,1 0  a2,21 
 a2, n 0
a2,1b1, m  a2,2b2, m 
 an ,n 0 an ,1 0  an ,21 
 an,n 0
an,1b1,m  an ,2b2,m 
 a1, n1


 a2, n1 


 an,n1n x n
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
Matrice Inversa
16
-1
A
Data una matrice quadrata A viene definita matrice inversa di A e
denotata con il simbolo A-1 la matrice che soddisfa la seguente
relazione:
AA-1 = A-1A = E
ossia quella matrice che moltiplicata per la matrice A restituisce la
matrice identità (Si noti che in questo caso il prodotto è
commutativo).
La matrice inversa resta definita solo per matrici quadrate
Non tutte le matrici quadrate sono dotate di inversa
Si dimostra che le matrici quadrate dotate di inversa sono
quelle a determinante non nullo e sono dette non singolari
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
17
Divisione
Date due Matrici A=(ai,j) e B=(bi,j) viene definita l’operazione di
divisione della matrice A per B come il prodotto della matrice A
per l’inversa della matrice B:
A / B = A  B-1
dove B-1 è la matrice inversa della matrice B e resta definita solo
per matrici quadrate, non singolari, ossia a determinante non
nullo.
Per cui matrici rettangolari e vettori
non possono essere i divisori in un
operazione di divisione fra matrici
dividendo
A/B
divisore
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
Operazioni
Prodotto
cA
18
Requisiti
Modalità
--
Operazione elemento a
elemento
___________________________________________________________________________________________________________________________________________________________
A± B
Uguali dimensioni: stesso
numero di righe e di
colonne
Operazione elemento a
elemento
A B
Numero di colonne di A
uguale al numero di righe
di B
Prodotto righe per
colonne
Divisione
A/B
B matrice non singolare,
ossia dotata di inversa B-1
BB-1 = B-1B = E
A / B = A  B-1
Elevamento
a potenza
An
Solo per matrici quadrate
AA …(n volte)…A
Somma
Algebrica
Prodotto
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
Vettori e Matrici in Matlab
Operazioni con Scalari
Operazioni fra Vettori e Matrici
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
>> y = 10;
>> r_x = 1 : 4
r_x =
20
Operazioni con Scalari
N.B.: Si ricordi che in algebra matriciale solo il
prodotto scalare per matrice è in realtà definito
somma
sottraz.
>> y - r_x
ans =
prodot.
2
>> r_x + y
ans =
>> r_x * y
ans =
divisione
Tutte le operazioni di somma (+), sottrazione
(-), prodotto (*), divisione (/) di una matrice
o vettore per uno scalare sono definite, in
Matlab come operazioni elemento ad
elemento: il risultato è una matrice o un
vettore i cui elementi sono ottenuti
sommando,
sottraendo,
moltiplicando,
dividendo i singoli elementi della matrice o
del vettore per lo scalare.
1
11
9
10
12
8
7
20
3
4
13
14
6
30
40
0.3
0.4
>> r_x / y
ans =
0.1
0.2
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
21
Operazioni con Scalari
Tutte le operazioni fra matrici e scalari in matlab sono
commutative eccetto la divisione
somma
divisione
>> m_x = [1 2; 3 4]; y = 10
>> m_x = [1 2; 3 4]; y = 10
>> m_x + y
>> m_x / y
ans =
ans =
11
12
0.1000
0.2000
13
14
0.3000
0.4000
>> y + m_x
>> y / m_x
ans =
11
12
?? Error using ==> /
13
14
Matrix dimensions must agree.
N.B.: E’ possibile dividere un vettore o una matrice per uno scalare, ma non uno
scalare per un vettore o una matrice
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
22
Operazioni fra Vettori e Matrici
Matlab permette di effettuare facilmente operazioni fra vettori e matrici
rispettando le regole dell’algebra matriciale, ma implementa anche degli
operatori che permettono di effettuare operazioni di tipo diverso:
Operatori che seguono le
regole dell’algebra
matriciale
L’ Operatore punto ‘.’ forza
le operazioni ad essere
effettuate elemento ad
elemento
•
•
•
•
(+) Somma
(-) Sottrazione
(*) Prodotto Righe per Colonne
(/) Divisione: matrici non singolari
• (.*) Prodotto elemento a elemento
• (./) Divisione elemento a elemento
• (.^) Elevamento a Potenza elemento
a elemento
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
Operazioni fra Vettori e Matrici
Operatori che seguono le regole
dell’algebra matriciale
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
24
Somma (+) e Sottrazione (-)
La somma e la sottrazione di vettori o
matrici sono definite come in algebra
matriciale operazioni elemento a elemento:
» r_x = 1:4
r_x =
1
2
3
4
• i vettori (o matrici) operandi devono
quindi avere uguali dimensioni
» r_y = 10:10:40
r_y =
10
20
30
40
• il vettore (o matrice) risultante è dato dalla
somma o sottrazione elemento a elemento
dei vettori (o matrici) addendi
» r_z = r_x + r_y
r_z =
11
22
33
44
Matlab restituisce un
messaggio di errore se si cerca
di sommare o sottrarre vettori
con dimensioni non corrette
» r_x = 1:3; r_y = 10:10:40;
» r_z = r_x + r_y
??? Error using ==> +
Matrix dimensions must agree.
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
25
(*) Prodotto righe per colonne
Il prodotto fra vettori segue le regole
dell’algebra matriciale due vettori possono
essere moltiplicati con l’operatore * solo se:
• il numero di colonne del primo vettore è
uguale al numero di righe del secondo,
• il prodotto è effettuato righe per colonne.
Possono essere moltiplicati fra loro con *:
Vettore Riga * Vettore Colonna  Scalare
Vettore Colonna * Vettore Riga  Matrice
» r_x = 1:4;
r_x =
1
2
3
4
» c_y = [10;20;30; 40]
c_y =
10
20
30
40
» z = r_x * c_y
z =
300
» m_z = c_y * r_x
m_z =
10
20
30
40
20
40
60
80
30
60
90
120
40
80
120
160
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
26
(*) Prodotto Righe per Colonne
Se si cerca di moltiplicare due
matrici di dimensioni non
corrette: allora Matlab restituisce
un messaggio di errore
r_y(14) * r_x(14)
» r_x = 1:4;
r_x =
1
2
3
4
» r_y = [10 20 30 40]
r_y =
10
20
30
40
» r_y * r_x
??? Error using ==> *
Inner matrix dimensions
must agree.
??? Errore usando ==> *
Le dimensioni interne delle
matrici devono essere uguali
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
Operazioni fra Vettori e Matrici
Operatori elemento a elemento
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
28
(.*) Prodotto Elemento a Elemento
In Matlab è definita anche l’operazione
Prodotto elemento a elemento che
segue quindi le stesse regole della
somma e della sottrazione:
» r_x = 1:4
r_x =
1
2
3
4
• i vettori operandi devono avere uguali
dimensioni
» r_y = 10:10:40
r_y =
10
20
30
40
• il vettore risultante è dato dal prodotto
elemento a elemento dei vettori
operandi
» r_z = r_x .* r_y
r_z =
10
40
90
160
In Matlab l’operatore punto “.” forza un’operazione matriciale di
moltiplicazione (.*), divisione (./) e elevamento a potenza (.^) ad
essere effettuata in modalità elemento a elemento.
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
29
(./) Divisione Elemento a Elemento
Anche la Divisione fra due vettori, in
Matlab, può essere effettuata elemento a
elemento utilizzando l’operatore (./):
• i vettori operandi devono avere uguali
dimensioni
• il vettore risultante è dato dalla
divisione elemento a elemento dei
vettori operandi
Utilizzando l’operatore ./ è anche
possibile effettuare la divisione di
uno scalare per un vettore dividendo
lo scalare per i singoli elementi del
vettore divisore
» r_x = 1:4
r_x =
1
2
3
4
» r_y = 10:10:40
r_y =
10
20
30
40
» r_z = r_x ./ r_y
r_z =
0.1
0.1
0.1
0.1
» r_x = 1:4;
» r_y = 1./r_x
r_y =
1.0000 0.5000
0.3333
0.2500
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
30
(.^) Elevamento a Potenza Elemento
a Elemento
L’elevamento a potenza elemento a elemento
(.^) permette di calcolare:
» r_x = 1:4
r_x =
1
2
3
4
1
l’elevamento a potenza di tutti gli elementi di
un vettore ad uno stesso esponente scalare;
» r_y = r_x .^2
r_y =
1
4
9
16
2
l’elevamento a potenza di uno scalare a tutti i
valori di un vettore, presi come esponenti;
» r_z = 2.^ r_x
r_z =
2
4
8
16
3
l’elevamento a potenza degli elementi di un
vettore agli elementi si un altro vettore presi
come esponenti,
» r_q = r_x.^[1 2 3 2]
r_q =
1
4
27
16
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
31
Operazioni Elemento a Elemento
Nelle Operazioni elemento a
elemento le matrici o i vettori
operandi devono avere uguali
dimensioni, ossia devono essere
uguali sia il numero delle righe
che delle colonne.
r_y(14) .* c_x(41)
» r_x = 1:4;
r_x =
1
2
3
4
» c_y = [10; 20; 30; 40]
c_y =
10
20
30
40
» r_y .* c_x
??? Error using ==> .*
Matrix dimensions must
agree.
??? Errore usando ==> *
Le dimensioni delle matrici
devono essere uguali
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
32
Verifica
• Si creino due matrici rettangolari con il
comando rand e si verifichino le regole di
addizione sottrazione prodotto.
• Si creino due matrice quadrate con il
comando rand e si verifichi la regola di
divisione
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
Riepilogo
Operazioni in Matlab
fra variabili numeriche
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
34
Operazioni Matlab: Scalare-Matrice
Operazioni
Modalità
Commuta
Somma
s+m_A
elemento a elemento
SI
Differenza
s-m_A
elemento a elemento
SI
Prodotto
s*m_A
elemento a elemento
SI
Divisione
m_A/s
elemento a elemento
NO
Elevamento
a potenza
m_A^s
elemento a elemento
NO
Un operatore binario commuta se il risultato
non cambia invertendo l’ordine degli operandi
Requisiti
solo matrici quadrate
s + m_A = m_A + s
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
35
Operazioni Matlab: Matrice-Matrice
Operazioni
Commuta
Requisiti
m_A+m_B elemento a elemento
SI
matrici di uguali
dimensioni
Differenza m_A-m_B elemento a elemento
SI
matrici di uguali
dimensioni
Somma
Modalità
Prodotto
m_A*m_B
righe per colonne
NO
N. colonne di m_A =
N. righe di m_B
Divisione
m_A/m_B
m_A*inv(m_B)
NO
m_A e m_B quadrate
m_B dotata di inversa
Università degli Studi di Bari
Laurea in Chimica
Di spense di Informatica - Dott. F. Mavelli
36
Operazioni Matlab aggiuntive
Operazioni
matrice scalare
Divisione
s./m_A
Operazioni
matrice-matrice
Modalità
Commuta
elemento a elemento
NO
Modalità
Commuta
Requisiti
Requisiti
Prodotto
m_A.*m_B
elemento a elemento
SI
matrici di uguali
dimensioni
Divisione
m_A./m_B
elemento a elemento
NO
matrici di uguali
dimensioni
Elevamento m_A.^m_B
a potenza
elemento a elemento
NO
matrici di uguali
dimensioni
Scarica

Lezione 4 - Università degli Studi di Bari