MATLAB.

Slides:



Advertisements
Presentazioni simili
MATLAB.
Advertisements

I SISTEMI LINEARI.
Dipartimento di Matematica
Laboratorio Processi Stocastici
MATEMATICA PER L’ECONOMIA
Dipartimento di Matematica
Capitolo 8 Sistemi lineari.
Vettori e matrici algebrici
Autovalori e autovettori
MATLAB Cristina Campi
MATLAB.
MATLAB.
MATLAB.
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
MATLAB Stefano Gagliardo
MATLAB.
PROPRIETÀ DEI DETERMINANTI
Si definisce matrice di ordine mn una tabella della forma:
COORDINATE POLARI Sia P ha coordinate cartesiane
LE MATRICI.
1 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Algebra delle Matrici.
Algebra lineare.
RICHIAMI ELEMENTARI DI ALGEBRA MATRICIALE
Statistica per le decisioni aziendali ed analisi dei costi Modulo II - Statistica per le decisioni Aziendali Richiami di Algebra Matriciale.
SISTEMI D’EQUAZIONI ED EQUAZIONI DIFFERENZIALI LINEARI.
MATLAB. Annalisa Pascarella
MATLAB.
MATLAB. Annalisa Pascarella
MATLAB.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Metodi iterativi G. Puppo.
Algebra lineare G. Puppo.
Soluzione FEM di problemi parabolici
Metodi FEM per problemi ellittici lineari a tratti Gabriella Puppo.
Metodi FEM in 2D G. Puppo.
FEM -3 G. Puppo.
Sistemi di equazioni lineari
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Introduzione all’algebra lineare
Corso di Chimica Fisica II 2013 Marina Brustolon
Algebra matriciale e linguaggio matriciale in MATLAB
1a-2a lezione di laboratorio
ORGANIZZAZIONE DELLA PRESENTAZIONE
Le matrici e I Sistemi lineari.
INTRODUZIONE A MATLAB.
MATRICI classe 3 A inf (a.s ).
Definizione di determinante
Lezione 3 Vettori e Matrici.
“Piano” Lab 1 – Fattorizzazione LU + pivoting
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Elementi di Matlab e di Mathematica
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Sottospazi vettoriali
Corso di Matematica (6 CFU) (4 CFU Lezioni +2 CFU Esercitazioni)
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
INTRODUZIONE A MATLAB Sara Poltronieri. Avvio del programma Avvio di Matlab (Windows) Start  Programmi  Matlab (o icona) Avvio di Matlab (Linux) terminale.
Metodo di Cramer Dato il sistema lineare a due incognite per risolvere il sistema dobbiamo costruire 3 matrici. È detta matrice un qualsiasi gruppo di.
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Riferimenti di cella. ProductQuantityUnit Price Extended Price% % Queso Cabrales12$14$1680, Singaporean Hokkien Fried Mee10$10$98#DIV/0!0,
Definizioni preliminari Sommario - Caratteristiche Principali – Assegnazione di variabili - Scrittura e manipolazione di matrici e vettori - Funzioni predefinite.
Prof. Cerulli – Dott. Carrabs
Transcript della presentazione:

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 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

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

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

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

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

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)

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

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

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]

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

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

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)

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

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)

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)

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];

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

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

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  ?

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

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…

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)

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

ci assicuriamo che il det di A sia diverso da zero Esempio A = [1 1 1; 1 1 -1; 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

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

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])

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

…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])

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

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.

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)

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) il rango è 3 => i vettori sono l.d.

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)

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

…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

Esercizio