Metodi e Applicazioni numeriche nell’Ingegneria Chimica Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Libri di testo Le lezioni sono estratte dal libro: Metodi numerici e Software in C++ Addison-Wesley Le esercitazioni sono estratte dal libro: Visual C++ Applicazioni scientifiche Mondadori Informatica Il mio sito webb dove potrete trovare le librerie BzzMath e i file delle lezioni: www.chem.polimi.it/homes/gbuzzi Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Introduzione Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Rappresentazione di un fenomeno fisico su calcolatore Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Si supponga di voler simulare su calcolatore un fenomeno fisico La prima cosa che è necessario fare è scrivere le equazioni matematiche che ne permettano la simulazione. Molto spesso in Ingegneria Chimica può trattarsi di un’apparecchiatura, per esempio Il fenomeno che si desidera simulare può essere di qualsiasi tipo. M Reattore K Colonna di distillazione Questa fase viene indicata come quella di scrivere il modello matematico del fenomeno fisico. Scambiatore Spesso il modello richiede alcune semplificazioni perché nella sua veste originale è troppo complicata Il modello matematico spesso deve essere semplificato. Sia il modello originale che quello semplificato non possono essere implementati tal quale su di un calcolatore. Se per esempio il modello è costituito da un sistema di equazioni algebriche bisogna proporre un metodo di calcolo adatto alla soluzione di sistemi algebrici. Si deve proporre un metodo di calcolo per la soluzione dei problemi numerici posti dal modello matematico. Il metodo di calcolo deve essere poi essere trasformato in algoritmo. Infine l’algoritmo deve essere implementato in un programma di calcolo. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Esempio in Ingegneria Chimica Trovare la temperatura di inizio di ebollizione di una miscela liquido-vapore ideale. F V L z1,.. zM y1,.. yM x1,.. xM T, P Q Una miscela con portata molare costante F e frazioni molari zi (i = 1, M) è in condizioni di equilibrio in un contenitore mantenuto ad una pressione costante P. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Promemoria Quando si effettua un bilancio si usa sempre la seguente regola generale: Accumulation = In – Out + Generation Se il sistema è stazionario In – Out + Generation = 0 Se non c’è reazione Accumulation = In – Out Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Si isola l’apparecchiatura e si scrivono le equazioni che legano fra loro le variabili Pressione P, portata F e composizione zi alimentazione assegnate. F V L z1,.. zM y1,.. yM x1,.. xM T, P Q Bilancio Materiale per il componente i: Vyi + Lxi = Fzi Equilibrio componente i: yi - kixi = 0 Stechiometrica: Bilancio Materiale: V + L = F Bilancio Energetico: V H + L h + Q = F HF Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Quesito Sarebbe corretto parlare di bilancio termico invece di bilancio energetico? Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Con M componenti si hanno 2M + 3 equazioni nelle incognite: V, L, T, xi, yi. Nelle equazioni compaiono le seguenti funzioni che devono essere note: Costanti di equilibrio: ki = ki (T,P,x,y) Entalpia del vapore: H = H(T,P,y) Entalpia del liquido: h = h(T,P,x) Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Se la miscela è ideale le costanti k di equilibrio non dipendono dalla composizione: ki = ki(T, P) Il punto di bolla si calcola ponendo nel precedente sistema V = 0. Il sistema diventa: Bilancio Materiale L = F Bilancio Materiale per il componente i: xi = zi Equilibrio componente i: yi = kixi Stechiometrica: Bilancio Energetico: Q = F HF - V H - L h Il problema si riduce perciò alla ricerca dello zero della funzione: Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Abbiamo così trovato il modello matematico del fenomeno fisico. Si deve proporre un metodo di calcolo per la ricerca dello zero di una funzione. Il metodo di calcolo deve essere poi essere trasformato in algoritmo. Infine l’algoritmo deve essere implementato in un programma di calcolo. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Promemoria Che cosa è un algoritmo? Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Un algoritmo è un procedimento costituito da una sequenza di operazioni elementari e non ambigue che prescrive il modo di calcolare la soluzione di un problema a partire da eventuali dati assegnati. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Esempio Si debba calcolare il valore di y y = a + bx + cx2 date tutte le altre grandezze. Primo algoritmo y = c * x y = (y + b) * x Richiede 2 moltiplicazioni e 2 somme y = y + a Secondo algoritmo y = a + b * x Richiede 3 moltiplicazioni e 2 somme y = y + c * x * x Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Osservazioni Un algoritmo viene scritto in un linguaggio standard che emula il comportamento dei vari linguaggi (C, C++, FORTRAN, Pascal, Basic ecc.) usati per scrivere un programma reale su calcolatore. Le prime volte si può rimanere perplessi di fronte ad espressioni come: y = y + a Il significato di questa espressione non è quello della solita algebra! Essa significa: il valore memorizzato nella variabile y viene sommato al valore di a e il risultato va a sostituire il vecchio valore della variabile y. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Promemoria Un problema numerico può essere risolto con più di un metodo di calcolo. Un metodo di calcolo può essere trasformato in più di un algoritmo. Un algoritmo può essere implementato su calcolatore usando diversi linguaggi di programmazione. Per risolvere un problema numerico si dovrà perciò scegliere: 1. I metodi di calcolo migliori. 2. Per ognuno di essi gli algoritmi migliori. 3. Il modo migliore di trasformare gli algoritmi in programma di calcolo Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Scopo di questo corso è quello di introdurvi alle motivazioni che stanno alla base di questa triplice scelta. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Promemoria Nei calcoli eseguiti con il calcolatore giocano un ruolo fondamentale gli errori di arrotondamento Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Prima conseguenza Alcune proprietà valide in analisi classica (senza errori di arrotondamento) non risultano più valide quando i calcoli sono eseguiti con il calcolatore Esempio In analisi classica è equivalente scrivere un sistema lineare nella forma Ax = b oppure: x = A-1b In analisi numerica non è equivalente ricavare x risolvendo il sistema lineare o eseguendo il prodotto fra la matrice inversa e il vettore b. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
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
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Volutamente nelle due precedenti diapositive ho introdotto alcune nozioni che, ne sono quasi certo, per alcuni di voi richiederebbero delle delucidazioni. Per esempio che cosa sono gli errori di arrotondamento? Oppure siete sicuri di ricordare bene l’algebra lineare o che cosa è una matrice inversa? E come mi aspettavo nessuno mi ha chiesto spiegazioni. Questo è un grave errore La regola numero uno per imparare una nuova materia è quella di partecipare attivamente alle lezioni. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Il modo migliore per partecipare attivamente ad una lezione è quello di fare domande. Chi farà più domande utili riceverà in premio 2 punti in più all’esame Una buona notizia! Ricordate che uno dei più gravi errori fatto da alcuni filosofi errore che risale a Bacone è quello di credere che per imparare bisogna semplicemente aprire la mente dopo averla liberata da tutti i pregiudizi Wooka: Se vuoi crescere fai domande e pretendi risposte Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Vi è però un problema. Non sempre c’è qualcuno che sia in grado di chiarirvi qualche dubbio per esempio quando state studiando su di un libro. Il problema può essere più sottile. Non sempre è possibile chiarire completamente i vostri dubbi in quel preciso momento. In entrambi i casi vale la seguente regola numero due Per imparare una nuova materia bisogna muoversi come su di una spirale passando e ripassando ciclicamente sugli stessi argomenti sempre più lentamente e sempre più a fondo. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Come prerequisito di questa regola bisogna imparare a leggere e a studiare un libro scientifico a ritmi diversi e con gradi di approfondimento diversi. Per prima cosa va letto l’indice del libro. Questa pre-lettura serve per farsi un’idea dei contenuti del libro e della sua struttura La prima lettura del libro va effettuata in una o due ore. Questa lettura molto veloce serve per cominciare a familiarizzarsi con lo stile del libro e a individuare i concetti difficili e i punti critici La seconda lettura va effettuata in uno o due giorni. Questa lettura veloce serve per familiarizzarsi ulteriormente con lo stile del libro e per l’individuazione di altri concetti difficili e punti critici Durante questa lettura si deve cominciare a sottolineare il testo e a prendere appunti La terza lettura va effettuata in una settimana. In questa lettura bisogna cominciare a memorizzare il contenuto assimilandolo in modo critico. La quarta lettura va effettuata in due settimane. In questa fase viene migliorato il lavoro di sottolineatura del testo e di stesura degli appunti. La quinta lettura va effettuata in due o tre giorni. In questa fase viene completato il lavoro di sottolineatura del testo e di stesura degli appunti. In questa lettura viene completata la memorizzazione del testo e approfondito lo studio critico di esso In questa fase viene rifinito il lavoro di sottolineatura del testo e di stesura degli appunti. In questa lettura viene rifinita la memorizzazione del testo L’ultima lettura di ripasso va effettuata in una o due ore. In questa fase vengono sfruttati le sottolineature del testo e gli appunti. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Chiusa la parentesi sull’argomento Come imparare a imparare Flinks: Non c’è peggior scolaro di chi non vuole imparare! Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Promemoria Che cosa sono i vettori e le matrici? Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Un vettore è una colonna di m numeri Esempio m = 4 Se i numeri sono disposti su di una riga il vettore si dice trasposto e si indica con l’apice T Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Una matrice è una tabella di numeri formata da m righe e n colonne. A = Esempio m = 4; n = 3 I coefficienti di una matrice vengono indicati con aij dove il primo pedice si riferisce alla riga e il secondo alla colonna. Per esempio a2,3 = 4.2 Se in una matrice si scambiano le righe con le colonne diventa la sua trasposta e si indica con l’apice T. Esempio Un vettore non è altro che una matrice con una sola colonna Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Promemoria Come si fa a fare il prodotto fra matrici? Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica La matrice C di M righe e N colonne ottenuta dal prodotto fra la matrice A di M righe e K colonne con la matrice B di K righe e N colonne ha i seguenti coefficienti: i = 1, M j = 1, N Attenzione!!! Il numero delle colonne di A deve essere uguale al numero delle righe di B Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Promemoria Che cos’è la matrice inversa di una matrice quadrata? Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica La matrice inversa di una matrice quadrata A (ossia di una matrice con ugual numero di righe e di colonne) viene indicata con A-1 ed è la matrice che moltiplicata per A dà come risultato la matrice identità I ossia la matrice avente coefficienti unitari sulla diagonale e zero altrove. A-1A = I Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Promemoria Nei calcoli eseguiti con il calcolatore giocano un ruolo fondamentale gli errori di arrotondamento Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Prima conseguenza Alcune proprietà valide in analisi classica (senza errori di arrotondamento) non risultano più valide quando i calcoli sono eseguiti con il calcolatore Esempio In analisi classica è equivalente scrivere un sistema lineare nella forma Ax = b oppure: x = A-1b In analisi numerica non è equivalente ricavare x risolvendo il sistema lineare o eseguendo il prodotto fra la matrice inversa e il vettore b. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Seconda conseguenza Una proprietà ricavata con i procedimenti dell’analisi classica in corrispondenza di un ben preciso valore di una grandezza, non è quasi valida quando il valore numerico della stessa grandezza è prossimo a quello teorico. Esempio In analisi classica un valore nullo del determinante della matrice dei coefficienti di un sistema lineare discrimina sistemi senza soluzione o con infinite soluzioni da quelli aventi una sola soluzione In analisi numerica un valore piccolissimo del determinante non ci dà alcuna informazione sulle caratteristiche del sistema. Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Metodi e Applicazioni numeriche nell’Ingegneria Chimica Guido Buzzi-Ferraris Metodi e Applicazioni numeriche nell’Ingegneria Chimica