Metodi Numerici (A.A ) Prof. F. Pitolli

Documenti analoghi
Calcolo Numerico con elementi di programmazione

Metodi Numerici con elementi di Programmazione (A.A )

CALCOLO NUMERICO Laurea di base in Ingegneria Elettronica, delle Comunicazioni

Claudio Estatico Equazioni non-lineari

Problema. Equazioni non lineari. Metodo grafico. Teorema. Cercare la soluzione di

Metodi per il calcolo degli zeri di funzioni non lineari

Daniela Lera A.A

Laboratorio di Calcolo Numerico

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Calcolo Numerico (A.A ) Esercitazione n. 9. Metodo del punto unito, Metodo di Newton per sistemi

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

RISOLUZIONE APPROSSIMATA DI UN EQUAZIONE

Esercizio 1. Esercizio 2

Metodi di Iterazione Funzionale

Raccolta di Esercizi d esame ( di Calcolo Numerico) Prof. Laura Pezza. Equazioni non lineari

Il Metodo di Newton, o delle Tangenti Federico Lastaria, Analisi e Geometria 1. Politecnico di Milano Corso di Analisi e Geometria 1

1 Esercizi relativi al Capitolo 1

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 19 settembre 2011

Raccolta di esercizi di Calcolo Numerico Prof. Michela Redivo Zaglia

Calcolo del fattore di convergenza

Soluzione di Equazioni non lineari

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

CALCOLO NUMERICO Prof. L. Gori Prova d esame

Corso di Calcolo Numerico

Equazioni e sistemi non lineari. Prof. M. Lucia Sampoli

Capitolo 1. Esercizi a.a Esercizi. Esercizio 1.1 Dimostrare che il metodo iterativo

Equazioni non lineari

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 20 giugno 2011

Laboratorio di Matematica Computazionale A.A Lab. 4

Equazioni non lineari

Esercizi proposti di Analisi Numerica

Programma del corso di: Laboratorio di Programmazione e Calcolo Corso di laurea in Matematica a.a Proff. B. Paternoster, D.

Metodi iterativi per equazioni nonlineari.

Capitolo 3: Ottimizzazione non vincolata parte II. E. Amaldi DEI, Politecnico di Milano

Corso di Calcolo Numerico

Transcript:

Metodi Numerici (A.A. 2007-2008) Prof. F. Pitolli Appunti delle lezioni su: metodo di Newton in IR n ; 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 Le soluzioni ξ dell equazione, cioè 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. 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ò ricorrere alla tabulazione o al grafico della funzione f. 2

Separazione delle radici: esempio 1 14000 Equazioni polinomiali: p 4 (x) = x 4 + 2x 3 + 7x 2 11 = 0 50 12000 40 10000 30 8000 6000 p 4 (x) 20 p 4 (x) 4000 10 2000 0 ξ 1 ξ 2 0 10 2000 10 5 0 5 x 10 20 2 1.5 1 0.5 0 0.5 1 x 1.5 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 p 4 (x) due sono reali, ξ 1 [ 1.5, 1] e ξ 2 [0.75,1.25], mentre due sono complesse coniugate. 3

Separazione delle radici: esempio 2 Equazione trascendente: f(x) = cos xcosh x 1 = 0 La funzione f(x) è simmetrica rispetto all origine se ξ è radice lo è anche ξ x > 0 (ξ = 0 è radice banale) 1000 7000 0 6000 1000 2000 f(x)=cosh(x)*cos(x) 1 5000 4000 3000 3000 g(x)=cosh(x) 4000 2000 5000 6000 1000 0 h(x)=1/cos(x) π π π π π π 7000 0 0.5 1 1.5 2 2.5 3 π π π π π π 1000 0 0.5 1 1.5 2 2.5 3 x >> plot(x,g, r,x,h, b,x,zeros(1,length(x)), k ) >> 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); 4

Separazione delle radici: esempio 2 Equazione trascendente: f(x) = cos xcosh x 1 = 0 100 80 100 80 g(x)=cosh(x) 60 40 20 0 20 40 h(x)=1/cos(x) g(x)=cosh(x) 60 40 20 0 20 40 60 80 60 80 h(x)=1/cos(x) π π π π π π 100 0 0.5 1 1.5 2 2.5 3 x π π π π π π 100 0 0.5 1 1.5 2 2.5 3 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 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 [( ) 2k 1 π2 2, ( 2k + 1 ) ] π2 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ù piccola. 6

Metodo di bisezione (o metodo dicotomico) Il metodo di bisezione è un metodo molto semplice: una volta individuato un intervallo di separazione in cui si trova una sola radice, permette di costruire una successione {x k } di approssimazioni di ξ. Ipotesi di applicabilità : è stato separato un intervallo I = [a, b] in cui c è un unica radice ξ; la funzione f è continua in I: f C 0 [a, b]; f(a)f(b) < 0. f(x) ξ a x b 7

Metodo di bisezione: algoritmo Si genera una successione di approssimazioni {x k } con x k [a k 1, b k 1 ] e ξ [a k 1, b k 1 ]. f(x) x 1 x 3 ξ x2 Algoritmo: a 0 = a, b 0 = b per k = 1,2,3,... a a =a 0 2 1 b 2 b 1 =b 0 per x k = a k 1+b k 1 2 (punto medio di [a k 1, b k 1 ]) per se f(x k ) = 0, allora stop per se f(a k 1 )f(x k ) < 0, allora [a k, b k ] = [a k 1, x k ] per se f(x k )f(b k 1 ) < 0, allora [a k, b k ] = [x k, b k 1 ] x 8

Convergenza del metodo di bisezione Errore di troncamento: e k = ξ x k Convergenza: lim k x k = ξ lim e k = 0 k Per il metodo di bisezione si ha q q a k 1 x k ξ b k 1 e k < b k 1 a k 1 2 = b k 2 a k 2 2 2 = = b a 2 k lim k e k < lim k b a 2 k = 0 9

Ordine di convergenza Sia {x k } una successione di approssimazioni convergente a ξ. La successione ha ordine di convergenza p e fattore di convergenza C, se esistono due reali p 1 e C > 0 tali che e lim k+1 k e k p = C Nota. La convergenza si dice lineare se p = 1, Nota. quadratica se p = 2. 10

Metodo di bisezione: ordine di convergenza Per k si ha e k+1 e k 1 1 2. Ordine di convergenza: 1 (lineare) Fattore di convergenza: 1 2 La convergenza è lenta, in quanto ad ogni passo l errore viene dimezzato, cioè ad ogni passo si guadagna una cifra binaria poiché 2 4 < 10 1 < 2 3, per guadagnare una cifra decimale servono 3-4 iterazioni. 11

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(x k ) = 0. Quando si arrestano le iterazioni? Criteri di arresto a posteriori e k x k x k 1 < ε f(x k ) < ε Criterio di arresto a priori: La stima a priori del numero di iterazioni K necessario per ottenere un errore minore di ε è e k < b a 2 k < ε K > log(b a) log(ε) log2 12

Criteri di arresto: esempi e k x k x k 1 < ǫ oppure f(x k ) < ǫ f(x) ξ x k x k ξ f(x) a x b f(x k ) è grande anche se x k è vicino a ξ a f(x k ) è piccolo anche se x k è lontano da ξ x b 13

Esercizio La crescita di una popolazione può 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 λ è il fattore di crescita della popolazione, allora N(t) soddisfa l equazione differenziale dn(t) dt = λn(t). La soluzione di questa equazione è N(t) = N 0 e λt, dove N 0 indica la popolazione iniziale. Questo modello è valido solo quando la popolazione è isolata e non c è 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 è N(t) = N 0 e λt + ν λ (eλt 1). Supponendo che la popolazione iniziale sia di un milione di individui, che la comunità 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=1anno = N 0 e λ + ν λ (eλ 1), dove N t=1anno = 1 564 000, N 0 = 1 000 000, ν = 435 000. q f(λ) = e λ + 0.435 λ (eλ 1) 1.564 = 0 2 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))) 1.5 1 0.5 0. ξ f(λ) 0.5 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 λ 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

Iterazioni k a k 1 b k 1 x k x k x k 1 f(x k ) 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 18

Metodo di Newton-Raphson Approssimazione iniziale: x 0 Prima iterazione: t 0 è la (x 0,f(x 0 )). retta tangente a f(x) nel punto (x 0, f(x 0 )): f(x) t 0 t 0 y = f(x 0 )+f (x 0 )(x x 0 ) ξ x 1 x 0 Nuova approssimazione x 1 : intersezione tra t 0 e y = 0. a x b f(x 0 ) + f (x 0 )(x 1 x 0 ) = 0 x 1 = x 0 f(x 0) f (x 0 ) 19

Metodo di Newton-Raphson Nuova approssimazione: x 1 Seconda iterazione: t 1 è la (x 0,f(x 0 )). retta tangente a f(x) nel f(x) punto (x 1, f(x 1 )): t 1 y = f(x 1 )+f (x 1 )(x x 1 ) (x 1,f(x 1 )). t 1 ξ x 2 x 1 t 0 x 0 Nuova approssimazione x 2 : intersezione tra t 1 e y = 0. a x b f(x 1 ) + f (x 1 )(x 2 x 1 ) = 0 x 2 = x 1 f(x 1) f (x 1 ) 20

Metodo di Newton-Raphson: algoritmo Ad ogni iterazione k = 1,2,... la nuova approssimazione x k è data dall intersezione tra la retta t k 1, tangente a f(x) nel punto (x k 1, f(x k 1 )), e y = 0. (x k,f(x k )). t k ξ x k+1 x k (x k 1,f(x k 1 )). f(x) t k 1 x k 1 t k 1 y=f(x k 1 )+f (x k 1 )(x-x k 1 ) a x b Algoritmo: f(x k 1 ) + f (x k 1 )(x k x k 1 ) = 0 x 0 dato x k = x k 1 f(x k 1) f (x k 1 ), k = 1,2,... 21

Metodo di Newton-Raphson: convergenza x 0 dato Ipotesi di applicabilità : x k = x k 1 f(x k 1) f (x k 1 ), k = 1,2,... è stato separato un intervallo I = [a, b] in cui c è un unica radice ξ; f, f, f sono continue in I: f C 2 [a, b]; f (x) 0 per x [a, b]. esiste un intorno J I di ξ tale che, se x 0 J, la successione delle approssimazioni {x k } converge [ ] }{{} a ξ. a ξ x 0 b J 22

Metodo di Newton-Raphson: ordine di convergenza Ordine di convergenza: lim k e k+1 e k p = C e k+1 = ξ x k+1 = ξ f(ξ) f (ξ) = (ξ x k ) Sviluppo in serie di Taylor: x k f(x k) f (x k ) f(ξ) f (ξ) f(x k) f (x k ) = f(x k ) = f(ξ) + f (ξ)(x k ξ) }{{} e k + 1 2 f (ξ)(x k ξ) 2 +... f (x k ) f (ξ) e k+1 e k f(ξ) f(ξ) + f (ξ)e k 1 2 f (ξ)e 2 k f (ξ) = 1 2 f (ξ)e 2 k f (ξ) e lim k+1 k e k 2 = 1 2 f (ξ) f (ξ) p 2 se f(x) C3 [a, b] la convergenza è almeno quadratica 23

Efficienza computazionale Per valutare l efficienza di un metodo iterativo bisogna tener conto sia dell ordine di convergenza che del costo computazionale, cioè della quantità di calcoli richiesta ad ogni passo. Efficienza computazionale: E = p 1/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 = 2 1/2 24

Metodo di Newton-Raphson: esempio Approssimare la radice ξ = 0 dell equazione f(x) = 4x 3 5x = 0 con il metodo di Newton-Raphson scegliendo come approssimazione iniziale una volta x 0 = 0.5 e una volta x 0 = 0.4. 2 2 1.5 1.5 1 1 t 1 0.5 0 f(x). ξ 0.5 0 f(x). ξ 0.5 0.5 1 t 0 1 t 0 1.5 1.5 2 0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 a qqqqqqq x 2k = 0.5 x b 2 0.5 0.4 0.3 0.2 0.1 0 0.1 0.2 0.3 0.4 0.5 a qqqqqqq x 2k+1 = 0.5 x b 25

Estremo di Fourier Nel caso particolare in cui f(x) ha concavità fissa in un intervallo I si può 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à. Se esiste f, allora l estremo di Fourier è a o b a seconda che f(a)f (a) > 0 oppure f(b)f (b) > 0. 26

Estremo di Fourier: esempi f(x) f(x) Estremo di Fourier Estremo di Fourier a x b a x b f (x)<0 per x [a, b] { f(a)f (a) > 0 f (x)>0 per x [a, b] { f(a)f (a) < 0 f(b)f (b) < 0 a è estremo di Fourier f(b)f (b) > 0 b è estremo di Fourier 27

Metodo di Newton-Raphson: convergenza Ipotesi di applicabilità : f(a)f(b) < 0 f, f, f sono continue in I: f C 2 [a, b]; f (x) 0 per x [a, b]; f (x) 0 per x [a, b] e x 0 è l estremo di Fourier di [a, b]. 1) esiste un unica radice ξ [a, b]; 2) la successione delle approssimazioni { x k = x k 1 f(x k 1) f (x k 1 ) è monotona e converge a ξ; 3) se f C 3 [a, b], la convergenza è quadratica. } k = 1,2,... 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 k 1,f(x k 1 )). Metodo delle secanti con estremi variabili (x k 1,f(x k 1 )). (x k,f(x k )). t k ξ x k+1 x k f(x) t k 1 x k 1 x k 2. (x k 2,f(x k 2 )) x k. (x k,f(x k )) x k+1 s k 1 ξ s k f(x) x k 1 a Ad ogni iterazione k = 1, 2,... la nuova approssimazione x k è data dall intersezione tra la retta t k 1, tangente a f(x) nel punto (x k 1, f(x k 1 )), e y = 0. Algoritmo: dato x 0 x k = x k 1 f(x k 1) f (x k 1 ), k = 1,2,... x b a Ad ogni iterazione k = 2,3,... la nuova approssimazione x k è data dall intersezione tra la retta s k 1, secante f(x) nei punti (x k 2, f(x k 2 )) e (x k 1, f(x k 1 )), e y = 0. Algoritmo: x 0, x 1 dati x k 1 x k 2 x k = x k 1 f(x k 1 ), k = 2,... f(x k 1 ) f(x k 2 ) x b 30

Metodo delle secanti x 0, x 1 dati x x k = x k 1 f(x k 1 ) k 1 x k 2, k = 2,... f(x k 1 ) f(x k 2 ) Vantaggi: si può usare quando non si conosce la derivata di f(x) o quando f(x) è nota per punti ad ogni passo richiede una sola valutazione funzionale Svantaggi: servono due approssimazioni iniziali x 0 e x 1 la scelta di x 0 e x 1 deve essere accurata 31

Convergenza del metodo delle secanti Se è stato separato un intervallo I = [a, b] simmetrico intorno alla radice ξ, f, f, f sono continue in I: f C 2 [a, b], f (x) 0 per x [a, b], esiste un intorno J I di ξ tale che, se x 0, x 1 J, la successione delle approssimazioni {x k } converge a ξ con convergenza superlineare, cioè 2 > p > 1. Se f (x) 0 in I, l ordine di convergenza è p = 1+ 5 2 E = p 1.62 32

Esercizio Data l equazione non lineare f(x) = x 3 + 1 3 cos x = 0: 1) individuare quante sono le radici e separarle, 2) fornire una stima a priori del numero di iterazioni necessarie 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 Newton e il metodo delle secanti? 33

Traccia della soluzione 1) Tracciando qualitativamente i grafici delle funzioni y = g(x) = x 3 + 1 y = h(x) = cos x, 3 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 ξ è 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)). 34

2) Nell intervallo [0, 1] sono verificate le ipotesi di applicabilità del metodo di bisezioni. Quindi il numero di iterazioni K per cui e K ǫ si ricava dalla relazione e K = ξ x K b a 2 K ǫ K > log(b a) log ǫ. log2 In questo caso a = 0, b = 1, ǫ = 10 6 K > 20. 35

3) Nel caso dei metodi di Newton e delle secanti si possono verificare le ipotesi di applicabilità nell intervallo [0, 1] sia analiticamente che per via grafica; l estremo b = 1 è l estremo di Fourier dell intervallo. Il numero di iterazioni si può calcolare eseguendo le iterate con un programma Matlab. 36

k x k (bisez.) x k x k 1 x k (Newton) x k x k 1 x k (secanti) x k x k 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 37

Metodo di Newton per sistemi Sistema non lineare: F(X) = 0 X = [x 1, x 2,..., x n ] T Il metodo di Newton per la soluzione di sistemi non lineari si basa sulla linearizzazione della F(X) = [f 1 (X),..., f n (X)] T Se le funzioni f i (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) ) + J F (X (k) )(X X (k) ) +... dove [J F (X)] ij = f i x j è lo jacobiano della F(X) F(X (k+1) ) F(X (k) ) + J F (X (k) )(X (k+1) X (k) ) = 0 X (0) dato X (k+1) = X (k) [ J F (X (k) ) ] 1 F(X (k) ) k 0 38

Convergenza del metodo di Newton Il metodo di Newton è un metodo iterativo la cui funzione di iterazione è Φ(X) = X [J F (X)] 1 F(X) Teorema. Sia X una soluzione del sistema non lineare F(X) = 0 con F C 2 (I) (I IR n intorno di X). Sia det J F (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 è quadratica: lim k E (k+1) E (k) 2 > 0. 39

Osservazioni sul metodo di Newton per sistemi La convergenza del metodo è legata all accuratezza dell approssimazione iniziale. Ad ogni passo bisogna verificare che det J F (X (k) ) 0. Nella pratica, si può avere instabilità numerica se det J F (X (k) ) è piccolo conviene utilizzare una precisione elevata. Poiché il costo computazionale del calcolo di det J F (X (k) ) può essere elevato, si preferisce risolvere ad ogni passo il sistema lineare J F (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 J F (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 = 2 si ha: { f(x) = f(x, y) = 0 g(x) = g(x, y) = 0 Formula di Taylor di punto iniziale X (k) = [x k, y k ] T : { f(x) = f(x (k) ) + f x (X (k) )(x x k ) + f y (X (k) )(y y k ) + R 1 = 0 g(x) = g(x (k) ) + g x (X (k) )(x x k ) + g y (X (k) )(y y k ) + R 2 = 0 dove R 1 = R 1 (X, X (k) ), R 2 = R 2 (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) )(x k+1 x k ) + f y (X (k) )(y k+1 y k ) = f(x (k) ) g x (X (k) )(x k+1 x k ) + g y (X (k) )(y k+1 y k ) = g(x (k) ) 41

Metodo di Newton per sistemi: n = 2 f x (X (k) )(x k+1 x k ) + f y (X (k) )(y k+1 y k ) = f(x (k) ) g x (X (k) )(x k+1 x k ) + g y (X (k) )(y k+1 y k ) = g(x (k) ) dove J (k) F := J F (X (k) ) = J (k) F (X(k+1) X (k) ) = F(X (k) ) [ fx (X (k) ) f y (X (k) ) g x (X (k) ) g y (X (k) ) ] Il sistema lineare ammette soluzione se J (k) F = det J(k) F 0 La soluzione è x k+1 = x k 1 J (k) F y k+1 = y k 1 J (k) F [ f(x k ) g y (X (k) ) g(x (k) ) f y (X (k) ) ] [ g(x k ) f x (X (k) ) f(x (k) ) g x (X (k) ) ] 42

Esempio Il problema di due specie che competono per la stessa quantità 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 simultaneamente 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 x 2 = 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

Dato il sistema non lineare Esercizio f(x, y) = 2 x 0.0002 x y 0.0001 x 2 = 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 y = 10 4 0.5 x lineare di x: y = 4 3 (104 x). Le due rette si intersecano solo quando x = 4000 y = 8000 X = [4000,8000] è l unica soluzione non banale del sitema dato. 46

ii) Il sistema non lineare di partenza può essere riscritto y = 10 4 0.5 x = ψ(x, y) in modo equivalente come x = 10 4 3 y = ϕ(x, y) 4 Si verificare facilmente che per il dominio D = [2000,9000] [3000,9000], si ha Φ(D) D (Suggerimento: decrescenti). ϕ e ψ sono funzioni monotone ϕ x (x, y) = 0.5 ϕ y (x, y) = 0 ψ x (x, y) = 0 ψ y (x, y) = 0.75 M = 0.5 0 M < 1 0 0.75 La trasformazione Φ = [ϕ, ψ] T è una contrazione 47

Verificare che le trasformazioni x = 10 4 x y 0.5 10 4 x 2 = ϕ(x, y) y = 3 4 10 4 10 4 x y = ψ(x, y) e x = y = 2 10 4 x 2 x y = ϕ(x, y) 4 3 104 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. 48

iii) Le funzioni f, g C 2 (D). f x = 2 2 10 4 y 2 10 4 x g y = 4 6 10 4 y 4 10 4 x f y = 2 10 4 x g x = 4 10 4 y Utilizzando come approssimazione iniziale il punto medio del dominio D, dopo 30 iterazioni si ottiene x 30 = 3999.998 y 30 = 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 50