Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Lezione 4Lezione 4
Vettori e Matrici
Parte II
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Matrici: introduzione matematicaMatrici: introduzione matematica
Cenni di Algebra Matriciale
33
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Definizione di MatriceDefinizione di MatriceTutte le variabili numeriche in MATLAB vengono trattate come matrici, ossia come tabelle bidimensionali di numeri, organizzate in righe e colonne:
A è una matrice di ordineordine (n x mn x m) in quanto è formata da n n righerighe ed m colonnem 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.
44
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
VettoriVettori
Gli scalari altro non sono che matrici formate da una solo riga ed una sola colonna
Vengono chiamate vettori quelle matrici che hanno o numero di righe o di colonne unitario:
11,
1,2
1,1
nnv
v
v
v Vettore
Colonna
nnvvv
1,12,11,1 v
Vettore Riga
55
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Prodotto Matrice ScalareProdotto Matrice ScalareData una matrice A di ordine (n x m) ed un numero c, reale o complesso, il prodotto:
B = c A
è una matrice di ordine (n x m) i cui elementi sono i corrispondenti elementi di A moltiplicati per lo scalare c
mx n,2,1,
,22,21,2
,12,11,1
mx n,2,1,
,22,21,2
,12,11,1
mnnn
m
m
mnnn
m
m
acacac
acacac
acacac
aaa
aaa
aaa
cc
AB
bi,j = c · ai,j
66
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Esempi:Esempi:
x2341
26
53
A
11
4
9
2
1x 4
a
x23205
1030
2515
Ac
55
20
45
10
1x 4
acc = 5
c = 5
77
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Somma Algebrica di MatriciSomma Algebrica di Matrici
ci,j = bi,j ± ai,j
C = B ± A
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:
e i cui elementi sono dati dalla somma algebrica elemento a elemento degli elementi corrispondenti delle matrici A e B.
Due Matrici A e B possono essere sommate o sottratte solo se hanno lo stesso ordine.
88
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Esempi:Esempi:
x23x23x23246
1236
3018
205
1030
2515
41
26
53
4x 1
4x 1
4x 1
2313149
192 5 7
4 11 9 2
mx n,,2,2,1,1,
,2,22,22,21,21,2
,1,12,12,11,11,1
mnmnnnnn
mm
mm
ababab
ababab
ababab
ABC
Somma MatriciSomma MatriciSomma Vettori rigaSomma Vettori riga
99
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Trasposizione di MatriciTrasposizione di MatriciData la matrice A la sua trasposta A' si ottiene scambiando le righe con le colonne:
x32425
163
A
x2341
26
53
A
ijjiji aaa ,,, A 2,11,2 6 aa
1010
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Prodotto di MatriciProdotto di Matrici
C(nm) = A(ns) B(sm)
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):
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.
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.
, , , ,1 1, ,2 2, , ,1
S
i j i k k j i j i j i S S jk
c a b a b a b a b
1111
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Prodotto di MatriciProdotto di Matrici
C(nm) = A(ns) B(sm)
Il prodotto di matrici così definito viene anche detto:
prodotto righe per colonneprodotto righe per colonne
Le dimensioni interne devono essere uguali
La matrice risultato C ha le dimensioni esterne
Dimensioni interne
Dimensioni esterne
1212
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
EsempiEsempi
mx n,,,22,,11,2,,2,22,2,11,1,,1,22,1,11,
,,2,22,2,11,22,,22,22,22,11,21,,21,22,21,11,2
,,1,22,1,11,12,,12,22,12,11,11,,11,22,11,11,1
mSSnmnmnSSnnnSSnnn
mSSmmSSSS
mSSmmSSSS
bababababababababa
bababababababababa
bababababababababa
BA
Anche se esiste C = A B non è detto che sia definito il prodotto:
B A !!
1 2 1 21 1
1 2 1 22 2 2 2
1 2 1 23 2 3x2
3 5 3 5 3 5
6 2 6 2 6 2
1 4 4 4
a a b ba b
a a b ba b
a a b b
1 1
2 2 2 23 2
3 5
6 2
1 4
a b
a b
1,2 1, ,21
S
k kk
c a b
1414
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Prodotti righe per colonne Prodotti righe per colonne
1x1
ns
sn
c
s
s
x1
1
Prodotto Prodotto matrice matrice vettore vettore
Prodotto Prodotto
vettore riga vettore riga vettore colonna vettore colonna
ps
p
s
1
1
Prodotto Prodotto
vettore colonna vettore colonna vettore riga vettore riga
1515
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Matrice identità Matrice identità EE
Si definisce matrice identità E la matrice quadrata che ha elementi tutti nulli eccetto quelli sulla diagonale principale che sono uguali ad 1.
A E E A AIl prodotto della matrice identità E per una qualsiasi matrice quadrata A restituisce la matrice A stessa
,
1 0 0
0 1 0( )
0 0 1
i je
E
Proprietà della matrice identità
1,1 1,2 1, 1,1 1,2 1, 1,1 1,2 1,
2,1 2,2 2, 2,1 2,2 2, 2,1 1, 2,2 2, 2,
,1 ,2 , ,1 ,2 , ,1 1, ,2 2, ,
1 0 0 0 1 0 0 0 1
1 0 0 0 1 0 1
1 0 0 0 1 0 1
n n n
n n m m n
n n n n n n n n n m n m n n
a a a a a a a a a
a a a a a a a b a b a
a a a a a a a b a b a
A E
n x n
1616
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Matrice Inversa Matrice Inversa AA-1-1
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:
AA-1 = A-1A = 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
1717
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
DivisioneDivisione
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
A / Bdividendo
divisore
1818
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni Operazioni RequisitiRequisiti ModalitàModalità
Prodotto cA -- Operazione elemento a elemento
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Somma Algebrica
A ± BUguali dimensioni: stesso numero di righe e di colonne
Operazione elemento a elemento
Prodotto A BNumero di colonne di A uguale al numero di righe di B
Prodotto righe per colonne
Divisione A / BB matrice non singolare, ossia dotata di inversa B-1
BB-1 = B-1B = EA / B = A B-1
Elevamento a potenza An Solo per matrici quadrate AA …(n volte)…
A
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Vettori e Matrici in MatlabVettori e Matrici in Matlab
Operazioni con Scalari
Operazioni fra Vettori e Matrici
2020
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni con ScalariOperazioni con ScalariTutte 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.
>> y = 10;>> r_x = 1 : 4r_x =
1 2 3 4
>> r_x + y ans =
11 12 13 14
>> y - r_x ans =
9 8 7 6
>> r_x * y ans =
10 20 30 40
>> r_x / y ans =
0.1 0.2 0.3 0.4so
mm
aso
ttra
z.p
rod
ot.
div
isio
neN.B.: Si ricordi che in algebra matriciale solo il
prodotto scalare per matrice è in realtà definito
2121
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni con ScalariOperazioni con ScalariTutte le operazioni fra matrici e scalari in matlab sono commutative eccetto la divisione
>> m_x = [1 2; 3 4]; y = 10
>> m_x + y
ans =
11 12
13 14
>> y + m_x
ans =
11 12
13 14
somma
N.B.: E’ possibile dividere un vettore o una matrice per uno scalare, ma non uno N.B.: E’ possibile dividere un vettore o una matrice per uno scalare, ma non uno scalare per un vettore o una matricescalare per un vettore o una matrice
>> m_x = [1 2; 3 4]; y = 10
>> m_x / y
ans =
0.1000 0.2000
0.3000 0.4000
>> y / m_x
?? Error using ==> /
Matrix dimensions must agree.
divisione
2222
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni fra Vettori e MatriciOperazioni fra Vettori e Matrici
• (.*) Prodotto elemento a elemento
• (./) Divisione elemento a elemento
• (.^) Elevamento a Potenza elemento a elemento
• (+) Somma
• (-) Sottrazione
• (*) Prodotto Righe per Colonne
• (/) Divisione: matrici non singolari
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 Operatori che seguono le regole dell’algebra regole dell’algebra
matriciale matriciale
L’ Operatore punto ‘.’ forza L’ Operatore punto ‘.’ forza le operazioni ad essere le operazioni ad essere effettuate elemento ad effettuate elemento ad
elementoelemento
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni fra Vettori e MatriciOperazioni fra Vettori e Matrici
Operatori che seguono le regole dell’algebra matriciale
2424
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
SommaSomma (+) e (+) e SottrazioneSottrazione (-) (-)
La somma e la sottrazione di vettori o matrici sono definite come in algebra matriciale operazioni elemento a elemento:
• i vettori (o matrici) operandi devono quindi avere uguali dimensioni
• il vettore (o matrice) risultante è dato dalla somma o sottrazione elemento a elemento dei vettori (o matrici) addendi
» r_x = 1:4r_x = 1 2 3 4
» r_y = 10:10:40r_y = 10 20 30 40
» r_z = r_x + r_yr_z = 11 22 33 44
» r_x = 1:3; r_y = 10:10:40;» r_z = r_x + r_y??? Error using ==> +Matrix dimensions must agree.
Matlab restituisce un messaggio di errore se si cerca di sommare o sottrarre vettori con dimensioni non corrette
2525
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
(*)(*) Prodotto righe per colonne Prodotto righe per colonneIl prodotto fra vettori segue le regole dell’algebra matriciale due vettori possono essere moltiplicati con l’operatore * solo se:
» 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_yz = 300» m_z = c_y * r_xm_z = 10 20 30 40 20 40 60 80 30 60 90 120 40 80 120 160
Possono essere moltiplicati fra loro con *:Possono essere moltiplicati fra loro con *:
Vettore Colonna * Vettore Riga Matrice
Vettore Riga * Vettore Colonna Scalare
• il numero di colonne del primo vettore è uguale al numero di righe del secondo,• il prodotto è effettuato righe per colonne.
2626
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
(*)(*) Prodotto Righe per Colonne Prodotto Righe per Colonne
Se si cerca di moltiplicare due matrici di dimensioni non corrette: allora Matlab restituisce un messaggio di errore
» 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.
r_y(14) * r_x(14)
??? Errore usando ==> *Le dimensioni interne delle matrici devono essere uguali
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni fra Vettori e MatriciOperazioni fra Vettori e Matrici
Operatori elemento a elemento
2828
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
(.*) (.*) Prodotto Elemento a ElementoProdotto Elemento a ElementoIn Matlab è definita anche l’operazione Prodotto elemento a elemento che segue quindi le stesse regole della somma e della sottrazione:
• i vettori operandi devono avere uguali dimensioni
• il vettore risultante è dato dal prodotto elemento a elemento dei vettori operandi
» r_x = 1:4r_x = 1 2 3 4
» r_y = 10:10:40r_y = 10 20 30 40
» r_z = r_x .* r_yr_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.
2929
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
(./) (./) Divisione Elemento a ElementoDivisione Elemento a ElementoAnche 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
» r_x = 1:4r_x = 1 2 3 4
» r_y = 10:10:40r_y = 10 20 30 40
» r_z = r_x ./ r_yr_z = 0.1 0.1 0.1 0.1
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_y = 1./r_xr_y = 1.0000 0.5000 0.3333 0.2500
3030
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
(.^) (.^) Elevamento a Potenza Elemento Elevamento a Potenza Elemento a Elementoa Elemento
l’elevamento a potenza di uno scalare a tutti i valori di un vettore, presi come esponenti;
» r_x = 1:4r_x = 1 2 3 4
» r_z = 2.^ r_xr_z = 2 4 8 16
» r_y = r_x .^2r_y = 1 4 9 16
» r_q = r_x.^[1 2 3 2]r_q = 1 4 27 16
L’elevamento a potenza elemento a elemento L’elevamento a potenza elemento a elemento (.^) permette di calcolare:(.^) permette di calcolare:
l’elevamento a potenza di tutti gli elementi di un vettore ad uno stesso esponente scalare;
l’elevamento a potenza degli elementi di un vettore agli elementi si un altro vettore presi come esponenti,
1
2
3
3131
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni Elemento a ElementoOperazioni 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_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.
r_y(14) .* c_x(41)
??? Errore usando ==> *Le dimensioni delle matrici devono essere uguali
3232
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
VerificaVerifica
• 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 Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
RiepilogoRiepilogo
Operazioni in Matlab
fra variabili numeriche
3434
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni Operazioni ModalitàModalità CommutaCommuta RequisitiRequisiti
Somma s+m_s+m_AA elemento a elemento SI
Differenza s-m_s-m_AA elemento a elemento SI
Prodotto s*m_s*m_AA elemento a elemento SI
Divisione m_m_A/sA/s elemento a elemento NO
Elevamentoa potenza
m_m_A^sA^s elemento a elemento NO solo matrici quadrate
Operazioni Matlab: Scalare-MatriceOperazioni Matlab: Scalare-Matrice
Un operatore binario commuta se il risultato non cambia invertendo l’ordine degli operandi
s + m_A = m_A + s
3535
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni Operazioni ModalitàModalità CommutaCommuta RequisitiRequisiti
Somma m_A+m_m_A+m_BB elemento a elemento SImatrici di uguali dimensioni
Differenza m_A-m_B elemento a elemento SImatrici di uguali dimensioni
Prodotto m_A*m_B righe per colonne NON. colonne di m_Am_A = N. righe di m_Bm_B
Divisione m_A/m_B m_A*inv(m_B)m_A*inv(m_B) NOm_Am_A e m_Bm_B quadratem_Bm_B dotata di inversa
Operazioni Matlab: Matrice-MatriceOperazioni Matlab: Matrice-Matrice
3636
Università degli Studi di Bari Università degli Studi di Bari Laurea in ChimicaLaurea in ChimicaDi spense di Informatica - Dott. F. MavelliDi spense di Informatica - Dott. F. Mavelli
Operazioni Operazioni matrice scalarematrice scalare
ModalitàModalità CommutCommutaa
RequisitiRequisiti
Divisione s./m_A elemento a elemento NO
Operazioni Operazioni matrice-matricematrice-matrice
ModalitàModalità CommutCommutaa
RequisitiRequisiti
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 a potenza
m_A.^m_B elemento a elemento NO matrici di uguali dimensioni
Operazioni Matlab aggiuntiveOperazioni Matlab aggiuntive