Elementi di MatLab e Mathematica

Slides:



Advertisements
Presentazioni simili
Teoria e Tecniche del Riconoscimento
Advertisements

MATLAB.
MATLAB. Outline Grafica 2D Esercizi Grafica 3D Esercizi.
MATLAB.
Lelasticità e le sue applicazioni Capitolo 5.. Harcourt, Inc. items and derived items copyright © 2001 by Harcourt, Inc. Lelasticità è: quanto u la misura.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
MATLAB.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
PRODOTTO CARTESIANO Otteniamo un prodotto cartesiano quando: viene omessa la condizione di join una condizione di join non è valida tutte le righe della.
FUNZIONI DI GRUPPO Le funzioni di gruppo operano su un set di record restituendo un risultato per il gruppo. AVG ([DISTINCT|ALL] n) media, ignora i valori.
Constraints.
1 Programmazione grafica 1 Daniele Marini. 2 Linguaggio di riferimento OpenGL: libreria di procedure che realizza un API (application programmers interface)
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Ricerca di una chiave: Search(x, k) if x == nil or k == x.key return x
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
PRINCIPALI STRATEGIE DI PROBLEM SOLVING
1 Versione slide: dicembre Il programma Power Point serve per creare presentazioni. Si apre dal menu Start -> Programmi o con licona sul desktop.
Presentazione Finale Team 2 1. Decomposizione in sottosistemi 2.
Piero Scotto - C141 C14 #14 Puntatori e file. Il problema dellordinamento. Debug.
Parola di Vita Febbraio 2010 Io sono la porta: se uno entra attraverso di me, sarà salvo; entrerà e uscirà e troverà pascolo (Gv 10,9).
Microsoft Access Maschere.
Piano gestione solventi
La retta.
JavaScript Lezione 5 Tipizzazione ed operazioni tra tipi diversi Istruzioni di input.
Microsoft Access Cosa sono i database, microsoft access, le relazioni e le tabelle.
PRIMI DISEGNI CON CABRI Realizzato da Daniel Bulgarini e Matteo Co CLASSE 2°C LICEO PASCAL MANERBIO.
I 7 strumenti della qualità
una generalizzazione del Modello Media-Varianza
DISPOSITIVI ASIC Application Specific Integrated Circuit De Faveri Martina Classe 3 BET.
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 15 Aprile 2013 Gianluca Durelli – Marco D. Santambrogio –
C OME CREARE I FRAME. Dal pannello File fai doppio clic sul file default.html per aprire la pagina (figura 1.1). Figura 1.1 Il file default.html.
I mille volti della formazione dalle-learning allemployergame Novembre 2012 I mille volti della formazione: dalle-learning allemployergame 4° Release Novembre.
Creare grafici con un foglio di calcolo Copyright© owned by Ubaldo Pernigo, please contact: Tutti i contenuti, ove non diversamente.
POINT BREAKBREAK EVENTEVENT Prof. Pietro Samarelli.
Tableau de bord Cruscotto di direzione
El Kaouam Reda Clemente Vincenzo
Analisi del video: Come può essere così difficile? Dopo aver visto il documentario, sul sito
OUTPUT FORMATTATO La funzione printf consente di effettuare la stampa a video formattata. Sintassi: printf ( stringa_formato, arg0, arg1, … ); La stringa.
Tutorial relativo al Mio EBSCOhost. Benvenuti al tutorial dedicato a Mio EBSCOhost, verranno fornite le istruzioni per la configurazione e lutilizzo ottimizzato.
Modulo 1 bis Menù Incolla Esercitazione Un computer è quasi umano, a parte il fatto che non attribuisce i propri errori a un altro computer. (Anonimo)
Tipologia dotazione informatica Le dotazioni informatiche nelle scuole comprendono soprattutto stampanti,mentre è limitato il numero degli scanner.
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
Perché insegnare statistica a scuola Utilità della Statistica 1.è a fondamento della crescita democratica di un nazione moderna 2.è essenziale per monitorare.
INTERNET Internet è una rete a livello mondiale che permette alle persone di comunicare ed ad accedere a banca dati da qualunque parte del mondo e su qualunque.
Progettazione di un impianto mini-idroelettrico; Studio della turbina
LAVORO ED ENERGIA L’energia è la capacità di un sistema di compiere lavoro In natura esistono diverse forme di energia e ognuna di esse si trasforma continuamente.
Istituzioni di Economia Politica II
Foglio elettronico A. Ferrari. Syllabus (estratto) Lavorare con i fogli elettronici e salvarli in diversi formati. Inserire dati nelle celle e applicare.
LEGGI DI CONSERVAZIONE
Calibrating (Partial Equilibrium) Mathematical Programming Spatial Models Open questions … (filippo arfini) III Workshop PUE&PIEC - Treia (Mc), 3-4 febbraio.
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
Collection & Generics in Java
ROOT Tutorial Parte 2.
Disequazioni in una variabile. LaRegola dei segni La disequazione A(x) · B(x) > 0 è soddisfatta dai valori di per i quali i due fattori A(x) e B(x) hanno.
L’integrale indefinito
Le primitive di una funzione
Controlli Automatici - A.A. 2003/2004
Le disequazioni DEFINIZIONE DISEQUAZIONI EQUIVALENTI
Il concetto di derivata
Equazioni differenziali
Lo studio completo di una funzione
Equazioni di 2°grado Introduzione.
Le primitive di una funzione
Equazioni di 2°grado Prof.ssa A.Comis.
I sistemi di equazioni di 1° grado
Transcript della presentazione:

Elementi di MatLab e Mathematica Grafici e Studio di funzioni

Grafica 2D plot Crea un grafico da vettori di valori fplot Disegna un grafico dal prototipo di una funzione ad una variabile title Aggiunge un titolo al grafico xlabel Label asse x ylabel Label asse y text Mostra un testo ad una posizione generica gtext Mostra un testo ad una posizione acquisita grid Mostra (toglie) la griglia

Grafico di sen(x) più grafico di 2sin(x)+cos(x) Anzitutto generiamo un vettore di valori attraverso linspace (linspace genera un vettore di b valori distanziandoli di un certo coefficiente che accetta come parametro di ingresso), la sintassi è la seguente linspace (a,x,b). Nel nostro caso linspace(0,2*pi,100) Poi definiamo le due funzioni e generiamone i valori: >> x= linspace(0,2*pi,100) >>Y1=sin(x) >>Y2=2*sin(x)+cos(x) Disegnamo il grafico attraverso le seguenti istruzioni >> plot(x,y1,'-',x,y2,':') Esaminiamo il comando plot >> grid >> xlabel('Asse x') >> ylabel('Asse y') >> title('Grafico delle 2 funzioni') >> text(x(5),y1(5),'sin(x)') >>text(x(30),y2(30),'2sin(x)+cos(x)')

Le opzioni di plot Il comando plot accetta una serie di parametri tra cui i più importanti sono i colori. La funzione la seguente sintassi plot(x,y,’colore') I colori disponibili sono: ‘c’ = azzurro;‘m’=Magenta;‘y’=Giallo 'r‘= rosso 'g‘=verde 'b‘=blu 'w‘=bianco 'k‘=nero Lo stile che le linee possono assumere sono: '-' per una linea piena, '--' per una linea tratteggiata, ':' per una linea punteggiata, '-.' per una linea tratti-punti. Lo stile prescelto va inserito subito dopo il colore in questo modo plot(x,y,‘colore--') La forma dei punti può essere:'+', 'o','*','x‘, 's‘ per i quadrati, 'd' forma di diamanti, '^' per i triangoli plot(x,y,‘colore--+')

Grafico 3D contour,contour3 curve di livello mesh, meshc, meshz 3D prospettici zlabel Label asse z clabel Label curve di livello

Calcolo simbolico I calcoli simbolici (ossia calcoli analoghi a quelli che noi eseguiamo con carta e penna quando sviluppiamo il quadrato di un binomio) possono essere effettuati da pochi programmi specifici quali per esempio Maple, Mathematica, MatLab, Scilab e Octave. MatLab può eseguire calcoli simbolici attraverso il Symbolic Mathematics toolbox che utilizza le routine di calcolo simbolico di Maple. Il calcolo simbolico non comporta le approssimazioni introdotte dal calcolo numerico, ma il prezzo da pagare per ottenere questo ricade sulla velocità d’esecuzione e sulla necessità di particolari strutture dati. Verrà fatto largo uso del calcolo simbolico da adesso in poi specialmente per quanto riguarda il disegno di grafici, limiti, derivazione ed integrazione. Inizieremo quindi con la definizione di variabili simboliche e di funzioni simboliche.

Variabili e calcoli simbolici La parola chiave principale è syms che consente di dichiarare quali variabili sono simboliche. L’uso risulta estremamente intuitivo per esempio espandiamo il quadrato di un binomio. >>syms a b; >>expand((a+b)^2) Proviamo invece a risolvere simbolicamente un polinomio di secondo grado: >>syms a b x; rendo simboliche le variabili >>solve(‘a*x^2+b*x+c=0’) Possiamo rendere simbolico il prototipo di una funzione attraverso i seguenti comandi: >>f=inline(‘x^3’) >>f =Inline function: f(x) = x^3 Possiamo rendere simbolica una variabile che verrà usata per i calcoli successivi, la sintassi è la seguente syms variabile, in particolare >>syms x; Adesso possiamo iniziare con lo studio di funzioni.

Altri comandi di calcolo simbolico Proviamo ad inserire i seguenti comandi: >>syms x y >>(x-y)*(x-y)^2 >>ans= (x-y)^3 >>expand(ans) >>ans =x^3-3*x^2*y+3*x*y^2-y^3 >>factor(ans) >>ans = (x-y)^3 Proviamo adesso ad inserire i seguenti comandi >>z = xˆ2 - 2*x*y + y >>5*y*z ans = 5*y*(x^2-2*x*y+y) Come si vede possiamo eseguire molte azioni con il calcolo simbolico

Grafico di una funzione ad una variabile Per disegnare una funzione ad una variabile si utilizza la funzione fplot(funzione ,”estremi”). Dove funzione è la funzione scritta per esteso e gli “estremi” sono i valori massimi e minimi del dominio che stiamo analizzando. Gli “estremi” hanno la seguente sintassi [xmin,xmax] oppure [xmin, xmax, ymin, ymax]. Esempio visualizziamo la seguente funzione x^2. Sintassi >> syms x; //rendiamo la variabile simbolica >>fplot(‘x^2’,[-10 10]); //disegnamo la funzione

Grafico di una funzione a due variabili Il grafico di una funzione a più variabili viene fatto attraverso la funzione mesh che prende come parametri X,Y,Z ed ha il seguente prototipo mesh(X,Y,Z). Il grafico S di una funzione z = f( x, y ) è la superficie S formata da tutti i punti della forma ( x, y, f( x, y ) ). In questo caso le equazioni parametriche di S sono x = u y = v z = f( u, v ) dove i parametri u e v coincidono con le variabili x ed y. A questo punto si procede così: si costruisce una griglia di punti in una regione rettangolare del piano R2, specificando gli estremi di variazione xmin e xmax della variabile x, gli estremi di variazione ymin e ymax della variabile y ed i rispettivi passi Dx e Dy attraverso il comando [ x , y ] = meshgrid( xmin : Dx : xmax, ymin : Dy : ymax ), se gli estremi di variazione ed il passo sono uguali per entrambe le variabili si può scrivere più brevemente [ x , y ] = meshgrid( min : D : max ); si valuta la funzione f in ogni punto della griglia, costruendo la matrice z = f( x, y); infine si rappresenta la supeficie mediante un reticolato con mesh( x, y, z ) oppure mediante un reticolato con pannelli opachi con surf( x, y, z ). NB Il grafico della funzione simbolico a due variabili è fatto attraverso ezmesh

Rappresentiamo la seguente funzione Per rappresentare il diagramma della funzione f, definita da >>[ x , y ] = meshgrid( -2 : .1 : 2 ); >>z = x .*exp( - ( x - y.^2 ).^2 - y.^2 ); >>mesh( x, y, z ) Per rappresentare in uno stesso grafico due diagrammi distinti (di funzioni, superficie, curve, etc.) si utilizza il comando hold on. L'azione di questo comando consiste nel non cancellare il contenuto della finestra grafica quando si disegna un nuovo grafico. Con il comando hold off si annulla l'azione del comando hold on. Ad esempio, per rappresentare simultaneamente il grafico della funzione ed il grafico del piano tangente nell'origine si può scrivere: >>[x,y]=meshgrid(-2:.1:2); >>z=x.^2-y.^2;  >>surf(x,y,z),holdon >>z=0*x;  >>surf( x, y, z )

Curve di livello Per disegnare le curve le livello in un grafico 2D si utilizza il comando contour(Z), il comando accetta come dato di ingresso la matrice contenente il valore di Z precedentemente calcolato. Per disegnare le curve di livello 3D si utilizza il comando contour3(Z). E’ possibile disegnare le curve di livello insieme al grafico attraverso il comando subplot;

Comando sub plot Il comando subplot ci permette di mettere in una singola finestra n grafici. Il funzionamento è abbastanza semplice, il “foglio” del grafico può essere diviso in una matrice di m righe ed n colonne. Digitando subplot(2,2,1) eseguiamo la seguente azione, dividiamo il foglio del grafico in una matrice di due righe e due colonne e ci stiamo riferendo al primo elemento (grafico) della nostra matrice, digitando subplot(2,2,2) ci riferiamo al secondo grafico disponibile e così via. Per esempio digitiamo i seguenti comandi: >> x= linspace(0,2*pi,100) ; >> Y1=sin(x); >> subplot(2,1,1); >> plot(Y1); >> subplot(2,1,2); >>plot(Y1);

Torniamo allo studio della nostra funzione Abbiamo già definito la funzione Possiamo adesso iniziare a disegnare la funzione attraverso il comando fplof >>syms x; >>fplot(‘x^2’,[-10 10 -10 10]) Mettere le caratteristice del grafico Cerchiamo adesso il minimo attraverso la funzione fminbnd(funzione,intervallo di ricerca) che restituisce il valore di x in cui la y è più bassa. >>fminbnd(‘x^2’,-10,10); Si possono anche stampare i metodi numerici utilizzati per trovare il minimo e corrispondentemente il valore assunto dalle y attraverso la seguente sintassi fminbnd(‘x^2’,-300,4,optimset('TolX',1e-12,'Display','iter')) MatLab non dispone di una funzione per il calcolo del massimo, ma viene utilizzata sempre la funzione fminbnd ponendo il meno davanti alla funzione ovvero invertendo il campo di definizione.

Studio di funzioni Possiamo cercare gli zeri di una funzione attraverso la fzero (funzione,x1,x2) che restituisce il valore di x in cui la funzione assume valore 0: >>fzero(‘x^2’,0,3) >>ans=0; Se proviamo a trovare i punti in cui la funzione assume valore 0 in un intervallo in cui la funzione non è definita avremo il seguente messaggio di errore: >>fzero(‘1/x’,0,3) Warning: Divide by zero. ??? Error using ==> fzero Function value at starting guess must be finite and real.

Studio di funzioni Troviamo il limite della nostra funzione, il limite di una funzione viene trovato tramite il comando limit(funzione,x,valore a cui tende x,direzione opzionale) ove la direzione opzionale dice a MatLab se procedere per difetto( da sinistra) o per eccesso (da destra). Proviamo adesso ad eseguire il limite di x che tende ad infinito: >> limit(x^2,x,inf,’left’) >> inf Per differenziare la funzione rispetto alle sue variabili, dobbiamo utilizzare il comando diff che vuole come parametro di ingresso la funzione da differenziare, ed ha il seguente prototipo diff (funzione). Per avere la derivata n-esima di deve applicare n volte la funzione diff. Calcoliamo la ,la e la ricordando che per osservare il comportamento della funzione dobbiamo studiare gli zeri della derivata prima attraverso fzero(derivata prima) e controllare il segno della derivata seconda e terza. In ultimo testiamo l’invertibilità della funzione attraverso il comando finverse(funzione)

Integrali Anche nell’ambito dell’integrazione possiamo sfruttare le potenzialità del calcolo simbolico oppure utilizzare approssimazione numeriche. Quest’ultime si basano soprattutto sulla possibilità di considerare l’integrale come limite di una opportuna somma finita. In particolare si approssima un integrale definito attraverso la somma dove la scelta dei punti xk e dei pesi wk > 0 caratterizza le varie formule di integrazione (formule di quadratura numerica). Il calcolo numerico di un integrale avviene attraverso due funzioni: quad che calcola l’integrale definito usando la regola di Simpson; quad8 che calcola lo stesso integrale usando l'algoritmo di Newton-Cotes; quadl che calcola lo stesso integrale usando l’algoritmo di Labatto; Il funzionamento delle due funzioni è praticamente identico quad(funzione,a,b), dove funzione è la nostra funzione e a e b sono gli estremi in cui l’integrale viene valutato. In breve dobbiamo creare un handle di funzione attraverso il seguente comando: >>F=@(x) x.^2 >>quad(F,0,2) Il calcolo analitico di un integrale avviene attraverso l’istruzione int (derivata,a,b) che restituisce la funzione originaria.

Equazioni differenziali L’equazione differenziale è, genericamente parlando, una relazione tra una funzione di una o più variabili e le sue derivate. Nel caso di più variabili si parla di equazione differenziale alle derivate parziali, nel caso di una singola variabile si parla di equazione differenziale ordinaria. In simboli l’equazione differenziale di una variabile può essere scritta nella forma: Si dice ordine o grado dell’equazione il grado della più alta derivata presente, ad esempio se abbiamo ,allora è un equazione differenziale del 2° ordine. Generalmente trovare una funzione che soddisfi l’equazione, cioè darne una soluzione esplicita, è difficile se non impossibile. Tuttavia è sempre possibile un’integrazione attraverso calcoli numerici. Prima della formalizzazione del calcolo differenziale si procedeva dalla soluzione implicita alla soluzione esplicita ovvero

Equazioni differenziali Un esempio molto elementare di come le equazioni differenziali vengano usate in economia riguarda lo studio dell’evoluzione della numerosità delle aziende nel territorio italiano. Supponiamo che la “popolazione” sia composta da P0 aziende, chiamiamo P(t) la “popolazione” al tempo t. E’ ragionevole aspettarsi che in media in ogni istante t, dopo un tempo relativamente piccolo dt, nasce una quantità di nuove aziende proporzionale alla numerosità delle aziende preesistenti ed al tempo trascorso, cioè pari a nP(t)dt dove n è un numero costante che indica il numero di aziende fondate; analogamente, nello stesso lasso di tempo, è lecito aspettarsi che altre aziende cessino l’attività e le indichiamo con mP(f)dt. Il numero di aziende al tempo t+dt sarà quindi data dal totale delle aziende al tempo t a cui si aggiungono le aziende appena fondate e si sottraggono quelle che hanno cessato l’attività, ovvero: da cui che può essere riscritta Risolvere questa equazione significa determinare l’andamento della numerosità delle aziende nel tempo, nel nostro caso

Risolviamo questa equazione differenziale con MatLab MatLab risolve le equazioni differenziali sia numericamente che analiticamente. Vediamo la soluzione analitica del problema prima presentato, ovvero della funzione Anzitutto MatLab richiede la creazione di variabili simboliche attraverso il comando syms variabili simboliche >>syms t Successivamente bisogna creare la funzione che verrà studiata assegnandogli un nome, il differenziale della funzione ha il seguente nome Dy che indica a MatLab che a sinistra del segno = c’è qualcosa che è un una derivata di y, mentre a destra del segno = vi è l’equazione vera e propria >> DE1='Dy=(n-m)*y‘ infine si invoca la funzione dsolve che accetta in ingresso la funzione da noi definita, insieme ad altri parametri. L’output di MatLab è il seguente C1*exp((n-m)*t) In caso di impossibilità di soluzione viene visualizzato il messaggio Warning: explicit solution could not be found