Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoCalogera Lisa Modificato 11 anni fa
1
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
2
Soluzione di sistemi non lineari
(continua) Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
3
Soluzione di sistemi non lineari Quattro categorie di metodi
1. Metodi di sostituzione 2. Metodo del gradiente 3. Metodi di Newton e suoi derivati 4. Metodi di continuazione Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
4
Metodi di sostituzione
I metodi di sostituzione sono concettualmente molto semplici. Per poterli utilizzare è necessario trasformare le equazioni che costituiscono il sistema da risolvere: in modo che i termini di sinistra costituiscano un sistema facile da risolvere rispetto alle variabili x. Conoscendo un valore di tentativo, xi, lo si pone a destra delle equazioni in modo da ricavare un valore di xi+1 ottenuto utilizzando il sistema costituito dalle equazioni di sinistra. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
5
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Esempio Trovare il valore di x, xs, che azzeri le due equazioni: partendo dal punto di primo tentativo x1 = 0, x2 = 1 Sommando alla prima equazione x1 e alla seconda x2 si ottiene: Le iterazioni sono: x1= 0.000; ; x2= 1.000; ; Il metodo diverge Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
6
Esempio di Ingegneria Chimica
Metodo BP (Boiling Point) per risolvere le equazioni di simulazione di una colonna di distillazione. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
7
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Dato un valore di tentativo di Tj, Lj, Vj e yij Si itera il processo Vengono usate le equazioni di Bilancio Materiale per il componente i Lj-1xij-1 – (Vjkij + Lj)xij + Vj+1kij+1xij+1 = Fjzi per ricavare le variabili xij Vengono usate le equazioni stechiometriche per ricavare un valore aggiornato di Tj Vengono usate le equazioni di Bilancio Materiale: Lj-1 - Vj - Lj + Vj+1 = Fj e le equazioni di Bilancio Energetijco: Lj-1 hj-1 - Vj Hj - Lj hj + Vj+1 Hj+1 + Qj-1 = Fj HFj per ricavare un valore aggiornato di Lj e Vj Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
8
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Osservazioni Le equazioni: Lj-1xij-1 – (Vjkij + Lj)xij + Vj+1kij+1xij+1 = Fjzi risolte per un componente, i, alla volta costituiscono dei sistemi lineari con struttura tridiagonale. Le equazioni: sono analoghe a quelle già viste per il calcolo del punto di bolla di una miscela. Il metodo prende il nome BP da questo fatto. Le equazioni: Lj-1 - Vj - Lj + Vj+1 = Fj Lj-1 hj-1 - Vj Hj - Lj hj + Vj+1 Hj+1 + Qj-1 = Fj HFj risolte rispetto alle variabili Lj e Vj costituiscono un sistema lineare con struttura a blocchi (di dimensioni 2) tridiagonali. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
9
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Il metodo BP se converge, converge lentamente alla soluzione. Il metodo BP ha problemi di convergenza quando la miscela contiene elementi molto volatili (per es. Idrogeno o Metano) o pochissimo volatili (per es. nel caso di assorbitori). Perché? Perché in entrambi i casi si sfrutterebbero equazioni mal condizionate rispetto alle variabili usate per risolverle. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
10
Vantaggi dei metodi di sostituzione
Talvolta si può trovare un metodo che riesca a sfruttare algoritmi relativamente semplici. Svantaggi dei metodi di sostituzione Spesso il metodo non converge perché alcuni dei sottoproblemi in cui è stato suddiviso il problema originale sono mal condizionati. Anche se dovesse convergere il metodo richiede molte iterazioni. La ricerca di una formulazione che converga e che converga in modo accettabile può richiedere molto tempo uomo. Il programma ottenuto può portare ad una formulazione del problema molto diversa da quella del problema originale (si veda l’esempio del metodo BP). Il codice può perciò non essere di facile lettura. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
11
Metodi di sostituzione
Obsoleti Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
12
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Promemoria Che cosa è lo Jacobiano di un sistema di equazioni? Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
13
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Lo Jacobiano di un sistema di equazioni f(x) è la matrice, J, delle derivate prime delle funzioni fj. Lo Jacobiano, J, di solito non è una matrice simmetrica. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
14
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodo del gradiente Il gradiente della funzione di merito: è Perciò la direzione –gi è la direzione lungo la quale tale funzione di merito diminuisce più rapidamente possibile. Sappiamo che il metodo del gradiente non è un metodo molto valido per minimizzare una funzione. Perciò il metodo del gradiente verrà utilizzato solo quando tutti gli altri metodi vanno male nella speranza di sbloccare la situazione. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
15
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodo di Newton Se le funzioni f possono essere espanse in serie di Taylor: f(xi +di) = f(xi) + J(xi) di + O(||di||2) e il punto xi è sufficientemente vicino alla soluzione è possibile arrestare lo sviluppo ai termini di primo grado. In questo caso il vettore delle correzioni di da apportare al punto xi si ottiene risolvendo il sistema lineare: f(xi +di) = fi + Ji di = 0 Il metodo di Newton, nella sua forma elementare, utilizza iterativamente la relazione: xi+1 = xi + di con di ricavato risolvendo il sistema lineare: Ji di = - fi Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
16
Vantaggi del metodo di Newton Svantaggi del metodo di Newton
Il metodo di Newton, quando converge, converge molto rapidamente (ha una velocità di convergenza quadratica). Se lo Jacobiano non è singolare la direzione di del metodo di Newton è tale da garantire la diminuzione di tutte le funzioni di merito. Svantaggi del metodo di Newton Il metodo va in crisi se lo Jacobiano è singolare o molto mal condizionato. Il metodo può non convergere. La previsione può essere peggiore di quella dell’iterazione precedente rispetto a tutte le funzioni di merito considerate. Ad ogni iterazione deve essere calcolato lo Jacobiano. Se come spesso avviene lo Jacobiano è calcolato numericamente ad ogni iterazione le funzioni f(x) devono essere calcolate N volte. Ad ogni iterazione deve essere risolto il sistema lineare: Ji di = - fi Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
17
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Sono state proposte numerose varianti del metodo di Newton. Esse possono essere raggruppate in due categorie a seconda di come viene calcolato lo Jacobiano. 1. Metodi di Newton modificato. Lo Jacobiano viene calcolato (numericamente o analiticamente) ad ogni iterazione. In questi metodi ad ogni iterazione deve essere risolto anche il sistema lineare Ji di = - fi . 2. Metodi Quasi Newton. Lo Jacobiano viene aggiornato ad ogni iterazione sommandogli una opportuna matrice. In questi metodi ad ogni iterazione può essere evitata (o no) la soluzione del sistema lineare Ji di = - fi . In entrambi i casi vengono apportate delle modifiche al metodo di Newton elementare che cercano di evitare i problemi di convergenza o di crisi. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
18
Metodi di continuazione
Da non portare all’esame Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
19
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Breve parentesi sull’argomento Come imparare a imparare Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
20
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Molti anni fa quando ero un giovane pimpante durante un’escursione estiva in Dolomiti dovetti mettere nel sacco da montagna due grossi sassi che mio figlio riteneva bellissimi. Alla fine della gita sia io che mio figlio ci dimenticammo dei due sassi che perciò rimasero in fondo al sacco. Passarono i mesi, passarono molte gite di medie difficoltà e i sassi rimasero in fondo al sacco ricoperti da altra roba inutile. Essi furono scoperti e finalmente tolti dal sacco solo in giugno dell’anno dopo in occasione di una gita molto impegnativa che richiedeva tutta la capienza del sacco. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
21
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Il teorema dello zio Giacomo Qualunque sia la difficoltà di una gita in montagna e qualunque sia la capienza del vostro sacco, esso sarà sempre pieno. Primo lemma Se state facendo una gita banale non usate il sacco che usereste per andare in cima all’Everest. In caso contrario vi ritrovereste con un sacco enorme pieno di cose inutili. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
22
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Allo stesso modo quando si studia per preparare un esame non si deve esagerare con il materiale utilizzato. Morale La regola numero undici per imparare una materia che si deve portare ad un esame è di non perdersi dietro lo studio di cose inutili. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
23
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Il teorema dello zio Giacomo nasconde un lemma più sottile e importante Secondo lemma Se avete un sacco di grandi dimensioni non limitatevi a fare gite banali. In caso contrario salireste per tutta la vita su cime senza valore mentre magari potreste salire in cima all’Everest. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
24
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Questa metafora nel campo dello studio e più in generale per il tipo di vita che vi aspetta ha la seguente Morale La regola numero dodici per imparare una nuova materia e più in generale per imparare a costruirsi una vita piena e interessante è di non sottovalutare le proprie capacità. Wooka: Quest’ultima regola mi ricorda quel famoso libro “Istruzioni per un’aquila che si crede un pollo” Flinks: Personalmente aggiungerei un monito per quelli che invece sopravvalutano le loro capacità e consiglierei quell’autore a scrivere anche un libro intitolato “Istruzioni per tutti quei polli che si credono aquile” Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
25
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Chiusa la parentesi sull’argomento Come imparare a imparare Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
26
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Esercitazione Trovare il valore di x, xs, che azzeri le due equazioni: partendo dal punto di primo tentativo x1 = 0, x2 = 1 Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
27
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Il programma necessario è il seguente. Per prima cosa bisogna mettere gli include #include "BzzMathBasic.hpp“ #include "BzzMathAdvanced.hpp" // prototype void NonLinearSys(BzzVectorDouble &x, BzzVectorDouble &f); void main(void) { // bzzFileOut = stdout; BzzPrint("\nSoluzione di un sistema non lineare"); BzzVectorDouble x0(2,0.,1.); BzzNonLinearSystemDouble nls(x0,NonLinearSys); nls(); nls.BzzPrint("Results"); BzzPause(); } Poi bisogna mettere il prototipo della funzione bzzFileOut è una variabile globale che serve per dire dove la funzione BzzPrint scriverà Qui bzzFileOut è commentato e la funzione BzzPrint scriverà sul FILE di default BzzFile.txt NonLinearSys serve per calcolare i residui delle funzioni Ecco un esempio di uso della funzione BzzPrint Viene creato l’oggetto x0 che viene inizializzato con il valore di primo tentativo di x Viene creato l’oggetto nls nls chiama la funzione () che azzera la funzione nls chiama il suo costruttore che riceve il valore di primo tentativo di x e il nome della funzione in cui sono calcolati i residui nls chiama la BzzPrint che stampa i risultati La funzione BzzPause ferma il programma in attesa di ricevere un carattere Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
28
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
NonLinearSys serve per calcolare i residui delle funzionie da azzerare void NonLinearSys(BzzVectorDouble &x, BzzVectorDouble &f) { f[1] = * x[1] * x[2] – 1.; f[2] = exp(-x[1]) + exp(-x[2]) – ; } Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
29
Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.