Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Risoluzione di Equazioni non lineari Sia F ∈ C0 ([a, b]), cioé F è una funzione continua in un intervallo [a, b] ⊂ R, tale che F(a)F(b) < 0 1.5 F(b) 1 0.5 0 a b −0.5 F(a) −1 −1.5 −2.5 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 Vogliamo trovare le radici dell’equazione non lineare F(x) = 0. La condizione F(a)F(b) < 0 è una condizione sufficiente per l’esistenza di almeno una radice di F in [a, b]. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Metodo di Bisezione Questo metodo consiste nel costruire, a partire dall’intervallo [a, b], una successione di intervalli incapsulati [a, b] = [a0 , b0 ] ⊃ [a1 , b1 ] ⊃ · · · ⊃ [an , bn ], tutti contenenti la radice x̄ di F, tale che bn − an → 0 Dott.ssa Maria Carmela De Bonis a.a. 2013-14 per n → +∞ Corso di Matematica per la Chimica Se, ad esempio, F(a) = F(a0 ) < 0 e F(b) = F(b0 ) > 0, gli intervalli [ak , bk ], k = 1, . . . , n, della successione vengono determinati come segue: dato [ak−1 , bk−1 ], determiniamo il punto medio mk = bk−1 − ak−1 ak−1 + bk−1 = ak−1 + ; 2 2 se F(mk ) = 0 allora x̄ = mk e abbiamo terminato; se F(mk ) 6= 0 allora analizziamo il segno di F(mk ) e poniamo ( [ak−1 , mk ] se F(mk ) > 0 [ak , bk ] = [mk , bk−1 ] se F(mk ) < 0 Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Metodo di Bisezione Dopo n passi si giunge all’intervallo [an , bn ] contenente la radice x̄ e di ampiezza bn − an = bn−1 − an−1 bn−2 − an−2 b−a = = ··· = 2 22 2n Come stima di di x̄ scegliamo xn+1 = mn+1 = an + bn 2 cosı̀ che x̄ = xn+1 ± εn+1 , dove b−a 2n+1 è l’errore assoluto di approssimazione della radice x̄ di F. εn+1 = |x̄ − xn+1 | < Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Fissata una tolleranza TOLL, è possibile determinare il numero di iterazioni k necessarie per approssimare la radice x̄ con precisione TOLL imponendo che |x̄ − xn | < b−a < TOLL. 2n Infatti, possiamo scrivere b−a < 2n TOLL log b−a TOLL < log(2n ) = n log 2 b−a log TOLL n> log 2 Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Dunque prendiamo $ n= b−a log TOLL log 2 % +1 dove bac denota la parte intera inferiore di a. Ogni 3.3 passi circa prendiamo una cifra decimale corretta Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Metodo di Bisezione Per stimare la velocità di convergenza del metodo di bisezione utilizziamo il seguente teorema che vale per tutte le successioni numeriche convergenti Teorema Sia {xn }n una successione convergente al valore x̄. Poniamo εn = |x̄ − xn |. Se esiste un numero reale p ≥ 1 e una costante reale positiva C tale che εn+1 lim p =C n→+∞ εn allora la successione {xn }n ha ordine di convergenza p. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Poiché per il metodo di bisezione si ha εn+1 1 = εn 2 il suo ordine di convergenza è 1, cioè converge molto lentamente. Va però osservato che il metodo richiede solo la continuità della funzione F e la conoscenza del segno di F negli estremi dell’intervallo [a, b]. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Metodi Iterativi Partendo dal punto iniziale x0 , generiamo i valori x1 , x2 , . . . , xn nel seguente modo: Conduciamo dal punto (x0 , F(x0 )) una retta con pendenza m0 e scegliamo come approssimazione x1 l’intersezione di tale retta con l’asse delle x; Conduciamo dal punto (x1 , F(x1 )) una retta con pendenza m1 e scegliamo come approssimazione x2 l’intersezione di tale retta con l’asse delle x; ... Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Dunque ad ogni passo scegliamo come approssimazione della radice x̄ di F, la radice dell’equazione lineare F(xn ) + mn (x − xn ) = 0, cioè xn+1 = xn − F(xn ) mn (1) Una formula del tipo (1) viene detta formula iterativa e si dice che la successione x1 , x2 , . . . , xn , . . . viene costruita mediante un procedimento iterativo. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Metodi Iterativi La funzione g(x) = x − F(x) mn tale che xn+1 = g(xn ) viene detta funzione di iterazione semplice perchè per la costruzione della successione {xn }n utilizza solo il punto x0 . Si parla di procedimenti iterativi multipli quando xn+k = g(xn+k−1 , xn+k−2 , . . . , xn ), k > 1, cioè la successione {xn }n è costruita a partire dai punti x0 , x1 , . . . , xk−1 . Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Metodi Iterativi Per determinare l’ordine di convergenza di un procedimento iterativo semplice utilizziamo il seguente Teorema Condizione necessaria e sufficiente affinchè un procedimento iterativo semplice e convergente ad x̄ abbia ordine di convergenza n è che, se la funzione di iterazione g è dotata di derivata n−esima continua per x = x̄, risulti g0 (x̄) = g00 (x̄) = · · · = g(n−1) (x̄) = 0 e g(n) (x̄) 6= 0. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Criteri di Arresto Quando si implementa in maniera automatica un procedimento iterativo del tipo xn+1 = g(xn ), n = 0, 1, . . . , occorrono uno o più criteri per arrestare tale procedimento. Fissata una tolleranza TOLL arbitrariamente piccola, i criteri di arresto usualmente utilizzati sono: 1 2 3 |F(xn )| < TOLL, tanto più è piccolo TOLL tanto più xn è vicino ad x̄; |xn+1 − xn | |xn+1 − xn | < TOLL oppure < TOLL, |xn+1 | tanto più è piccolo TOLL tanto più xn è vicino al limite della successione x̄; numero delle iterazioni ≤ ITMAX, ITMAX è una variabile intera fissata Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Il criterio 3 entra in gioco quando i primi due falliscono, cioè quando la funzione y = F(x) ha un andamento del seguente tipo: 2 1.5 1 0.5 0 −0.5 −1 −1.5 −2.5 −2 −1.5 −1 −0.5 |xn+1 − xn | > TOLL |xn+1 | Dott.ssa Maria Carmela De Bonis a.a. 2013-14 0 0.5 1 1.5 2 2.5 ma |f (xn )| < TOLL Corso di Matematica per la Chimica 1.5 1 0.5 0 −0.5 −1 −1.5 −2.5 −2 −1.5 −1 −0.5 |xn+1 − xn | < TOLL |xn+1 | Dott.ssa Maria Carmela De Bonis a.a. 2013-14 0 0.5 1 1.5 2 2.5 ma |f (xn )| > TOLL Corso di Matematica per la Chimica La variabile ITMAX viene anche detta variabile tappo. In generale è preferibile utilizzare tutti e tre i criteri. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Metodo di Newton o delle tangenti Nella formula xn+1 = xn − F(xn ) mn le direzioni mn possono essere scelte in vari modi. In questo metodo la direzione scelta ad ogni passo è quello della tangente alla curva y = F(x) nel punto xn , cioè mn = F 0 (xn ) Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Dunque il metodo è dato da xn+1 = xn − F(xn ) , F 0 (xn ) n = 0, 1, . . . La funzione di iterazione è quindi g(x) = x − F(x) . F 0 (x) Appare evidente che il metodo perde di significato se per qualche n risulta F 0 (xn ) = 0. Dunque in generale si suppone che F 0 (x) 6= 0, Dott.ssa Maria Carmela De Bonis a.a. 2013-14 ∀x ∈ [a, b]. Corso di Matematica per la Chimica La formula iterativa xn+1 = xn − F(xn ) , F 0 (xn ) n = 0, 1, . . . ci permette di calcolare la successione x1 , x2 , . . . a partire dal punto x0 . Domanda Come scegliamo il punto x0 ? Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Il seguente teorema stabilisce delle condizioni per la determinazione di un intervallo [a, b] per il quale il metodo di Newton converge per ogni scelta di x0 ∈ [a, b] Teorema Sia F(x) ∈ C2 ([a, b]) con [a, b] chiuso e limitato. Se 1 F(a)F(b) < 0; 2 F 0 (x) 6= 0, 3 F 00 (x) 4 ∀x ∈ [a, b]; ≥ 0 oppure F 00 (x) ≤ 0, ∀x ∈ [a, b]; F(b) F(a) < (b − a) e F0 (a) F0 (b) < (b − a); allora il Metodo di Newton converge all’unica soluzione x̄ ∈ [a, b] per ogni scelta di x0 ∈ [a, b]. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Ordine di convergenza del Metodo di Newton g0 (x) = 1 − F(x)F 00 (x) (F 0 (x))2 − F(x)F 00 (x) = (F 0 (x))2 (F 0 (x))2 ma, poichè assumiamo che F(x̄) = 0, si ha g0 (x̄) = 0. g00 (x) = (F 0 (x)F 00 (x)+F(x)F 000 (x))(F 0 (x))2 −2F 0 (x)F(x)(F 00 (x))2 (F 0 (x))4 e quindi g00 (x̄) = F 00 (x̄) F 0 (x̄) che, in generale, è diverso da 0. Dunque, in generale, il metodo ha ordine di convergenza 2. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Domanda Cosa succede se x̄ è uno zero doppio, cioè F(x̄) = F 0 (x̄) = 0 e F 00 (x̄) 6= 0? In questo caso non è possibile calcolare né g né g0 in x̄, ma è possibile definirli per continuità: F(x) F 0 (x) = x̄ − lim = x̄ x→x̄ F 0 (x) x→x̄ F 00 (x) g(x̄) = x̄ − lim F(x) F 0 (x) 1 00 = F (x̄) lim = x→x̄ (F 0 (x))2 x→x̄ 2F 0 (x)F 00 (x) 2 g0 (x̄) = F 00 (x̄) lim Dunque se x̄ è uno zero doppio, essendo g0 (x̄) 6= 0, il metodo di Newton ha ordine di convergenza 1. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Piú in generale, se x̄ è uno zero d’ordine r, cioè F(x̄) = F 0 (x̄) = · · · = F (r−1) (x̄) = 0 e F (r) (x̄) 6= 0, allora 1 6= 0, r dunque il metodo di Newton ha ancora ordine di convergenza 1. g0 (x̄) = 1 − Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Metodo di Newton per radici multiple Quando x̄ è uno zero multiplo è possibile modificare leggermente il metodo di Newton per “recuperare” l’ordine 2. Si considera la seguente formula iterativa: xn+1 = xn − 2 F(xn ) , F 0 (xn ) n = 0, 1, . . . la cui funzione di iterazione è g(x) = x − 2 Dott.ssa Maria Carmela De Bonis a.a. 2013-14 F(x) . F 0 (x) Corso di Matematica per la Chimica La precedente formula iterativa ha ordine di convergenza 2, infatti, poiché g0 (x) = 1 − 2 F(x)F 00 (x) (F 0 (x))2 − F(x)F 00 (x) = 2 − 1, (F 0 (x))2 (F 0 (x))2 otteniamo g0 (x̄) = 2F 00 (x̄) lim x→x̄ F(x) − 1 = 1 − 1 = 0. (F 0 (x))2 Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Metodo di Newton per radici multiple In generale se x̄ è una radice multipla di ordine r si utilizza la seguente formula iterativa xn+1 = xn − r F(xn ) , F 0 (xn ) n = 0, 1, . . . il cui ordine di convergenza è ancora 2. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Esistono opportune modifiche anche nei casi in cui la molteplicità della radice è > 1 ma non è nota e nei casi in cui la molteplicità è infinita. Esistono delle varianti del Metodo di Newton che hanno ordine di convergenza > 2. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Osservazione Quando la funzione F ha radici multiple, abbiamo visto che da un punto di vista teorico il Metodo di Newton converge. Tuttavia, spesso si verifica che esso numericamente non converge. La stessa cosa certe volte accade quando F ha radici “quasi multiple”. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica Osservazione La convergenza del Metodo di Newton è garantita quando, supposte soddisfatte le ipotesi del teorema, l’approssimazione iniziale x0 è “sufficientemente” vicina alla radice x̄. Pertanto tale metodo si rivela spesso efficiente soprattutto per migliorare un’approssimazione “sufficientemente” buona ottenuta con un metodo di ordine più basso la cui convergenza è assicurata. In generale, anzichè verificare le ipotesi del teorema, è preferibile utilizzare il Metodo di bisezione per determinare un’approssimazione della radice con 1 o 2 cifre decimali corrette, e poi applicare il Metodo di Newton per ottenere con pochissime iterazioni la precisione desiderata. Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Corso di Matematica per la Chimica