• Non ci sono risultati.

Separazione delle radici

N/A
N/A
Protected

Academic year: 2023

Condividi "Separazione delle radici"

Copied!
13
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

Equazioni non lineari

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

f (x) = 0

Lesoluzioniξ dell’equazione, cio`e quei valori tali chef (ξ) = 0, vengono chiamatiradici dell’equazione non lineare ozeri della funzione f.

Ci limiteremo al caso di radici reali.

1

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.

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 ξ2 ∈ [0.75, 1.25], mentre due sono complesse coniugate.

(2)

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

4

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

5

Separazione delle radici: esempio 2

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

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

Separazione delle radici: in ciascun intervallo

2k−12π2,2k +12π2, 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.

6

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)

7

(3)

Metodo di bisezione: algoritmo

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

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

ξ

a0 b1=b0

f(x)

x x1

a2=a1

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]

8

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

9

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

klim→∞

|ek+1|

|ek|p =C

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

Metodo di bisezione: ordine di convergenza

Per k→ ∞ si ha |e|ek+1|

k|1  12.

⇒ 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.

(4)

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

12

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 ξ

13

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. SeN (t)indica il numero di individui al tempoteλ`e il fattore di crescita della popolazione, alloraN (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 `eN (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.

14

Soluzione

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

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

15

(5)

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

16

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

17

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

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)

(6)

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(x0)).

x1 t1

.

(x1,f(x 1))

x2

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

20

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(xk−1)).

xk tk

.

(xk,f(xk))

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, . . .

21

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) = 0 per x ∈ [a, b].

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

a ξ x0 b

22

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 (ξ) (x k −ξ)

−ek

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

f (xk) f (ξ)

|ek+1| 



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



=





12f (ξ)e2k f (ξ)



 klim→∞

|ek+1|

|ek|2 =1 2



f (ξ) f (ξ)



⇒ p ≥ 2 se f (x) ∈ C3[a, b] la conver- genza `e almeno quadratica

23

(7)

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

24

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

25

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.

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

(8)

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) = 0 per x∈ [a, b];

f (x) = 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.

28

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

29

Metodi di linearizzione

Metodo di Newton-Raphson (o delle tangenti)

x

ξ

a b

f(x)

xk−1 tk−1 (xk−1,f(xk−1)).

xk tk

.

(xk,f(xk))

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)), ey = 0.

Algoritmo:

x0 dato

xk= xk−1f (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(xk−1))

.

xk

(xk,f(xk)) xk−2 (xk−2,f(xk−2. ))

.

sk xk+1

Ad ogniiterazionek = 2, 3, . . .lanuova 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)), ey = 0.

Algoritmo:

x0, x1 dati

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

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

30

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”

31

(9)

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) = 0 per x ∈ [a, b],

⇒ esiste un intornoJ ⊆ 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) = 0 in I, l’ordine di convergenza `e p = 1+

5

2 ⇒ E = p  1.62

32

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 ξ 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 ξ tramite il metodo di New- ton e il metodo delle secanti?

33

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

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.

(10)

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.

36

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.87secondi,Newton: 8.47secondi,Secanti: 4.46secondi 37

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 jacobianodella 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)JF(X(k))−1F (X(k)) k≥ 0

38

Convergenza del metodo di Newton

Il metodo di Newton `e un metodo iterativo la cui fun- zione di iterazione `e Φ(X) = X − [JF(X)]−1F (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) = 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.

39

(11)

Osservazioni sul metodo di Newton per sistemi

Laconvergenzadel metodo `e legata all’accuratezzadell’approssi- mazione iniziale.

Ad ogni passo bisogna verificare che det JF(X(k)) = 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 essereelevato, 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

Per n = 2si 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))

41

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



Ilsistema lineare ammette soluzione se

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

xk+1= xk 1

|JF(k)|

f (Xk) gy(X(k))− g(X(k)) fy(X(k))

yk+1= yk 1

|JF(k)|



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

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.

(12)

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)

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

45

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.

46

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

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

47

(13)

Verificare che le trasformazioni

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

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

e

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

y =



4

3104y−4

3x y = ψ(x, y)

non soddisfano la condizione suffieciente per essere una contrazione.

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

48

iii) Le funzioni f, g ∈ C2(D).

fx= 2− 2 · 10−4y− 2 · 10−4x fy =−2 · 10−4x gy= 4− 6 · 10−4y− 4 · 10−4x gx=−4 · 10−4y 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

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

Corso di Laurea in Ingegneria per l’Ambiente e il Territorio.

 le stesse operazioni possono essere applicate nel caso di vettori colonna o più in generale nel caso di matrici.. La cosa essenziale è che gli operandi siano

 se siamo nella stessa directory dove è salvato il file digitare il nome dello script nella linea di comando.  se siamo in una directory diversa rsipetto a quella in cui è

 Al posto di eseguire i comandi direttamente da linea di comando, possiamo memorizzare la successione dei comandi in un file di testo, salvarli e successivamente

 Nel metodo di Gauss , come anche nella fattorizzazione LU , si richiedono divisioni per gli elementi della diagonale principale della matrice considerata.  se

 Tutti i calcoli vengono effettuati in doppia precisione, mentre diversa è la visualizzazione delle variabili che viene determinata con il comando format.  Il

 Un nuovo file .m deve essere memorizzato in una directory contenuta nel path (in genere è quella di lavoro work), oppure si può aggiungere la directory in cui è contenuto al

 il condizionamento dipende dal problema e dai dati di input: uno stesso problema può essere ben condizionato per alcuni valori dei dati e mal condizionato per altri