Corso di Laurea in Ingegneria Gestionale Sede di Fermo Corso di 2 - EQUAZIONI NON LINEARI
Introduzione Problema: trovare le soluzioni di un equazione del tipo f() = 0 Esempio sin a = 0 e = 3 1.0 2.0 0.5 1.5 Out[54]= 3 2 1 1 2 3 1.0 0.5 0.5 Mathematica file EqNonLin1.nb 1.0 0.0 0.5 1.0 1.5 2.0
Bisezione Dal teorema degli zeri, data f : [a, b] R continua, se f(a) f(b) < 0 allora c tale che f(c) = 0. f() f() f(a)>0 f(a)>0 a c b a c c 0 b f(b)<0 Costruiamo tre successioni, {a n }, {b n } e {c n }: siano a 0 = a b 0 = b c 0 = a + b 2 f(b)<0
Bisezione Nel nostro esempio, f(a 0 ) f(c 0 ) < 0, quindi il teorema degli zeri si applica nuovamente all intervallo [a 0, c 0 ]. Siano allora a 1 = a 0 b 1 = c 0 c 1 = (a 1 + b 1 )/2... e così via: se f(a n ) f(c n ) < 0 allora a n+1 = a n e b n+1 = c n ; se f(a n ) f(c n ) > 0 allora a n+1 = c n e b n+1 = b n e c n+1 = (a n+1 + b n+1 )/2. La successione {c n } converge a c (lo sappiamo dal teorema degli zeri), quindi l algoritmo basato sul metodo di fornisce una successione che converge alla soluzione. In pratica, l algoritmo viene fermato dopo N passi (o iterazioni) ed otteniamo un approssimazione per lo zero della funzione: c c N. Come scegliere N (criterio di arresto)?
Criterio di arresto Varie possibilità: Fissare un massimo numero di iterazioni, N N ma (è di solito considerato un fallimento - legato a ragioni di costo computazionale); Fissare una tolleranza η << 1 su c: c N c η (ovviamente c non lo conosciamo... vedi più avanti) - è il caso più frequente nella prassi - la chiameremo tolleranza assoluta Fissare una tolleranza relativa η << 1 su c: (c N c)/c η (anche qui c non lo conosciamo...); Fissare una tolleranza η << 1 su f(c): f(c N ) η Quale errore commettiamo nei vari casi?
Analisi dell errore nel caso c N c η Ricordiamo che c n [a n, b n ] e c [a n, b n ]; c n = (a n + b n )/2 e b n a n = (b a)/2 n ; quindi c n c (b a)/2 n ; ci fermiamo quando (b a)/2 N η. dunque N log 2 (b a)/η. c a a n c n b n b Nel caso (c N c)/c η ci fermiamo quando (b a)/( c N 2 N ) η
Ordine di convergenza Nel caso c n c (b a)/2 n abbiamo che α n = c n e β n = 1/2 n, con K = b a. Quindi c n converge a c con tasso di convergenza O(1/2 n ), ovvero ( ) 1 c n = c + O 2 n
Un punto = c si dice per una funzione g() se g(c) = c, cioè una soluzione dell equazione g() =. y y= g() c Punto fisso Un problema del tipo f() = 0 si può sempre trasformare in un equivalente problema di ; esiste cioè sempre una funzione g() per cui l equazione f() = 0 è equivalente all equazione g() =. Ci sono diversi modi per definire una funzione g() a tale scopo: ad esempio g() = f() (quello più semplice) ma anche g() = + a f() e molti altri.
Data una funzione g(), definita su un intervallo [a, b], quando ha un e quando questo è unico? E come si costruisce? Theorem Se g è una funzione continua su [a, b] e g() [a, b] [a, b], allora g ha un in [a, b]; inoltre, se esiste k con 0 < k < 1 tale che g () < k [a, b], il è unico. Proof.... y u() b g() h() a a b
Theorem (Teorema del ) Sia g() una funzione che soddisfa le condizioni del teorema precedente. Allora, 0 [a, b] la successione definita da n+1 = g( n ) converge al = c (unico!!) della funzione g. y b g() a a 0 1 2 c b
Proof. Per le condizioni del teorema precedente, n [a, b] n. Inoltre, per il teorema di Lagrange, n c = g( n 1 ) g(c) = g (ξ n ) n 1 c k n 1 c, con ξ n [a, b]. Per induzione, allora abbiamo che n c k n 0 c. Siccome k < 1, si ha che lim n k n = 0 e quindi lim n n c lim n k n 0 c = 0. Quindi { n } converge a c.
Theorem Se g soddisfa le ipotesi del teorema del, allora l errore che si commette approssimando c con n soddisfa alle limitazioni n c k n ma{ 0 a, b 0 } n c kn 1 k 1 0 Proof....
f() f() f() 0 c 0 1 c 0 1 Tangente ad f() per ( 0, f( 0 )): y = f( 0 ) + f ( 0 ) ( 0 ); l intersezione della tangente con l asse delle fornisce 1 = 0 f( 0 )/f ( 0 );... e così via: n+1 = n f( n) f ( n )
Quando converge? Intuitivamente: f() S I f() N O 0 1 2 c c 2 0 1 Theorem Sia f() di classe C 2 ([a, b]). Se esiste c [a, b] tale che f(c) = 0 ed f (c) 0, allora esiste un δ > 0 tale che il metodo di Newton genera una successione n, con 0 (c δ, c + δ), e con n c per n.
Proof. Schema. Il metodo di Newton è un problema di per la funzione g() = f()/f (). La dimostrazione consiste nel determinare un intervallo I(δ) = [c δ, c + δ] che viene mappato in se stesso dalla funzione g e per il quale esiste una costante reale k, con 0 < k < 1, per cui g () k I(δ). Allora, le ipotesi del teorema del sono dunque tutte soddisfatte e la successione n+1 = g( n ) converge al c 0 I(δ).
Convergenza In metodo di Newton converge rapidamente se la scelta iniziale 0 e abbastanza vicina allo zero = c, in particolare se f() è monotona tra 0 e c; dopo poche iterazioni già si capisce se il metodo converge o se va a galline (cioè non converge); uno svantaggio è dato dalla necessità di conoscere la derivata f (); i criteri di arresto sono essenzialmente gli stessi del metodo di, solo che non abbiamo a disposizione un intervallo [a n, b n ] come nell altro caso; allora, la tolleranza (semplice o relativa) viene testata sulla differenza n+1 n ; vale a dire che n+1 n < η diventa il criterio di arresto (tolleranza semplice).
Theorem (Ordine di convergenza quadratico) Sia f tale da obbedire alle condizioni del teorema sulla convergenza del metodo di. Allora il metodo gode di ordine di convergenza quadratico. Proof. Con riferimento a quanto visto in precedenza, siano {α n } e {β n } le successioni date da α n = n+1 c e β n = n c. Allora abbiamo α n β n 2. Infatti, con uno sviluppo di Taylor possiamo scrivere: 0 = f(c) = f( n ) + (c n ) f ( n ) + (c n ) 2 f (ξ)/2 da cui (dividendo per f ( n )) f( n )/f ( n ) + (c n ) = (c n ) 2 f (ξ)/(2 f ( n )) e, ricordando che n+1 = n f( n )/f ( n ), c n+1 = (c n ) 2 f (ξ)/(2 f ( n )) e quindi α n K β n 2.