1a-2a lezione di laboratorio

Slides:



Advertisements
Presentazioni simili
LINGUAGGIO DI PROGRAMMAZIONE C
Advertisements

Dipartimento di Matematica
Metodi numerici in Matlab
Introduzione a Matlab Gabriella Puppo.
Modulo 4 – Seconda Parte Foglio Elettronico
MATLAB Cristina Campi
MATLAB.
MATLAB.
MATLAB.
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
MATLAB Stefano Gagliardo
PROPRIETÀ DEI DETERMINANTI
Introduzione a Matlab. Che cosa è Matlab Matlab è §un linguaggio di programmazione §un ambiente di calcolo scientifico con routines altamente specializzate.
1 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
2 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Corso di Matlab_Simulink per Ingegneria 3
FUNZIONI DI BIBLIOTECA
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
MATLAB. Annalisa Pascarella
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. Annalisa Pascarella
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.
Introduzione a Matlab Gabriella Puppo. Che cosa è Matlab Matlab è §un linguaggio di programmazione §un ambiente di calcolo scientifico con routines altamente.
Algebra lineare G. Puppo.
Soluzione FEM di problemi parabolici
FEM -2 Gabriella Puppo.
Metodi FEM in 2D G. Puppo.
FEM -3 G. Puppo.
NUMERI RELATIVI.
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).
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Algebra matriciale e linguaggio matriciale in MATLAB
1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a
3 a -4 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Laurea Specialistica in Ingegneria Matematica a.a
Esercitazione 2 – Generazione di variabili Matlab.
Analisi di Immagini e Dati Biologici
INTRODUZIONE A MATLAB.
MATRICI classe 3 A inf (a.s ).
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Lezione 3 Vettori e Matrici.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Vettori e Matrici Parte III.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Lezione 2 Scalari e stringhe.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Elementi di Matlab e di Mathematica
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
Lezione 1: Introduzione all’uso di Matlab
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Analisi di Immagini e Dati Biologici Introduzione al linguaggio di MATLAB/OCTAVE Parte 2 16 L5.
Informatica Applicata al Suono Tutorial Matlab
INTRODUZIONE A MATLAB LEZIONE 2 Sara Poltronieri.
INTRODUZIONE A MATLAB Sara Poltronieri. Avvio del programma Avvio di Matlab (Windows) Start  Programmi  Matlab (o icona) Avvio di Matlab (Linux) terminale.
Definizioni preliminari Sommario - Caratteristiche Principali – Assegnazione di variabili - Scrittura e manipolazione di matrici e vettori - Funzioni predefinite.
INTRODUZIONE A MATLAB/OCTAVE MANOLO VENTURIN UNIVERSITÀ DEGLI STUDI DI PADOVA DIP. DI MATEMATICA PURA ED APPLICATA A. A. 2007/2008.
Transcript della presentazione:

1a-2a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica a.a. 2007-2008

Desktop del MATLAB 7.0.4 1)workspace: riporta le variabili memorizzate. 2)Command History: riporta i comandi eseguiti nel Command Window. 3)Start: accesso ai tools, demos e documentazione dei prodotti MathWorks istallati sul computer.

4) Current Directory: permette l’accesso ai file memorizzati nella directory di lavoro. 5) Command Window: finestra di lavoro; esso viene usato per inserire variabili ed eseguire file function e file script

La directory di lavoro La directory di default è C:\Programmi\MATLAB704\work Se si vuole usare un’altra directory: si va nella directory desiderata utilizzando “current directory” si inserisce la directory desiderata nel path Il Path è un insieme di directory nei quali Matlab va a cercar i file da eseguire

Come visualizzare il Path Per visualizzare il path si può: digitare il comando ” path ” selezionare con il mouse dall’ambiente di calcolo la voce File e dal menu a tendina che compare, la voce Set path.

Come utilizzare il Path Per aggiungere una directory al path preesistente, selezionare con il mouse la voce File …. Set path …… Add Folder … Per cancellare una directory bisogna selezionarla nella finestra Set Path e poi spingere il pulsante Remove; opzione disponibile nel momento in cui si seleziona una directory.

Finestre Matlab Comandi utili: Le finestre di lavoro del MATLAB sono tre : Command window Edit window Graphic window Comandi utili: clc:ripulisce la finestra Command window clf :ripulisce la finestra Graphic window quit o exit: per uscire da MATLAB La C W di M è una finestra di testo che compare al lancio di Matlab e che dà la possibilità di digitare i comandi (che vengono eseguiti subito e riga dopo riga) e di visualizzare i risultati del calcoli. Graphic windows finestra in cui viene visualizzato l’andamento dei risultati Edit w. In cui èpossibile scrivere e salvare un file, in modo che tutte le istruzioni non debbano essere riscritte nel C. W.

Command Window Utilizzo interattivo Help online ans = 3.6621e+009 » 3*5^13 ans = 3.6621e+009 » help magic MAGIC Magic square. MAGIC(N) is an N-by-N matrix constructed from the integers 1 through N^2 with equal row, column, and diagonal sums. Help online ((La C W di M è una finestra di testo che compare al lancio di Matlab e che dà la possibilità di digitare i comandi e di visualizzare i risultati del calcoli.)) Il Workspace è un’area di memoria dove vengono memorizzate le variabili che vengono create durante una sessione di lavoro

Edit window Per visualizzare l’editor del Matlab si può: selezionare con il mouse dall’ambiente di calcolo la voce File e dal menu a tendina che compare, la voce New oppure Open se il file esiste già

Edit window Alternativamente, se il file è nuovo, si digita dal Command window il comando edit; se il file esiste già, e si vuole richiamare, si digita invece edit seguito dal nome del file.

Graphic window Per visualizzare ed utilizzare la finestra grafica del Matlab si possono utilizzare diversi comandi dal Command window oppure inserire tali comandi tra le istruzioni in edit window: Esempio 1 >> x=[1 2 3 4]; >> y=[3 5 7 9]; >> plot(x,y)

Graphic window Esempio 2 >> f='2*cos(x)'; >> fplot(f,[0,3])

Introduzione al MATLAB MATrix LABoratory La MATRICE è la chiave per comprendere MATLAB nessun dimensionamento trattata nel suo insieme operazioni più naturali possibili Gli elementi di una matrice possono essere sia dei numeri che dei caratteri il Matlab consente di trattare intere matrici in maniera veloce ed accurata. matlab è un sistema interattivo in cui il generico elemento non richiede dimensionamento

Regole per i nomi delle variabili I nomi devono cominciare con una lettera possono contenere lettere, cifre e il carattere underscore _ Matlab distingue il Maiuscolo dal Minuscolo sum = a+b+c se dopo aver calcolato sum cambio c il valore di sum rimane inveriato

Array numerici “ ; “ indica: fine di una riga in una matrice oppure soppressione di un output » x=4 x = 4 » c=[1,2;3,4]; » x=[-1.6 sqrt(4) (7+5)*4/3] -1.6000 2.0000 16.0000 Virgola/Spazio: gli elementi sono sulla stessa riga Qualunque espressione Matlab può essere usata come elemento di una matrice C=[1 2 3 4 5 6 7 8 9] può essere inserita come: c=[1,2,3;4,5,6;7,8,9] c=[1 2 3; 4 5 6; 7 8 9] mostrare i risultati con e senza l’operatore “;” I dati sono memorizzati in Double-Precision Floating-Point

Array numerici Elementi non definiti sono posti a zero Gli elementi di una matrice si possono individuare mediante numeri all’interno di parentesi tonde » x=[-1.6 sqrt(4) (7+5)*4/3]; » x(5)=abs(x(1)) x = -1.6000 2.0000 16.0000 0 1.6000 » x=0:7 x = 0 1 2 3 4 5 6 7 » y=0:0.5:3; » z=7:-1:0; » x=linspace(0,7,15); » rand(1,4) ans = 0.8913 0.7621 0.4565 0.0185 L’operatore “:” crea vettori di elementi equispaziati Vettore riga x=[] Vettore colonna x=[]’ concatenazione di array numerici; x=[y z] vettore riga x=[y;z] matrice ATTENZIONE z ed y devono avere stessa dimensione Senza assegnazione esplicita: ogni entità è memorizzata in ‘ans’

La matrice Colonne (n) A = Righe (m) Matrice: Vettore : m x 1 array 1 x n array Matrice: m x n array Scalare : 1 x 1 array Colonne (n) 1 2 3 4 5 A = Righe (m) 1 2 3 4 5

Come individuare gli elementi di una matrice >> A=magic(5); 1 2 3 4 5 A = 1 2 3 4 5 A(3,1) A(3,2) A([4,5],[2,3]) A(4:5,2:3) Gli elementi di una matrice possono essere individuati o tramite riga e colonna o utilizzando una numerazione progressiva. Gli indici di una matrice possono essere vettori

Come estrarre elementi da una matrice >> A=magic(5); 1 2 3 4 5 A = 1 2 3 4 5 Gli elementi di una matrice possono essere individuati o tramite riga e colonna o utilizzando una numerazione progressiva. Gli indici di una matrice possono essere vettori Si vogliono estrarre gli elementi dell’ultima colonna.

Come estrarre gli elementi dell’ultima colonna L’operatore “:” prende le righe 1-5 della matrice >> A=magic(5); >> A([1,2,3,4,5],5) >> A(1:5,5) >> A(:,5) >> A(:,end) L’operatore “:”, senza alcuna specifica, individua tutte le righe ans = 15 16 22 3 9 L’operatore “:” individua tutte le colonne se messo nella posizione delle colonne

Esercizio 1 Data la matrice A=eye(4) a) estrarre la prima riga e la terza colonna; b) sostituire l’ultima riga di A con il vettore r=[-1 2 -3 4]. » A=eye(4); % matrice identità 4x4 a)» p=A(1,:);q=A(:,3); b)» r=[-1 2 -3 4]; » A(end,1:4)=r; %oppure A(end,:)=r; %oppure A(end,:)=[-1 2 -3 4];

Formato dell’output Comando format Comando MATLAB Cifre decimali Esempio format short Default (4 cifre) 15.2345 format long 14 decimali 15.23453333333333 format short e 4 decimali 1.5235e+01 format long e 15 decimali 1.523453333333333e+01 format rat Razionale 5911/388 quando si lavora nel command windows si può decidere il formato di tutti i risultati numerici da un certo punto in poi con il comando format ….. Richiamare qualche variabile precedente cambiando il formato Format long e ricaricarla    

Concatenazione di vettori L’operatore [ ] serve a concatenare vettori >> x1=1:3 x1 = 1 2 3 >> x2=4:6 x2 = 4 5 6 >> x3=[x1 x2] x3 = 1 2 3 4 5 6 >> x4=[x1;x2] x4 = >>

Array di Stringhe L’operatore (’) delimita una stringa str1= ’Questa e’’ una stringa di prova’; str2=’che contiene 58 elementi’; str=strvcat(str1,str2) % strvcat costruisce un vettore % colonna str = Questa e' una stringa di prova che contiene 58 elementi str=strcat(str1,str2) % strcat costruisce un % vettore riga Questa e’ una stringa di prova che contiene 58 elementi Quando si fa concatenazione tutti gli array devono avere stessa dimensione vero anche per gli array numerici Concatena, nel senso che costruisce una matrice di stringhe in cui il numero di elementi appartenenti alle righe devono essere uguali.

Esercizio 2 Costruire un vettore x costituito da 10 numeri progressivi (es. da 51 a 60). Si calcoli dapprima la somma delle componenti del vettore x e poi la somma della prima ed ultima componente. Si costruisca un vettore p, le cui prime 10 componenti siano le stesse di x, mentre l’undicesima e la dodicesima siano rispettivamente la somma e la differenza delle prime due componenti.

Soluzione Esercizio 2 % oppure x=linspace(51,60,10); 2. » sum(x) %somma di tutte le componenti » x(1)+x(10) % oppure x(1)+x(end) % oppure » n=length(x); » x(1)+x(n) 3. » p=x; » p(11)=x(1)+x(2); » p(12)=x(1)-x(2); % oppure p=[x x(1)+x(2) x(1)-x(2)]; » q=[x(1)+x(2) x(1)-x(2)]; » p=[x q]

Variabili predefinite pi i, j eps realmin realmax ans » pi ans = 3.14159265358979 » eps 2.220446049250313e-016 » realmin 2.225073858507201e-308 » realmax 1.797693134862316e+308 Eps la più piccola quantità di cui possono differire due numeri nel computer realmax il più grande numero positivo rappresentabile realmin il più piccolo floating point rappresentabile 1,j =sqrt(-1) ogni variabile può essere riassegnata ma attenzione al conflitto di variabili!!!!

Variabili predefinite ATTENZIONE!! Nel caso si assegni il nome di una variabile predefinita ad una quantità di valore diverso, si perde il valore predefinito. ESEMPIO pi ans = 3.14159265358979 >> pi=3; >> pi pi = 3 Eps la più piccola quantità di cui possono differire due numeri nel computer realmax il più grande numero positivo rappresentabile realmin il più piccolo floating point rappresentabile 1,j =sqrt(-1) ogni variabile può essere riassegnata ma attenzione al conflitto di variabili!!!! Il valore rimane tale finché non si conclude la sessione MATLAB.

Variabili non numeriche predefinite NaN (Not a Number): NaN è ottenuto come risultato di operazioni matematicamente indefinite come 0.0/0.0 e inf-inf Inf: Infinito è prodotto da operazioni tipo divisione per zero, come 1.0/0.0, oppure da overflow, esempio exp(1000) » 0/0 Warning: Divide by zero. ans = NaN » b=1/0 b = Inf Possono tornare utili per definire dati che non hanno attinenza logica tra loro. Sono usati per creare elementi non significativi all’interno di matrici più avanti vi farò un esempio. » x=2.5e200; » y=1.0e200; » z=x*y z = Inf » x=2.5e-200; » z=x/y

Funzioni di utilità zeros(m,n):matrice mxn con tutti elem. = 0 oppure zeros(m)se la matrice è mxm; ones(m,n): matrice mxn con tutti elem. = 1 oppure ones(m) se la matrice è mxm; Se si vuole un vettore colonna (riga)di m componenti nulle oppure tutte uguali a 1, basta scrivere zeros(m,1) (zeros(1,m)) o ones(m,1)(ones(1,m)) rispettivamente. magic(m): matrice magica di dimensioni mxm eye (m): matrice identità di dimensioni mxm tril(A): matrice triang. infer. estratta da A triu(A): matrice triang. super. estratta da A diag(A): vettore contenente la diagonale di A Diag -> se è un vettore costruisce la matrice altrimenti restituisce il vettore Esempi: zeros(4) zeros(3,2) c=[1 2 3; 4 5 6]; dim=size(c); [m,n]=size(c) matrice della stessa dimensione di c d=zeros(size(c)) m=magic(5) m_inf=tril(m) piu la 1° sopradiagonale mi1=tril(m,1) m_sup=triu(m) più la 1° sottodiagonale ms1=triu(m,-1) v=diag(m) la 1° sopradiagonale v1=diag(m,1) la 1° sottodiagonale v2=diag(m,-1) n=diag(v) matrice con la diagonale di m => diag(diag(m)) Esercizio: costruire una matrice 5x5 che abbia tutti 2 sulla diagonale principale e 1 -1 sulla sovradiagonale e sottodiagonale a= diag(4*ones(1,n))+1*diag(ones(n-1,1),1)-1*diag(ones(n-1,1),-1)

Matrici particolari tril triu diag Sintassi: comando(nome_var,k) k positivo k=0 Esempi k=0 può essere omesso k=1 codiagonale superiore k=-1 codiagonale inferiore …… k negativo

Esercizio 3 Data la matrice A=[1:3; 4:6; 7:9] a) estrarre la seconda riga e la terza colonna; b) scambiare l’ultima riga con la prima riga. 2. Estrarre la diagonale della matrice A data in 1. e creare una matrice diagonale avente sulla diagonale gli elementi della diagonale di A. 3. Costruire una matrice tridiagonale 5x5 che abbia tutti 4 sulla diagonale principale, 1 sulla codiagonale superiore e -1 su quella inferiore.

Soluzione Esercizio 3 1.» A=[1:3;4:6;7:9]; » p=A(2,:);q=A(:,3); » x=A(1,:); % x: variabile di appoggio » A(1,:)=A(end,:); » A(end,:)=x; %oppure A([1,3],:)=A([3,1],:); 2.» b=diag(A); » c=diag(b); %oppure c=diag(diag(A)); 3.» n=5; » I1=ones(n,1); » I2=ones(n-1,1); » A=diag(4*I1)+1*diag(I2,1)-1*diag(I2,-1) % in questo caso anche A=diag(4*I1)+diag(I2,1)-diag(I2,-1)

Esercizio 4 Data la matrice A=[-5 1 2 0; 3 9 4 -7; 1 9 9 8;… -1 0 0 6] calcolarne il determinante; costruire la matrice L, triangolare inferiore, estratta da A (istruzione tril); costruire la matrice U, triangolare superiore, estratta da A (istruzione triu); costruire la matrice T, tridiagonale con gli stessi elementi di A sulla diagonale e le codiagonali (istruzione diag).

Soluzione Esercizio 4 » L=tril(A) » U=triu(A) » T1=diag(A,-1) » det(A) » L=tril(A) » U=triu(A) » T1=diag(A,-1) » T2=diag(A) » T3=diag(A,1) » T=diag(T1,-1)+ diag(T2)+diag(T3,1)

Operazioni su vettori A.^2 % eleva al quadrtato tutti gli elementi di a » x=[1 2 3]; » y=[4 5 6]; » % osservare la differenza tra divisione a destra e a sinistra » format rat » z=x./y z = 1/4 2/5 1/2 » z=y.\x » z=x.\y 4 5/2 2 la divisione a sinistra è come fare l’inversa di quello che c’è a sinistra e moltiplicare, cioè: Inv(y)*x’

Esempio1: elevamento a potenza di matrici » format rat » a=hilb(3) a = 1 1/2 1/3 1/2 1/3 1/4 1/3 1/4 1/5 » b1=a^2 % b1=a*a b1 = 49/36 3/4 21/40 3/4 61/144 3/10 21/40 3/10 769/3600 » b2=a.^2 % b2=a.*a b2 = 1 1/4 1/9 1/4 1/9 1/16 1/9 1/16 1/25

Esempio2: moltiplicazione tra matrici 1 2 3 4 5 2 3 4 5 6 >> B=[2:6; 3:7] B = 3 4 5 6 7 % Prodotto righe per colonne >> A*B' ans = 70 85 90 110 >> A*B ??? Error using ==> mtimes Inner matrix dimensions must agree >> A.*B ans = 2 6 12 20 30 6 12 20 30 42

Esercizio 5 Determinare la matrice con elementi pari al quadrato dei singoli elementi della matrice di Hilbert 6x6. Calcolare il prodotto elemento per elemento tra la matrice di Hilbert 6x6 e la matrice magica 6x6. Confrontare la matrice così ottenuta con la matrice hilb(6)*magic(6). Costruire due vettori: il primo x, contenente i numeri pari da 1 a 40, il secondo y, contenente i numeri dispari da 1 a 40. Calcolare il prodotto scalare dei due vettori x, y ed il vettore prodotto componente per componente.

Soluzione Esercizio 5 A.^2 2. B=hilb(6).*magic(6); 1. A=hilb(6) A.^2 2. B=hilb(6).*magic(6); C= hilb(6)*magic(6); 3. x=2:2:40; y=1:2:40; z=x*y’; %(z=x’*y è una matrice!!) z=x.*y;