Parte 4 Programmare in Matlab – II Sommario Integrazione di Equazioni differenziali ordinarie Metodo di Eulero Esplicito Metodo di Eulero Esplicito + EsercizioEsercizio.

Slides:



Advertisements
Presentazioni simili
Metodo di Calcolo Numerico per Equazioni differenziali Ordinarie
Advertisements

PROCESSO DI CARICA E SCARICA DI UN CONDENSATORE
8) GLI INTERVALLI DI CONFIDENZA
Equazioni differenziali
Appunti di analisi matematica: Integrale Definito
Equazioni non lineari Gabriella Puppo.
Capitolo 8 Sistemi lineari.
Matematica I: Calcolo differenziale, Algebra lineare, Probabilità e statistica Giovanni Naldi, Lorenzo Pareschi, Giacomo Aletti Copyright © The.
MATLAB.
Laboratorio Processi Stocastici
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
METODI EQUAZIONI DIFFERENZIALI Funzioni che mettono in relazione una variabile indipendente ( es. x), una sua funzione ( es. y = f(x) ) e la.
ODE PROBLEMA DI CAUCHY IN 1-D Sia f : I x RR, I  R.
Fisica 2 18° lezione.
Meccanica 2 1 marzo 2011 Cinematica in una dimensione
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Inversione differenziale della Cinematica
Differenziale di una funzione
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Gaetano Continillo Dipartimento di Ingegneria, Università del Sannio
Soluzione FEM di problemi parabolici
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
Soluzione di equazioni non lineari
Velocità media Abbiamo definito la velocità vettoriale media.
Il moto armonico Altro esempio interessante di moto è quello armonico caratterizzato dal fatto che l’accelerazione è proporzionale all’opposto della posizione:
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
Ricerca della Legge di Controllo
G.M. - Edile A 2002/03 Appli cazio ne Si consideri un punto materiale –posto ad un altezza h dal suolo, –posto su un piano inclinato liscio di altezza.
Studente Claudia Puzzo
1 Esempio : Utile per considerare limportanza delle ALTE FREQUENZE nella ricostruzione del segnale, in particolare dei FRONTI di SALITA e di DISCESA (trailing.
Primi Elementi di Programmazione in C++
Parte I (introduzione) Taratura degli strumenti (cfr: UNI 4546) Si parla di taratura in regime statico se lo strumento verrà utilizzato soltanto per misurare.
DOMANDE Per affrontare il problema dei BILANCI DI MATERIA,
Metodi numerici per equazioni differenziali ordinarie Laboratorio di Metodi Numerici a.a. 2008/2009.
Metodi numerici per l’approssimazione
Metodi numerici per lapprossimazione Laboratorio di Metodi Numerici a.a. 2008/2009 Prof. Maria Lucia Sampoli.
Cinetica Chimica Applicata
Javascript 6 Funzioni. Una funzione sarà eseguita in risposta ad un evento o ad una chiamata diretta. Le funzioni possono essere inserite comodamente.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Di Cunzolo Alessandro Farioli Giuseppe 10 Gennaio 2012
Corso di Controlli Automatici LA
EQUAZIONI DI PRIMO GRADO
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.
Programma di Informatica Classi Prime
Milano, 17 Dicembre 2013 Informatica B Informatica B Matlab Laboratorio del 14/01/2014 Responsabili di laboratorio: Gianluca Durelli:
Metodo numerico di Eulero
Metodi matematici per economia e finanza. Prof. F. Gozzi
La ricorsione.
Vettori (a una dimensione)
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
© Piero Demichelis Tipi strutturati I tipi considerati finora hanno la caratteristica comune di non essere strutturati: ogni elemento è una singola entità.
INTRODUZIONE A MATLAB LEZIONE 2 Sara Poltronieri.
LA FILOSOFIA DEL SAS Concepito per essere facilmente accessibile.
Informatica e Informatica di Base
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Operazioni di campionamento CAMPIONAMENTO Tutte le operazioni effettuate per ottenere informazioni sul sito /area da monitorare (a parte quelle di analisi)
Breve trattazione della Serie di Mac – Laurin ISTITUTO ISTRUZIONE SECONDARIA SUPERIORE “E.Medi” Galatone di Michele Caprio Classe 5 A st Liceo Scientifico.
Il Moto. Partendo da una quesito assegnato nei test di ingresso alla facoltà di medicina, si analizza il moto di un oggetto.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Risoluzione di equazioni non lineari:
La funzione CASUALE. Gli istogrammi.
Laboratorio di Calcolo Problemi tipici di Ingegneria Chimica Docente: Massimo Urciuolo
Parte 5 Sommario Uso routine di calcolo predefinite di Matlab –Risoluzione equazioni non lineariRisoluzione equazioni non lineari –Ricerca minimo di una.
Bilancio macroscopico di materia
Cinematica del punto materiale Studia il moto dei corpi senza riferimento alle sue cause Il moto è completamente determinato se e` nota la posizione del.
Transcript della presentazione:

Parte 4 Programmare in Matlab – II Sommario Integrazione di Equazioni differenziali ordinarie Metodo di Eulero Esplicito Metodo di Eulero Esplicito + EsercizioEsercizio Limiti Scrittura m-file di tipo “batch” Scrittura m-file di tipo “function”

Integrazione di Equazioni Differenziali – Un po’ di teoria Le equazioni differenziali sono usate frequentemente nella scrittura di modelli per la caratterizzazione di processi chimico-fisici. In questo laboratorio faremo esclusivamente riferimento a Equazioni Differenziali Ordinarie (acronimo: EDO in italiano oppure ODE in inglese). Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Un po’ di teoria “Matematica” Una ODE è una equazione in cui compare solo una funzione di una variabile e la sua derivata. Il nostro obiettivo è di determinare la soluzione dell’equazione differenziale ovvero la x(t) in un fissato intervallo [t 0,t 1 ]. La soluzione x(t) è unica a meno di una costante: Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Un po’ di teoria “Matematica” Per la determinazione della costante è necessario conoscere il valore della x(t) al tempo t 0 Tale valore prende il nome di condizione iniziale L’assegnazione della condizione iniziale è fondamentale per la determinazione univoca della funzione incognita Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Un po’ di teoria “Matematica” È possibile considerare anche sistemi di equazioni differenziali ordinarie: Ovviamente, all’aumentare delle dimensioni del sistema il problema diventa più complesso sia dal punto di vista concettuale che operativo Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Un po’ di teoria NB: In questo laboratorio faremo riferimento solo a Problemi a Valori Iniziali (IVP, Initial Value Problem): Il valore della funzione (o delle funzioni, per problemi di dimensioni superiori) è specificata ad un fissato punto iniziale (d’ora in poi indicato con t 0 ) Si segue poi il comportamento della soluzione all’aumentare (o al diminuire) di t. Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Esempio Si consideri il caso di un reattore Batch Elementi di Matlab - 33 C A, C B C 0, (alimentata al tempo t 0 ) Si supponga il caso più semplice: Reazione isoterma irreversibile del tipo Si suppone inoltre che il volume sia costante. In questo caso è necessario scrivere solo un bilancio di materia (ovvero una sola ODE) Si suppone inoltre che la cinetica di reazione sia lineare

Integrazione di Equazioni Differenziali – Esempio Il bilancio (dopo la “chiusura” del reattore batch al tempo t=t 0 ) si scrive quindi: Dato che per t>t 0 i termini di ingresso e di uscita sono nulli Questa equazione differenziale di C A (t) ammette soluzione analitica La costante C[0] è determinata dalle condizioni iniziali, ovvero quale valore assume C A al tempo t=t 0. Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Esempio: Perché integrazione numerica? Nel caso preso in esame, l’equazione differenziale ordinaria ammette soluzione analitica e quindi è possibile calcolare in modo semplice quale valore assume la concentrazione per un qualunque tempo t. Questo, sfortunatamente è raramente possibile. Si consideri per esempio il caso di una cinetica (un poco) più complessa di tipo catalitico nel reattore Batch: Tale equazione differenziale non ammette soluzione analitica. Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Esempio: Perché integrazione numerica? Nel caso precedente non è possibile quindi sapere in forma esplicita come la concentrazione vari nel tempo È necessario quindi ricorrere a metodi numerici per la determinazione dei valori di concentrazione al variare del tempo. Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Un po’ di teoria Innanzitutto, è meglio chiarire il concetto di integrazione numerica. L’approccio normalmente usato è discretizzare il problema: Ovvero, ci limiteremo a valutare la soluzione x(t) solo per un finito insieme di punti discreti (e non su un intervallo continuo, come era possibile per una soluzione analitica) Per esempio se l’intervallo in cui si desidera ricavare la soluzione è: [t 0, t f ]=[0,1] La soluzione sarà determinata solo per determinati punti. Ad esempio: 0.01, 0.02, 0.03, …, 0.99 Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Un po’ di teoria I metodi numerici per i problemi a valori iniziali partono dal punto iniziale e provano a “seguire” la direzione della curva delle soluzioni Tali metodi sono spesso chiamati per questo motivo “marching methods” Elementi di Matlab - 33 Soluzione continua della equazione differenziale t0t0 t Valori discreti della funzione valutati a partire dai valori precedenti Condizione iniziale

Integrazione di Equazioni Differenziali – Un po’ di teoria - Metodo di Eulero Il metodo più semplice per l’integrazione numerica è il Metodo di Eulero Esplicito Sia data una equazione differenziale ordinaria del tipo È possibile approssimare la derivata con il rapporto incrementale: Dove x i è il valore che assume x al tempo t i Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Un po’ di teoria - Metodo di Eulero Una manipolazione dell’equazione appena ottenuta porta alla seguente espressione: Con cui è possibile calcolare la x i+1 (ovvero il valore che assume la x al tempo t i+1 = t i +  T) una volta noti x i e t i. Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Metodo di Eulero - Esercizio Data la seguente EDO Con condizione iniziale Calcolare con il metodo di Eulero esplicito la soluzione dell’equazione nell’intervallo [0,10] Si assumi inoltre che la soluzione discretizzata sia ottenuta per intervalli  T equispaziati e pari a  T = 0.1, 0.5, 2 Si diagrammino i valori ottenuti Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Metodo di Eulero – Esercizio Suggerimenti: Il nostro scopo è quello di ottenere un vettore di valori di x che corrisponda alla soluzione discretizzata Questo vettore avrà una dimensione pari all’intervallo temporale diviso il campionamento  T scelto (nel nostro caso quindi il vettore avrà dimensioni 100, 20, 5 rispettivamente. Mi aspetto quindi di definire in testa al mio file.m un vettore x. Per specificare le dimensioni ho parecchie alternative in Matlab: –Posso scrivere un vettore di tutti zeri e di dimensioni desiderate N con il comando x = zeros(N,1) –Posso anche usare una scrittura generica x=[ ]. Questa scrittura è interpretata da Matlab come l’assegnazione di un vettore di dimensioni qualsiasi Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Metodo di Eulero – Esercizio A partire dalla condizione iniziale x(0) è possibile valutare il primo elemento del nostro vettore x(1) Una volta noto x(1) è possibile calcolare x(2). Quindi x(3), x(4), etc. etc. Quindi, l’elemento x(i+1) del nostro vettore sarà una funzione dell’elemento x(i) precedentemente calcolato Devo scrivere quindi un ciclo. Quale istruzione si presenta più adatta per questo ciclo? Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Metodo di Eulero – Esercizio Riassumendo, il mio programma in Matlab deve essere strutturato nel seguente modo: –Innanzitutto devo assegnare il mio vettore x dove “scarico” i valori calcolati della funzione –Devo scrivere un ciclo con un numero di iterazioni uguali alle dimensioni del mio vettore x –All’interno del ciclo devo scrivere come x(i+1) dipenda da x(i) Chiudo il ciclo. Come opzione posso scegliere di rappresentarmi graficamente il vettore soluzione. Elementi di Matlab - 33

Integrazione di Equazioni Differenziali – Metodo di Eulero – Esercizio Se si analizzano i risultati: 1.Quali sono i risultati più accurati? 2.Ci sono dei risultati non plausibili dal punto di vista matematico? (Es: La soluzione diverge) Elementi di Matlab - 33

Implementazione Metodi numerici con Matlab - Conclusioni Conclusioni Un software come Matlab consente di eseguire in modo veloce una serie di operazioni che sono proibitive se fatte a mano. Inoltre, Matlab consente in modo immediato di eseguire le stesse operazioni per cui abbiamo costruito i programmi, con delle semplici istruzioni (come vedremo successivamente). Gli algoritmi interni che esso usa non differiscono concettualmente da quelli che sono stati esposti (anche se sono più sofisticati). Comunque, è necessario essere molto attenti nell’ interpretazione dei risultati, dato che anche gli algoritmi più sofisticati non sono mai al 100% affidabili. Elementi di Matlab - 33

Programmazione – Files.m - Limiti La scrittura dei programmi precedenti con la filosofia “file batch” ci ha mostrato i seguenti limiti: 1.Le variabili presenti nel programma sono automaticamente trasferite nella memoria della sessione principale di Matlab 2.Pesante nel caso di istruzioni che si ripetono (Esempio: è necessario definire ogni volta le funzioni quando sono valutate) Elementi di Matlab - 44

Programmazione – Files.m - Function Un oggetto più potente del testo è la funzione (nella sintassi di Matlab: function) Essi permettono all’utente di creare nuovi comandi Matlab Una funzione è un m-file che incomincia con l’istruzione: Il resto del testo è una serie di istruzioni che consentono di calcolare i valori di output a partire dai valori assegnati di input function [output1,output2, …] = nomecomando(input1, input2, … ) Elementi di Matlab - 44

Programmazione – Files.m - Function Quando si chiama una function, Matlab crea una sessione di lavoro locale. Le variabili elaborate nella function non sono poi scaricate nella memoria della sessione, a meno delle variabili di output desiderate Le variabili coinvolte nella sessione locale non possono riferirsi alle variabili globali (a meno che non siano opportunamente passate come variabili di input) Elementi di Matlab - 44

Programmazione – Files.m - Function Esempio: funzione sin2 = sen(x^2) function y=sin2(x) tmp=x.^2; y=sin(tmp); L’m-file è salvato in seguito con il nome sin2.m Una volta creato l’m-file, se digito l’istruzione “>>y=sin2(pi/4)” sulla finestra principale di Matlab, creo una variabile y associata al seno del quadrato di Pi/4 Non vi è però traccia della variabile tmp Intestazione della function Definizione della variabile interna tmp Il “.^” rende possibile l’operazione anche se x è un vettore Elementi di Matlab - 44

Programmazione – Files.m - Function Importante: Le variabili della function devono tutte essere dichiarate all’interno di essa e non possono richiamare valori che siano definiti solo nella sessione globale (a meno che non siano passate come variabili di input) Un modo per ovviare a questo inconveniente è di rendere globale la variabile con il comando global (per dettagli, fare riferimento alla guida on-line del software) È possibile richiamare function in altre function, come anche function in file batch Elementi di Matlab - 44

Programmazione – Files.m – Function Esercizio: Ripetere l’esercizio del metodo di Newton dove stavolta: –Il file principale è sempre un file di tipo “batch” –Le funzioni (sia la funzione che la sua derivata) sono files di tipo “function” –Bisogna essere molto cauti con le variabili di scambio! –Si deve comunque fare in modo che i parametri (Da, , B) siano “visti” anche all’interno delle function. Elementi di Matlab - 44