Sei sulla pagina 1di 5

Metodi Numerici e Sperimentali in Ingegneria

Aerospaziale
11 Febbraio 2010

Cognome e Nome:
Matricola:

Si consideri il problema di Convezione-Diffusione 1D instazionario descritto


per x ∈ [0, L] e t ∈ [t0 , tf ] dall’equazione differenziale a derivate parziali con
coefficienti costanti:
∂ϕ ∂ϕ ∂2 ϕ
+a −k +bϕ=0
∂t ∂x ∂ x2
ed avente condizioni al contorno alla Dirichlet date da:

ϕ(0) = 0 ϕ(L) = 1 ∀t ∈]t0 , tf ]

e condizioni iniziali:

ϕ(x, t0 ) = ϕ0 (x) = 0
|a| L
con k = 1 ed a negativo tale che il numero di Peclet P e = possa
k
assumere valori diversi.

1)

L’allievo scriva una function MATLAB (chiamata ad esempio daixg) per la


costruzione di una griglia non uniforme:

xg = daixg(Xin, Xfin, sdi, ndu, iter)

• il parametro di uscita xg sará il vettore contenente le ascisse dei nodi


della griglia distribuiti in modo non uniforme

• i parametri di ingresso Xin e Xfin sono le ascisse rispettivamente


dell’estremo sinistro e dell’estremo destro dell’intervallo

1
• il parametro di ingresso sdi (scala divisioni interne) é un vettore
contenente i valori di scala (rispetto all’ampiezza dell’intervallo
L = Xfin - Xin ) delle ascisse che individuano la suddivisione di
primo tentativo in sotto intervalli:
{ Xin, Xin + sdi(1)*L, Xin + sdi(2) * L, \ldots ,
Xin + sdi(end)*L, Xfin }

• il parametro ndu (numero divisioni uniformi) é un vettore di lunghezza


pari al numero di sottointervalli e cioé
dovrá accadere che length(ndu) risulti uguale a length(sdi) + 1 e
conterrá in ciascuna sua componente il numero di suddivisioni uni-
formi in cui deve essere suddiviso uniformemente il corrispondente
sottointervallo

• il parametro di ingresso iter é un intero (preferibilmente >= 2 e <= 6


) e caratterizza una procedura (di diffusione parziale) della suddivi-
sione di primo tentativo della griglia xg esso infatti indica il numero di
volte per cui si applicherá al vettore xg delle coordinate di griglia (di
lunghezza N xg) il ciclo:

for ii = 2:Nxg-1
xg(ii) = .5*(xg(ii-1) + xg(ii+1));
end

2)

Utilizzando il calcolo simbolico in ambiente MATLAB si valutino sui nodi


della griglia xg precedentemente determinata usando la function daixg ’\
i valori della soluzione analitica stazionaria del problema dato per i valori del
numero di Peclet presi dall’insieme:

{0, 10, 25, 50}

e se ne traccino i diagrammi.

2
3)

L’allievo programmi in MATLAB un codice capace di fornire la soluzione


approssimata di ϕ sulla griglia xg per istanti discreti nell’intervallo [t0 , tf ]
utilizzando uno schema alle Differenze Finite di tipo Crank-Nicolson:

ϕn+1
i + θ ∆t L(b, a, k)ϕn+1
i = ϕni − (1 − θ)∆t L(b, a, k)ϕni (1)
dove per la discretizzazione dell’operatore di spazio:

∂ϕ ∂2 ϕ
L(b, a, k) = a −k +bϕ
∂x ∂ x2
viene usata la griglia non uniforme xg precedentemente determinata e le
function di MATLAB illustrate durante le esercitazioni e rese disponibili agli
allievi sul sito di Ateneo fornendo come parametri di ingresso uno stencil a
3 nodi e considerando come punto di collocazione di spazio il secondo dei
tre nodi dello stencil (oppure in alternativa il punto medio tra gli estremi di
ciascuno stencil ).

Ovviamente negli schemi di tipo Crank-Nicolson il punto di collocazione


temporale é t + θ ∆t.

Indicando con Finew il vettore (di lunghezza N) che approssima la soluzione


sulla griglia xg al tempo n + 1 (compresi i valori di bordo) e con Fiold il
vettore che approssima la soluzione al tempo n, ad ogni istante di tempo
occorrerá risolvere un sistema di equazioni lineari del tipo:

A ∗ Finew = q(n) (2)


dove

q(2:end-1) = B * Fiold

essendo B una matrice rettangolare di dimensioni (N - 1 x N) in cui i


coefficienti della riga i-esima rappresentano la forma discreta del secondo
membro della formula (1).

Inoltre

q(1) = Finew(1) (= ϕ(Xin, tn+1 )) e

q(N) = Finew(N) (= ϕ(Xf in, tn+1 ))

3
D’altra parte la submatrice A(2:N-1, 1:N) é una matrice in cui i coefficienti
della riga i-esima rappresentano la forma discreta del primo membro della
formula (1), mentre

A(1, 1:N) = [1, 0 ... 0]

A(n, 1:N) = [0, 0 ... , 0, 1]


Si confronti per Pe =50 la soluzione analitica trovata al punto 2) con quella
stazionaria ottenuta applicando il metodo numerico sopra descritto ed il
codice MATLAB qui costruito.

Indicando con

Ar = A(2:N-1,2:N-1) e

Br = B(1:N-2,2:N-1)
si analizzi mediante la function norm del MATLAB la capacitá di amplifi-
cazione della Matrice di transizione

T = Ar−1 ∗ Br

e si effettui -se possibile- la stima delle le proprietá di stabilitá dello


schema di Crank-Nicolson qui costruito.

4)
Si programmi in modo economico lo schema di Crank-Nicolson sopra de-
scritto.

Sia

(I + θM) ∗ Fi(n+1) = q(n) = (I − (1 − θ)M) ∗ Fi(n) (3)


la decomposizione corrispondente al sistema (2). Allora

q(n) − Fi(n+1) = θ M ∗ Fi(n+1)

e quindi
q(n) − Fi(n+1)
M ∗ Fi(n+1) = (4)
θ

4
ed in definitiva, stimando q (n) e q (n+1) dalla prima e seconda uguaglianza
della (3) si ha:

q(n+1) = (I − (1 − θ)M) ∗ Fi(n+1)


q(n) = (I + θM) ∗ Fi(n+1)

da cui

q(n+1) − q(n) = [(I − (1 − θ)M) − (I + θM)] ∗ Fi(n+1) = −M ∗ Fi(n+1)

dalla (4):

q(n) Fi(n+1) Fi(n+1)


 
(n+1) (n) (n) 1
q =q − + =q 1− +
θ θ θ θ

da cui la formula di upgrade sará

Fi(n)
 
(n+1) (n) (n−1) 1
(1 − θM)Fi =q =q 1− +
θ θ

Potrebbero piacerti anche