La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

MATLAB.

Presentazioni simili


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

1 MATLAB

2 Annalisa Pascarella

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 MATLAB puo’ essere definito come un un ambiente di lavoro particolarmente adatto ad applicazioni numeriche E’ un programma studiato per operare su matrici, infatti MATLAB sta x MATRIX LABORATORY E’ un linguaggio di programmazione interpretato, in quanto legge un comando x volta e lo esegue immediatamente command window

5 MATLAB come calcolatrice-1
4 + 7 invio x = 9 -> invio è 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 Vettori Per definire un vettore riga a = [1 2 3 4 5]
Per definire un vettore colonna a = [ ] o a = [1, 2, 3, 4, 5] per separare le righe trasposto a = [1; 2; 3; 4; 5] o a = [ ] ’

9 Matrici - 1 Per definire una matrice A = [3 0; 1 2] A = [3 0 1 2]
B = [3 0 3; 1 2 0] Il punto e virgola dopo il comando fa si che il risultato nn venga visualizzato size(B) -> dimensioni della matrice 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]
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 Un comando importante in Matlab è :. Tale simbolo è importante x la manipolazione delle matrici. L’incremento di default è 1 ma si possono assegnare passi diversi. Per avere dei passi negativi è necessario assegnare il passo

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

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

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

15 Matrici diagonali Diagonale di A  d = diag(A) a = [ 1 2 ]; diag(a)
costruisce anche matrici diagonali la funzionale diag applicata ad una matrix restituisce la matrix colonna contenente la diag di A diag(vettore) restituisce una matrix diagonale avente sulla diagonale il vettore diag(d) a = [ 1 2 ]; diag(a)

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

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

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

22 Determinante det(B) 1 Determinante  det(D) 2 Rango  rank(D) inv(B)
Determinante  Rango  rank(D) 2 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 Sistemi Lineari Teorema di Rouchè-Capelli
matrice dei coefficienti matrice dei termine noti 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 …un po’ di teoria…

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 Algoritmo di Gauss: mediante trasformazioni elementari sulle righe si trasforma il sistema di partenza in un sistema equivalente, dove la matrix dei coefficienti è triangolare superiore. Da un punto di vista teorico nn ha importanza la scelta del pivot, tale scelta è importante quando implementiamo l’algoritmo. (in analisi numerica si deve sempre tener presente che si lavora con una certa approssimazione e che si ha il problema della propagazione degli errori)

26 Sistemi Lineari non singolari
il simbolo nn è quello della divisione!! x = A\b x = inv(A)*b Matlab è in grado di determinare la soluzione mediante l’algoritmo gaussiano facendo uso della pivottzzazione parziale, scegliendo per ogni colonna il pivot con valore assoluto + grande (si potrebbe pensare di risolvere un sistema quadrato nn singolare implementando il metodo di Cramer, ma computazionalmente si avrebbe un costo di n! => troppe operazioni!) la soluzione è calcolata mediante l’algoritmo Gaussiano con pivot parziale tempo richiesto minore del calcolo dell’inversa

27 ci assicuriamo che il det di A sia diverso da zero
Esempio A = [1 1 1; ; ]; b = [3 2 2]’; det(A) x = A\b Comandi da eseguire 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 comando rref(reduced row echelon form ) rref([A b]) rref calcola una matrice R ridotta ed quivalente per righe alla matrice A. La matrice ridotta è determinata mediante la pivotizzazione parziale e l’algoritmo di Gauss-Jordan: in ogni colonna si cerca il pivot con val assoluto + grande, la riga è portata al primo posto utile e viene SUBITO divisa x il pivot. Tutta la colonna del pivot è annullata con op elementari anche sopra la riga del pivot rrefmovie consente di visualizzare passo dopo passo l’algoritmo 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 A quadrata singolare o A m x n
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
Fissata una base nello s.v. V possiamo associare in modo unico ad un vettore v un elemento di Rn => per vedere se i vettori sono l.i. o no si puo’ operare direttamente in Rn Si scrivono i vettori in componenti e si forma la matrix A che ha come colonne le componenti dei vettori e si calcola il rango della matrix. I vettori corrispondenti alle colonne dei pivot sono quelli l.i.

34 Esempio - 1 v1 = [1 0 2]’; v2 = [2 1 1]’; v3 = [1 2 0]’;
il rango è 3 => i vettori sono l.i. e quindi formano una base per R3 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 = [ ]’; 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. troviamo una soluzione nn nulla del sistema omogeneo Ak = 0 rref(A)

37 Basi Dopo aver verificato che i vettori v1, v2, v3 sono una base di R3 esprimere 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) il rango è 3 => i vettori sono l.i. i coefficienti lineari della combinazione si trovano: k=A\v

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. BW 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 se i vettori sono l.d. => i coefficienti di una loro combinazione lineare non nulla si trovano risolvendo il sistema Ak=0 A è la matrix avente x colonne le componenti dei vettori

39 Esercizio


Scaricare ppt "MATLAB."

Presentazioni simili


Annunci Google