Parte 5 Sommario Uso routine di calcolo predefinite di Matlab –Risoluzione equazioni non lineariRisoluzione equazioni non lineari –Ricerca minimo di una.

Slides:



Advertisements
Presentazioni simili
FUNZIONI REALI DI DUE VARIABILI REALI
Advertisements

Equazioni non lineari Gabriella Puppo.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array, matrici Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
Metodi numerici in Matlab
Spazio dei giunti e spazio operativo
Capitolo 8 Sistemi lineari.
MATLAB.
MATLAB.
MATLAB.
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
METODI EQUAZIONI DIFFERENZIALI Funzioni che mettono in relazione una variabile indipendente ( es. x), una sua funzione ( es. y = f(x) ) e la.
COORDINATE POLARI Sia P ha coordinate cartesiane
Dinamica del manipolatore
Fisica 2 18° lezione.
Richiami di Identificazione Parametrica
redditività var. continua classi di redditività ( < 0 ; >= 0)
SISTEMI D’EQUAZIONI ED EQUAZIONI DIFFERENZIALI LINEARI.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Esercizi di riepilogo Gabriella Puppo.
Soluzione FEM di problemi parabolici
Metodi iterativi semplici G. Puppo. Riassunto Problema del fill-in Memorizzazione di matrici sparse Metodo di Jacobi.
FEM -2 Gabriella Puppo.
Metodi FEM in 2D G. Puppo.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
DISEQUAZIONI Chiedersi quando un trinomio dato è positivo significa ricercare per quali valori di x la variabile y è positiva; in altre parole si devono.
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
Polinomi, integrazione e ottimizzazione
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Studente Claudia Puzzo
Metodi numerici per equazioni differenziali ordinarie Laboratorio di Metodi Numerici a.a. 2008/2009.
Lezione 13 Equazione di Klein-Gordon Equazione di Dirac (prima parte)
Cinetica Chimica Applicata
INTRODUZIONE A MATLAB.
Biologia Computazionale - Algoritmi
INTRODUZIONE A MATLAB LEZIONE 4 Sara Poltronieri slide3.4 matlabintro
STATISTICA PER LE DECISIONI DI MARKETING
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Diagrammi 2D e 3D Funzioni di ordine superiore
Velocita’ La velocita’ istantanea ad un determinato istante e’ il tasso di incremento o decremento della posizione di un corpo in quell’istante Essendo.
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.
Sottospazi vettoriali
Lezione 2: Simulink Ing. Raffaele Carli (
Analisi di Immagini e Dati Biologici Introduzione al linguaggio di MATLAB/OCTAVE Parte 2 16 L5.
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
“La cassetta degli arnesi”
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Definizione Si dice che la variabile z è una funzione reale di due variabili x e y, nell’insieme piano D, quando esiste una legge di natura qualsiasi che.
Integrali Indefiniti Risolvono il problema di trovare tutte le funz. la cui derivata è uguale ad una funz. assegnata. Queste funz. sono dette primitive.
FUNZIONE: DEFINIZIONE Una FUNZIONE è una LEGGE che ad ogni elemento di un dato insieme A, detto DOMINIO, associa uno ed un solo elemento di un insieme.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Diagrammi 2D e 3D Funzioni di ordine superiore Marco D. Santambrogio – Ver. aggiornata.
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.
Parte 4 Programmare in Matlab – II Sommario Integrazione di Equazioni differenziali ordinarie Metodo di Eulero Esplicito Metodo di Eulero Esplicito + EsercizioEsercizio.
1 Metodo Simbolico e Numeri Complessi Problema 1 => Determinare le radici della seguente equazione polinomiale di secondo grado:
Lezione n° 5: Esercitazione
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Risoluzione di equazioni non lineari:
ESPONENZIALI E LOGARITMI
Laboratorio di Calcolo Problemi tipici di Ingegneria Chimica Docente: Massimo Urciuolo
Definizioni preliminari Sommario - Caratteristiche Principali – Assegnazione di variabili - Scrittura e manipolazione di matrici e vettori - Funzioni predefinite.
Transcript della presentazione:

Parte 5 Sommario Uso routine di calcolo predefinite di Matlab –Risoluzione equazioni non lineariRisoluzione equazioni non lineari –Ricerca minimo di una funzioneRicerca minimo di una funzione –Integrazione numericaIntegrazione numerica –Grafica avanzata - CenniGrafica avanzata - Cenni

Routine predefinite di Matlab La scrittura di file di tipo “function” rende possibile la creazione di funzioni definite dall’utente Tale strumento risulta molto potente se accoppiato alle routine di calcolo predefinite di Matlab Matlab è, infatti, in grado di risolvere equazioni non lineari e equazioni differenziali con dei semplici comandi Gli algoritmi interni che esso usa sono concettualmente analoghi a quelli incontrati nelle precedenti ore di laboratorio (anche se molto più sofisticati). Elementi di Matlab - 55

Routine predefinite di Matlab Risoluzione equazioni non lineari: Scritta una funzione f(x) come m-file di Matlab nomefunz.m Dove “nomefunz” è il nome che è stato dato alla funzione, è possibile determinare gli zeri della equazione non lineare f(x)=0 Il comando è “fsolve” Elementi di Matlab - 55

Routine predefinite di Matlab Sintassi comando fsolve: >> X=fsolve( ‘nomefunz’,x0, options) Nome del file “function” in cui è stata definita la funzione Deve essere contenuta tra gli apici “ ‘ ” Alternativamente si può scrivere il nome, preceduto dal simbolo Valore di primo tentativo da cui partire. Può anche essere un vettore – In tal caso il comando restituisce il vettore degli zeri associato a ciascuna condizione iniziale Opzioni per il calcolo – Sono discusse nel seguente lucido Sono facoltative Se omesse, l’algoritmo usa dei valori predefiniti Elementi di Matlab - 55

Routine predefinite di Matlab Opzioni possibili. La sintassi è la seguente: Si crea una struttura di opzioni nel quale i parametri nominati ‘param’ assumono gli specifici valori value Per ulteriori dettagli ci si può riferire alla guida on-line di Matlab: >> help optimset options = optimset( ‘param1‘,value1, ‘ param2 ', value2,...) Elementi di Matlab - 55

Routine predefinite di Matlab Opzioni più utili: ‘MaxIter’ : è il numero massimo di iterazioni che si desidera assume un valore numero intero ‘TolX’ : Tolleranza massima desiderata sulla x, assume un valore numero reale positivo ‘TolFun’: Tolleranza massima desiderata sulla funzione, assume un valore numero reale positivo Elementi di Matlab - 55

Routine predefinite di Matlab Ricerca minimo di una funzione È possibile calcolare anche il minimo di una funzione con un comando analogo: In questo caso è possibile introdurre solo un valore scalare di primo tentativo >> X=fminsearch( ‘nomefunz’,x0, options) Elementi di Matlab - 55

Routine predefinite di Matlab Integrazione equazioni differenziali Per un generico problema a valori iniziali: Esistono diversi comandi che corrispondono a differenti algoritmi di integrazione: ode23 ode23s ode45 ode45s ode15s …ed altri ancora … Elementi di Matlab - 55 Essi differiscono per il metodo numerico utilizzato. Per i nostri problemi tutti sono generalmente soddisfacenti. Gli algoritmi 45 sono più precisi Gli algoritmi con l’indice s sono più “stabili”

Integrazione equazioni differenziali ordinarie Sintassi del comando: Elementi di Matlab - 55 [T,Y] = ode23(odefun,tspan,y0) Variabili di input. Secondi membri del sistema di equazioni differenziali scritte in forma di function Intervallo temporale in cui si intende integrare numericamente il sistema di ODE Vettore condizioni iniziali Variabili di output: Vettore Tempo discretizzato Vettore valori che assume Y in corrispondenza di T

Integrazione equazioni differenziali ordinarie In questo caso, il primo passo è la scrittura di un file di tipo function in cui siano definiti i secondi membri del mio sistema di equazioni differenziali. È richiesta però una certa cautela: anche se i secondi membri non sono una funzione esplicita del tempo, è necessario scrivere il tempo tra le variabili di output della function Elementi di Matlab - 55

Integrazione equazioni differenziali ordinarie - Esempio Integrare numericamente l’equazione differenziale per la reazione catalitica in batch nell’intervallo [0,10] con condizione iniziale Ca[0]=0.1 K1 = 1.0 e k2 = 10.0 Le costanti k1 e k2 devono essere assegnate con un valore numerico all’interno della function !! Elementi di Matlab - 55

Integrazione equazioni differenziali ordinarie - Esempio In questo caso la function dovrebbe essere scritta più o meno nel seguente modo: Il comando per l’integrazione numerica è: Elementi di Matlab - 55 function tmp = batch(t,y) tmp = - 1.*y./(1+10.*y).^2; Questa funzione è salvata nel file “batch.m” >> [tt,yy] = 10],[0.1]); !! Notare la dipendenza esplicita da t !!

Integrazione equazioni differenziali ordinarie - Esempio È possibile rappresentare graficamente i risultati: Ulteriori accorgimenti: Generalmente, i risultati dell’integrazione forniti da Matlab non sono equispaziati nel tempo. Per ovviare a questo inconveniente, è possibile introdurre un vettore “tspan” in cui non siano solo contenuti il tempo iniziale e finale. In tal caso il programma interpreta il vettore “tspan” come l’insieme dei valori in cui si intende valutare la funzione. Esempio: Elementi di Matlab - 55 >> plot(tt,yy)>> [tt,yy] = Insieme dei punti temporali in cui intendo valutare la funzione

Integrazione equazioni differenziali ordinarie La sintassi esposta nel caso scalare può essere tranquillamente estesa al caso vettoriale. In questo caso la function è ancora definita per due variabili t e y, ma y è un vettore e l’argomento (la tmp) della function è ancora un vettore colonna. Elementi di Matlab - 55

Le equazioni assumono la seguente forma: Elementi di Matlab - 55 Esercizio: Dati i seguenti valori dei parametri: Da = 0.01  = 9.0B=22.0 Diagrammare le soluzioni del sistema di equazioni differenziali nell’intervallo [0:20]

Integrazione equazioni differenziali ordinarie Esempio: Consideriamo il caso del CSTR adiabatico Elementi di Matlab - 55 function dy = reac(t,y) dy = zeros(2,1); % Vettore colonna per assegnare le dimensioni a y Da = 0.01; B = 22.0; Gamma = 9.0; % y(1) -> Concentrazione adimensionale % y(2) -> Temperatura adimensionale dy(1) = -y(1) + Da*(1-y(1)) *exp((Gamma*y(2))/(y(2)+Gamma); dy(2) = -y(2) +B*Da*(1-y(1))*exp((Gamma*y(2))/(y(2)+Gamma));

Dal punto di vista qualitativo, si osservava che per alcune condizioni operative la non linearità della 1) implicava la possibilità di più soluzioni stazionarie. Possibili soluzioni stazionarie

Grafica Avanzata - Cenni Matlab è capace di produrre differenti tipi di grafici: a)Curve bidimensionali b)Superfici e curve di isolivello in 3D c)Curve parametriche in 2D e 3D Elementi di Matlab - 55

Grafica Avanzata – Cenni – Grafici 3D Per poter creare un grafico in 3D (o, equivalentemente, una curva di isolivello), è necessario valutare una funzione su una griglia rettangolare regolare. Questo può essere fatto usando il comando meshgrid Prima si creano i vettori che descrivono la griglia nella direzione x e nella direzione y. >> x = [0:2*pi/20:2*pi]’; >> y = [0:4*pi/40:4*pi]’; Elementi di Matlab - 55

Grafica Avanzata – Cenni – Grafici 3D Il passaggio successivo è “spalmare” questi vettori nelle due dimensioni usando meshgrid: L’effetto di meshgrid è di creare una matrice X con i valori di x lungo ogni riga, ed una matriceY con i valori di y lungo ogni colonna. Le dimensioni di questi nuovi oggetti saranno delle matrici di dimensioni n 1 x n 2 dove n 1 e n 2 sono rispettivamente le dimensioni degli oggetti x e y >> [X,Y] = meshgrid(x,y); Elementi di Matlab - 55

Grafica Avanzata – Cenni – Grafici 3D Usando quindi funzioni vettorizzate (o predefinite) è possibile valutare la funzione sulla griglia rettangolare: La funzione ora può essere rappresentate facilmente usando i comandi mesh o surf >>z=cos(X).*cos(2*Y); Da notare la necessità del punto: È necessario fare l’operazione elemento per elemento Elementi di Matlab - 55

Grafica Avanzata – Cenni – Grafici 3D Esempio: >> mesh(x,y,z) Elementi di Matlab - 55

Grafica Avanzata – Cenni – Grafici 3D Esempio: >> surf(x,y,z) Elementi di Matlab - 55

Grafica Avanzata – Cenni – Grafici 3D Esempio: >> contour(x,y,z) Elementi di Matlab - 55

Grafica Avanzata – Cenni – Grafici 3D È possibile anche diagrammare facilmente una curva parametrica (f(t),g(t)) in uno spazio bidimensionale: >> t = [0:2*pi/100:2*pi]’; >> plot(cos(t), sin(t)); Elementi di Matlab - 55

Ed anche tridimensionale: >> t = [0:2*pi/100:2*pi]’; >> plot3(cos(t), sin(t),t); Elementi di Matlab - 55