next up previous

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