Approssimazione FD 1D su griglia non uniforme Metodi analitici e numerici per l’Ingegneria Aerospaziale 15 Ottobre 2004
Consideriamo il problema: Il problema continuo Consideriamo il problema: dove ,g>0, f2C0(a,b) è data, con condizioni al contorno: dove ua e ub sono due valori assegnati.
a = x 1<x 2<...<x n-1<x n = b Griglia non uniforme Introduciamo sull’intervallo (a,b) una griglia non uniforme di n nodi: a = x 1<x 2<...<x n-1<x n = b Definiamo i seguenti passi di discretizzazione: hi := x i+1 – x i, i = 1,...,n-1 Indichiamo con ui l’approssimazione di u(x i). Vogliamo calcolare ui, per i=1,...,n, usando uno schema alle differenze finite.
Utilizziamo le formule di Taylor centrate in x i. Sviluppi con Taylor A tale scopo calcoliamo uno schema centrato del secondo ordine per la derivata prima e seconda. Utilizziamo le formule di Taylor centrate in x i. Poichè x i-1 = x i – hi-1 e x i+1 = x i + hi, abbiamo:
Usando uno schema del tipo: Du(xi) = -1u(xi-1) + 0u(xi) + 1u(xi+1), Approssimazione della derivata prima Usando uno schema del tipo: Du(xi) = -1u(xi-1) + 0u(xi) + 1u(xi+1), otteniamo:
Dobbiamo quindi richiedere che: Approssimazione della derivata prima Dobbiamo quindi richiedere che: da cui otteniamo la soluzione:
Abbiamo dunque il seguente schema centrato per la derivata prima: Approssimazione della derivata prima Abbiamo dunque il seguente schema centrato per la derivata prima: che, se u 2 C3(a,b), è accurato al secondo ordine nel senso che l’errore si comporta come hi-1 hi.
Analogamente, usando uno schema del tipo: Approssimazione della derivata seconda Analogamente, usando uno schema del tipo: D2u(xi) = -1u(xi-1) + 0u(xi) + 1u(xi+1), otteniamo:
Dobbiamo quindi richiedere che: Approssimazione della derivata seconda Dobbiamo quindi richiedere che: da cui otteniamo la soluzione:
Abbiamo dunque il seguente schema centrato per la derivata seconda: Approssimazione della derivata seconda Abbiamo dunque il seguente schema centrato per la derivata seconda: Osserviamo che l’errore commesso, se u 2C3(a,b) è: Quindi lo schema è del primo ordine!
Approssimazione della derivata seconda Per trovare uno schema del secondo ordine abbiamo bisogno di uno stencil composto da almeno 4 punti. Per ragioni di simmetria si usa uno stencil con 5 punti: x i-2, x i-, x i, x i+1, x i+2. Useremo nel seguito lo schema riportato sopra. Lasciamo per ESERCIZIO il calcolo di tale schema. Si noti che in questo caso è necessario calcolare schemi non centrati per il secondo e il penultimo nodo.
Equazioni sui nodi interni Otteniamo quindi le seguenti equazioni sui nodi interni x 1, ..., x n-1: Da cui:
Equazioni sui nodi di bordo Bisogna ancora scrivere due equazioni per i nodi di bordo in modo da ottenere un sistema quadrato. Sfruttiamo le condizioni al contorno. Per le condizioni di Dirichlet abbiamo semplicemente: un = ua, mentre per le condizioni di Neumann dobbiamo ancora cercare uno schema adeguato (del secondo ordine non centrato).
Utilizzando nuovamenti le formule di Taylor: Approssimazione della derivata prima: schema non centrato. Utilizzando nuovamenti le formule di Taylor:
che è accurato al secondo ordine, purchè u2C3(a,b). Approssimazione della derivata prima: schema non centrato. e procedendo in maniera analoga a quanto fatto prima, otteniamo lo schema: che è accurato al secondo ordine, purchè u2C3(a,b). Discretizzando la condizione di Neumann otteniamo quindi l’equazione:
Il problema discreto Otteniamo quindi il seguente sistema lineare (di n equazioni in n incognite): Au = f , dove u = [u1,u2, ... ,un-1,un], f = [ua,f2, ... ,fn-1,ub] e con: per i = 2, ..., n-1:
ed . Gli altri elementi di A sono nulli. Approssimazione della derivata seconda ed . Gli altri elementi di A sono nulli.
Osserviamo l’equazione relativa all’ultimo nodo: Condizione di Dirichlet: eliminazione di riga e colonna Risolvendo il sistema appena scritto, abbiamo incluso un tra le incognite. In realtà grazie alla condizione di Dirichlet un è noto! Abbiamo quindi n-1 incognite ) dobbiamo scrivere n-1 equazioni nelle n-1 incognite u1,…, un-1. Le equazioni sono ovviamente quelle relative ai nodi interni e alla condizione di Neumann. Osserviamo l’equazione relativa all’ultimo nodo:
Tale equazione può essere riscritta come: Condizione di Dirichlet: eliminazione di riga e colonna Tale equazione può essere riscritta come:
Âu = c, Abbiamo quindi il sistema (di n-1 equazioni in n-1 incognite): Il problema discreto Abbiamo quindi il sistema (di n-1 equazioni in n-1 incognite): Âu = c, dove u = [u1,u2, ... ,un-1], c = [ua,f2, ... ,fn-1-cub], con c = , e  = A(1:n-1,1:n-1) . Possiamo dire che abbiamo eliminato, in maniera opportuna, una riga e una colonna di A, quelle relative al nodo con condizioni di Dirichlet.
Il probelma discreto Osserviamo che: se ub = 0 possiamo limitarci ad eliminare semplicemente una riga e una colonna di A ; se in a avessimo avuto una condizione di Dirichlet avremmo dovuto operare in maniera analoga, ottenendo così un sistema tridiagonale (n-2) x (n-2) .