La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Metodi e Applicazioni numeriche nellIngegneria Chimica 1 Guido Buzzi-Ferraris.

Presentazioni simili


Presentazione sul tema: "Metodi e Applicazioni numeriche nellIngegneria Chimica 1 Guido Buzzi-Ferraris."— Transcript della presentazione:

1 Metodi e Applicazioni numeriche nellIngegneria Chimica 1 Guido Buzzi-Ferraris

2 Metodi e Applicazioni numeriche nellIngegneria Chimica 2 Guido Buzzi-Ferraris Soluzione di sistemi non lineari (continua)

3 Metodi e Applicazioni numeriche nellIngegneria Chimica 3 Guido Buzzi-Ferraris Quattro categorie di metodi 1. Metodi di sostituzione 2. Metodo del gradiente 3. Metodi di Newton e suoi derivati 4. Metodi di continuazione Soluzione di sistemi non lineari

4 Metodi e Applicazioni numeriche nellIngegneria Chimica 4 Guido Buzzi-Ferraris 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, x i, lo si pone a destra delle equazioni in modo da ricavare un valore di x i+1 ottenuto utilizzando il sistema costituito dalle equazioni di sinistra.

5 Metodi e Applicazioni numeriche nellIngegneria Chimica 5 Guido Buzzi-Ferraris Esempio Trovare il valore di x, x s, che azzeri le due equazioni: partendo dal punto di primo tentativo x 1 = 0, x 2 = 1 Sommando alla prima equazione x 1 e alla seconda x 2 si ottiene: Le iterazioni sono: Il metodo diverge x 1 = 0.000; ; x 2 = 1.000; ;

6 Metodi e Applicazioni numeriche nellIngegneria Chimica 6 Guido Buzzi-Ferraris Esempio di Ingegneria Chimica Metodo BP (Boiling Point) per risolvere le equazioni di simulazione di una colonna di distillazione.

7 Metodi e Applicazioni numeriche nellIngegneria Chimica 7 Guido Buzzi-Ferraris Vengono usate le equazioni stechiometriche per ricavare un valore aggiornato di T j Dato un valore di tentativo di T j, L j, V j e y ij Vengono usate le equazioni di Bilancio Materiale per il componente i L j-1 x ij-1 – (V j k ij + L j )x ij + V j+1 k ij+1 x ij+1 = F j z i per ricavare le variabili x ij Vengono usate le equazioni di Bilancio Materiale: L j-1 - V j - L j + V j+1 = F j e le equazioni di Bilancio Energeti j co: L j-1 h j-1 - V j H j - L j h j + V j+1 H j+1 + Q j-1 = F j HF j per ricavare un valore aggiornato di L j e V j Si itera il processo

8 Metodi e Applicazioni numeriche nellIngegneria Chimica 8 Guido Buzzi-Ferraris Osservazioni Le equazioni: L j-1 x ij-1 – (V j k ij + L j )x ij + V j+1 k ij+1 x ij+1 = F j z i 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. L j-1 - V j - L j + V j+1 = F j Le equazioni: risolte rispetto alle variabili L j e V j costituiscono un sistema lineare con struttura a blocchi (di dimensioni 2) tridiagonali. L j-1 h j-1 - V j H j - L j h j + V j+1 H j+1 + Q j-1 = F j HF j

9 Metodi e Applicazioni numeriche nellIngegneria Chimica 9 Guido Buzzi-Ferraris 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.

10 Metodi e Applicazioni numeriche nellIngegneria Chimica 10 Guido Buzzi-Ferraris Vantaggi dei metodi di sostituzione Svantaggi dei metodi di sostituzione Spesso il metodo non converge perché alcuni dei sottoproblemi in cui è stato suddiviso il problema originale sono mal condizionati. Talvolta si può trovare un metodo che riesca a sfruttare algoritmi relativamente semplici. 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 lesempio del metodo BP). Il codice può perciò non essere di facile lettura.

11 Metodi e Applicazioni numeriche nellIngegneria Chimica 11 Guido Buzzi-Ferraris Metodi di sostituzione Obsoleti

12 Metodi e Applicazioni numeriche nellIngegneria Chimica 12 Guido Buzzi-Ferraris Promemoria Che cosa è lo Jacobiano di un sistema di equazioni?

13 Metodi e Applicazioni numeriche nellIngegneria Chimica 13 Guido Buzzi-Ferraris Lo Jacobiano di un sistema di equazioni f(x) è la matrice, J, delle derivate prime delle funzioni f j. Lo Jacobiano, J, di solito non è una matrice simmetrica.

14 Metodi e Applicazioni numeriche nellIngegneria Chimica 14 Guido Buzzi-Ferraris Metodo del gradiente Il gradiente della funzione di merito: è Perciò la direzione –g i è 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.

15 Metodi e Applicazioni numeriche nellIngegneria Chimica 15 Guido Buzzi-Ferraris Metodo di Newton Se le funzioni f possono essere espanse in serie di Taylor: f(x i +d i ) = f(x i ) + J(x i ) d i + O(||d i || 2 ) e il punto x i è sufficientemente vicino alla soluzione è possibile arrestare lo sviluppo ai termini di primo grado. In questo caso il vettore delle correzioni d i da apportare al punto x i si ottiene risolvendo il sistema lineare: f(x i +d i ) = f i + J i d i = 0 Il metodo di Newton, nella sua forma elementare, utilizza iterativamente la relazione: x i+1 = x i + d i J i d i = - f i con d i ricavato risolvendo il sistema lineare:

16 Metodi e Applicazioni numeriche nellIngegneria Chimica 16 Guido Buzzi-Ferraris Vantaggi del metodo di Newton Svantaggi del metodo di Newton Il metodo va in crisi se lo Jacobiano è singolare o molto mal condizionato. Il metodo di Newton, quando converge, converge molto rapidamente (ha una velocità di convergenza quadratica). Il metodo può non convergere. La previsione può essere peggiore di quella delliterazione 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. Se lo Jacobiano non è singolare la direzione d i del metodo di Newton è tale da garantire la diminuzione di tutte le funzioni di merito. Ad ogni iterazione deve essere risolto il sistema lineare: J i d i = - f i

17 Metodi e Applicazioni numeriche nellIngegneria Chimica 17 Guido Buzzi-Ferraris 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 J i d i = - f i. 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 J i d i = - f i. In entrambi i casi vengono apportate delle modifiche al metodo di Newton elementare che cercano di evitare i problemi di convergenza o di crisi.

18 Metodi e Applicazioni numeriche nellIngegneria Chimica 18 Guido Buzzi-Ferraris Metodi di continuazione Da non portare allesame

19 Metodi e Applicazioni numeriche nellIngegneria Chimica 19 Guido Buzzi-Ferraris Breve parentesi sullargomento Come imparare a imparare

20 Metodi e Applicazioni numeriche nellIngegneria Chimica 20 Guido Buzzi-Ferraris Molti anni fa quando ero un giovane pimpante durante unescursione 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 dellanno dopo in occasione di una gita molto impegnativa che richiedeva tutta la capienza del sacco.

21 Metodi e Applicazioni numeriche nellIngegneria Chimica 21 Guido Buzzi-Ferraris 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 allEverest. In caso contrario vi ritrovereste con un sacco enorme pieno di cose inutili.

22 Metodi e Applicazioni numeriche nellIngegneria Chimica 22 Guido Buzzi-Ferraris 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. Allo stesso modo quando si studia per preparare un esame non si deve esagerare con il materiale utilizzato.

23 Metodi e Applicazioni numeriche nellIngegneria Chimica 23 Guido Buzzi-Ferraris 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 allEverest.

24 Metodi e Applicazioni numeriche nellIngegneria Chimica 24 Guido Buzzi-Ferraris 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à. Questa metafora nel campo dello studio e più in generale per il tipo di vita che vi aspetta ha la seguente Wooka: Questultima regola mi ricorda quel famoso libro Istruzioni per unaquila che si crede un pollo Flinks: Personalmente aggiungerei un monito per quelli che invece sopravvalutano le loro capacità e consiglierei quellautore a scrivere anche un libro intitolato Istruzioni per tutti quei polli che si credono aquile

25 Metodi e Applicazioni numeriche nellIngegneria Chimica 25 Guido Buzzi-Ferraris Chiusa la parentesi sullargomento Come imparare a imparare

26 Metodi e Applicazioni numeriche nellIngegneria Chimica 26 Guido Buzzi-Ferraris Trovare il valore di x, x s, che azzeri le due equazioni: partendo dal punto di primo tentativo x 1 = 0, x 2 = 1 Esercitazione

27 Metodi e Applicazioni numeriche nellIngegneria Chimica 27 Guido Buzzi-Ferraris Il programma necessario è il seguente. #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(); } Per prima cosa bisogna mettere gli include Poi bisogna mettere il prototipo della funzione NonLinearSys serve per calcolare i residui delle funzioni 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 Ecco un esempio di uso della funzione BzzPrint Viene creato loggetto nls 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 funzione () che azzera la funzione nls chiama la BzzPrint che stampa i risultati La funzione BzzPause ferma il programma in attesa di ricevere un carattere Viene creato loggetto x0 che viene inizializzato con il valore di primo tentativo di x

28 Metodi e Applicazioni numeriche nellIngegneria Chimica 28 Guido Buzzi-Ferraris void NonLinearSys(BzzVectorDouble &x, BzzVectorDouble &f) { f[1] = * x[1] * x[2] – 1.; f[2] = exp(-x[1]) + exp(-x[2]) – ; } NonLinearSys serve per calcolare i residui delle funzionie da azzerare

29 Metodi e Applicazioni numeriche nellIngegneria Chimica 29 Guido Buzzi-Ferraris


Scaricare ppt "Metodi e Applicazioni numeriche nellIngegneria Chimica 1 Guido Buzzi-Ferraris."

Presentazioni simili


Annunci Google