Sei sulla pagina 1di 7

MODELLI E METODI NUMERICI -01FGW

TEMI d’ ESAME

1 Problemi ellittici
1.1 Esercizio
Risolvere il problema:

−4u=f in R = (0, 1) × (0, 2)


u=0 su ∂R,

dove quindi R è un rettangolo, mentre ∂R indica il bordo del rettangolo. Il


carico è f (x, y) = y. Usare elementi finiti P 1 definiti su triangoli uniformi, con
cateti lunghi h in entrambe le direzioni. Visualizzare la soluzione per due diversi
valori della griglia h.

1.2 Esercizio
Risolvere il problema:

−4u=f in Q = (0, 1)2


ux (x = 0, y) = 0
u=0 sul resto della frontiera di Q.

Il carico è f (x, y) = 2. Usare elementi finiti P 1 definiti su triangoli uniformi,


con cateti lunghi h in entrambe le direzioni. Calcolare la matrice di rigidità e
risolvere il sistema lineare algebrico con il metodo del gradiente coniugato.
Fissare una soglia per definire la convergenza. Disegnare un grafico con il
numero di iterazioni M necessario ad arrivare a convergenza per diversi valori
di N (N= numero dei nodi interni su un singolo lato).
Infine, usare i dati ottenuti per stimare il numero p tale che:

M (N ) ' CN p .

1.3 Esercizio
Considerare il problema:

−uxx + u = f in I = (0, 1)
u(x = 0) = u(x = 1) = 0.

Calcolare la matrice di rigidità per un metodo ad elementi finiti basato su ele-


menti lineari a tratti, su una griglia uniforme, con N nodi interni. Disegnare un
grafico sull’andamento del numero di condizionamento della matrice di rigiditá,
in funzione di N .

1
1.4 Esercizio
Considerare il problema:
−uxx + u = f in I = (0, 1)
ux (x = 0) = ux (x = 1) = 0.
Calcolare la matrice di rigidità per un metodo ad elementi finiti basato su ele-
menti lineari a tratti, su una griglia uniforme, con N nodi interni. Disegnare un
grafico sull’andamento del numero di condizionamento della matrice di rigiditá,
in funzione di N .

1.5 Esercizio
Risolvere il problema:
−4u=f in Q = (0, 1)2
ux (x = 0, y) = 0 e ux (x = 1, y) = 0
u=0 sul resto della frontiera di Q,
usando elementi finiti P 1 lineari a tratti, definiti su una triangolazione uniforme.
Il carico è f (x, y) = 2.

1.6 Esercizio
Risolvere il problema:
−uxx + (|x| − 1)ux = 0 in (−1, 1)
u(x = −1) = 0
u(x = 1) = 0

Usare elementi finiti P 1 (lineari a tratti) definiti su intervalli uniformi, di ampiezza


h, scegliendo la griglia in modo da avere un nodo in x = 0. Disegnare un grafico
della soluzione trovata, in funzione di x.

2 Problemi parabolici
2.1 Esercizio
Risolvere il problema:
ut − νuxx = 0 in (0, 1)
u(x, t = 0) = 1
ux (x = 0, t) = 0
u(x = 1, t) = 0.

Scegliere ν = 0.01. Usare elementi finiti P 1 definiti su intervalli uniformi, di


ampiezza h. Calcolare la matrice di rigidità e risolvere il sistema differenziale
lineare con il metodo di Eulero esplicito o di Eulero implicito.

2
2.2 Esercizio
Risolvere il problema:
ut − νuxx = 0 in (0, 1)
u(x, t = 0) = 1
u(x = 0, t) = 0.5
ux (x = 1, t) = 1
Scegliere ν = 0.01. Usare elementi finiti P 1 definiti su intervalli uniformi, di
ampiezza h. Calcolare la matrice di rigidità e risolvere il sistema differenziale
lineare con il metodo di Crank-Nicolson.

2.3 Esercizio
Risolvere il problema:
ut − νuxx = 1 in (0, 1)
u(x, t = 0) = 1
u(x = 0, t) = 0.5
ux (x = 1, t) = 1
Scegliere ν = 0.01. Usare elementi finiti P 2 (quadratici a tratti) definiti su
intervalli uniformi, di ampiezza h. Calcolare la matrice di rigidità e risolvere il
sistema differenziale lineare con il metodo di Crank-Nicolson.

2.4 Esercizio
Calcolare la matrice di massa per il problema:
ut − νuxx = 1 in (0, 1)
u(x, t = 0) = 1
ux (x = 0, t) = 0.5
u(x = 1, t) = 1
nel caso in cui si usino elementi P 2 quadratici a tratti, su una griglia uniforme.
Scegliere ν = 0.01. Studiare l’andamento del numero di condizionamento della
matrice di massa, in funzione del numero di nodi interni.

2.5 Esercizio
Risolvere il problema:
ut − νuxx + ux = 0 in (0, 1)
u(x, t = 0) = 1
u(x = 0, t) = 0
u(x = 1, t) = 1
Scegliere ν = 0.01. Usare elementi finiti P 1 (lineari a tratti) definiti su intervalli
uniformi, di ampiezza h. Disegnare un grafico della soluzione trovata all’istante
t = 1, in funzione di x.

3
3 Problemi iperbolici
3.1 Esercizio
Considerare il problema

ut + aux = 0 in I = (0, 1)
u(x, t = 0) = sin(2πx),

con condizioni al contorno di periodicità. Usare il metodo di Lax-Friedrichs ed


il metodo di Godunov fino a T = 2. Chiamare Uh (xi , T ) la soluzione ottenuta
con uno dei due metodi numerici, usando una griglia di ampiezza h. Sia invece
u(x, T ) la soluzione esatta al tempo T . Stimare l’accuratezza p dei due metodi
valutando, per diversi valori di h, calcolando il rapporto:
||u(., T ) − Uh (., T )||1 C(h)p
→ = 2p ,
||u(., T ) − Uh/2 (., T )||1 C(h/2)p

per h abbastanza piccolo. Per valutare la norma 1, usare la formula:


X
||Uh (., T )||1 = |U (xj , T )|h.
j

3.2 Esercizio
Risolvere il problema del traffico

ρt + (f (ρ))x = 0 in (−∞, ∞)
f (ρ) = umax ρ (1 − ρ/ρmax ) ,

con umax = 50 Km/h e ρmax = 200 veicoli al chilometro.


Considerare il dato iniziale:

 ρ1 x < −0.2 Km
ρ(x, t = 0) = ρmax −0.2 Km < x < 0
0

Questo problema iniziale corrisponde alla situazione in cui un traffico uniforme


di densità ρ1 raggiunge una coda lunga 200 m di auto ferme ad un semaforo,
che è diventato verde all’istante iniziale.
Stimare il tempo T necessario a smaltire la coda ferma, per diversi valori
di ρ1 . Questo problema può essere svolto analiticamente, oppure è possibile
stimare T usando un metodo numerico opportuno.

3.3 Esercizio
Risolvere il problema:

ut + aux = 0 in (−2, 0)
(x/10)
u(x, t = 0) = e sin(πx),

4
con condizioni al contorno periodiche e a = 2. Usare il metodo di Beam-
Warming (vedi appunti) per integrare l’equazione fino a T = 2. Ripetere
l’esercizio per il seguente problema iniziale:

sin(πx) −2 ≤ x ≤ −3/2
u(x, t = 0) =
− 16
9 x(x + 3
2 ) −3/2 < x ≤ 0.

Stampare i grafici con le soluzioni in entrambi i casi e commentare i risultati


ottenuti.

3.4 Esercizio
Risolvere il problema:

ut + (f (u))x = 0 in (−2, 0)
f (u) = u2 /2

Considerare il dato iniziale

u(x, t = 0) = e(x/10) sin(πx).

Risolvere il problema con un metodo numerico adatto, e stimare numericamente,


usando diversi valori di h, l’istante ts in cui si formano le onde d’urto.
Fissare un tempo T = ts /2, e calcolare la soluzione numerica Uh (xi , T )
usando il metodo di Lax Fredrichs o il metodo di Lax Wendroff. Usare quindi la
soluzione Uh (xi , T ) appena trovata come dato iniziale per il problema definito
dall’equazione ut − (u2 /2)x = 0. Risolvere quest’ultimo problema fino a t = T .
Chiamo Ũh (xi , T ) la soluzione trovata in questo modo.
Verificare che per h → 0, Ũh (xi , T ) → u(xi , t = 0). Valutare la velocità di
convergenza, stimando ||Ũh (., T ) − u(., t = 0)||1 per diversi valori di h.

3.5 Esercizio
Risolvere il problema del traffico

ρt + (f (ρ))x = 0 in (−∞, 0)
f (ρ) = umax ρ (1 − ρ/ρmax ) ,

con umax = 50 Km/h e ρmax = 200 veicoli al chilometro.


Considerare il dato iniziale e al bordo:

ρ(x, t = 0) = ρ1 ρ(x = 0, t) = ρmax .

Questo problema iniziale corrisponde alla situazione in cui un traffico uniforme


di densità ρ1 raggiunge un semaforo che diventa rosso all’istante T = 0. Calco-
lare analiticamente la posizione della fine della coda, in funzione di ρ1 e t.
Risolvere il problema con un metodo numerico adatto, confrontando la stima
teorica della posizione della coda con quella ottenuta numericamente.

5
3.6 Esercizio
Considerare il problema

ut + ux = 0  in I = (−1, 1)
3 −0.5 < x < 0.5
u(x, t = 0) = ,
0 −1 ≤ x ≤ −0.5 e 0.5 ≤ x ≤ 1

con condizioni al contorno di periodicità. Fissare una griglia con 100 intervalli
uniformi su [−1, 1]. Usare il metodo di Lax-Friedrichs, integrando l’equazione
fino ad un tempo t, con λ = 0.9.
Sia M (t) il numero di celle, al tempo t, sulle quali viene diffuso il gradino
che all’istante iniziale si trovava in x = 0.5. Disegnare un grafico di M (t) in
funzione di t.
Suggerimento: per stimare M (t), calcolare il numero di celle che all’istante
t hanno valori compresi fra 0.01 e 2.99, e poi dividere il risultato per 2, in modo
da separare il contributo dei due gradini.

3.7 Esercizio
Considerare il problema

ut + ux = 0  in I = (−1, 1)
3 −0.5 < x < 0.5
u(x, t = 0) = ,
0 −1 ≤ x ≤ −0.5 e 0.5 ≤ x ≤ 1

con condizioni al contorno di periodicità. Fissare una griglia con 100 intervalli
uniformi su [−1, 1]. Usare il metodo Upwind, integrando l’equazione fino ad un
tempo t, con λ = 0.9.
Sia M (t) il numero di celle, al tempo t, sulle quali viene diffuso il gradino
che all’istante iniziale si trovava in x = 0.5. Disegnare un grafico di M (t) in
funzione di t.
Suggerimento: per stimare M (t), calcolare il numero di celle che all’istante
t hanno valori compresi fra 0.01 e 2.99, e poi dividere il risultato per 2, in modo
da separare il contributo dei due gradini.

3.8 Esercizio
Risolvere l’equazione di Buckley-Leverett:
h i
u2
ut + u2 +(1−u 2) =0 in I = (0, 1)
 x √
0 0≤x< √ 1 − 1/ 2
u(x, t = 0) = ,
1 1 − 1/ 2 ≤ x ≤ 1

con condizioni al contorno di free-flow, fino a T = 2. Usare il metodo di Lax-


Friedrichs. In questo caso, il flusso non è una funzione convessa, e la soluzione
esatta è composta da uno shock e da un’onda di rarefazione. Individuare nu-
mericamente la posizione dello shock in T = 2.

6
3.9 Esercizio
Risolvere l’equazione di Buckley-Leverett modificata:
h i
u2 2
ut + u2 +(1−u 2 ) 1 − 5(1 − u ) =0 in I = (0, 1)
 x √
0 0≤x< √ 1 − 1/ 2 ,
u(x, t = 0) =
1 1 − 1/ 2 ≤ x ≤ 1

con condizioni al contorno di free-flow, fino a T = 2. Usare il metodo di Lax-


Friedrichs. In questo caso, il flusso non è una funzione convessa, e la soluzione
esatta è composta da uno shock, da un’onda di rarefazione e da un secondo
shock. Individuare numericamente la posizione delle due onde d’urto in T = 2.

3.10 Esercizio
Considerare l’equazione di Burger:

ut + 12 u2 x = 0

in I = (−1, 1)
u(x, t = 0) = 2 − sin(πx) + sin(2πx)

con condizioni al contorno di periodicità. Usare il metodo di Godunov.


Questo problema ai valori iniziali dà origine a due onde d’urto. Stimare,
usando l’evoluzione della soluzione numerica, la velocità delle due onde d’urto
e l’istante di collisione.

3.11 Esercizio
Considerare il problema

ut + 2ux = 0  in I = (−1, 1)
3 −0.5 < x < 0.5
u(x, t = 0) = ,
0 −1 ≤ x ≤ −0.5 e 0.5 ≤ x ≤ 1

con condizioni al contorno di periodicità. Fissare una griglia con 100 intervalli
uniformi su [−1, 1]. Usare il metodo di Lax-Friedrichs, per diversi valori di λ,
integrando l’equazione fino all’istante t = 2.
Sia M il numero di celle, al tempo t = 2, sulle quali viene diffuso il gradino
che all’istante iniziale si trovava in x = 0.5. Disegnare un grafico di M in
funzione di λ.
Suggerimento: per stimare M , calcolare il numero di celle che all’istante
t = 2 hanno valori compresi fra 0.01 e 2.99, e poi dividere il risultato per 2, in
modo da separare il contributo dei due gradini.