Estratto del documento

Calcolo numerico II

Indice

  • Introduzione alle equazioni differenziali 3
  • Metodi ad un passo 4
  • Metodi di Eulero 4
  • Codici d’implementazione 11
  • Costruzioni di altri metodi generici 13
  • Codici d’implementazione 16
  • Metodi di Runge-Kutta 18
  • Codici d’implementazione 20
  • Metodi di Estrapolazione 23
  • Stime a posteriori 25
  • Codici d’implementazione con passo adattativo 28
  • Equazioni alle differenze 33
  • Introduzione ai Metodi multistep 37
  • Metodi a più passi lineari 39
  • Codici d’implementazione 43
  • Metodi di Adams 45
  • Metodi predictor-corrector 47
  • Codici d’implementazione 48
  • Problema ai valori al contorno 50
  • Metodi risolutivi 54
  • Metodo Shooting 54
  • Metodo delle differenze finite 55
  • Codici d’implementazione 65
  • Metodo delle differenze finite per problemi non lineari 73
  • Codici d’implementazione 77
  • Metodo degli elementi finiti 79

1 Introduzione alle equazioni differenziali

Le equazioni differenziali sono equazioni, la cui incognita non è uno scalare o un vettore, ma una funzione ~x = ~x(t).

Una generica equazione differenziale appare nella forma G(~x, x(k)0, . . . , ~x) = 0.

Definizione 1.1. (Equazione ordinaria)

Si tratta di una equazione differenziale la cui incognita è ~x = ~x(t) con t ∈ R.

Definizione 1.2. (Forma ordinaria normale di ordine k)

Si tratta di una equazione differenziale ordinaria, che può venir riscritta nel seguente modo ~x(k) = f(x, x(k−1), x0, . . . , ~x, t).

Nota. D’ora in avanti non facciamo più distinzione tra ~x e x per poter alleggerire le notazioni.

Definizione 1.3. (Equazioni del primo e del secondo ordine)

Ci riferiamo a queste equazioni:

x0 = f(x, t)

x00 = f(x, x0, t)

Definizione 1.4. (Soluzione)

Sia f : Enk × R → Rn, allora x : I → Rn è soluzione su I di un’equazione differenziale del primo o secondo ordine, a seconda che m sia 2 o 3, se:

  • X è derivabile k volte.
  • ∀x ∈ I, (x, t) oppure (x, x0, t) ∈ E.
  • ∀x ∈ I l’equazione differenziale è soddisfatta.

Definizione 1.5. (Problema di Cauchy (PC) - Problema ai valori iniziali (PVI))

Si tratta di una particolare equazione differenziale scritta nella forma:

x(k) = f(x, x0, . . . , x(k−1), t)

x(t0) = x0

x0(t0) = x1

. . .

x(k−1)(t0) = xk−1

Teorema 1.6. (Teorema di Peano)

Sia f : Ω ⊂ Rnk × R → Rn con f ∈ C0(Ω) e (x, t) ∈ Ω, allora il PC ha almeno una soluzione.

Teorema 1.7. (Teorema di esistenza e unicità globale del PC)

Sia f : Ω ⊂ Rnk × J → Rn con J intervallo, f ∈ C0(Ω) e lipschitziana rispetto a (x, x0, . . . , x(k−1)), uniformemente rispetto a t su I con J compatto, allora ∀(x0, x1, . . . , xk−1, t) ∈ J il Problema di Cauchy ha 1! soluzione su J.

Teorema 1.8. (Teorema di esistenza e unicità locale del PC)

Sia f : Ω ⊂ Rnk+1 → Rn con f ∈ C1(Ω) e (x0, x1, . . . , xk−1, t) ∈ Ω, allora ∃ U(t0) t.c. il Problema di Cauchy ha 1! soluzione su U(t0).

2 Metodi ad un passo

2.1 Metodi di Eulero

Lemma 2.1. (Lemma di Gronwall)

Sia 0 ≤ v(t) ≤ A + B ∫t0t v(s)ds con t ∈ (t0, t0 + T), A, B, T ≥ 0. Allora v(t) ≤ AeBT.

Nota. Se fosse v(t) = A + B ∫t0t v(s)ds avrei v0(t) = Bv(t), v(t0) = A ⇒ v(t) = AeB(t−t0).

Dimostrazione. Sia z(t) = A + B ∫t0t v(s)ds. Segue che:

0 ≤ z0(t) = Bv(t) ≤ Bz(t)

z(t0) = A

⇒ z0(t) − Bz(t) ≤ 0

⇒ z0(t)e−B(t−t0) − Bz(t)e−B(t−t0) ≤ 0

⇒ (z(t)e−Bt)0 ≤ 0

Si ha che quindi la funzione è monotona decrescente e di conseguenza:

z(t)e−B(t−t0) ≤ A

z(t) ≤ AeB(t−t0)

v(t) ≤ z(t) ≤ AeB(t−t0) ≤ AeBT.

Lemma 2.2. (Disuguaglianze e identità)

  • 2ab ≤ ηa2 + b2/η, ∀η > 0 poiché si ha η(a − b/η)2 ≥ 0.
  • a(a − b) = 1/2(a2 + (a − b)2 − b2).
  • Se a ≤ b + c, allora a2 ≤ b2 + c2 (disuguaglianza triangolare).

Lemma 2.3.

Da a|en+1| ≤ a|en| + b|σn| si ottiene in modo ricorsivo:

|en+1| ≤ |e0|(a/a)n+1 + b/a ∑i=0n (a/a)n−i max(|σn|). (2.1.1)

Teorema 2.4.

Dato un PVI:

y0 = f(t, y)

y(t0) = y0

Se considero il PVI:

0 = f(t, ỹ) + σ(t)

ỹ(t0) = y0 + σ0

Con f(x, y) lipschitziana rispetto a y, uniformemente rispetto a t, allora questo problema non è ben posto.

Dimostrazione. Se considero:

|y(t) − ỹ(t)| = |∫t0t (f(s, y(s)) − f(s, ỹ(s)) + σ(s))ds|

≤ ∫t0t |f(s, y(s)) − f(s, ỹ(s))|ds + ∫t0t |σ(s)|ds, con t ∈ (t0, t0 + T), T ∈ R.

= L ∫t0t |y(s) − ỹ(s)|ds + ∫t0t |σ(s)|ds.

Per il lemma di Gronwall:

|y(t) − ỹ(t)| ≤ (|σ0| + ∫t0t |σ(s)|ds) · eLT.

Definizione 2.5. (Problemi dissipativi)

Diciamo che f è un problema dissipativo se la funzione f è monotona non crescente nella variabile y.

Nota. Se f è monotona decrescente, f(0) = 0 si ha:

y0 · y1 = f0 · f1 ≤ 0.

(y0)2 ≤ 0.

Teorema 2.6.

Dato un problema dissipativo, la maggiorazione dell’errore è minore di un problema non dissipativo.

Dimostrazione. Dato:

δ̃(t) = ỹ0(t) − y0(t) = f(t, ỹ(t)) − f(t, y(t)) + σ(t)

δ(t0) = 0

⇒ δ̃(t)δ(t) = [f(t, ỹ(t)) − f(t, y(t))][ỹ(t) − y(t)] + σ(t)δ(t)

⇒ δ̃(t)δ(t) ≤ σ(t)δ(t)

⇒ (δ̃(t))2 ≤ 2σ(t)δ(t).

Posso allora integrare sia a destra, sia a sinistra, mantenendo la disequazione.

1/2 δ2(t) − 1/2 δ2(t0) ≤ ∫t0t σ(s)δ(s)ds.

δ2(t) ≤ 2 ∫t0t |σ(s)| · |δ(s)|ds ≤ 2 maxx∈(t0,t)|δ(s)| ∫t0t|σ(s)|ds.

A questo punto ho che 2 maxx∈(t0,t)|δ(s)| ∫t0t|σ(s)|ds è monotona crescente.

⇒ maxx∈(t0,t)|δ(t)|2 ≤ 2 maxx∈(t0,t)|δ(s)| ∫t0t|σ(s)|ds.

Pongo a = maxx∈(t0,t)|δ(t)|, b = ∫t0t|σ(s)|ds e quindi ho a2 ≤ 2ab.

Inoltre 2ab ≤ a2/2 + 2b2.

2 maxx∈(t0,t)|δ(t)|2 ≤ a2 + 4b2.

Cioè:

maxx∈(t0,t)|δ(t)|2 ≤ 2 + 4 ∫t0t|σ(s)|ds.

E quindi:

maxx∈(t0,t)|δ(t)| ≤ 2 + 2 √ ∫t0t|σ(s)|ds. (2.1.2)

Definizione 2.7. (Metodo di Eulero esplicito)

Dato il PC:

y0 = f(t, y(t)), t ∈ [t0, t0 + T]

y(t0) = y0

Assegniamo ad ogni punto nel piano una velocità. Noi sappiamo che f(t0, y0) = y0(t0), quindi, in U(t0, y0) se considero la retta tangente y0 + f(t0, y0)(t − t0) al posto della funzione si avrà un errore o(h) e l’idea è di riconsiderare il PC in t0 + h = t1, chiamiamo quindi Y1 = y0 + hf(t0, y0) e ricorsivamente Yn = Yn−1 + hf(tn, Yn−1). Questo metodo è chiamato metodo di Eulero esplicito.

Nota. Quando si utilizza il metodo di Eulero esplicito, come da qualsiasi altro metodo, si commettono due tipi di errori differenti.

  • Il primo errore lo si commette muovendosi sulla retta tangente al posto che sulla funzione in un intorno della soluzione.
  • Il secondo errore è che consideriamo al passo α il valore f(tα, Yα) che non è tangente alla prima curva!

Un modo alternativo per costruire il metodo di Eulero esplicito è notare che:

(y(t + h) − y(t))/h ' y0(t) = f(t, y(t)).

Ponendo allora y(x + n h) = Yn si ha:

(Yn+1 − Yn)/h ' f(tn, Yn).

Dal quale si scrive subito Yn+1 = Yn + hf(tn, Yn).

Di seguito diamo le definizioni dei seguenti errori.

Definizione 2.8. (Errore locale di troncamento)

Si tratta del primo errore, il muoversi sulla retta tangente, e riscalando per h si ha:

δn(h) = 1/h(y(tn+1) − [y(tn) + hf(tn, y(tn))]).

Esso è quindi l’errore in una iterazione supponendo di avere la soluzione esatta, nel caso particolare usando Eulero esplicito.

Definizione 2.9. (Consistenza)

Diciamo che un metodo è consistente se δn(h) → 0 per h → 0, ∀n.

Diciamo che un metodo è di ordine α se per h → 0 si ha δn(h) = c hα = O(hα).

Nota. Il metodo di Eulero è consistente con ordine 1, infatti applicando Taylor si ha:

δn(h) = 1/h[y(tn) + hy0(tn) + h2/2 y00(tn) + o(h2) − y(tn) − hy0(tn)] = h/2 y00(tn) + o(h) = O(h).

E quindi δn(h) = O(h).

Definizione 2.10. (Errore globale di troncamento)

Si tratta dell’errore:

en = y(tn) − Yn.

Definizione 2.11. (Metodo convergente)

Diciamo che un metodo è un metodo convergente se en → 0, per h → 0.

Teorema 2.12.

Il metodo di Eulero esplicito è convergente.

Dimostrazione. Possiamo riscrivere il PC, o PVI, in forma discreta; si ha, scrivendo yn al posto di y(tn) e σn al posto di σn(h):

yn+1 = yn + hf(tn, yn) + hσn e Yn+1 = Yn + hf(tn, Yn).

Se poniamo en+1 = yn+1 − Yn+1 allora otteniamo:

en+1 = en + h[f(tn, yn) − f(tn, Yn)] + hσn

⇒ |en+1| ≤ |en| + h|L(yn − Yn)| + h|σn| = (1 + hL)|en| + h|σn|.

⇒ |en+1| ≤ (1 + hL)(1 + hL)|en−1| + h|σn| + h|σn| ≤ . . . ≤ (1 + hL)n+1|e0| + h ∑j=0n(1 + hL)n−jj|.

Sia allora σ = max |σn(h)| si ha che:

|en+1| ≤ hσ ∑j=0n(1 + hL)j = hσ ((1+hL)n+1 − 1)/hL ≤ σ/L eLT.

Poiché σ = Mh, M = max(y2), si ha che il metodo è convergente di ordine 1.

Definizione 2.13. (Problemi di Stabilità)

Diciamo che un metodo, quando esso viene applicato ad un problema dissipativo lineare, cioè nella forma y(n) = λ ∑i y(i), ha un problema di stabilità o che è instabile, se scelto il passo finito h, dal punto di vista teorico esso è infinitesimale, ma dal punto di vista pratico, su un calcolatore, no, la soluzione Yn non tende a 0 quando n tende a infinito ma vi è un errore che viene propagato al crescere di n e quindi di tn.

Un metodo che non dà problemi di stabilità sotto alcune ipotesi viene chiamato assolutamente stabile.

Nota. Ovviamente è possibile definire e controllare la stabilità su equazioni differenziali non lineari, ma la sua definizione sarebbe diversa da quella appena data e l’instabilità difficile da controllare.

Definizione 2.14. (A-stabilità)

Diciamo che un metodo è A-stabile se la sua regione di stabilità non dipende dal passo temporale.

Esempio 2.15. (Problema modello con Eulero esplicito)

Dato il problema modello:

y0 = λy, Re(λ) < 0

y(0) = 1

Banalmente si ha che y(t) = eλt, se però applichiamo il metodo di Eulero esplicito si ha:

Yn+1 = Yn + hλYn = (1 + hλ)Yn = . . . = (1 + hλ)nY0 = (1 + hλ)n.

Se h > 0 è fissato, si ha che se |1 + hλ| > 1 allora per n → infinito Yn → infinito al contrario di y(tn). Questo è un problema di stabilità, perché il metodo di Eulero esplicito non converge alla soluzione poiché h è troppo grande, nello specifico serve |1 + hλ| < 1 ⇒ −2 < Re(hλ) < 0 ⇒ h < −2/Re(λ).

Nota. Il caso descritto nell’esempio si può generalizzare facilmente; data y : R → Rk e l’equazione:

y0(t) = Ay(t), A ∈ M(k) simm., def. negativa

y(0) = y0

Allora si deve scegliere il passo h nel seguente modo.

Si ha che ∃ X t.c. XAX−1 = Δ diagonale con λi autov. di A.

A = X−1ΔX ⇒ y0 = Ay ⇒ X−1y0 = Δ(X−1y).

Ponendo z = X−1y si ha z0 = Δz, si ha quindi, su ogni singola componente, una equazione del tipo z0i = f(zi).

Possiamo quindi applicare il metodo di Eulero esplicito, e per evitare problemi di stabilità dovremmo scegliere h t.c. |1 + hλi| < 1, ∀i = 1 . . . k, cioè h < 2/|max|λi|.

Nel caso invece λ fosse a sua volta in funzione di t, sarebbe allora necessario scegliere h tale che h ≤ 2/max(λ(t)).

Definizione 2.16. (Regione di assoluta stabilità)

Si tratta di un sottoinsieme di C i cui elementi z = h · λ non causano problemi di stabilità al metodo utilizzato.

Definizione 2.17. (Metodo di Eulero implicito)

Per ottenere il metodo di Eulero esplicito abbiamo considerato l’approssimazione della derivata prima da sinistra, se invece consideriamo la seguente approssimazione:

(Yn+1 − Yn)/h ' f(tn+1, Yn+1)

Otteniamo il metodo iterattivo Yn+1 = Yn + hf(tn+1, Yn+1).

Che viene chiamato implicito perché la soluzione Yn+1 dipende da Yn+1 stessa. A questo punto si possono usare diversi metodi per risolvere il metodo implicito, come ad esempio porre:

Yn+1 − Yn − hf(tn+1, Yn+1) = g(Yn+1).

Usando il metodo di bisezione, che però è ”lento”, oppure il metodo di Newton, notando che y0n+1 − y0n. Ma se si avesse y0 = 1 o se non fossimo abbastanza vicini al punto, il metodo di Newton potrebbe non convergere.

Un’altra strada è quella di porre Yn+1 = Φ(Yn+1) = Yn + hf(tn+1, Yn+1), valutare quindi il problema come problema di punto fisso.

Si nota subito che Φ0(S) = hfy(tn+1, S) e che per la convergenza di questo metodo serve h < 1/fy perché Φ sia una contrazione, condizione sufficiente, ma non necessaria.

Nota. In questo caso il vincolo da porre ad h, in confronto al metodo di Newton implicito, è due volte maggiore, serve un passo h minore in confronto, la condizione è però sufficiente, non necessaria.

Consistenza

Si ha che il metodo di Eulero implicito è consistente, infatti si ha:

n(h) = y(tn+1) − y(tn) − h f(tn+1, y(tn+1)).

n(h) = yn + hy0n + h2/2 y00n + . . . − yn − h(y0n + hy00n + . . .) = yn.

Convergenza

Si può dimostrare che il metodo di Eulero implicito converge con ordine 1.

Sia y(tn+1) = y(tn) + hf(tn+1, y(tn+1)) + hσn+1 e Yn+1 = Yn + hf(tn+1, Yn+1), posto allora en+1 = y(tn+1) − Yn+1 si ha:

en+1 = en + h[f(tn+1, yn+1) − f(tn+1, Yn+1)] + hσn+1.

Anteprima
Vedrai una selezione di 10 pagine su 89
Calcolo Numerico 2 Pag. 1 Calcolo Numerico 2 Pag. 2
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Calcolo Numerico 2 Pag. 6
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Calcolo Numerico 2 Pag. 11
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Calcolo Numerico 2 Pag. 16
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Calcolo Numerico 2 Pag. 21
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Calcolo Numerico 2 Pag. 26
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Calcolo Numerico 2 Pag. 31
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Calcolo Numerico 2 Pag. 36
Anteprima di 10 pagg. su 89.
Scarica il documento per vederlo tutto.
Calcolo Numerico 2 Pag. 41
1 su 89
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Ely90h di informazioni apprese con la frequenza delle lezioni di Calcolo Numerico 2 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano o del prof Verdi Claudio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community