Ulteriori informazioni su Matrici
ed Array
Ulteriori informazioni su Matrici ed Array
Questa seziona ci fornisce ulteriori informazioni sul modo di trattare matrici ed array ,
Focalizziamo ora l'attenzione sui seguenti argomenti:
1)Algebra Lineare
2)Arrays
3)Multivariate Data
Algebra Lineare
Spesso i termini matrici ed array sono usati in modo interconnesso. Più
precisamente, una matrice è un array numerico e due-dimensioni che rappresenta
una trasformazione lineare. Le operazioni matematiche definite sulle matrici sono il
soggetto dell'algebra lineare.
Dürer's magic square
A =
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
prevede molti esempi che danno un'idea delle operazioni sulle matrici in MATLAB.
Lei già ha visto la matrice trasposta, A'. Aggiungendo una matrice alla sua trasposta
si ottiene una matrice simmetrica.
A + A'
ans =
32 8 11 17
8 20 17 23
11 17 14 26
17 23 26 2.
Il simbolo della moltiplicazione, *, denota la moltiplicazione fra matrici come
prodotto tra file e colonne.
Moltiplicando una matrice alla sua trasposta si ottiene allo stesso modo una matrice simmetrica.
A'*A
ans =
378 212 206 360
212 370 368 206
206 368 370 212
360 206 212 378
Il determinante di questa particolare matrice risulta essere zero, indicando che
la matrice è singolare.
d = det(A)
d =
0
Ponendo:
R = rref(A)
R =
1 0 0 1
0 1 0 -3
0 0 1 3
0 0 0 0
quando la matrice è singolare, non ha un inverso. Se si tenta di calcolare
l'inverso con
X = inv(A)
si otterrà un segnale di avvertimento:
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 1.175530e-017.
L'errore di Roundoff ha prevenuto l'algoritmo di inversione di matrice dallo scoprire
la singolarità esatta.
Gli autovalori della magic square sono interessanti.
e = eig(A)
e =
34.0000
8.0000
0.0000
-8.0000
Uno degli autovalori è zero che è un altra conseguenza della singolarità.
Il più grande autovalore è 34,cioèpari alla somma magica. Questo perché il vettore unitario
è un autovettore.
v = ones(4,1)
v =
1
1
1
1
A*v
ans =
34
34
34
34
Quando una magic square è scalata della sua somma magica,
P = A/34
il risultato è una matrice le cui somme delle righe e colonne sono tutte uno.
P =
0.4706 0.0882 0.0588 0.3824
0.1471 0.2941 0.3235 0.2353
0.2647 0.1765 0.2059 0.3529
0.1176 0.4412 0.4118 0.0294.
Tali matrici rappresentano le probabilità della transizione in un processo di Markov.
Potenze ripetute della matrice rappresentano passi ripetuti del processo.
Ad esempio, la quinta potenza
P^5
è
0.2507 0.2495 0.2494 0.2504
0.2497 0.2501 0.2502 0.2500
0.2500 0.2498 0.2499 0.2503
0.2496 0.2506 0.2505 0.2493
Questo mostra che come k tende ad infinito, tutti gli elementi della kth potenza, P^k,
tendono ad 1/4.
Infine, i coefficienti nel polinomio della caratteristica
poly(A)
sono
1 -34 -64 2176 0
Questo indica che il polinomio della caratteristica
det( A - lambda I )
è
lambda^ 4 - 34 lambda^3 - 64 lambda^ 2 + 2176 lambda
Il termine costante è zero, perché la matrice è singolare, e il coefficiente del
termine cubico è -34, perché la matrice è magica!
ARRAY
Al di fuori del mondo dell'algebra lineare, le matrici possono essere viste come
array bidimensionali. Operazioni di aritmetica su arrays sono fatte
elemento per elemento. Questo vuole dire che somma e sottrazione si equivalgono
per arrays e matrici ma le operazioni di moltiplicazione sono diverse.
MATLAB usa un punto, o punto decimale, come parte della notazione per
operazioni di moltiplicazione degli arrays.
La lista degli operatori è la seguente:
+ La somma
- La sottrazione
. * Moltiplicazione elemento per elemento
. / Divisione elemento per elemento
. \ L'elemento per elemento divisione sinistra
. ^ Potenza dell'elemento per elemento
. ' transposta
Se la Dürer magic square è moltiplicata per se stessa attraverso la moltiplicazione di arrays
A.*A
il risultato è un array che contiene il quadrato dei numeri interi da 1 a 16, in un
ordine insolito.
ans =
256 9 4 169
25 100 121 64
81 36 49 144
16 225 196 1
Le Operazioni sugli array sono utili per costruire tavole.
Poniamo n il vettore colonna seguente:
n = (0:9)';
Poi
pows = [n n.^2 2.^n]
forma una tabella di quadrati e potenze di due.
pows =
0 0 1
1 1 2
2 4 4
3 9 8
4 16 16
5 25 32
6 36 64
7 49 128
8 64 256
9 81 512
Le funzioni di matematica elementari operano su arrays elemento per elemento.
Così:
format short g
x = (1:0.1:2)';
logs = [x log10(x)]
forma una tavola di logaritmi.
logs =
1.0 0
1.1 0.04139
1.2 0.07918
1.3 0.11394
1.4 0.14613
1.5 0.17609
1.6 0.20412
1.7 0.23045
1.8 0.25527
1.9 0.27875
2.0 0.30103
Multivariate Data
MATLAB usa l'analisi orientata sulle colonne per dati statistici multivariate.
Ogni colonna in una collezione dei dati rappresenta una variabile e ciascuna fila un'osservazione.
L'elemento (i,j)esimo è la iesima osservazione della jth variabile .
Come esempio, si consideri una collezione di dati con tre variabili:
-Heart rate
-Weight
-Hours of exercise per week
Per cinque osservazioni, l'array che ne risulta è il seguente:
D =
72 134 3.2
81 201 3.5
69 156 7.1
82 148 2.4
75 170 1.2
La prima fila contiene Heart rate ,Weight ,Hours of exercise per week per il paziente 1,
la seconda fila contiene i dati per il paziente 2, e così via. Ora Lei può applicare
molte delle funzioni di analisi dei dati di MATLAB a questa collezione di dati.
Per esempio, per ottenere la deviazione standard di ciascuna colonna:
mu = mean(D), sigma = std(D)
mu =
75.8 161.8 3.48
sigma =
5.6303 25.499 2.210
Per un elenco delle funzioni dell'analisi dei dati disponibili in MATLAB, digitare
help datafun
Se Lei ha accesso alle Statistics Toolbox, digiti
help stats