# Matrici (superiori)
## MATRICI

Per poter utilizzare Octave bisogna fornirgli i dati da elaborare o i dati del problema da risolvere in forma matriciale . Una matrice è un insieme di dati omogenei i cui elementi, nel caso di matrici bidimensionali, sono accessibili mediante una coppia di indici .Una matrice A di dimensione 5*6 generica è simbolicamente rappresentata da
$A={\begin{pmatrix}a_{11}&a_{12}&a_{13}&a_{14}&a_{15}&a_{16}&\\a_{21}&a_{22}&a_{23}&a_{24}&a_{25}&a_{26}&\\a_{31}&a_{32}&a_{33}&a_{34}&a_{35}&a_{36}&\\a_{41}&a_{42}&a_{43}&a_{44}&a_{45}&a_{46}&\\a_{51}&a_{52}&a_{53}&a_{54}&a_{55}&a_{56}&\end{pmatrix}}$
Si nota che la matrice ha 5 righe e 6 colonne e che la numerazione degli indici parte da 1 (e non da zero come accade nel linguaggio C). Essendo una matrice generica al suo interno non compaiono dei numeri , ma solo un generico simbolo a$_{ij}$ che rappresenta un numero qualsiasi; i rappresenta l'indice della riga, j invece l'indice della colonna. Octave memorizza i vettori come matrici bidimensionali con una sola riga o con una sola colonna , ad esempio un vettore di 4 elementi può essere memorizzato come una matrice 1*4 (una sola riga composta da 4 elementi) o come una matrice 4*1 (una sola colonna).
| $B={\begin{pmatrix}a_{11}&a_{12}&a_{13}&a_{14}&\end{pmatrix}}$ | oppure $C={\begin{pmatrix}a_{11}&\\a_{21}&\\a_{31}&\\a_{41}&\end{pmatrix}}$ |
Naturalmente negli esercizi si utilizzeranno dei numeri al posto dei generici elementi a$_{ij}$ ; nel caso di una matrice D come in figura
$D={\begin{bmatrix}2&4&1&\\0&0&7&\\1&9&7&\\2&2&1&\\\end{bmatrix}}$
se la vogliamo scrivere in Octave si deve impartire il seguente comando D=[2 4 1; 0 0 7; 1 9 7; 2 2 1] . Osservate che come separatore per i numeri all'interno della stessa riga si è usato lo spazio, mentre come simbolo per indicare che la riga della matrice è finita si è usato il ; notate anche che l'ultima riga non ha il ; Date due matrici A e B con la stessa dimensione (numero di righe e colonne) è possibile calcolarne la somma e la differenza e il prodotto o il rapporto fra elementi con lo stesso indice. Con Octave per eseguire queste operazioni si scrive : C=A + B; D=A - B; E=A .* B; F=A ./ B; attenzione al puntino prima del * e del /
numericamente se A e B sono
| $A={\begin{bmatrix}4&8&\\0&0&\\6&27&\\\end{bmatrix}}$ | e la matrice $B={\begin{bmatrix}2&4&\\1&1&\\1&9&\\\end{bmatrix}}$ |
allora otteniamo
| $C={\begin{bmatrix}6&12&\\1&1&\\7&36&\\\end{bmatrix}}$ | $D={\begin{bmatrix}2&4&\\-1&-1&\\5&18&\\\end{bmatrix}}$ | $E={\begin{bmatrix}8&32&\\0&0&\\6&243&\\\end{bmatrix}}$ | $F={\begin{bmatrix}2&2&\\0&0&\\6&3&\\\end{bmatrix}}$ |
Octave permette anche di calcolare il prodotto fra due matrici con il comando C=A*B; (questo prodotto * è diverso dal precedente dove si aveva .* ) in questo caso il numero di colonne di A deve essere uguale al numero di righe di B. La matrice C risultante ha un numero di righe uguali a quello di A e un numero di colonne pari a quelle di B (nrA=ncB), e il singolo elemento della matrice C è pari a
$c_{ij}=\sum _{k=1}^{numcolA}a_{ik}*b_{kj}$
Ricordate che per le matrici il prodotto non gode della proprieta' commutativa e quindi A*B è di solito diverso da B*A .
Ricordiamo anche come è fatta la matrice Identità: è una matrice quadrata con tutti gli elementi nulli tranne quelli della diagonale principale che valgono 1; la matrice I Identita 4*4 vale allora
Definiamo anche la matrice trasposta di una matrice,essa per definizione è la matrice ottenuta scambiandone le righe con le colonne. La trasposta di una matrice A è la matrice A$^T$ , il cui generico elemento con indici (i, j) è l'elemento con indici (j, i) della matrice originaria. In simboli: $a_{ij}^{T}=a_{ji}$
La matrice simmetrica è invece una matrice quadrata che ha la proprietà di essere la trasposta di se stessa.Detta A$^T$ la matrice trasposta di A, una matrice A è simmetrica quando: $A^{T}=A$ o in altro modo se $a_{ij}=a_{ji}$
Octave calcola anche l'inversa di una matrice: se A è la matrice per calcolare B=A$^{-1}$ uso il comando B=inv(A); ricordate inoltre che l'inversa di una matrice gode della proprieta' che A$^{-1}$*A=I e che l'inversa è calcolabile solamente se il determinante della matrice A è diverso da zero. Se B è il determinante di A lo si calcola in Octave con il comando B= det(A); ricordate inoltre che la trasposta di una matrice non è la sua inversa, se B è la trasposta della matrice A allora per calcolare B in Octave bisogna fare B=A$^'$
Esercizi per casa : ripassare le matrici, calcolare manualmente il prodotto di due matrici C=A*B usando
| $A={\begin{bmatrix}2&1&0&2&\\3&1&0&1&\\0&2&1&0&\end{bmatrix}}$ | $B={\begin{bmatrix}1&0&\\-1&1&\\0&2&\\1&1&\end{bmatrix}}$ | con la $c_{ij}=\sum _{k=1}^{numcolA}a_{ik}*b_{kj}$ |
e seguendo le istruzioni presenti nella pagina installare Octave .