1 / 39

MATLAB

MATLAB. Annalisa Pascarella pascarel@dima.unige.it. …di cosa parliamo oggi…. Piccola introduzione a Matlab Matrici definizione operazioni Sistemi lineari Ax=b A quadrata singolare e non A m x n Esercizi. MATLAB. MATrix LABoratory Linguaggio di programmazione interpretato

bruis
Download Presentation

MATLAB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MATLAB

  2. Annalisa Pascarella pascarel@dima.unige.it

  3. …di cosa parliamo oggi… • Piccola introduzione a Matlab • Matrici • definizione • operazioni • Sistemi lineari Ax=b • A quadrata singolare e non • A m x n • Esercizi

  4. MATLAB • MATrix LABoratory • Linguaggio di programmazione interpretato • legge un comando per volta eseguendolo immediatamente • Per avviarlo -> icona sul desktop command window

  5. 4 + 7 invio x = 9 -> invio MATLAB come calcolatrice-1 • è possibile definire variabili e operare su esse

  6. MATLAB come calcolatrice-2 • Operatori aritmetici +, -, *, /, ^, • Caratteri speciali ;, %, : • Variabili predefinite i, pi, NaN, Inf • 2/0 -> Inf • 0/0 -> NaN (Not-a-Number) • Funzioni elementari sin, cos, log, exp • Comandi speciali help, clear help sqrt

  7. Lavorare con MATLAB • In MATLAB tutte le variabili sono trattate come matrici • scalari -> matrici 1 x 1 • vettori riga -> matrici 1 x n v = (v1,…, vn) • vettori colonna -> matrici n x 1 v = (v1,…, vn)T • matrici -> matrici m x n

  8. per separare le righe trasposto Vettori • Per definire un vettore riga • Per definire un vettore colonna a = [1 2 3 4 5] o a = [1, 2, 3, 4, 5] a = [1; 2; 3; 4; 5] o a = [1 2 3 4 5] ’

  9. A = [3 0; 1 2] A = [3 0 1 2] B = [3 0 3; 1 2 0] Matrici - 1 • Per definire una matrice • size(B) -> dimensioni della matrice • per memorizzare le dimensioni -> [r c] = size(B)

  10. a1 = [3 0] a2 = [1 2] A = [a1;a2] Matrici - 2 b1 = [3;1] b2 = [0; 2] b3 = [3; 0] B = [b1, b2, b3]

  11. Il comando : • Importante per la manipolazione delle matrici • Esempi • generazione di vettori che siano delle progressione aritmetiche di passo costante • a = [1:10] o a = 1:10 • b = 1: .2 : 4 • c = 3:0 -> non produce niente!!!! • c = 3: -1: 1 • mediante : si possono estrarre righe e colonne

  12. Esercizio1 • Costruire il vettore • v = [1,2,…,19,20,20,19,…,2,1] • Costruire la matrice A avente come colonne i 3 vettori • v1 = [1,2,…,9] • v2 = [2,4,…,18] • v3 = [9,8,…,1]

  13. B(2,3) B(2,3) = 1; B Individuare\modificare elementi per selezionare un elemento per modificare l’elemento per visualizzare B

  14. B(:,[1 3]) B(:,2:3) B(2,:) B(:,2) Estrarre sottomatrici estrarre la riga R2 estrarre la colonna C2 sottomatrice 2 x 2

  15. Diagonale di A d = diag(A) diag(d) Matrici diagonali costruisce anche matrici diagonali a = [ 1 2 ]; diag(a)

  16. triu(B) tril(A) matrice triangolare inferiore -> Matrici triangolari matrice triangolare superiore ->

  17. identità di ordine n -> eye(n) eye(3) zeros(m,n) zeros(2,3) ones(m,n) ones(2,3) matrice nulla m x n -> Identità-zero-uno matrice m x n di 1 ->

  18. A(3,3) = 3 C = [2 3; 1 1] D = [A C] Matrici a blocchi • I modo • II modo • III modo C(3:4,3:4) = eye(2)

  19. Operazioni - 1 clear A=[1 2;3 4]; B=[1 0;-1 1]; C=[0 3 1;1 2 4]; D=[3 4 -1;5 2 3;0 1 -1];

  20. ??? Error using = => + Matrix dimensions must agree. Operazioni - somma A+B Somma / Differenza A-B A+C Trasposta A’

  21. Operazioni - prodotto Prodotto #CA = #RB A*B Elemento per elemento size(A) = size(B) A.*B Prodotto per uno scalare A*k

  22. Determinante det(B) det(D) 1 0 Determinante  2 rank(D) Rango  inv(B) inv(D) B^(-1) Inversa  ?

  23. Esercizio 2 • Costruire le matrici A e B • Estrarre da A 2 sottomatrici: • una costituita dalle ultime 3 colonne • una costituita dalla I e III riga e dalle colonne II e IV

  24. matrice dei coefficienti matrice dei termine noti Sistemi Lineari Teorema di Rouchè-Capelli • rango(A) = rango(A|b) <=> il sistema è risolubile • rango(A) = rango(A|b) = n => unica soluzione • rango(A) = rango(A|b) = p < n => ∞n-p soluzioni

  25. Risoluzione di sistemi Lineari Ax = b • Sostituzione • Cramer • SE A è quadrata E invertibile • Algoritmo di Gauss • operazioni elementari sulle righe • pivotizzazione (parziale o totale) -> importante quando si implementa l’algoritmo al calcolatore

  26. il simbolo nn è quello della divisione!! Sistemi Lineari non singolari • la soluzione è calcolata mediante l’algoritmo Gaussiano con pivot parziale • tempo richiesto minore del calcolo dell’inversa x = A\b x = inv(A)*b

  27. Esempio A = [1 1 1; 1 1 -1; 1 -1 1]; b = [3 2 2]’; det(A) x = A\b ci assicuriamo che il det di A sia diverso da zero

  28. A quadrata singolare A = [3 4 -1; 5 2 3; 0 1 -1]; b = [14 14 2]’; rank(A) rank([A b]) per vedere se il sistema è risolubile confrontiamo il rango di A con quello della matrice completa (A|b) questo sistema è risolubile in quanto rango(A)=rango(A|b)=2 => ∞ soluzioni

  29. Il comando rref • Per studiare e risolvere un sistema qualunque si deve ridurre la matrice completa (A|b) • Si usa il comandorref(reduced row echelon form ) rref([A b]) rrefmovie([A b])

  30. A non quadrata A = [1 0 1; 0 -1 0]; b = [0 1]’; rank(A) rank([A b]) rref([A b]) questo sistema è risolubile in quanto rango(A)=rango(A|b)=2 => ∞ soluzioni

  31. …riassumendo… • A quadrata NON singolare • Matlab ci fornisce la soluzione • A quadrata singolare o A m x n • rref ci restituisce la matrix ridotta • le soluzioni le dobbiamo scrivere noi a partire dalla matrix ridotta ottenuta x = A\b rank(A) rank([A b]) rref([A b])

  32. Esercizi • Studiare e risolvere, eventualmente, i seguenti sistemi lineari: • Lanciare per l’ultima matrice il comando rrefmovie([A b])

  33. Vettori l.i. • sono linearmenti indipendenti

  34. il rango è 3 => i vettori sono l.i. e quindi formano una base per R3 Esempio - 1 v1 = [1 0 2]’; v2 = [2 1 1]’; v3 = [1 2 0]’; A = [v1 v2 v3] rank(A)

  35. il rango è 3 => i vettori sono l.d. Esempio - 2 v1 = [1 2 0 1]’; v2 = [2 2 1 1]’; v3 = [1 0 1 0]’; v4 = [0 2 0 2]’; A = [v1 v2 v3 v4] rank(A)

  36. Esempio - 2 • Per trovare una c.l. nulla a coefficienti nn tutti nulli t.c. troviamo una soluzione nn nulla del sistema omogeneo Ak = 0 rref(A)

  37. il rango è 3 => i vettori sono l.i. i coefficienti lineari della combinazione si trovano: k=A\v Basi • Dopo aver verificato che i vettori v1, v2, v3 sono una base di R3esprimere v come c.l. dei vi v1 = [1 1 0’]’; v2 = [0 1 1]’; v3 = [1 0 1]’; v = [1 1 1]’; A = [v1 v2 v3] rank(A)

  38. …ricapitolando… • sono l.i.  rank(A)=m A (n>=m) • W = span(v1,v2,…,vm) • dim W = rank(A) • per trovare una base del s.s. BWsi considerano i vettori l.i. che costituiscono la matrix A • per esprimere un vettore w come c.l. dei vettori della base, si forma la matrix B avente per colonne le componenti di tali vettori e si risolve il sistema Bk=w • se i vettori sono l.d. => i coefficienti di una loro combinazione lineare non nulla si trovano risolvendo il sistema Ak=0

  39. Esercizio

More Related