• Non ci sono risultati.

DIFFERENZE FINITE NELLA CONDUZIONE STAZIONARIA

Nel documento TRASMISSIONE DEL CALORE (pagine 51-54)

4 METODI NUMERICI PER LA CONDUZIONE

4.3 DIFFERENZE FINITE NELLA CONDUZIONE STAZIONARIA

     [65]

in forma algebrica alle differenze finite.

4.3 DIFFERENZE FINITE NELLA CONDUZIONE STAZIONARIA

Si abbia un corpo nel quale si desideri studiare la distribuzione della temperatura, ossia conoscere come varia T(x,y,z,). Si suddivida il corpo (che per semplicità qui raffiguriamo nel piano

(x,y)) con un reticolo avente passi x e y nelle due direzioni. Con riferimento al reticolo alla

Figura 26 e partendo dal nodo centrale di figura (indicato con i pedici i,j) si può riscrivere la [6] nella forma esatta, supponendo di essere in regime stazionario e in assenza di sorgenti di calore interne: 2 2 2 2 0 T T x y   [66]

Per trasformare la [66] in equazione alle differenze finite si deve utilizzare la [64] sia per la direzione x che per la direzione y.

In pratica si hanno le seguenti posizioni, perle derivate prime nella forma forward:

1, , i j i j T T T x x      [67] , 1 , i j i j T T T y y     [68] e ancora: 2 1, 1, , 2 2 2 i j i j i j T T T T x x     [69] 2 , 1 , 1 , 2 2 2 i j i j i j T T T T y y     [70]

per le derivate seconde.

Sostituendo la [69] e la [70] nell’equazione [66] si ottiene:

 

, 1, 1, , 1 , 1

2 1 Ti jTi jTi j Ti j Ti j

ove si è indicato con:

2 x y       il fattore di reticolo.

Figura 26: Reticolo piano per il metodo alle differenze finite Qualora =1 si ottiene la relazione:

1, 1, , 1 , 1 , 4 i j i j i j i j i j T T T T T

che fornisce immediatamente il valore della temperatura nel punti (i,j) note che siano quelle dei quattro punti ad esso adiacenti (vedi Figura 26).

Questo suggerisce il procedimento di calcolo, sia manuale che automatico, che occorre seguire per la determinazione delle temperature nei punti di un corpo:

si traccia un reticolo con passi trasversali e longitudinali eguali (x = y);

si fissano le temperature iniziali al contorno (condizione del 1° tipo) o si fornisce qualunque altro tipo di condizione al contorno (vedi più avanti);

 si calcola, per ciascun punto interno del reticolo prefissato, la temperatura come media delle temperature dei punti adiacenti;

si calcola la differenza (errore) fra il valore ora calcolato e quella del ciclo precedente (tranne

per il primo ciclo di calcolo nel quale, invece, si memorizza il valore calcolato e si azzera l'errore per il punto esaminato);

 calcolate le temperature e gli errori per tutti i punti del reticolo si confronta l'errore di ciascun punto con quello massimo che si desidera ottenere: se per tutti i punti si ha un errore calcolato inferiore a quello massimo prefissato allora si possono fermare le iterazioni altrimenti si riprende dall'inizio e si procede fino a quando la condizione di errore massimo si è verificata.

Va precisato, però, che l’errore non può essere fissato a piacere senza tenere conto della precisione di calcolo che si può raggiungere sia con lo strumento di elaborazione utilizzato sia in conseguenza dei passi di reticolo scelti.

Qualora si desidera avere una precisione maggiore occorre raffittire il reticolo e viceversa. Se la precisione di calcolo del computer non consente precisioni elevate12 è bene limitare l’errore massimo desiderato, ad esempio si può cercare una precisione del decimo di grado o al massimo del centesimo di grado (seconda cifra decimale!) altrimenti si rischia di avere tempi di calcolo inaccettabili e soluzioni irraggiungibili.

La determinazione della temperatura nei punti del corpo può essere ottenuta iterativamente con l’algoritmo indicato ovvero si può anche scrivere un sistema di equazioni, una per ciascun punto incognito, e risolvere il sistema in unico passo di calcolo.

Non si pensi che questa soluzione sia migliore della prima e che con essa si possa trascurare quanto detto a proposito dell’errore di calcolo. La risoluzione di un sistema algebrico di grandi

dimensioni (a seconda dei casi si va da poche centinaia a migliaia di equazioni da elaborare) porta intrinsecamente il problema della precisione di calcolo sia per il tipo di rappresentazione numerica utilizzato (in singola o in doppia precisione) sia per la precisione massima di calcolo consentita (numero di byte utilizzato dal processore).

Inoltre la stessa risoluzione del sistema di equazioni utilizza metodi iterativi interni alle librerie di calcolo (ad esempio il metodo della triangolarizzazione,….) che sono fortemente condizionati dalla precisione di calcolo utilizzata nel senso che i risultati finali sono dipendenti da questa precisione.

Se consideriamo un sistema di 1000 equazioni (relativo a 1000 punti interni al corpo) e si fa riferimento al metodo di Cramer per la risoluzione allora il determinante del sistema sarà la somma di 1000 termini ciascuno composto dal prodotto di 1000 elementi di righe e colonne diverse della matrice del sistema. Se ogni numero della matrice è composto da tre cifre più due decimali ne risulterà che i 1000 prodotti saranno dell’ordine di 102x1000 e quindi certamente superiori alla massima rappresentazione interna di qualsivoglia computer.

12 I computer digitali lavorano sempre con numeri binari e con essi cercano di rappresentare tutte le

grandezze che possono elaborare. La precisione di calcolo che è possibile raggiungere dipende dal numero di bit (cifra

binaria che assume valori 0 o 1) che il computer può elaborare per ogni numero. Di solito i bit vengono raggruppati in

gruppi di otto detti byte. Nei computer da tavolo (del tipo Personal Computer) il numero di byte utilizzati per i calcoli va, solitamente, da 4 (singola precisione) a otto (doppia precisione). E’ chiaro che al crescere dei byte per rappresentare ogni numero reale cresce anche l’occupazione della memoria di calcolo (RAM) utilizzata e pertanto si ha sempre un compromesso fra la precisione e l’occupazione della memoria. Con le tipologie prima indicate le precisioni che si possono ragionevolmente raggiungere sono di due ÷ tre cifre per la singola precisione e tre ÷ cinque cifre per la doppia precisione. In pratica l’insieme dei numeri reali esterni non trova una corrispondenza biunivoca con l’insieme

dei numeri rappresentati nel computer che sono sempre finiti! Pertanto è perfettamente inutile cercare una precisione

di calcolo che non è raggiungibile con il sistema di calcolo utilizzato. Nel caso si richieda una precisione eccessiva (e

quindi irraggiungibile con il calcolo) si avrà un ciclo senza fine e quindi occorre sempre inserire un controllo interno al

ciclo stesso che consenta di uscire qualora si sia raggiunto un numero massimo prefissato (ad esempio 20) di iterazioni. Con i computer di classe più elevata si possono oggi raggiungere precisioni altrettanto più elevate. E’ questo il caso dei computer di grandi dimensioni (supercomputer o mainframe) che utilizzano normalmente 128 o 256 bit (64

Pertanto è bene normalizzare la matrice in modo da avere numeri avente parte intera di una cifra e parte decimale di cinque cifre. Il problema dell’overflow numerico sussiste ancora. Meglio utilizzare la rappresentazione scientifica del tipo X.XXXXXEYY ma anche in questo caso l’esponente YY ha un limite massimo che dipende dalla precisione (ad esempio 23 per la doppia

precisione nei computer da tavolo).

Qualunque sia il metodo di risoluzione che si intende adottare occorre sempre considerare con molta attenzione i problemi di calcolo che ne derivano in relazione alla precisione consentita dal computer utilizzato. Non si commetta l’errore di credere che il computer esegue sempre in modo esatto i calcoli: si rischia di commettere errori grossolani ed avere spiacevoli sorprese.

Nel documento TRASMISSIONE DEL CALORE (pagine 51-54)

Documenti correlati