La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

MATLAB. Annalisa Pascarella

Presentazioni simili


Presentazione sul tema: "MATLAB. Annalisa Pascarella"— Transcript della presentazione:

1 MATLAB

2 Annalisa Pascarella

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

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

5 MATLAB come calcolatrice-1 è possibile definire variabili e operare su esse x = 9 -> invio invio

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

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

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

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

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

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

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

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

14 Estrarre sottomatrici estrarre la riga R 2 B(2,:) B(:,2:3) estrarre la colonna C 2 B(:,2) sottomatrice 2 x 2 B(:,[1 3])

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

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

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

18 I modo I modo II modo II modo III modo III modo Matrici a blocchi A(3,3) = 3 C = [2 3; 1 1]D = [A C] 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 Operazioni - somma Somma / Differenza A+B A-B A+C ??? Error using = => + Matrix dimensions must agree. Trasposta A

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

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

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

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

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

26 Sistemi Lineari non singolari x = A\b il simbolo nn è quello della divisione!! x = inv(A)*b la soluzione è calcolata mediante lalgoritmo Gaussiano con pivot parziale tempo richiesto minore del calcolo dellinversa

27 Esempio A = [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; ]; b = [ ]; rank(A) rank([A b]) per vedere se il sistema è risolubile confrontiamo il rango di A con quello della matrice completa (A|b) soluzioni 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) Per studiare e risolvere un sistema qualunque si deve ridurre la matrice completa (A|b) Si usa il comando rref(reduced row echelon form ) Si usa il comando rref(reduced row echelon form ) rref([A b]) rrefmovie([A b])

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

31 …riassumendo… A quadrata NON singolare A quadrata NON singolare Matlab ci fornisce la soluzione Matlab ci fornisce la soluzione A quadrata singolare o A m x n A quadrata singolare o A m x n rref ci restituisce la matrix ridotta rref ci restituisce la matrix ridotta le soluzioni le dobbiamo scrivere noi a partire dalla matrix ridotta ottenuta 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: Studiare e risolvere, eventualmente, i seguenti sistemi lineari: Lanciare per lultima matrice il comando rrefmovie([A b]) Lanciare per lultima matrice il comando rrefmovie([A b])

33 sono linearmenti indipendenti Vettori l.i.

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

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

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

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

38 sono l.i. rank(A)=m A (n>=m) sono l.i. rank(A)=m A (n>=m) W = span(v 1,v 2,…,v m ) W = span(v 1,v 2,…,v m ) dim W = rank(A) dim W = rank(A) per trovare una base del s.s. B W si considerano i vettori l.i. che costituiscono la matrix A per trovare una base del s.s. B W si 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 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 se i vettori sono l.d. => i coefficienti di una loro combinazione lineare non nulla si trovano risolvendo il sistema Ak=0 …ricapitolando…

39 Esercizio


Scaricare ppt "MATLAB. Annalisa Pascarella"

Presentazioni simili


Annunci Google