Sei sulla pagina 1di 5

Lezione del 12/10

Per poter studiare il condizionamento di un sistema lineare, si perturbano i dati di un sistema:


tali dati vanno contrassegnati. Così facendo ci aspettiamo di trovare delle soluzioni diverse x̃. Nello
studio del condizionamento si confrontano l’errore relativo. Come? Si confronta l’errore relativo tra
i dati in output con i dati in output:

kx − x̃k kA − Ãk kB − B̃k


≤ K(A)( + ) (1)
kxk kAk kBk
Se K(A) = 1, il problema è ben condizionato. Se K(A) »1, allora il problema è mal condizionato.
Il confronto è proprio attuato grazie a questo K(A), che prende appunto il nome di numero di
condizionamento.
Ricordiamo ora la fattorizzazione PALU. Se la matrice non risponde a nessuna particolare simmetria,
il comando "|" backslash procede con la fattorizzazione PALU. È importante l’ordine con cui segue
l’espressione:
[L.U.P ] = LU (...) (2)

ODE
Cosa intendiamo con ODE? Equazione differenziale ordinaria la cui soluzione è une funzione.
L’ordine è dettata dall’ordine della derivata che figura nella ODE.
Un esempio di ODE è quella che esprime la tensione all’interno di un circuito RC:
d v(t)
RC + v(t) = 0
dt
v(0) = 0

È necessaria una condizione iniziale per poter determinare univocamente la soluzione all’equazione.
I tipi di equazioni che prenderemo in considerazioni sono equazioni al problema iniziale.
Un altro esempio è lo smorzamento di un sistema massa-molla
d2 x(t) dx(t)
m 2
+c + kx(t) = F (t)
dt dt
x(0) = x0
dx(t)
= v0
dt
Le condizioni in una equazione di terzo ordine sono 2.
Esistono anche equazioni differenziali di tipo vettoriale, come la legge di gravitazione universale di
Newton:
d2 r GM
= − (3)
dt2 krk3

1
In questo caso ho una equazione di tipo vettoriale, descritta componente per componente, ed è del
secondo ordine perché [...].
Un altro esempio può essere il modello del pendolo, anche questa una ODE del secondo ordine.
Notiamo che questa, lo smorzatore e il circuito sono dette ODE scalari, poiché la soluzione è una
funzione di numeri reali.
Iniziamo con equazioni differenziali scalari del primo ordine, scritti nella forma generica:
0
y (x) = f (x, y(x)) x > x0
y(x0 ) = y0

Tale espressione prende il nome di forma canonica del problema di Cauchy. Risolvere un problema di
Cauchy significa determinare una funzione y ∈ C 1

Esempio
0
Il problema y = y(x) ammette infinite soluzioni, perché non è stata posta alcuna condizione iniziale.
Andando invece a porre la condizione iniziale y(0) = 1 ecco che si ricava la soluzione unica y(x) = ex .
Tuttavia, non è detto che la condizione iniziale ci permetta di determinare univocamente una sola
soluzione. L’equazione differenziale seguente, infatti, seppure presenti un valore iniziale, comunque
ammette infinite soluzioni: (
y 0 (x) = y(x)1/3
y(0) = 0

Ciò che non vogliamo dal punto di vista numerico sono le ODE con più soluzioni: analizzeremo solo
problemi ben posti, ovvero che ammettono un solo problema. Quali sono i problemi be posti? Quelli
che rispettano le ipotesi del teorema di Lipschitz.

Approccio numerico
Assunto ciò che è stato detto, concludiamo dicendo una prima cosa: la soluzione DEVE in un intervallo
limitato. Tuttavia, per quanto questo intervallo sia limitato, contiene infiniti punti: ciò che faremo
sarà quindi definire la soluzione in un numero finito di punti. A tale scopo suddividiamo l’intervallo
I in N sottointervalli. Sia [x0 , xN ] l’intervallo, definiamo come passo di discretizzazione la seguente
quantità:
xN − x0
h= (4)
N
Può succedere che h non sia costante, ma funzione di N. Anche qui, considereremo un problema
semplificato, ovvero solo problemi discretizzabili con passo continuo.
iNOTA: la partizione così ottenuta è costituita da N+1 punti della partizione e di N sotto intervalli.
Cosa si prefigge un metodo numerico per la soluzione di una ODE?

yn ≈ y(xn ) (5)

Introduciamo il primo metodo numerico: Metodo di Eulero esplicito. Questo metodo appartiene
ad una categoria di metodi più ampio, detto metodo ad un passo. Vogliamo risolvere la seguente
equazione differenziale nell’intervallo x ∈ [x0 , xN ].
0
y = f (x, y(x))
y(x0 ) = y0

2
La partizione è uniforme. Ricordiamo che la partizione ci permette di suddividere l’intervallo I in
N+1 punti, con N intervalli: il passo di tale intervallo è proprio il passo h. Come facciamo a costruire
il primo metodo numerico? Integriamo a sinistra e a destra, in un generico sotto intervallo:
Z xn+1 Z xn+1
0
y dx = f (x, y(x))dx (6)
xn xn

Usiamo l’identità fondamentale dell’integrale:


Z xn+1
0
y dx = y(xn+1 ) − y(xn ) (7)
xn

Possiamo ora riscrivere la relazione nel seguente modo:


Z xn+1
y(xn+1 ) − y(xn ) = f (x, y(x))dx (8)
xn

In modo analitico non è detto che è sia possibile risalire alla soluzione esatta. Il metodo numerico parte
dall’idea di approssimare l’integrale con una opportuna forma numerica. Tale integrale può essere
approssimato nel seguente modo. Apriamo prima una parentesi: Supponiamo di volere approssimare
l’integrale: Z b
g(x)dx ≈ g(a) (b − a) (9)
a

Ciò che stiamo facendo è quello di approssimare l’area con quella del rettangolo "equivalente". Via
via che si considera un intervallo maggiore, allora l’approssimazione sarà sempre più errata. Nel caso
in cui invece l’intervallo diminuisce, allora la forma approssimata diventa sempre più accurata. Tale
formula prende il nome di formula del rettangolo. possiamo quindi scrivere ora:
Z xn+1
f (x, y(x))dx ≈ f (xn , y(xn ))(xn+1 − xn ) (10)
xn

Ma xn+1 − xn = h, ecco che allora:


y(xn+1 ) − y(xn ) ≈ f (xn , y(xn ))h (11)
Il metodo numerico si ottiene sostituendo a ≈ il =. Andremo inoltre a sostituire y(xn ) ≈ yn .
Riassumendo, la relazione ottenuta è:
yn+1 = yn + f (xn , yn )h
Tale equazione prende il nome di metodo di Eulero esplicito. Attenzione, si tratta di un metodo
iterativo! Necessita quindi di un dato esatto iniziale, ovvero proprio il problema di Cauchy: si ottiene
quindi
yn+1 = yn f (xn , yn )h
y0 = y(x0 )

3
Un esempio di calcolo di y1 = y0 + h f (x0 , y0 ), via via calcolo tutti i punti. Il metodo di Eulero
esplicito è detto metodo ad un passo, perché per determinare i nodi successivi lo faccio passo per
passo: la determinazione di un passo dipende solo dal passo precedente.
Vediamo ora il metodo di Eulero implicito. Questa volta, nell’integrare la (6), devo usare una
formula diversa nell’integrale. Utilizzeremo nuovamente la formula del rettangolo: in questo caso lo
valuteremo nell’estremo destro dell’integrale, e non quello sinistro (g(b) e non g(a)). In questo caso,
la g(x) è approssimata nel seguente modo:
Z b
g(x)dx ≈ g(b)(b − a) (12)
a

In questo caso la (7) diventa

y(xn+1 ) − y(xn ) ≈ h f (xn+1 , y(xn+1 ) (13)

Il metodo numerico nuovamente si ottiene sostituendo y(xn ) ≈ yn ed il simbolo ≈ con =.

yn+1 = yn + h f (xn+1 , yn+1 ) (14)

Va implementata con la condizione iniziale, come nel caso esplicito.

yn+1 = yn + h f (xn+1 , yn+1 )


y(x0 ) = y0

Anche questo prende il nome di metodo ad un passo.


iQuesto prende il nome di metodo implicito. Perché? Perché il passo successivo appare nell’incognita
della equazione stessa!
Facciamo un esempio:
0
y (x) − y(x) = 0 x>0
y(0) = 1

Come faccio a trasmutarla nella forma di Cauchy equivalente?


0
y (x) = y(x) = f (x, y(x)) (15)

Per descrivere i metodi numerici abbiamo assunto y(xn ) ≈ yn . Sotto queste ipotesi, yn+1 è un numero.
Per descrivere il metodo numerico, pensiamo ad y come variabile assoluta (RIVEDI)
L’esempio di sopra, nel caso di Eulero esplicito, diventa:

yn+1 = ym + h yn (16)

Nel caso di Eulero implicito invece abbiamo:

yn+1 = yn + h yn+1 (17)

4
Entrambe partono dalla condizione iniziale y0 = 1. Quale è la grande differenza tra i due? Nel caso
di Eulero implicito bisogna fare un passaggio extra, portando yn+1 a destra e raccogliendo tale fattore.
Si ottiene quindi

yn+1 = (1 + h)yn (esplicito) (18)


yn
yn+1 = (implicito) (19)
1−h
Vediamo un altro esempio:
0
y (x) = y 3 (x) x > 0
y(0) = y0

Vediamo nuovamente cosa succede nel caso esplicito e nel caso implicito.

yn+1 = yn + h yn3 (esplicito)


3
yn+1 = yn + h yn+1 (implicito)

Notiamo che nella prima iterazione, nel caso di Eulero implicito, si ottiene un polinomio di terzo
grado! È decisamente più facile ricorrere ad Eulero esplicito! Eulero implicito infatti richiede, in
generale, la risoluzione di una equazione non lineare. A seconda dell’espressione f, va adottato una
nuova espressione per la risoluzione. Eulero esplicito fa invece riferimento sempre alla stessa formula,
tipo quella riportata nella (18). Questo rende Eulero esplicito implementabile in un algoritmo semplice
e veloce.