• Non ci sono risultati.

Separazione delle radici

N/A
N/A
Protected

Academic year: 2023

Condividi "Separazione delle radici"

Copied!
51
0
0

Testo completo

(1)

Metodi Numerici (A.A. 2007-2008)

Prof. F. Pitolli

Appunti delle lezioni su: metodo di Newton in IRn;

equazioni non lineari, metodo di bisezione e metodo di Newton in IR

(2)

Equazioni non lineari

Numerosi problemi applicativi vengono modellizzati da un’equazione non lineare del tipo

f (x) = 0

Le soluzioni ξ dell’equazione, cio`e quei valori tali che f (ξ) = 0, vengono chiamati radici dell’equazione non lineare o zeri della funzione f.

Ci limiteremo al caso di radici reali.

(3)

Separazione delle radici

Prima di utilizzare un metodo numerico bisogna sapere:

• quante sono le radici (reali);

• dove si trovano approssimativamente;

• se ci sono delle simmetrie.

Per rispondere a queste domande si pu`o ricorrere alla tabu- lazione o al grafico della funzione f.

(4)

Separazione delle radici: esempio 1

Equazioni polinomiali: p4(x) = x4 + 2x3 + 7x2 − 11 = 0

−10 −5 0 5 10

−2000 0 2000 4000 6000 8000 10000 12000 14000

x p4(x)

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2

−20

−10 0 10 20 30 40 50

x

p4(x)

ξ1 ξ

2

>> x=linspace(-10,10); >> x=linspace(-2,2);

>> f=x.^4+2*x.^3+7*x.^2-11; >> f=x.^4+2*x.^3+7*x.^2-11;

>> plot(x,f,x,zeros(1,length(x))) >> plot(x,f,x,zeros(1,length(x)))

Delle 4 radici di p4(x) due sono reali, ξ1 ∈ [−1.5, −1] e ξ ∈ [0.75, 1.25], mentre due sono complesse coniugate.

(5)

Separazione delle radici: esempio 2

Equazione trascendente: f (x) = cos x cosh x − 1 = 0

La funzione f (x) `e simmetrica rispetto all’origine ⇒ se ξ

`e radice lo `e anche −ξ ⇒ x > 0 (ξ = 0 `e radice banale)

0 0.5 1 1.5 2 2.5 3

−7000

−6000

−5000

−4000

−3000

−2000

−1000 0 1000

π π π π π π

f(x)=cosh(x)*cos(x)−1

0 0.5 1 1.5 2 2.5 3

−1000 0 1000 2000 3000 4000 5000 6000 7000

π π π π x π π

g(x)=cosh(x)

h(x)=1/cos(x)

>> x=linspace(0,3*pi); >> x=linspace(0,3*pi);

>> f=cosh(x).*cos(x)-1; >> g=cosh(x);

>> plot(x,f,x,zeros(1,length(x))) >> h=1./cos(x);

>> plot(x,g,’r’,x,h,’b’,x,zeros(1,length(x)),’k’)

(6)

Separazione delle radici: esempio 2

Equazione trascendente: f (x) = cos x cosh x − 1 = 0

0 0.5 1 1.5 2 2.5 3

−100

−80

−60

−40

−20 0 20 40 60 80 100

π π π π x π π

g(x)=cosh(x)

h(x)=1/cos(x)

0 0.5 1 1.5 2 2.5 3

−100

−80

−60

−40

−20 0 20 40 60 80 100

π π π π x π π

g(x)=cosh(x)

h(x)=1/cos(x)

>> axis([0 3*pi -100 100]) >> x=linspace(0,3*pi,300);

>> g=cosh(x);

>> h=1./cos(x);

>> plot(x,g,’r’,x,h,’b’,x,zeros(1,length(x)),’k’)

>> axis([0 3 -100 100])

(7)

Separazione delle radici: esempio 2

Ci sono infinite radici, che corrispondono alle intersezioni delle due curve h e g:

f (x) = 0 ⇔ h(x) = g(x)

Separazione delle radici: in ciascun intervallo

h2k − 12 π2, 2k + 12 π2i , k = 1, 2, 3, ...

ci sono due radici. Per k → ∞ le due radici si avvicinano ai due estremi dell’intervallo.

Nota. In genere, nelle applicazioni interessa approssimare la radice pi`u piccola.

(8)

Metodo di bisezione (o metodo dicotomico)

Il metodo di bisezione `e un metodo molto semplice: una volta individuato un intervallo di separazione in cui si trova una sola radice, permette di costruire una successione {xk} di approssimazioni di ξ.

Ipotesi di applicabilit`a :

• `e stato separato un intervallo I = [a, b] in cui c’`e un’unica radice ξ;

• la funzione f `e continua in I: f ∈ C0[a, b];

• f (a)f (b) < 0.

x

ξ

a b

f(x)

(9)

Metodo di bisezione: algoritmo

Si genera una successione di approssimazioni {xk} con xk ∈ [ak−1, bk−1] e

ξ ∈ [ak−1, bk−1].

ξ

a0 b

1=b

0

f(x)

x x1

a2=a

1

x2

b2

x3

Algoritmo:

a0 = a, b0 = b per k = 1, 2, 3, ...

per xk = ak−1+b2 k−1 (punto medio di [ak−1, bk−1]) per se f (xk) = 0, allora stop

per se f (ak−1)f (xk) < 0, allora [ak, bk] = [ak−1, xk] per se f (xk)f (bk−1) < 0, allora [ak, bk] = [xk, bk−1]

(10)

Convergenza del metodo di bisezione

Errore di troncamento: ek = ξ − xk Convergenza: lim

k→∞xk = ξ ⇔ lim

k→∞|ek| = 0 Per il metodo di bisezione si ha

q • • • •

q ak−1 xk ξ bk−1

|ek| < bk−1 − ak−1

2 = bk−2 − ak−2

22 = · · · = b − a 2k

⇒ lim

k→∞|ek| < lim

k→∞

b − a

2k = 0

(11)

Ordine di convergenza

Sia {xk} una successione di approssimazioni conver- gente a ξ. La successione ha ordine di convergenza p e fattore di convergenza C, se esistono due reali p ≥ 1 e C > 0 tali che

k→∞lim

|ek+1|

|ek|p = C

Nota. La convergenza si dice lineare se p = 1, Nota. quadratica se p = 2.

(12)

Metodo di bisezione: ordine di convergenza

Per k → ∞ si ha |ek+1|

|ek|112.

⇒ Ordine di convergenza: 1 (lineare)

⇒ Fattore di convergenza: 12

La convergenza `e lenta, in quanto ad ogni passo l’errore viene dimezzato, cio`e ad ogni passo si guadagna una cifra binaria

⇒ poich´e 2−4 < 10−1 < 2−3, per guadagnare una

⇒ cifra decimale servono 3-4 iterazioni.

(13)

Metodo di bisezione: criteri di arresto

Nella pratica, a causa degli errori di arrotondamento e degli errori di troncamento non si verifica mai che f (xk) = 0. Quando si arrestano le iterazioni?

Criteri di arresto a posteriori

|ek| ≃ |xk − xk−1| < ε

|f(xk)| < ε

Criterio di arresto a priori: La stima a priori del numero di iterazioni K necessario per ottenere un errore minore di ε `e

|ek| < b − a

2k < ε ⇒ K > log(b − a) − log(ε) log 2

(14)

Criteri di arresto: esempi

|ek| ≃ |xk − xk−1| < ǫ oppure |f(xk)| < ǫ

ξ

a b

f(x)

x

xk

ξ

a

f(x)

x b

xk

f (xk) `e ”grande” anche se xk `e ”vicino” a ξ

f (xk) `e ”piccolo” anche se xk `e ”lontano” da ξ

(15)

Esercizio

La crescita di una popolazione pu`o essere modellata, su un periodo di tempo piccolo, assumendo che la popolazione abbia un tasso di crescita proporzionale al numero di individui presenti in ciascun istante. Se N (t) indica il numero di individui al tempo t e λ `e il fattore di crescita della popolazione, allora N (t) soddisfa l’equazione differenziale

dN (t)

dt = λN (t).

La soluzione di questa equazione `e N (t) = N0eλt, dove N0 indica la popolazione iniziale.

Questo modello `e valido solo quando la popolazione `e isolata e non c’`e immigrazione dall’esterno. Se si suppone che ci sia una immigrazione a un tasso costante ν, il modello differenziale diventa

dN (t)

dt = λN (t) + ν

la cui soluzione `e N (t) = N0eλt + νλ(eλt − 1).

Supponendo che la popolazione iniziale sia di un milione di individui, che la comunit`a cresca di 435·000 immigrati il primo anno e che 1·564·000 individui siano presenti alla fine del primo anno, determinare il tasso di crescita λ della popolazione.

(16)

Soluzione

Si tratta di risolvere nell’incognita λ l’equazione non lineare N |t=1 anno = N0eλ + λν(eλ − 1),

dove N |t=1 anno = 1·564·000, N0 = 1·000·000, ν = 435·000.

q ⇒ f (λ) = eλ + 0.435λ (eλ − 1) − 1.564 = 0 Separazione grafica

>> x=linspace(0,1);

>> f=exp(x)+0.435./x.*(exp(x)-1)-1.564;

Warning: Divide by zero.

(Type "warning off MATLAB:divideByZero"

to suppress this warning.)

>> plot(x,f,x,zeros(1,length(x)))

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

−0.5 0 0.5 1 1.5 2

λ f(λ)

.ξ

Intervallo di separazione: I = [a, b] = [0.05, 0.15]

qquad⇒ f (a) = −0.0667, f(b) = 0.0672 ⇒ f (a)f (b) < 0

(17)

Iterazioni

k ak−1 bk−1 xk |xk − xk−1| |f(xk)|

1 0.05000000000000 0.15000000000000 0.10000000000000 10.00000000000000 10.00000000000000 2 0.10000000000000 0.15000000000000 0.12500000000000 0.02500000000000 0.03250506973938 3 0.10000000000000 0.12500000000000 0.11250000000000 0.01250000000000 0.01548498364220 4 0.10000000000000 0.11250000000000 0.10625000000000 0.00625000000000 0.00704990930651 5 0.10000000000000 0.10625000000000 0.10312500000000 0.00312500000000 0.00285098217571 6 0.10000000000000 0.10312500000000 0.10156250000000 0.00156250000000 0.00075615469668 7 0.10000000000000 0.10156250000000 0.10078125000000 0.00078125000000 0.00029010206821 8 0.10078125000000 0.10156250000000 0.10117187500000 0.00039062500000 0.00023292996053 9 0.10078125000000 0.10117187500000 0.10097656250000 0.00019531250000 0.00002861013771 10 0.10097656250000 0.10117187500000 0.10107421875000 0.00009765625000 0.00010215388987 11 0.10097656250000 0.10107421875000 0.10102539062500 0.00004882812500 0.00003677037077

(18)

Metodo delle bisezioni: script MATLAB

format long;

f = inline(’exp(x)+0.435/x*(exp(x)-1)-1.564’,’x’) a = 0.05; b = 0.15; xn = (a+b)/2;

iter = 0; err1 = 10; err2 = 10;

for i= 1:30

if ( f(a)*f(xn) < 0 ) b = xn;

elseif ( f(xn)*f(b) < 0 ) a = xn;

end

xv = xn;

xn = (a+b)/2;

iter = iter+1;

err1 = abs(xn-xv);

err2 = abs(f(xn));

[iter a b xn err1 err2]

end

(19)

Metodi di linearizzazione

Si approssima la funzione f (x) in un intorno I di ξ con la sua tangente o con la sua secante, calcolate tramite un opportuno sviluppo in serie di Taylor.

• Metodo di Newton-Raphson o

• metodo delle tangenti

• Metodo delle secanti

(20)

Metodo di Newton-Raphson

Approssimazione iniziale: x0 Prima iterazione: t0 `e la retta tangente a f (x) nel punto (x0, f (x0)):

t0 → y = f (x0) + f(x0)(x − x0) Nuova approssimazione x1:

intersezione tra t0 e y = 0. x

ξ

a b

f(x)

x0

t0

(x0,f(x

0)) .

x1

f (x0) + f(x0)(x1 − x0) = 0 → x1 = x0 f (x0) f(x0)

(21)

Metodo di Newton-Raphson

Nuova approssimazione: x1 Seconda iterazione: t1 `e la retta tangente a f (x) nel punto (x1, f (x1)):

t1 → y = f (x1) + f(x1)(x − x1) Nuova approssimazione x2: intersezione tra t1 e y = 0.

x

ξ

a b

f(x)

x0

t0

(x0,f(x

0)) .

x1

t1

.

(x1,f(x

1))

x2

f (x1) + f(x1)(x2 − x1) = 0 → x2 = x1 − f (x1) f(x1)

(22)

Metodo di Newton-Raphson: algoritmo

Ad ogni iterazione k = 1, 2, . . . la nuova approssimazione xk `e data dall’intersezione tra la retta tk−1, tangente a f (x) nel punto (xk−1, f (xk−1)), e y = 0.

tk−1y=f (xk−1)+f(xk−1)(x-xk−1) x

ξ

a b

f(x)

xk−1

tk−1

(xk−1,f(x

k−1)) .

xk

tk

.

(xk,f(x

k))

xk+1

f (xk−1) + f(xk−1)(xk − xk−1) = 0

Algoritmo:

x0 dato

xk = xk−1 − f (xk−1)

f(xk−1), k = 1, 2, . . .

(23)

Metodo di Newton-Raphson: convergenza

x0 dato

xk = xk−1 − f (xk−1)

f(xk−1), k = 1, 2, . . . Ipotesi di applicabilit`a :

• `e stato separato un intervallo I = [a, b] in cui

• c’`e un’unica radice ξ;

• f, f, f′′ sono continue in I: f ∈ C2[a, b];

• f(x) 6= 0 per x ∈ [a, b].

⇒ esiste un intorno J ⊆ I di ξ tale che, se x0 ∈ J, la successione delle approssimazioni {xk} converge a ξ. [| {zJ }]

a ξ x0 b

(24)

Metodo di Newton-Raphson: ordine di convergenza Ordine di convergenza: lim

k→∞

|ek+1|

|ek|p = C ek+1 = ξ − xk+1 =

ξ − f (ξ) f(ξ)

xk − f (xk) f(xk)

=

= (ξ − xk) −

f (ξ)

f(ξ) − f (xk) f(xk)

Sviluppo in serie di Taylor:

f (xk) = f (ξ) + f(ξ) (xk − ξ)

| {z }

−ek

+12f′′(ξ)(xk − ξ)2 + ...

f(xk) ≃ f(ξ)

|ek+1| ≃

ek − f (ξ) − f(ξ) + f(ξ)ek12f′′(ξ)e2k f(ξ)

=

1

2f′′(ξ)e2k f(ξ)

k→∞lim

|ek+1|

|e |2 = 1 2

f′′(ξ) f(ξ)

⇒ p ≥ 2 se f (x) ∈ C3[a, b] la conver-

(25)

Efficienza computazionale

Per valutare l’efficienza di un metodo iterativo bisogna tener conto sia dell’ordine di convergenza che del costo computazionale, cio`e della quantit`a di calcoli richiesta ad ogni passo.

Efficienza computazionale: E = p1/r

p: ordine di convergenza del metodo

r: numero di valutazioni funzionali (calcolo di funzioni o derivate) richieste ad ogni passo

Metodo di bisezione: E = 1

Metodo di Newton: E = 21/2

(26)

Metodo di Newton-Raphson: esempio

Approssimare la radice ξ = 0 dell’equazione f (x) = 4x3 − 5x = 0

con il metodo di Newton-Raphson scegliendo come ap- prossimazione iniziale una volta x0 = 0.5 e una volta x0 = 0.4.

−0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5

−2

−1.5

−1

−0.5 0 0.5 1 1.5 2

f(x)

ξ .

x t0

a b

qqqqqqq x2k = 0.5

−0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5

−2

−1.5

−1

−0.5 0 0.5 1 1.5 2

f(x)

ξ .

x t0

t1

a b

qqqqqqq x2k+1 = −0.5

(27)

Estremo di Fourier

Nel caso particolare in cui f (x) ha concavit`a fissa in un intervallo I si pu`o garantire la convergenza anche senza procedere a una separazione preliminare della radice.

Estremo di Fourier:

Data una funzione f continua e convessa in I = [a, b] con f (a)f (b) < 0, si dice estremo di Fourier di I l’estremo verso cui f rivolge la convessit`a .

Se esiste f′′, allora l’estremo di Fourier `e a o b a seconda che f (a)f′′(a) > 0 oppure f (b)f′′(b) > 0.

(28)

Estremo di Fourier: esempi

f(x)

a x b

Estremo di Fourier

f′′(x)<0 per x ∈ [a, b]

( f (a)f′′(a) > 0 f (b)f′′(b) < 0

a `e estremo di Fourier

f(x)

a x b

Estremo di Fourier

f′′(x)>0 per x ∈ [a, b]

( f (a)f′′(a) < 0 f (b)f′′(b) > 0

b `e estremo di Fourier

(29)

Metodo di Newton-Raphson: convergenza

Ipotesi di applicabilit`a :

f (a)f (b) < 0

f, f, f′′ sono continue in I: f ∈ C2[a, b];

f(x) 6= 0 per x ∈ [a, b];

f′′(x) 6= 0 per x ∈ [a, b] e x0 `e l’estremo di Fourier di [a, b].

1) esiste un’unica radice ξ ∈ [a, b];

2) la successione delle approssimazioni

(

xk = xk−1 f (xk−1) f(xk−1)

)

k = 1, 2, ...

`e monotona e converge a ξ;

3) se f ∈ C3[a, b], la convergenza `e quadratica.

(30)

Esercizio 1

Separare la radice dell’equazione non lineare

f (λ) = eλ + 0.435λ (eλ − 1) − 1.564 = 0 λ > 0 e approssimarla con il metodo di Newton.

Script MATLAB

format long;

f = inline(’exp(x)+0.435/x*(exp(x)-1)-1.564’,’x’)

df = inline(’exp(x)+0.435/x*exp(x)-0.435/x^2*(exp(x)-1)’,’x’) a = 0.05; b = 0.15; xn = b;

iter = 0; err1 = 10; err2 = 10;

for i= 1:30 xv = xn;

xn = xv-f(xv)/df(xv);

iter = iter+1;

err1 = abs(xn-xv);

err2 = abs(f(xn));

[iter xn err1 err2]

end

(31)

Metodi di linearizzione

Metodo di Newton-Raphson (o delle tangenti)

x

ξ

a b

f(x)

xk−1

tk−1

(xk−1,f(x

k−1)) .

xk

tk

.

(xk,f(x

k))

xk+1

Ad ogni iterazione k = 1, 2, . . . la nuova approssimazione xk `e data dall’intersezione tra la retta tk−1, tangente a f (x) nel punto (xk−1, f (xk−1)), e y = 0.

Algoritmo:

x0 dato

xk = xk−1 f (xk−1)

f(xk−1), k = 1, 2, . . .

Metodo delle secanti con estremi variabili

x

ξ

a b

f(x)

xk−1

sk−1

(xk−1,f(x

k−1))

.

xk

(xk,f(x

k)) xk−2

(x .

k−2,f(x

k−2))

.

sk

xk+1

Ad ogni iterazione k = 2, 3, . . . la nuova ap- prossimazione xk `e data dall’intersezione tra la retta sk−1, secante f (x) nei punti (xk−2, f (xk−2)) e (xk−1, f (xk−1)), e y = 0.

Algoritmo:

x0, x1 dati

xk = xk−1 − f(xk−1) xk−1 − xk−2

f (xk−1) − f(xk−2), k = 2, ...

(32)

Metodo delle secanti

x0, x1 dati

xk = xk−1 − f(xk−1) xk−1 − xk−2

f (xk−1) − f(xk−2), k = 2, ...

Vantaggi:

• si pu`o usare quando non si conosce la derivata di f (x) o quando f (x) `e nota per punti

• ad ogni passo richiede una sola valutazione funzionale

Svantaggi:

• servono due approssimazioni iniziali x0 e x1

• la scelta di x0 e x1 deve essere ”accurata”

(33)

Convergenza del metodo delle secanti

Se • `e stato separato un intervallo I = [a, b] simmetrico intorno alla radice ξ,

• f, f, f′′ sono continue in I: f ∈ C2[a, b],

• f(x) 6= 0 per x ∈ [a, b],

⇒ esiste un intorno J ⊆ I di ξ tale che, se x0, x1 ∈ J, la successione delle approssimazioni {xk} converge a ξ con convergenza superlineare, cio`e 2 > p > 1.

Se f′′(x) 6= 0 in I, l’ordine di convergenza `e p = 1+

5

2 ⇒ E = p ≃ 1.62

(34)

Esercizio

Data l’equazione non lineare f (x) = x3 + 1

3 − cos x = 0:

1) individuare quante sono le radici e separarle,

2) fornire una stima a priori del numero di iterazioni nec- essarie per approssimare la radice minore ξe con un errore inferiore a ǫ = 10−6 tramite il metodo di bisezioni;

3) quante iterazioni sono necessarie per approssimare con la stessa tolleranza ǫ la radice ξe tramite il metodo di New- ton e il metodo delle secanti?

(35)

Traccia della soluzione

1) Tracciando qualitativamente i grafici delle funzioni y = g(x) = x3 + 1

3 y = h(x) = cos x, si isola lo zero unico nell’intervallo [0, 1].

Con Matlab si possono tracciare i grafici di f (x), g(x), h(x). La radice ξe `e l’intersezione tra il grafico di f (x) e l’asse delle x (e coincide, ovviamente, con l’intersezione tra i grafici di g(x) e h(x)).

(36)

2) Nell’intervallo [0, 1] sono verificate le ipotesi di appli- cabilit`a del metodo di bisezioni.

Quindi il numero di iterazioni K per cui |eK| ≤ ǫ si ricava dalla relazione

|eK| = |ξ − xK| ≤ b − a

2K ≤ ǫ

⇒ K > log(b − a) − log ǫ

log 2 .

In questo caso a = 0, b = 1, ǫ = 10−6 ⇒K > 20.

(37)

3) Nel caso dei metodi di Newton e delle secanti si possono verificare le ipotesi di applicabilit`a nell’intervallo [0, 1]

sia analiticamente che per via grafica; l’estremo b = 1 `e l’estremo di Fourier dell’intervallo.

Il numero di iterazioni si pu`o calcolare eseguendo le iterate con un programma Matlab.

(38)

k xk (bisez.) |xk − xk−1| xk (Newton) |xk − xk−1| xk (secanti) |xk − xk−1|

1 0.500000000 1. 0., 1.

2 0.750000000 0.25e+0 0.793560583 0.21e+0 0.456715571 0.54e+0 3 0.625000000 0.12e+0 0.742925006 0.51e-1 0.658587384 0.20e+0 4 0.687500000 0.62e-1 0.739971453 0.29e-2 0.775393863 0.12e+0 5 0.718750000 0.31e-1 0.739961685 0.98e-5 0.736625691 0.39e-1 6 0.734375000 0.16e-1 0.739961685 0.11e-9 0.739832822 0.32e-2

7 0.742187500 0.78e-2 0.739962167 0.13e-3

8 0.738281250 0.39e-2 0.739961685 0.48e-6

9 0.740234375 0.19e-2 10 0.739257812 0.97e-3 11 0.739746097 0.49e-3 12 0.739990234 0.24e-3 13 0.739868164 0.12e-3 14 0.739929199 0.61e-4 15 0.739959717 0.30e-4 16 0.739974976 0.15e-4 17 0.739967346 0.76e-5 18 0.739963531 0.38e-5 19 0.739961624 0.19e-5 20 0.739962578 0.95e-6 Tempo di calcolo

Bisezione: ≃ 4.87 secondi, Newton: ≃ 8.47 secondi, Secanti: ≃ 4.46 secondi

(39)

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`o 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)) + ...

dove [JF(X)]ij = ∂fi

∂xj `e lo jacobiano della F (X)

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

X(0) dato

X(k+1) = X(k) hJF(X(k))i−1 F (X(k)) k ≥ 0

(40)

Convergenza del metodo di Newton

Il metodo di Newton `e un metodo iterativo la cui fun- zione di iterazione `e Φ(X) = X − [JF(X)]−1 F (X)

Teorema. Sia X una soluzione del sistema non lineare F (X) = 0

con F ∈ C2(I) (I ∈ IRn intorno di X).

Sia det JF(X) 6= 0 per X ∈ I.

⇒ i) ∃ A ⊆ I tale che, ∀ X(0) ∈ A, la successione {X(k+1)} = {Φ(X(k))} converge a X;

ii) la convergenza `e quadratica: lim

k→∞

||E(k+1)||

||E(k)||2 > 0.

(41)

Osservazioni sul metodo di Newton per sistemi

La convergenza del metodo `e legata all’accuratezza dell’approssi- mazione iniziale.

Ad ogni passo bisogna verificare che det JF(X(k)) 6= 0. Nella pra- tica, si pu`o avere instabilit`a numerica se det JF(X(k)) `e ”piccolo”

conviene utilizzare una precisione elevata.

Poich´e il costo computazionale del calcolo di det JF(X(k)) pu`o 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).

(42)

Metodo di Newton per sistemi: n = 2

Per n = 2 si ha:

( f (X) = f (x, y) = 0 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 `e 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))

(43)

Metodo di Newton per sistemi: n = 2

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))

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

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

"

fx(X(k)) fy(X(k)) gx(X(k)) gy(X(k))

#

Il sistema lineare ammette soluzione se

|JF(k)| = det JF(k) 6= 0 La soluzione `e

xk+1 = xk 1

|JF(k)|

hf (Xk) gy(X(k)) − g(X(k)) fy(X(k)) i

yk+1 = yk 1

|JF(k)|

h g(Xk) fx(X(k)) − f(X(k)) gx(X(k)) i

(44)

Esempio

Il problema di due specie che competono per la stessa quan- tit`a di cibo pu`o 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.

(45)

Soluzione

Si devono trovare i valori di x(t) e y(t) che risolvono si- multaneamente le equazioni

x(t) = 0

y(t) = 0 ⇒

x = x[2 − 0.0002 y − 0.0001 x] = 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 y2 − 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)

(46)

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 y2 − 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].

(47)

Traccia della soluzione

i) Dalle due equazioni si pu`o ricavare y come funzione lineare di x:

y = 104 − 0.5 x y = 4

3(104 − x) .

Le due rette si intersecano solo quando

x = 4000 y = 8000

⇒ X = [4000, 8000] `e l’unica soluzione non banale del sitema dato.

(48)

ii) Il sistema non lineare di partenza pu`o essere riscritto in modo equivalente come

y = 104 − 0.5 x = ψ(x, y) x = 104 − 3

4 y = ϕ(x, y) 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

⇒ M =

0.5 0 0 0.75

⇒ ||M|| < 1

⇒ La trasformazione Φ = [ϕ, ψ]T `e una contrazione

(49)

Verificare che le trasformazioni

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

410−4 − 10−4 x y = ψ(x, y)

e

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

y =

vu ut4

3104 y − 4

3 x y = ψ(x, y)

non soddisfano la condizione suffieciente per essere una contrazione.

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

(50)

iii) Le funzioni f, g ∈ C2(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?

(51)

Riferimenti bibliografici

L. Gori, Calcolo Numerico: Cap. 3, §§ 3.1, 3.2, 3.3, 3.4 (escluso metodo di falsa posizione), 3.6 (escluso metodo delle secanti con estremo fisso), 3.9, 3.10

F. Pitolli, Problemi ai limti per equazioni differenziali ordinarie: § 4

L. Gori, M.L. Lo Cascio, Esercizi di Calcolo Numerico: Es. 1.1, 1.4, 1.5, 1.8, 1.9, 1.10, 1.13, 1.14, 1.21, 1.27, 1.28, 1.29, 1.30, 7.12, 7.14, 7.29, 7.40

Riferimenti

Documenti correlati

La Segreteria di Stato della migrazione (SEM) e la Segreteria di Stato dell’economia (SECO) hanno avuto accesso al testo del comunicato stampa in maniera limitata, controllata

0biettivo di questa nota è focalizzare, utilizzando i dati amministrativi, 1 la recente dinamica delle trasformazioni da tempo determinato a tempo indeterminato approfondendo

Ogni processo effettua il checkpoint oltre che nella propria memoria, anche in quella del processore della stessa coppia.. Marco Lapegna – Calcolo Parallelo e

performance economica t distribuzione delle risorse t+1 istituzioni economiche t.  Se istituzioni diverse portano a

Concetti  fondamentali:  In  condizioni  teoriche  (nessun  fattore  limitante)  l’  accrescimento  di  una  popolazione    avrebbe  un  andamento  esponenziale; 

Il Piano d’Azione è basato sulla Serie storica delle emissioni Serie storica delle emissioni. Evoluzione dei consumi energetici e delle emissioni di gas serra dal 1990 al

Nella seconda opzione, su richiesta dell’ente gestore, è stato sviluppato un schema di impianto che prevede l’utilizzo della tecnologia MBBR a cui fa seguito sempre una

Gennaro Postiglione Tesi di Laurea di tavola n° 01. Hong