• Non ci sono risultati.

LucioDemeioDIISM CorsodiCalcoloNumerico

N/A
N/A
Protected

Academic year: 2021

Condividi "LucioDemeioDIISM CorsodiCalcoloNumerico"

Copied!
46
0
0

Testo completo

(1)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Corso di Laurea in Ingegneria Gestionale Sede di Fermo

Corso di Calcolo Numerico

9 - EQUAZIONI DIFFERENZIALI ORDINARIE

Lucio Demeio

DIISM

(2)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali: metodo di Eulero

Problemi ai Valori Iniziali: metodo di Runge-Kutta

Problemi al contorno

(3)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai valori iniziali

Problemi ai Valori iniziali

Ci occuperemo della soluzione numerica di equazioni del prim’ordine del tipo

y 0 (t) = f (t, y),

t ∈ [t A , t B ] con la condizione iniziale y(t A ) = α. Il problema ` e ben posto (vedi la schermata successiva) se la funzione f soddisfa una condizione di continuit` a Lipschitziana rispetto ad y nell’insieme D = {(t, y) : t A ≤ t ≤ t B , −∞ < y < ∞}, cio` e se esiste una costante L tale che

|f (t, y 1 ) − f (t, y 2 )| ≤ L |y 1 − y 2 |

per ogni (t, y 1 ), (t, y 2 ) ∈ D.

(4)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai valori iniziali

Problema ben posto

Si dice che il problema ai valori iniziali y 0 (t) = f (t, y) y(t A ) = α

`

e ben posto se

La soluzione esiste ed ` e unica;

se, per ogni ε > 0 esiste una costante k(ε) > 0 tale che, se

|ε 0 | < ε e δ(t) continua con |δ(t)| < ε per t ∈ [t A , t B ], la soluzione z(t) del problema perturbato

z 0 (t) = f (t, z) + δ(t) z(t A ) = α + ε 0

esiste, ` e unica e soddisfa |z(t) − y(t)| < k(ε) ε per

t ∈ [t A , t B ].

(5)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai valori iniziali

Problema ben posto

Si dice che il problema ai valori iniziali y 0 (t) = f (t, y) y(t A ) = α

`

e ben posto se

La soluzione esiste ed ` e unica;

se, per ogni ε > 0 esiste una costante k(ε) > 0 tale che, se

|ε 0 | < ε e δ(t) continua con |δ(t)| < ε per t ∈ [t A , t B ], la soluzione z(t) del problema perturbato

z 0 (t) = f (t, z) + δ(t) z(t A ) = α + ε 0

esiste, ` e unica e soddisfa |z(t) − y(t)| < k(ε) ε per

t ∈ [t A , t B ].

(6)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai valori iniziali

Problema ben posto

Si dice che il problema ai valori iniziali y 0 (t) = f (t, y) y(t A ) = α

`

e ben posto se

La soluzione esiste ed ` e unica;

se, per ogni ε > 0 esiste una costante k(ε) > 0 tale che, se

|ε 0 | < ε e δ(t) continua con |δ(t)| < ε per t ∈ [t A , t B ], la soluzione z(t) del problema perturbato

z 0 (t) = f (t, z) + δ(t) z(t A ) = α + ε 0

esiste, ` e unica e soddisfa |z(t) − y(t)| < k(ε) ε per

t ∈ [t A , t B ].

(7)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai valori iniziali

Problema ben posto

Commento: la seconda condizione affinch` e un problema sia ben

posto significa che, se si perturbano di poco la funzione f e la

condizione iniziale, l’esistenza ed unicit` a della soluzione deve

essere ancora garantita e la soluzione del problema perturbato

deve differire di poco da quella del problema non perturbato.

(8)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai valori iniziali

Metodo di Eulero

Iniziamo con la discretizzazione della variabile indipendente, dividendo l’intervallo [t

A

, t

B

] in N intervallini equispaziati; se h ` e il passo di discretizzazione, abbiamo t

i

= t

A

+ i h, per i = 0, 1, 2, ..., N , con t

0

= t

A

e t

N

= t

B

. Rappresentando la derivata y

0

(t) con la formula delle differenze finite in avanti, ed indicando con w

i

l’approssimazione numerica al valore della soluzione in t

i

, cio` e y(t

i

) ≈ w

i

, otteniamo

w

i+1

− w

i

h = f (t

i

, w

i

) + O(h),

dove abbiamo calcolato il membro di destra dell’equazione

differenziale in t

i

. Sopprimendo il termine di errore ed esplicitando w

i+1

:

w

i+1

= w

i

+ h f (t

i

, w

i

),

che, con la condizione iniziale w

0

= y(t

A

) = α, fornisce tutti i valori

w

i

, cio` e l’approssimazione numerica alla soluzione dell’equazione

differenziale.

(9)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai valori iniziali

Errore nel metodo di Eulero

Ricordiamo che le formule alle differenze finite in avanti utilizzate qui portano un errore lineare nel passo h:

y 0 (t i ) = y(t i+1 ) − y(t i )

h − h

2! y 00 (ξ).

Supponiamo di sapere che la derivata seconda ` e limitata, cio` e che esiste una costante M > 0 tale che

|y 00 (t)| ≤ M

per t ∈ [t A , t B ].

(10)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai valori iniziali

Errore nel metodo di Eulero

Si pu` o allora dimostrare che l’errore nel metodo di Eulero obbedisce alla seguente limitazione:

|y(t i ) − w i | ≤ h M 2L

h

e L(t

i

−t

A

) − 1 i

dove L ` e la costante di continuit` a lipschitziana della f rispetto ad y. Non ` e detto che si riesca sempre a trovare la costante M e quindi a trovare un limite realistico per l’errore.

L’errore diminuisce linearmente con il passo h, quindi scegliendo passi pi` u piccoli la precisione del metodo migliora. Attenzione per` o: nella formula per l’errore non si ` e tenuto conto degli errori di arrotondamento, dovuti alla rappresentazione dei numeri in virgola mobile. Scegliendo passi h molto piccoli, aumenta anche il numero di valutazioni della funzione, e l’accumulo degli errori di

arrotondamento porta ad una perdita di precisione. In pratica, esiste

un h minimo al di sotto del quale non si deve scendere.

(11)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai valori iniziali

Errore nel metodo di Eulero

Si pu` o allora dimostrare che l’errore nel metodo di Eulero obbedisce alla seguente limitazione:

|y(t i ) − w i | ≤ h M 2L

h

e L(t

i

−t

A

) − 1 i

dove L ` e la costante di continuit` a lipschitziana della f rispetto ad y. Non ` e detto che si riesca sempre a trovare la costante M e quindi a trovare un limite realistico per l’errore.

L’errore diminuisce linearmente con il passo h, quindi scegliendo passi pi` u piccoli la precisione del metodo migliora. Attenzione per` o:

nella formula per l’errore non si ` e tenuto conto degli errori di arrotondamento, dovuti alla rappresentazione dei numeri in virgola mobile. Scegliendo passi h molto piccoli, aumenta anche il numero di valutazioni della funzione, e l’accumulo degli errori di

arrotondamento porta ad una perdita di precisione. In pratica, esiste

un h minimo al di sotto del quale non si deve scendere.

(12)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Il metodo di Eulero ` e poco preciso ma estremamante semplice

da implementare.

(13)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodi di Runge-Kutta

Vogliamo risolvere il problema y 0 (t) = f (t, y),

t ∈ [t A , t B ] con la condizione iniziale y(t A ) = α, con uno schema di ordine superiore rispetto a quello di Eulero.

Ricaveremo una famiglia di algoritmi seguendo una strada diversa da quella vista in precedenza.

Intanto, ricordiamo la variabile t discretizzata, con t i = i h, per i = 0, 1, 2, ..., N , e t 0 = t A e t N = t B e che indichiamo con w i l’approssimazione numerica ad y(t i ).

Supposto noto il valore w i all’istante t i , possiamo integrare l’equazione differenziale da t i a t i+1 ottenendo in modo esatto

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt

(14)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodi di Runge-Kutta

Vogliamo risolvere il problema y 0 (t) = f (t, y),

t ∈ [t A , t B ] con la condizione iniziale y(t A ) = α, con uno schema di ordine superiore rispetto a quello di Eulero.

Ricaveremo una famiglia di algoritmi seguendo una strada diversa da quella vista in precedenza.

Intanto, ricordiamo la variabile t discretizzata, con t i = i h, per i = 0, 1, 2, ..., N , e t 0 = t A e t N = t B e che indichiamo con w i l’approssimazione numerica ad y(t i ).

Supposto noto il valore w i all’istante t i , possiamo integrare l’equazione differenziale da t i a t i+1 ottenendo in modo esatto

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt

(15)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodi di Runge-Kutta

Vogliamo risolvere il problema y 0 (t) = f (t, y),

t ∈ [t A , t B ] con la condizione iniziale y(t A ) = α, con uno schema di ordine superiore rispetto a quello di Eulero.

Ricaveremo una famiglia di algoritmi seguendo una strada diversa da quella vista in precedenza.

Intanto, ricordiamo la variabile t discretizzata, con t i = i h, per i = 0, 1, 2, ..., N , e t 0 = t A e t N = t B e che indichiamo con w i l’approssimazione numerica ad y(t i ).

Supposto noto il valore w i all’istante t i , possiamo integrare l’equazione differenziale da t i a t i+1 ottenendo in modo esatto

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt

(16)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodi di Runge-Kutta

A questo punto, a seconda dell’approssimazione che usiamo per calcolare l’integrale, otteniamo uno schema diverso;

per ottenere uno schema con errore pi` u piccolo rispetto allo schema di Eulero, dovremo pagare il prezzo di un maggior numero di valutazioni della funzione f ; tale numero, s, viene detto numero di stadi del metodo ed il corrispondente algoritmo viene detto metodo di Runge-Kutta ad s stadi;

in realt` a, ` e pi` u utile classificare i metodi di Runge Kutta a seconda dell’ordine dell’errore, e quindi si parla di metodo di ordine n quando l’errore ` e di ordine O(h n );

vedremo i casi con s = 1 (che restituisce il metodo di

Eulero), s = 2 (Runge-Kutta a due stadi, RK2, de

second’ordine) ed s = 4 (Runge-Kutta a quattro stadi,

RK4, del quart’ordine).

(17)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodi di Runge-Kutta

A questo punto, a seconda dell’approssimazione che usiamo per calcolare l’integrale, otteniamo uno schema diverso;

per ottenere uno schema con errore pi` u piccolo rispetto allo schema di Eulero, dovremo pagare il prezzo di un maggior numero di valutazioni della funzione f ; tale numero, s, viene detto numero di stadi del metodo ed il corrispondente algoritmo viene detto metodo di Runge-Kutta ad s stadi;

in realt` a, ` e pi` u utile classificare i metodi di Runge Kutta a seconda dell’ordine dell’errore, e quindi si parla di metodo di ordine n quando l’errore ` e di ordine O(h n );

vedremo i casi con s = 1 (che restituisce il metodo di

Eulero), s = 2 (Runge-Kutta a due stadi, RK2, de

second’ordine) ed s = 4 (Runge-Kutta a quattro stadi,

RK4, del quart’ordine).

(18)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodi di Runge-Kutta

A questo punto, a seconda dell’approssimazione che usiamo per calcolare l’integrale, otteniamo uno schema diverso;

per ottenere uno schema con errore pi` u piccolo rispetto allo schema di Eulero, dovremo pagare il prezzo di un maggior numero di valutazioni della funzione f ; tale numero, s, viene detto numero di stadi del metodo ed il corrispondente algoritmo viene detto metodo di Runge-Kutta ad s stadi;

in realt` a, ` e pi` u utile classificare i metodi di Runge Kutta a seconda dell’ordine dell’errore, e quindi si parla di metodo di ordine n quando l’errore ` e di ordine O(h n );

vedremo i casi con s = 1 (che restituisce il metodo di

Eulero), s = 2 (Runge-Kutta a due stadi, RK2, de

second’ordine) ed s = 4 (Runge-Kutta a quattro stadi,

RK4, del quart’ordine).

(19)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodi di Runge-Kutta

A questo punto, a seconda dell’approssimazione che usiamo per calcolare l’integrale, otteniamo uno schema diverso;

per ottenere uno schema con errore pi` u piccolo rispetto allo schema di Eulero, dovremo pagare il prezzo di un maggior numero di valutazioni della funzione f ; tale numero, s, viene detto numero di stadi del metodo ed il corrispondente algoritmo viene detto metodo di Runge-Kutta ad s stadi;

in realt` a, ` e pi` u utile classificare i metodi di Runge Kutta a seconda dell’ordine dell’errore, e quindi si parla di metodo di ordine n quando l’errore ` e di ordine O(h n );

vedremo i casi con s = 1 (che restituisce il metodo di

Eulero), s = 2 (Runge-Kutta a due stadi, RK2, de

second’ordine) ed s = 4 (Runge-Kutta a quattro stadi,

RK4, del quart’ordine).

(20)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodo di Runge-Kutta ad uno stadio

Con la posizione

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt = w i + h f (t i , w i ) + O(h 2 )

abbiamo il metodo ad uno stadio che restituisce il metodo di Eulero.

Metodo di Runge-Kutta a due stadi

E facile vedere che, calcolando l’integrale usando il valore della ` funzione nel punto medio dell’intervallo, l’errore diventa del terz’ordine:

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt = w i +h f

 t i + h

2 , w i+1/2



+O(h 3 )

(21)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodo di Runge-Kutta ad uno stadio

Con la posizione

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt = w i + h f (t i , w i ) + O(h 2 )

abbiamo il metodo ad uno stadio che restituisce il metodo di Eulero.

Metodo di Runge-Kutta a due stadi

E facile vedere che, calcolando l’integrale usando il valore della ` funzione nel punto medio dell’intervallo, l’errore diventa del terz’ordine:

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt = w i +h f

 t i + h

2 , w i+1/2



+O(h 3 )

(22)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodo di Runge-Kutta a due stadi

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt = w i +h f t i + (h/2), w i+1/2 +O(h 3 )

dove si ` e indicato con w i+1/2 l’approssimazione numerica alla soluzione per t i + h/2. Quest’ultima pu` o essere calcolata con un passo del metodo di Eulero,

w i+1/2 = w i + (h/2) f (t i , w i ) + O(h 2 ).

Sopprimendo l’errore ed introducendo

k 1 ≡ f (t i , w i ) k 2 ≡ f (t i + (h/2), w i + (h/2) k 1 ) , otteniamo alfine il metodo di Runge-Kutta a due stadi:

w i+1 = w i + h k 2

(23)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodo di Runge-Kutta a quattro stadi

Usando questa volta la regola di Simpson abbiamo

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt = w i + h

3 [f (t i , w i ) +4 f t i + h/2, w i+1/2  + f (t i + h, w i+1 ) + O(h 5 )

Con opportune approssimazioni a w i+1/2 e w i+1 , si perviene alla regola di Runge Kutta del quart’ordine

w i+1 = w i + h

6 (k 1 + 2 k 2 + 2 k 3 + k 4 )

(24)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodo di Runge-Kutta a quattro stadi

Usando questa volta la regola di Simpson abbiamo

w i+1 = w i + Z t

i+1

t

i

f (t, y(t)) dt = w i + h

3 [f (t i , w i ) +4 f t i + h/2, w i+1/2  + f (t i + h, w i+1 ) + O(h 5 )

Con opportune approssimazioni a w i+1/2 e w i+1 , si perviene alla regola di Runge Kutta del quart’ordine

w i+1 = w i + h

6 (k 1 + 2 k 2 + 2 k 3 + k 4 )

(25)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodo di Runge-Kutta a quattro stadi

dove

k 1 = f (t i , w i )

k 2 = f (t i + h/2, w i + (h/2) k 1 ) k 3 = f (t i + h/2, w i + (h/2) k 2 ) k 4 = f (t i + h, w i + h k 3 )

Se la soluzione ` e di classe C 5 , l’errore del metodo ` e O(h 4 ).

Mathematica file ODE.nb

(26)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Metodo di Runge-Kutta a quattro stadi

dove

k 1 = f (t i , w i )

k 2 = f (t i + h/2, w i + (h/2) k 1 ) k 3 = f (t i + h/2, w i + (h/2) k 2 ) k 4 = f (t i + h, w i + h k 3 )

Se la soluzione ` e di classe C 5 , l’errore del metodo ` e O(h 4 ).

Mathematica file ODE.nb

(27)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Errore di troncamento

I metodi di Eulero e di Runge-Kutta visti sopra si possono scrivere in generale nella forma

w i+1 = w i + h φ(t i , w i ) w 0 = α.

Negli schemi di questo tipo, detti anche metodi alle differenze finite, si introduce l’errore di troncamento locale, τ i+1 (h), che ` e l’errore che si ottiene se si sostituisce la soluzione esatta all’equazione differenziale discretizzata. Con la notazione y i = y(t i ), abbiamo esplicitamente

τ i+1 (h) = y i+1 − (y i + h φ(t i , y i ))

h = y i+1 − y i

h − φ(t i , y i )

L’errore di troncamento dipende dall’equazione differenziale,

dal metodo usato e dal passo di discretizzazione.

(28)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Stabilit` a, convergenza e consistenza

Un metodo numerico si dice consistente se lim

h→0 τ i (h) = 0;

per ogni i;

un metodo numerico si dice convergente se lim

h→0 w i = y(t i ); per ogni i;

un metodo numerico si dice stabile se la soluzione numerica rimane limitata.

Se uno schema numerico ` e consistente, allora esso ` e convergente

se e solo se ` e stabile.

(29)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Stabilit` a, convergenza e consistenza

Un metodo numerico si dice consistente se lim

h→0 τ i (h) = 0;

per ogni i;

un metodo numerico si dice convergente se lim

h→0 w i = y(t i );

per ogni i;

un metodo numerico si dice stabile se la soluzione numerica rimane limitata.

Se uno schema numerico ` e consistente, allora esso ` e convergente

se e solo se ` e stabile.

(30)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Stabilit` a, convergenza e consistenza

Un metodo numerico si dice consistente se lim

h→0 τ i (h) = 0;

per ogni i;

un metodo numerico si dice convergente se lim

h→0 w i = y(t i );

per ogni i;

un metodo numerico si dice stabile se la soluzione numerica rimane limitata.

Se uno schema numerico ` e consistente, allora esso ` e convergente

se e solo se ` e stabile.

(31)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Stabilit` a, convergenza e consistenza

Un metodo numerico si dice consistente se lim

h→0 τ i (h) = 0;

per ogni i;

un metodo numerico si dice convergente se lim

h→0 w i = y(t i );

per ogni i;

un metodo numerico si dice stabile se la soluzione numerica rimane limitata.

Se uno schema numerico ` e consistente, allora esso ` e convergente

se e solo se ` e stabile.

(32)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Errore di troncamento

Per il metodo di Eulero abbiamo φ(t i , y i ) = f (t i , y i ) e si vede facilmente (anche dall’espressione del metodo di Runge-Kutta ad uno stadio) che τ i+1 (h) = O(h);

per il metodo di Runge-Kutta a due stadi vediamo subito che τ i+1 (h) = O(h 2 );

per il metodo di Runge-Kutta a quattro stadi invece τ i+1 (h) = O(h 4 ).

Questo giustifica le nostre affermazioni sull’ordine dei vari

metodi visti sopra.

(33)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Errore di troncamento

Per il metodo di Eulero abbiamo φ(t i , y i ) = f (t i , y i ) e si vede facilmente (anche dall’espressione del metodo di Runge-Kutta ad uno stadio) che τ i+1 (h) = O(h);

per il metodo di Runge-Kutta a due stadi vediamo subito che τ i+1 (h) = O(h 2 );

per il metodo di Runge-Kutta a quattro stadi invece τ i+1 (h) = O(h 4 ).

Questo giustifica le nostre affermazioni sull’ordine dei vari

metodi visti sopra.

(34)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Errore di troncamento

Per il metodo di Eulero abbiamo φ(t i , y i ) = f (t i , y i ) e si vede facilmente (anche dall’espressione del metodo di Runge-Kutta ad uno stadio) che τ i+1 (h) = O(h);

per il metodo di Runge-Kutta a due stadi vediamo subito che τ i+1 (h) = O(h 2 );

per il metodo di Runge-Kutta a quattro stadi invece τ i+1 (h) = O(h 4 ).

Questo giustifica le nostre affermazioni sull’ordine dei vari

metodi visti sopra.

(35)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi ai Valori Iniziali

Errore di troncamento

Per il metodo di Eulero abbiamo φ(t i , y i ) = f (t i , y i ) e si vede facilmente (anche dall’espressione del metodo di Runge-Kutta ad uno stadio) che τ i+1 (h) = O(h);

per il metodo di Runge-Kutta a due stadi vediamo subito che τ i+1 (h) = O(h 2 );

per il metodo di Runge-Kutta a quattro stadi invece τ i+1 (h) = O(h 4 ).

Questo giustifica le nostre affermazioni sull’ordine dei vari

metodi visti sopra.

(36)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

Equazioni del second’ordine

Qui ci occuperemo della soluzione di equazioni differenziali del tipo

y 00 (x) = p(x) y 0 (x) + q(x) y(x) + r(x), con le condizioni al contorno y(a) = α, y(b) = β, di cui vogliamo determinare la soluzione per via numerica nell’intervallo a ≤ x ≤ b.

Per fare questo, iniziamo discretizzando la variabile indipendente come fatto in precedenza per i problemi ai valori iniziali: {x i } N i=0 , con x i = a + h i.

Introduciamo quindi un’approssimazione alle differenze

finite per gli operatori differenziali, prestando attenzione

ad usare approssimazioni dello stesso ordine per la derivata

prima e per la derivata seconda.

(37)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

Equazioni del second’ordine

Qui ci occuperemo della soluzione di equazioni differenziali del tipo

y 00 (x) = p(x) y 0 (x) + q(x) y(x) + r(x), con le condizioni al contorno y(a) = α, y(b) = β, di cui vogliamo determinare la soluzione per via numerica nell’intervallo a ≤ x ≤ b.

Per fare questo, iniziamo discretizzando la variabile indipendente come fatto in precedenza per i problemi ai valori iniziali: {x i } N i=0 , con x i = a + h i.

Introduciamo quindi un’approssimazione alle differenze

finite per gli operatori differenziali, prestando attenzione

ad usare approssimazioni dello stesso ordine per la derivata

prima e per la derivata seconda.

(38)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

Equazioni del second’ordine

Qui ci occuperemo della soluzione di equazioni differenziali del tipo

y 00 (x) = p(x) y 0 (x) + q(x) y(x) + r(x), con le condizioni al contorno y(a) = α, y(b) = β, di cui vogliamo determinare la soluzione per via numerica nell’intervallo a ≤ x ≤ b.

Per fare questo, iniziamo discretizzando la variabile indipendente come fatto in precedenza per i problemi ai valori iniziali: {x i } N i=0 , con x i = a + h i.

Introduciamo quindi un’approssimazione alle differenze

finite per gli operatori differenziali, prestando attenzione

ad usare approssimazioni dello stesso ordine per la derivata

prima e per la derivata seconda.

(39)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

Equazioni del second’ordine

Qui ci occuperemo della soluzione di equazioni differenziali del tipo

y 00 (x) = p(x) y 0 (x) + q(x) y(x) + r(x), con le condizioni al contorno y(a) = α, y(b) = β, di cui vogliamo determinare la soluzione per via numerica nell’intervallo a ≤ x ≤ b.

Per fare questo, iniziamo discretizzando la variabile indipendente come fatto in precedenza per i problemi ai valori iniziali: {x i } N i=0 , con x i = a + h i.

Introduciamo quindi un’approssimazione alle differenze

finite per gli operatori differenziali, prestando attenzione

ad usare approssimazioni dello stesso ordine per la derivata

prima e per la derivata seconda.

(40)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

Per costruire uno schema del second’ordine adotteremo le formule alle differenze finite date da

y 0 (x i ) = y(x i+1 ) − y(x i−1 )

2 h + O(h 2 ) y 00 (x i ) = y(x i+1 ) − 2 y(x i ) + y(x i−1 )

h 2 + O(h 2 )

Introducendo le approssimazioni numeriche w i alla soluzione y(x i ) come fatto in precedenza, indicando con p i = p(x i ), q i = q(x i ) ed r i = r(x i ) e sostituendo le approssimazioni numeriche nell’equazione, otteniamo:

w i+1 − 2 w i + w i−1

h 2 = p i

w i+1 − w i−1

2 h + q i w i + r i

(41)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

Per costruire uno schema del second’ordine adotteremo le formule alle differenze finite date da

y 0 (x i ) = y(x i+1 ) − y(x i−1 )

2 h + O(h 2 ) y 00 (x i ) = y(x i+1 ) − 2 y(x i ) + y(x i−1 )

h 2 + O(h 2 )

Introducendo le approssimazioni numeriche w i alla soluzione y(x i ) come fatto in precedenza, indicando con p i = p(x i ), q i = q(x i ) ed r i = r(x i ) e sostituendo le approssimazioni numeriche nell’equazione, otteniamo:

w i+1 − 2 w i + w i−1

h 2 = p i w i+1 − w i−1

2 h + q i w i + r i

(42)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

Quest’ultima relazione pu` o essere usata solo per i punti interni, quindi i = 1, 2, ..., N − 1, mentre per x 0 = a e per x N = b useremo le condizioni al contorno.

Organizzando le incognite w 0 , w 1 , ..., w N in un vettore incognito w = (w 0 , w 2 , ..., w N ) e moltiplicando le equazioni per 2 h 2 , otteniamo il sistema algebrico lineare

A w = b

con A e b dati da

(43)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

Quest’ultima relazione pu` o essere usata solo per i punti interni, quindi i = 1, 2, ..., N − 1, mentre per x 0 = a e per x N = b useremo le condizioni al contorno.

Organizzando le incognite w 0 , w 1 , ..., w N in un vettore incognito w = (w 0 , w 2 , ..., w N ) e moltiplicando le equazioni per 2 h 2 , otteniamo il sistema algebrico lineare

A w = b

con A e b dati da

(44)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

A =

1 0 ...

2 + h p 1 −2 (2 + h 2 q 1 ) 2 − h p 1

0 2 + h p 2 −2 (2 + h 2 q 2 )

... ... ...

0 ... 2 + h p N −2

0 ... 0

0 ... ...

... ... 0

0 ... 0

2 − h p 2 ... 0

... ... ...

−2 (2 + h 2 q N −2 ) 2 − h p N −2 0 2 + h p N −1 −2 (2 + h 2 q N −1 ) 2 − h p N −1

... 0 1

(45)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

A

1 0 ... ... ... 0

2 + h p1 −2 (2 + h2 q1) 2 − h p1 0 ... 0

0 2 + h p2 −2 (2 + h2 q2) 2 − h p2 ... 0

... ... ... ... ... ...

0 ... 2 + h pN−2 −2 (2 + h2 qN−2) 2 − h pN−2 0

0 ... 0 2 + h pN−1 −2 (2 + h2 qN−1) 2 − h pN−1

0 ... ... ... 0 1

(46)

Calcolo Numerico Lucio Demeio

DIISM

Problemi ai Valori Iniziali:

metodo di Eulero Problemi ai Valori Iniziali:

metodo di Runge-Kutta Problemi al contorno

Problemi al contorno

b =

 α 2 h 2 r 1

2 h 2 r 2

...

2 h 2 r N −2

2 h 2 r N −1

β

La matrice A ` e tridiagonale, quindi si possono usare le tecniche

numeriche per la risoluzione dei sistemi tridiagonali.

Riferimenti

Documenti correlati

Un’altra approssimazione usata per il calcolo numerico delle derivate ` e quella della formula a cinque punti. La derivazione pu` o essere fatta sia con il polinomio di Lagrange sia

Nella regola dei trapezi, l’errore ` e proporzionale alla derivata seconda, quindi la regola dei trapezi ` e esatta per polinomi di grado zero e grado uno;. Nella regola di

Il metodo ` e del tutto simile a quello del pivoting parziale, solo che la ricerca della riga con cui effettuare lo scambio avviene determinando il pivot che ha il rapporto massimo

sostituire alla matrice A la matrice A (2) i cui elementi sotto la diagonale della prima colonna sono

I metodi iterativi per la soluzione dei sistemi lineari vengono usati in alternativa ai metodi diretti (eliminazione Gaussiana) quando il numero di equazioni/incognite ` e elevato e

Commento: la seconda condizione affinch` e un problema sia ben posto significa che, se si perturbano di poco la funzione f e la condizione iniziale, l’esistenza ed unicit` a

Le formule ad n + 1 punti non vengono usate, perch` e richiedono il calcolo della funzione in molti punti, che ` e dispendioso e soggetto ad errori di arrotondamento... Calcolo

Fissare un massimo numero di iterazioni, N ≤ N max (` e di solito considerato un fallimento - legato a ragioni di costo computazionale);. Fissare una tolleranza η &lt;&lt; 1 su c: |c