Sei sulla pagina 1di 12

Metodo di Newton per sistemi

Sistema non lineare: F (X) = 0 X = [x1, x2, . . . , xn]T

Il metodo di Newton per la soluzione di sistemi non lineari si basa


sulla linearizzazione della F (X) = [f1(X), . . . , fn(X)]T

Se le funzioni fi(X) hanno derivate parziali limitate, allora si può


sviluppare in serie di Taylor la funzione vettoriale F (X) scegliendo
come punto iniziale X (k)

F (X) = F (X (k) ) + JF (X (k) ) (X − X (k)) + ...

∂fi
dove [JF (X)]ij = è lo jacobiano della F (X)
∂xj

⇒ F (X (k+1) ) ≈ F (X (k) ) + JF (X (k) ) (X (k+1) − X (k)) = 0



⎨ X (0) dato
⇒  −1
⎩ X (k+1) =X (k) (k)
− JF (X ) F (X (k) ) k≥0
38
Convergenza del metodo di Newton
Il metodo di Newton è un metodo iterativo la cui fun-
zione di iterazione è Φ(X) = X − [JF (X)]−1 F (X)

Teorema. Sia X una soluzione del sistema non lineare


F (X) = 0
con F ∈ C 2(I) (I ∈ IRn intorno di X).
Sia det JF (X) = 0 per X ∈ I.
⇒ i) ∃ A ⊆ I tale che, ∀ X (0) ∈ A, la successione
{X (k+1) } = {Φ(X (k) )} converge a X;
||E (k+1)||
ii) la convergenza è quadratica: lim > 0.
k→∞ ||E (k) || 2

39
Osservazioni sul metodo di Newton per sistemi

• La convergenza del metodo è legata all’accuratezza dell’approssi-


mazione iniziale.

• Ad ogni passo bisogna verificare che det JF (X (k)) = 0. Nella pra-


tica, si può avere instabilità numerica se det JF (X (k) ) è ”piccolo”
→ conviene utilizzare una precisione elevata.

• Poiché il costo computazionale del calcolo di det JF (X (k)) può


essere elevato, si preferisce risolvere ad ogni passo il sistema lineare
JF (X (k) )Y = −F (X (k) ) ⇒ X (k+1) = X (k) + Y

• Criterio di arresto: il procedimento iterativo viene arrestato


quando ||X (k+1) − X (k)|| ≤ .

• A volte si preferisce ricalcolare JF (X (k) ) non ad ogni iterazione ma


dopo 3-4 iterazioni (metodi di tipo quasi-Newton).

40
Metodo di Newton per sistemi: n = 2

f (X) = f (x, y) = 0
Per n = 2 si ha:
g(X) = g(x, y) = 0

Formula di Taylor di punto iniziale X (k) = [xk , yk ]T :




f (X) = f (X (k) ) + fx(X (k) )(x − xk ) + fy (X (k) )(y − yk ) + R1 = 0
g(X) = g(X (k)) + gx(X (k) )(x − xk ) + gy (X (k))(y − yk ) + R2 = 0

dove R1 = R1(X, X (k) ), R2 = R2(X, X (k) ) rappresentano il resto.

La soluzione approssimata del sistema non lineare è la soluzione


del sistema lineare che si ottiene trascurando il resto nello sviluppo
precedente.

fx(X (k) )(xk+1 − xk ) + fy (X (k) )(yk+1 − yk ) = −f (X (k))
gx(X (k) )(xk+1 − xk ) + gy (X (k))(yk+1 − yk ) = −g(X (k))
41
Metodo di Newton per sistemi: n = 2

(k) )(x (k) )(y (k))
⎨ fx (X
⎪ k+1 − xk ) + fy (X k+1 − yk ) = −f (X


gx(X (k) )(xk+1 − xk ) + gy (X (k))(yk+1 − yk ) = −g(X (k))

(k)
JF (X (k+1) − X (k)) = −F (X (k))

(k) fx(X (k) ) fy (X (k) )


dove JF := JF (X (k) ) =
gx(X (k) ) gy (X (k))

Il sistema lineare ammette soluzione se


(k) (k)
|JF | = det JF = 0
La soluzione è


⎪ 1  k (k) (k) (k)



⎪ xk+1 = xk − f (X ) gy (X ) − g(X ) fy (X )


(k)
|JF |




⎪ 1  k


⎪ yk+1 = yk − (k) (k) (k)
g(X ) fx(X ) − f (X ) gx(X )

⎩ (k)
|JF |
42
Esempio

Il problema di due specie che competono per la stessa quan-


tità di cibo può essere descritto dal sistema di equazioni
differenziali

⎨ x(t) = x(t)[2 − 0.0002 y(t) − 0.0001 x(t)]
⎩ y (t) = y(t)[4 − 0.0003 y(t) − 0.0004 x(t)]

dove x(t) e y(t) rappresentano le popolazioni delle due


specie al tempo t.

Trovare i valori di equilibrio delle due specie.


43
Soluzione
Si devono trovare i valori di x(t) e y(t) che risolvono si-
multaneamente le equazioni
⎧ ⎧
⎨ x(t) =0 ⎨ x = x[2 − 0.0002 y − 0.0001 x] = 0
⎩ y  (t)

=0 ⎩ y  = y[4 − 0.0003 y − 0.0004 x] = 0

Si tratta quindi di risolvere il sistema non lineare



⎨ f (x, y) = 2 x − 0.0002 x y − 0.0001 x2 = 0
⎩ g(x, y) = 4 y − 0.0003 y 2 − 0.0004 x y = 0

Nota: le soluzioni x = y = 0, x = 0 e y = 13·333, x =


20·000 e y = 0 sono soluzioni banali (una o tutte e due
le specie si sono estinte)

44
Esercizio
Dato il sistema non lineare

⎨ f (x, y) = 2 x − 0.0002 x y − 0.0001 x2 = 0
⎩ g(x, y) = 4 y − 0.0003 y 2 − 0.0004 x y = 0

i) separare le radici;

ii) trovare, per ciascuna delle radici,una trasformazione


adatta ad approssimarla con il metodo delle approssimazioni
successive;

iii) utilizzare il metodo di Newton per approssimare la


radice in D = [3000, 6000] × [6000, 9000].
45
Traccia della soluzione

i) Dalle due equazioni


⎧ si può ricavare y come funzione
⎪ 4
⎨ y = 10 − 0.5 x

lineare di x: ⎪ 4 4 .
⎩ y = (10 − x)

3

⎨ x = 4000
Le due rette si intersecano solo quando ⎩
y = 8000

X = [4000, 8000] è l’unica soluzione non banale del



sitema dato.

46
ii) Il sistema non lineare di partenza
⎧ può essere riscritto
⎪ 4
⎨ y = 10 − 0.5 x = ψ(x, y)

in modo equivalente come ⎪ 4 3
⎩ x = 10 −
⎪ y = ϕ(x, y)
4

Si verificare facilmente che per il dominio


D = [2000, 9000] × [3000, 9000], si ha Φ(D) ⊆ D
(Suggerimento: ϕ e ψ sono funzioni monotone
decrescenti).

⎨ ϕx(x, y) = −0.5 ϕy (x, y) = 0
⎩ ψx(x, y) = 0 ψy (x, y) = −0.75
⎡ ⎤
0.5 0 ⎦
⇒M = ⎣ ⇒ ||M || < 1
0 0.75
⇒ La trasformazione Φ = [ϕ, ψ]T è una contrazione
47
Verificare che le trasformazioni




⎪ x = 10−4 x y − 0.5 · 10−4 x2 = ϕ(x, y)



e
⎪ 3 −4



⎩ y = 10 − 10−4 x y = ψ(x, y)
4
⎧ 





x= 2 · 104 x − 2 x y = ϕ(x, y)



⎪ 

⎪ 4 4

⎪ y=  104 y − x y = ψ(x, y)


3 3

non soddisfano la condizione suffieciente per essere una


contrazione.

Suggerimento: calcolare ϕx, ψx, ϕy e ψy in X.


48
iii) Le funzioni f , g ∈ C 2(D).

⎨ fx = 2 − 2 · 10−4 y − 2 · 10−4 x fy = −2 · 10−4 x
⎩ gy = 4 − 6 · 10−4 y − 4 · 10−4 x gx = −4 · 10−4 y

Utilizzando come approssimazione iniziale il punto


medio del dominio D, dopo 30 iterazioni si ottiene

x30 = 3999.998 y30 = 8000.001


||E (30)||∞ = 0.43 · 10−2

Cosa succede utilizzando il metodo dell’iterazione


continua?
49

Potrebbero piacerti anche