ml - Introduzione interattiva di MATLAB       Vai all'indice del corso

Introduzione al trattamento delle matrici
Versione 0.8

Indice del modulo

1mai.10 - Le operazioni algebriche sulle matrici
1mai.11 - Aggiunta di un numero a tutti i componenti di una matrice
1mai.12 - Prodotto di scalare per matrice
1mai.13 - Somma e differenza di matrici
1mai.14 - Combinazione lineare di matrici
1mai.15 - Matrici simmetriche, antisimmetriche, simmetrizzate ed antisimmetrizzate
1mai.16 - Matrici, loro simmetrizzate, loro antisimmetrizzate
1mai.18 - Somme e differenze di matrici non eseguibili
1mai.20 - Operazioni componente per componente tra matrici
1mai.21 - Quadrato dei componenti di una matrice
1mai.22 - Prodotti e potenze dei componenti di matrici
1mai.23 - Divisioni tra i componenti di matrici
1mai.24 - Potenze dei componenti di matrici
1mai.27 - Matrici esprimenti funzioni di due variabili date da espressioni
1mai.30 - Prodotto righe per colonne di due matrici conformabili
1mai.31 - Prodotti di matrici non eseguibili
1mai.32 - Prodotto di matrici conformabili di interi e collegamenti a due passi
1mai.34 - Prodotti interno ed esterno di vettori in termini di collegamenti
1mai.35 - Somma di matrici di interi naturali e sommarsi dei collegamenti
1mai.36 - Distributivita` di prodotto e somma di matrici in termini di collegamenti
1mai.37 - Matrici quadrate e collegamenti entro un sistema di stazioni
1mai.38 - Potenze di matrici in termini di collegamenti
1mai.39 - Matrici binarie e digrafi - Cammini e circuiti

Torna all'indice del modulo - del corso

1mai.10 - Le operazioni algebriche sulle matrici

Nell'insieme delle matrici sono definite le seguenti operazioni algebriche di base:
- addizione e differenza tra matrici simili, cioe` di uguale aspetto,
- moltiplicazione per uno scalare,
- moltiplicazione (righe per colonne) di matrici conformabili, cioe` di coppie di matrici tali che il numero delle colonne della prima uguaglia il numero delle righe della seconda.

Osserviamo che le matrici di uguale aspetto possono essere combinate linearmente, come accade ai vettori. Osserviamo anche che le matrici quadrate n x n con dato n si possono anche moltiplicare tra di loro per fornire un'altra matice dello stesso aspetto. La stessa cosa accade ai numeri. Richiamandosi a queste entita` matematiche, ci si puo` chiedere se ha senso parlare di divisione tra matrici quadrate.

torna all'indice del modulo - del corso

1mai.11 - Aggiunta di un numero a tutti i componenti di una matrice

Nella maggior parte dei contesti non e` consentito di richiedere la somma di due matrici di aspetti diversi. Si possono considerare disomogenei anche i due addendi di una espressione come k + Mat, con k scalare e Mat matrice nr x nc con nr+nc >1, perché li vede come matrici, rispettivamente, di aspetto 1 x 1 e 3 x 5. Tuttavia MATLAB e` in grado di interpretare tale richiesta come k*ones(size(Mat)) + Mat, cioe` come somma di due matrici 3 x 5 la prima avente tutti i componenti uguali a k (v. ml1map.htm). Analogamente accade per la sottrazione ed in generale per somme e sottrazioni riguardanti matrici di uguali dimensioni e scalari.

Si puo` aggiungere 3 a tutti i componenti di una matrice in vari modi.

>> Mat = [2 4 6 8 10; 9 7 5 3 1; -7 -3 1 5 9];
>> 3 + Mat 
ans =
     5     7     9    11    13
    12    10     8     6     4
    -4     0     4     8    12
>> Mat + 3
ans =
     5     7     9    11    13
    12    10     8     6     4
    -4     0     4     8    12
>> 3*ones + Mat
ans =
     5     7     9    11    13
    12    10     8     6     4
    -4     0     4     8    12

torna all'indice del modulo - del corso

1mai.12 - Prodotto di scalare per matrice

Il prodotto di uno scalare s per una matrice M porta alla matrice simile ad M che ha s*Mi,i come componente relativo alla riga i ed alla colonna j.

MATLAB consente di ottenere tale prodotto inserendo l'operatore ``*`` tra i due operandi, nell'ordine che si vuole, s*M = M*s.

Consideriamo una matrice Mat e calcoliamone la quadrupla Mat4 e l'opposta MatOpp

>> Mat = [2 4 6 8 10 ; 9 7 5 3 1 ; -7 -3 1 5 9]
Mat =
     2     4     6     8    10
     9     7     5     3     1
    -7    -3     1     5     9
>> Mat4 = 4 * Mat
Mat4 =
     8    16    24    32    40
    36    28    20   12      4
   -28   -12     4    20    36
>> MatOpp = - M
Mat =
    -2    -4    -6    -8   -10
    -9    -7    -5    -3    -1
     7     3    -1    -5    -9

torna all'indice del modulo - del corso

1mai.13 - Somma e differenza di matrici

La somma di due matrici simili M ed N e` la matrice che si indica M+N costituente la somma componente per componente dei due addendi, cioe` con (M+N)i,j = Mi,j + Ni,j. Essa si ottiene con MATLAB con la stessa espressione M+N.

In modo del tutto analogo si definisce e si costruisce la differenza tra due matrici simili M-N.

Osserviamo anche che queste operazioni generalizzano la somma di e la differenza fra vettori simili.

Costruisci la matrice Mat5 sommando Mat4 a Mat e la matrice Mat3 sottraendo Mat a Mat4.

>> Mat5 = Mat + Mat4
Mat5 =
    10    20    30    40    50
    45    35    25    15     5
   -35   -15     5    25    45
>> Mat3 = Mat4 - Mat
Mat3 =
     6    12    18    24    30
    27    21    15     9     3
   -21    -9     3    15    27

torna all'indice del modulo - del corso

1mai.14 - Combinazione lineare di matrici

Anche il prodotto di uno scalare per una matrice generalizza il prodotto di uno scalare per un vettore, riga o colonna.
Si osserva allora che si possono considerare le combinazioni lineari di matrici simili, costruzioni che generalizzano le combinazioni lineari di vettori.

Le matrici di un dato aspetto nr x nc si possono quindi considerare dei vettori; piu` precisamente dei vettori ad nr * nc dimensioni.

Si possono ad es. considerare le combinazioni lineari delle matrici ottenute con le functions eye ed ones (v. ml1map.htm)

>> c=2; d=3;
>> c*eye(4) + d*ones(4,4)
ans  =
   5   3   3   3
   3   5   3   3
   3   3   5   3
   3   3   3   5
>> c=3.5; d=-1.5;
>> c*eye(4) + d*ones(4,4)
ans  =
      2       -1.5    -1.5    -1.5
     -1.5     2       -1.5    -1.5     
     -1.5    -1.5     2       -1.5      
     -1.5    -1.5    -1.5     2

torna all'indice del modulo - del corso

1mai.15 - Matrici simmetriche, antisimmetriche, simmetrizzate ed antisimmetrizzate

Una matrice quadrata coincidente con la propria trasposta si dice simmetrica.
Ad ogni matrice quadrata M si associa la matrice simmetrica 1/2 * (M+M').

Una matrice quadrata coincidente con l'opposta della propria trasposta si dice antisimmetrica.
Ad ogni matrice quadrata M si associa la matrice antisimmetrica 1/2 * (M-M').

>> M = [1 2 ; 6 7];
>> Msimm = 0.5*(M+M')
Msimm =
      1    4
      6    7
>> Mantis = 0.5*(M-M')
Mantis =
      0   -2
      2    0

torna all'indice del modulo - del corso

1mai.16 - Matrici, loro simmetrizzate, loro antisimmetrizzate

Osserviamo che una matrice quadrata e` simmetrica sse coincide con la propria simmetrizzata, ovvero sse la sua antisimmetrizzata e` nulla.

Accade invece che una matrice quadrata e` antisimmetrica sse coincide con la propria antisimmetrizzata, ovvero sse la sua simmetrizzata e` nulla.

Osserviamo anche che ogni matrice quadrata coincide con la somma della propria simmetrizzata con la propria antisimmetrizzata.

Osserviamo infine il seguente parallelo:

matrici quadrate numeri complessi
trasposizioneconiugazione complessa
matrici simmetrizzate
punti fissi per la trasposizione
loro parti reali
punti fissi per la coniugazione
matrici antisimmetrizzate loro parti immaginarie

torna all'indice del modulo - del corso

1mai.18 - Somma e prodotto di matrici non eseguibili

Cerca di eseguire le seguenti operazioni e spiegati i risultati:
- ad Mpe34 addiziona la trasposta Mpe34';
- moltiplica Mpe34 per Mpe53.

>> Mpe34 + Mpe34'
??? Error using ==> +
Matrix dimensions must agree.
>> Mpe34 * Mpe53
??? Error using ==> *
Inner matrix dimensions must agree.

La prima segnalazione d'errore e` causata dalla richiesta di sommare due matrici di aspetto diverso: la seconda e` dovuta alla richiesta di moltiplicare due matrici non conformabili.

Si osservi invece che presa una qualsiasi matrice M ed ottenuta la sua trasposta M', sono conformabili sia la coppia (M,M') che la coppia (M',M).

torna all'indice del modulo - del corso

1mai.20 - Operazioni componente per componente tra matrici

Il sistema MATLAB mette a disposizione molte operazioni per le matrici, oltre a quelle dell'algebra lineare di base. In effetti MATLAB, come molti dei linguaggi di programmazione piu` recenti, cerca di dare una interpretazione plausibile, anche al di la` delle tradizioni, ad ogni richiesta dell'utente, ed in tal modo gli consente di chiedere una vasta gamma di prestazioni mediante comandi concisi.

Questo atteggiamento volto ad "interpretare la concisione" viene incontro alla opportunità di trattare con disinvoltura complessi di dati che e` naturale organizzare mediante matrici. Per contro l'utente poco esperto e poco attento rischia di richiedere operazioni diverse da quelle che vorrebbe far eseguire. Le conseguenze sono trascurabili se egli ha modo di accorgersi dell'errore commesso (il tempo richiesto dai calcoli in genere e` quasi impercettibile), mentre sono gravi se il risultato viene considerato adeguato alla esigenza che e` stata male espressa.

Mediante gli operatori ottenuti facendo precedere dal segno punto `` . `` ciascuno dei segni di operatore `` * ``, `` / ``, `` \ ``. `` ^ `` si chiede al sistema MATLAB di eseguire componente per componente le operazioni date dal secondo segno.

torna all'indice del modulo - del corso

1mai.21 - Quadrato dei componenti di una matrice

Eleva al quadrato ogni componente di una matrice Mat.

>> Mat.^2
ans =
     2     4     6     8    10
     9     7     5     3     1
    -7    -3     1     5     9
>> Mat.^2
ans =
     4    16    36    64  100
    81    49    25     9     1
    49     9     1    25    81

torna all'indice del modulo - del corso

1mai.22 - Prodotti e potenze dei componenti di matrici

Moltiplica ogni componente di Mat per il corrispondente componente di Mat elevato al quadrato. Confronta il risultato con la matrice delle terze potenze dei componenti di Mat.

>> Mat .* Mat.^2
ans =
           8          64         216         512        1000
         729         343         125          27           1
        -343         -27           1         125         729
>> Mat.^3
ans =
           8          64         216         512        1000
         729         343         125          27           1
        -343         -27           1         125         729

torna all'indice del modulo - del corso

1mai.23 - Divisioni tra i componenti di matrici

Dividi ogni componente di Mat per il corrispondente componente di Mat elevato al quadrato.

>> Mat ./ Mat.^2
ans =
    0.5000    0.2500    0.1667    0.1250    0.1000
    0.1111    0.1429    0.2000    0.3333    1.0000
   -0.1429   -0.3333    1.0000    0.2000    0.1111

Dividi ogni componente di Mat elevato al quadrato per il corrispondente componente di Mat .

>> Mat .\ Mat.^2
ans =
     2     4     6     8    10
     9     7     5     3     1
    -7    -3     1     5     9

torna all'indice del modulo - del corso

1mai.24 - Potenze dei componenti di matrici

Scrivi la matrice Quadr che fornisce gli usuali progressivi per i 4 quadranti del piano cartesiano; eleva ogni componente di Quadr alla potenza di esponente uguale all'componente stesso matrice e quindi eleva al quadrato ogni componente ottenuto.

>> Quadr=[2,1;3,4]
Quadr =
     2     1
     3     4
>> (Quadr.^Quadr).^2
ans =
          16           1
         729       65536
>> Quadr.^Quadr.^2
ans =
          16           1
         729       65536

Verifica se le per le due operazioni considerate vale la proprietà associativa.

>> Quadr.^(Quadr.^2)
ans =
  1.0e+009 *       
   0.00000001600000   0.00000000100000
   0.00001968300000   4.29496729600000

torna all'indice del modulo - del corso

1mai.27 - Matrici esprimenti funzioni di due variabili date da espressioni

Una importante applicazione delle matrici riguarda le funzioni di due variabili, individuate da una espressione in tali variabili. Chiamiamo x e y le due variabili e f(x,y) la espressione e consideriamo due progressioni di valori per la x e la y,
x1, x2, ..., xnr   ed   y1, y2, ..., ync.
Gli nr valori della prima progressione si associano alle righe di una matrice e gli nc valori della seconda alle sue colonne: nella casella corrispondente agli indici i e j, con 1 <= i <= nr e 1<= j <= nc, si pone il valore f(xi,yj)
La matrice cosi` ottenuta si dice matrice di campionamento della funzione f(x,y) corrispondente alle due progressioni. Essa fornisce i valori della f(x,y) in corrispondenza dei punti della griglia del piano Oxy aventi coordinate (xi,yj).

Questa matrice, se la espressione e` abbastanza regolare, puo` servire a darci un'idea dell'andamento della funzione, ovvero un'idea dell'aspetto della superficie nello spazio tridimensionale i cui assi chiamiamo Ox, Oy ed Oz, individuata dalla z=f(x,y).

Naturalmente si hanno molte informazioni se le progressioni presentano molti valori ravvicinati e quindi si ottengono molti valori per la funzione. Queste numerose informazioni sono pero` pesanti da interpretare ed in genere e` decisamente conveniente ricavare dalla matrice un grafico tridimensionale della campionatura. Questi grafici spesso non sono semplici da gestire. MATLAB comunque fornisce vari strumenti per ottenere queste rappresentazioni visive delle funzioni di due variabili (v.o.)

torna all'indice del modulo - del corso

1mai.30 - Prodotto righe per colonne di due matrici conformabili

Ricordiamo che due matrici si dicono conformabili sse il numero delle colonne della prima coincide con il numero delle righe della seconda. Per due matrici conformabili A e B si puo` definire il prodotto righe per colonne. In MATLAB tale composizione si richiede con l'operatore `` * ``.

>> A = [2 1 0 0 ; 1 1 3 2];
>> B = [ 0 0 1 ; 1 0 0 ; 3 0 0 ; 0 1 1];
>> C = A * B
C   =
      1   0   2
     10   2   3

torna all'indice del modulo - del corso

1mai.32 - Prodotto di due matrici conformabili e numeri di collegamenti

Consideriamo il prodotto di due matrici conformabili a componenti intere non negative.

>> A = [2 1 0 0 ; 1 1 3 2];
>> B = [ 0 0 1 ; 1 0 0 ; 3 0 0 ; 0 1 1];
>> C = A * B
C   =
     1   0   2
    10   2   3

La matrice A si puo` considerare la matrice che esprime i numeri dei collegamenti che si hanno tra un primo insieme di due nodi (in corrispondenza biunivoca con le righe di A) ed un secondo insieme di 4 nodi (in corrispondenza biunivoca con le colonne di A). Similmente la matrice B si puo` considerare la matrice dei collegamenti tra il secondo insieme di 4 nodi (in corrispondenza biunivoca anche con le righe di B) ed un terzo insieme di 3 nodi (in corrispondenza biunivoca con le colonne di B).

La matrice C, prodotto righe per colonne di A e B, fornisce allora i numeri dei collegamenti che iniziano con i nodi del primo insieme e finiscono nei nodi del terzo insieme e che sono ottenibili con due passi che toccano i nodi del secondo insieme (aventi il ruolo di stazioni intermedie).

Estendendo questa interpretazione al prodotto di tre o piu` matrici risulta naturale la proprieta` di associativita` del prodotto. Risultano evidenti anche degli esempi di non commutativita` del prodotto.

torna all'indice del modulo - del corso

1mai.34 - Prodotti interno ed esterno di vettori in termini di collegamenti

Puo` essere utile rivisitare il prodotto interno (scalare) di un vettore riga per un vettore colonna per vederlo come prodotto di matrici esprimenti collegamenti.

Si puo` quindi definire semplicemente il prodotto esterno di un vettore colonna per un vettore riga aventi lunghezze non necessariaente uguali e di interpretare anche questo in termini di collegamenti.

torna all'indice del modulo - del corso

1mai.35 - Somme di matrici di interi naturali e sommarsi di collegamenti

Anche le somme di matrici simili con componenti intere non negative si possono utilmente associare a sistemi di collegamenti tra i nodi di un primo insieme asociato alle righe delle matrici ed i nodi del secondo associati alle loro colonne. La somma di due matrici si puo` associare al contare quanti collegamenti si hanno fra le stazioni del primo insieme e le stazioni del secondo quando si considerino collegamenti di due tipi, ad es. collegamenti stradali dati dalla matrice primo addendo e collegamenti ferroviari dati dalla matrice secondo addendo.

Queste interpretazioni si possono estendere alle matrici con componenti razionali e reali pensando a flussi positivi o negativi tra canali tra i nodi dei diversi insiemi. Risultano allora naturali proprieta` delle somme tra matrici come associativita` e commutativita`

torna all'indice del modulo - del corso

1mai.36 - Distributivita` di prodotto e somma di matrici in termini di collegamenti

Se si considerando espressioni come (A+B)*C per matrici con componenti intere non negative in termini di collegamenti le proprieta` di commutativita`
(A+B)*C = A*C+B*C    A*(B+C) = A*B+A*C
risultano del tutto naturali.

torna all'indice del modulo - del corso

1mai.37 - Matrici quadrate e collegamenti entro un sistema di stazioni

torna all'indice del modulo - del corso

1mai.38 - Potenze di matrici in termini di collegamenti

torna all'indice del modulo - del corso

1mai.39 - Matrici binarie e digrafi - Cammini e circuiti

torna all'indice del modulo - del corso

1mai.14 - Prodotto di matrici

Costruisci:
- MatMattr moltiplicando Mat per sua trasposta
- MattrMat moltiplicando la trasposta di Mat per Mat

>> Mattr = Mat'
Mattr =
    10    45   -35
    20    35   -15
    30    25     5
    40    15    25
    50     5    45
>> MatMattr = Mat * MatTrasp
MatMattr =
   220   110   110
   110   165   -55
   110   -55   165
>> MattrMat = Matt * Mat
MattrMat =
   134    92    50     8   -34
    92    74    56    38    20
    50    56    62    68    74
     8    38    68    98   128
   -34    20    74   128   182

torna all'indice del modulo - del corso