La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Risoluzione di equazioni non lineari:

Presentazioni simili


Presentazione sul tema: "Risoluzione di equazioni non lineari:"— Transcript della presentazione:

1 Risoluzione di equazioni non lineari:
Parte 3 Implementazione di Metodi numerici con Matlab Sommario Risoluzione di equazioni non lineari: Metodo del punto fisso + Esercizio Metodo di Newton + Esercizio

2 Soluzioni di equazioni non lineari – Un po’ di teoria
Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria La scrittura di un programma per la soluzione di un’equazione non lineare può essere vista come la “traduzione” di una procedura (metodo numerico) in una serie di istruzioni “comprensibile” da Matlab I metodi per la risoluzione di una equazione non lineare sono molteplici. I più noti sono: Metodo del Punto Fisso (o “per tentativi”) Metodo di Newton

3 Soluzioni di equazioni non lineari – Un po’ di teoria
Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria Tutti i metodi numerici per la risoluzione di equazioni non lineari del tipo f(x)=0 sono Metodi Iterativi: Si parte da un valore di primo tentativo x0 e si genera una successione di valori xi che si spera converga verso una soluzione della equazione È possibile calcolare uno zero alla volta dell’equazione non lineare: i metodi numerici per la risoluzione non consentono di determinare più soluzioni contemporaneamente. Lo zero dell’equazione non è mai nota con precisione infinita

4 Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo del punto fisso La generica equazione: f(x)=0 può essere riscritta nel seguente modo x=g(x) Partendo da un valore di primo tentativo si valuta x1 = g(x0). Il valore ottenuto è una nuova stima x1 della soluzione.

5 Soluzione equazione non lineare
Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo del Punto Fisso Rappresentazione grafica del metodo: y=x y2=g(x1) y=g(x) y1=g(x0) Soluzione equazione non lineare x2=y2 x1=y1 x0

6 Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo del Punto Fisso Come procedere: Si fissa un valore di primo tentativo x0 Si entra in un ciclo di iterazioni: Si calcola x = g(x) Il valore x calcolato è “vicino” al valore x del giro precedente? Se si, esco dal ciclo e chiedo di rappresentarmi il valore x ottenuto Se no, rimango nel ciclo e sostituisco al vecchio valore di x il nuovo valore ottenuto Per stabilire se due valori sono “vicini” è necessario introdurre una tolleranza all’inizio del programma

7 Variabili di Ingresso:
Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo del Punto Fisso Diagramma di flusso: Variabili di Ingresso: Tolleranza - toll Punto Iniziale – x0 Ciclo del programma: Con Matlab può essere fatto sia con l’istruzione if che con l’istruzione while Calcolo funzione xnew=g(xold) xold=xnew no |xnew-xold|<toll ? si display xnew Esci dal programma

8 Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo del Punto Fisso In alcuni casi è più conveniente scrivere l’equazione nella forma: h(x) = g(x) In questo caso si valuta la y=h(x). Si calcola x = g-1(y) Il problema si riporta al caso tradizionale con x = g-1(h(x)) Si calcola di nuovo la f sino a quando le iterazioni non convergono

9 Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Metodo del Punto Fisso - Esercizio Calcolare la temperatura di rugiada alla pressione di una atmosfera di una soluzione di metanolo e butanolo di composizione ZB = 0.1 ZM = 0.9 Si suppongano valide le leggi di Antoine dove la tensione di vapore è espressa in mmHg. la temperatura in gradi Celsius AB = BB = CB = AM = BM = CM =

10 Metodo del Punto Fisso - Esercizio
Elementi di Matlab - 3 Metodo del Punto Fisso - Esercizio Come procedere nella scrittura dell’m-file: È necessario innanzitutto definire all’inizio: una tolleranza (che rappresenta la precisione che vogliamo nel nostro risultato) un valore di primo tentativo per la temperatura Una volta stabilite queste due grandezze è possibile definire un ciclo in cui si effettuano una serie di operazioni

11 Metodo del Punto Fisso - Esercizio
Elementi di Matlab - 3 Metodo del Punto Fisso - Esercizio Scrittura del ciclo per le iterazioni. Innanzitutto quale tra le istruzioni per i cicli si rivela più adatta per il nostro caso? Si vuole ripetere una serie di istruzioni sino a quando la differenza tra due valutazioni successive della T sia minore della tolleranza (da noi fissata). Quindi si intende ripetere le istruzioni solo quando la condizione di cui sopra non è rispettata.

12 Metodo del Punto Fisso - Esercizio
Elementi di Matlab - 3 Metodo del Punto Fisso - Esercizio All’interno del ciclo sarà quindi necessario definire una serie di operazioni: Scrittura del secondo membro:

13 Metodo del Punto Fisso - Esercizio
Elementi di Matlab - 3 Metodo del Punto Fisso - Esercizio Tale funzione può essere scritta anche “a pezzi” definendo delle variabili “temporanee”. In questo modo le espressioni sono meno “pesanti” e ci sono meno possibilità di fare errori di battitura. Esempio:

14 Metodo del Punto Fisso - Esercizio
Elementi di Matlab - 3 Metodo del Punto Fisso - Esercizio Una volta scritta l’espressione rhs è necessario calcolare la nuova valutazione della temperatura, scrivendo l’inversa della legge di Antoine: A questo punto si deve stabilire se la differenza tra il nuovo valore di temperatura con il vecchio valore è minore della nostra tolleranza PER FARE IL CONFRONTO È NECESSARIO DEFINIRE DUE VARIABILI: UNA TEMPERATURA PRIMA DELLA VALUTAZIONE, ED UN TEMPERATURA DOPO LA VALUTAZIONE

15 Metodo del Punto Fisso - Esercizio
Elementi di Matlab - 3 Metodo del Punto Fisso - Esercizio A questo proposito, conviene salvare il nuovo valore con un altro nome all’interno del ciclo. Esempio: Told è il nome della temperatura da cui mi calcolo rhs Tnew è il nome della nuova temperatura calcolata. Se Told e Tnew sono significativamente diverse, inizio da capo il ciclo, sostituendo a Told il valore calcolato Tnew Il ciclo può essere scritto con la condizione che la “distanza” tra Told e Tnew sia piccola (per esempio: 0.001) Per scrivere tale condizione è quindi necessario avere già a disposizione un valore di Told e Tnew prima di “entrare” nel ciclo.

16 Metodo del Punto Fisso - Esercizio
Elementi di Matlab - 3 Metodo del Punto Fisso - Esercizio Riassumendo, il mio “programma” deve essere costruito nel seguente modo: Scrittura costanti A, B e C delle leggi di Antoine per le specie chimiche presenti Definizione variabili di ingresso: toll e prima stima Told (il valore di primo tentativo) Calcolo della prima Tnew Scrittura ciclo while con condizione su Tnew e Told Aggiornamento Tnew & Told Calcolo Tnew Stampa sul monitor dell’ultimo Tnew

17 Metodo del Punto Fisso - Esercizio
Elementi di Matlab - 3 Metodo del Punto Fisso - Esercizio Struttura del programma: Definizione costanti fisiche del problema Definizione costanti numeriche (tolleranza, valore primo tentativo) Prima valutazione told Prima valutazione tnew Ciclo While con condizione abs(told-tnew) > toll Aggiornamento told = tnew Calcolo tnew = g(told) Chiusura del ciclo Stampa sul monitor (o anche su file esterno) dei risultati

18 Metodo del Punto Fisso - Esercizio
Elementi di Matlab - 3 Metodo del Punto Fisso - Esercizio Considerazione 1 La scrittura del programma è, in principio, possibile anche con la procedura if Considerazione 2 Nella mia sessione di lavoro, quante variabili sono state definite? Digitare who o whos. Considerazione 3 Da notare che in tale scrittura sto facendo l’ipotesi che il metodo “converga” sempre Ovvero, partendo da un valore di primo tentativo, sono sicuro di arrivare alla soluzione Questo non è in generale vero, come vedremo nei prossimi lucidi

19 Metodo del Punto Fisso – Esempio negativo
Elementi di Matlab - 3 Metodo del Punto Fisso – Esempio negativo y=g(x) In questo caso il metodo diverge. y2=g(x1) ∞ y1=g(x0) y=x Soluzione equazione non lineare x1=y1 x0

20 Metodo del Punto Fisso – Accorgimenti sulla programmazione
Elementi di Matlab - 3 Metodo del Punto Fisso – Accorgimenti sulla programmazione Nel caso in cui le iterazioni divergano, il programma continuerebbe a operare teoricamente all’infinito, dato che si sta allontanando sempre di più dalla soluzione dell’equazione. In alcuni casi, nella pratica, le iterazioni si interrompono con un messaggio di errore, quando i numeri diventano talmente grandi da non poter essere gestiti dal processore del computer. In ogni caso, nella programmazione, per evitare che in tali casi il programma continui a operare all’infinito, è necessario introdurre un’altra condizione nel ciclo while in cui si arresta la computazione se il numero di iterazioni è diventato elevato.

21 Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo di Newton Il metodo di Newton è, ancora, un metodo iterativo. La filosofia di tale metodo è di cercare di approssimare la funzione con una altra funzione, di cui è semplice calcolare lo zero. La curva più semplice per approssimare la nostra funzione, e che soddisfa tale proprietà, è la retta tangente alla curva nel punto xi della iterazione i-esima

22 Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo di Newton Data una funzione f(x), è possibile, con semplici passaggi matematici, determinare la retta tangente alla curva in un dato punto x0. Applicando la formula di Taylor al punto x0 si ottiene: È possibile calcolare quindi l’intersezione di questa retta con l’asse delle x:

23 Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo di Newton In questo modo è possibile ottenere una prima stima x1 della soluzione dell’equazione non lineare. È possibile quindi creare una successione di valori xi che, si spera, convergono verso la soluzione della equazione non lineare

24 Soluzione equazione non lineare
Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo di Newton Interpretazione grafica del metodo f(x) y=f(x0)+f’(x0) (x-x0) f(x0) y=f(x1)+f’(x1) (x-x1) Soluzione equazione non lineare f(x1) x0 x2 x1

25 Elementi di Matlab - 3 Soluzioni di equazioni non lineari – Un po’ di teoria – Metodo di Newton Conclusioni sul metodo di Newton Si può dimostrare che il metodo di Newton converge generalmente con una velocità molto maggiore del metodo del punto fisso Dà meno problemi di convergenza: se parto “vicino” alla mia soluzione dell’equazione, convergo sicuramente ad essa (cosa che non era verificata per il metodo del punto fisso) È, in generale, da preferire

26 Metodo di Newton – Esercizio - Introduzione
Elementi di Matlab - 3 Metodo di Newton – Esercizio - Introduzione Si considerino i bilanci di materia ed energia,allo stazionario, per una reazione esotermica irreversibile in un CSTR adiabatico C0, T0, Q C, T, Q

27 Metodo di Newton – Esercizio - Introduzione
Elementi di Matlab - 3 Metodo di Newton – Esercizio - Introduzione Incominciamo a semplificare le equazioni, introducendo degli opportuni gruppi adimensionali Grado di conversione Temperatura adimensionale Variazione della temperatura Energia di attivazione adimensionale della reazione Numero di Damkohler Rapporto tra il tempo a disposizione dal processo e il tempo caratteristico della reazione

28 Metodo di Newton – Esercizio - Introduzione
Elementi di Matlab - 3 Metodo di Newton – Esercizio - Introduzione Le equazioni assumono la seguente forma: Un’opportuna manipolazione delle equazioni porta alla scrittura della seguente equazione non lineare funzione solo della variabile q.

29 Metodo di Newton – Esercizio - Introduzione
Elementi di Matlab - 3 Metodo di Newton – Esercizio - Introduzione Una volta determinata la temperatura adimensionale, è possibile calcolare la concentrazione con una semplice relazione lineare. Dato che la conversione può essere al massimo unitaria, è possibile calcolare quale temperatura adimensionale massima può essere raggiunta nel reattore.

30 Metodo di Newton - Esercizio
Elementi di Matlab - 3 Metodo di Newton - Esercizio Esercizio: Dati i seguenti valori dei parametri: Da = 0.01 g = 9.0 B=22.0 Diagrammare l’equazione non lineare nell’intervallo [0:20] Valori di primo tentativo: q0 = 0.5, 10.0, 15.0 Trovare gli zeri con il metodo di Newton sapendo che la derivata ha la seguente forma:

31 Metodo di Newton - Esercizio
Elementi di Matlab - 3 Metodo di Newton - Esercizio Suggerimenti per la scrittura del programma Come prima: Definire una tolleranza, un valore di primo tentativo Assegnare i valori numerici ai parametri fisici Calcolo della prima Tnew Scrittura ciclo while con condizione su Tnew e Told Aggiornamento Tnew & Told Calcolo Tnew Stampa sul monitor dell’ultimo Tnew Si suggerisce di definire il termine esponenziale come una variabile temporanea:

32 Metodo di Newton – Esercizio
Elementi di Matlab - 3 Metodo di Newton – Esercizio Diagramma di flusso È, dal punto di vista logico, equivalente al caso del punto fisso Variabili di Ingresso: Tolleranza - toll Punto Iniziale – x0 Calcolo funzione xnew=xold-f(xold)/f’(xold) xold=xnew no |xnew-xold|<toll ? si display xnew Esci dal programma

33 Metodo di Newton – Esercizio
Elementi di Matlab - 3 Metodo di Newton – Esercizio Commenti: Cambiando il punto iniziale, cambiano le soluzioni della equazione non lineare a cui si arriva? Il ruolo del punto iniziale è importante. Ancora, non si è provveduto a garantire che il numero di iterazioni sia limitato


Scaricare ppt "Risoluzione di equazioni non lineari:"

Presentazioni simili


Annunci Google