1 Il metodo di Newton Enrico Bertolazzi
2 Metodo di Newton Scelta del punto iniziale: x 0 Ciclo: per k = 0, 1, 2,... Calcolo direzione avanzamento J(x k )s k = F(x k ) Aggiorna approssimazione della radice x k+1 = x k + s k Possibili criteri di terminazione: x k+1 x k = s k < ɛ F(x k ) < ɛ
3 Proprietà del metodo di Newton
4 Esempio: f(x) = x 3 x x 0 = 0.4 f(x) = x 3 x
5 Esempio: f(x) = x 3 x x 0 = 2
6 Esempio: f(x) = x 2 + x + 1 x 0 = 2 f(x) = x 2 + x + 1
7 Esempio: f(x) = x 4 exp( x) x 0 = 2 f(x) = x 4 exp( x)
8 Metodo di Broyden (1965) Scelta del punto e dello Jacobiamo approssimato iniziale: x 0 B 0 Ciclo: per k = 0, 1, 2,... Calcolo direzione avanzamento s k B k s k = F(x k ) Aggiorna approssimazione della radice Calcola B k+1 x k+1 = x k + s k B k+1 = B k + F(x k+1)s T k s T k s k Possibili criteri di arresto: x k+1 x k = s k < ɛ F(x k ) < ɛ
9 Proprietà del metodo di Broyden Broyden, Dennis, Moré; On the local and superlinear convergence of quasi- Newton methods. J. Inst. Math. Appl. [1973]: dimostrano che il metodo di Broyden è localmente convergente e superlineare, cioè: lim k x k+1 x x k x = 0 Gay; Some convergence properties of Broyden's method. SIAM J. Numer. Anal. [1979]: dimostra che il metodo di Broyden converge in al piu 2n passi se F(x) = Ax-b, cioè il problema è lineare. Inoltre prova che il metodo in generale è 2npassi quadratico, cioè x k+2n x C x k x 2
10 Perchè B k è definito così? (1/3) Il metodo di Broyden nasce da una analogia con il metodo delle secanti per le equazioni scalari: x k+1 = x k f(x k ) f(x k ) f(x k 1 ) x k x k 1 Il metodo delle secanti può essere riscritto nel seguente modo: x k+1 = x k B 1 k f(x k) B k+1 = f(x k+1) f(x k ) x k+1 x k
11 Perchè B k è definito così? (2/3) Un analogo matriciale della secanti: B k+1 = f(x k+1) f(x k ) x k+1 x k è l eqazione delle B k+1 (x k+1 x k ) = F(x k+1 ) F(x k ) Il problema è che questa relazione non determina in modo univoco la matrice B k+1 L idea del metodo di Broyden è quella di costruire B k+1 a partire dalla matrice B k facendo il minimo dei cambiamenti in modo da soddisfare l equazione delle secanti. Ad esempio con una perturbazione di rango 1: B k+1 = B k + uv T
12 Perchè B k è definito così? (3/3) Per determinare i vettori u e v basta usare la equazione delle secanti: (B k + uv T )(x k+1 x k ) = F(x k+1 ) F(x k ) Ponendo y k = F(x k+1 ) F(x k ) e s k = x k+1 x k otteniamo (B k + uv T )s k = y k Ricaviamo la matrice u in funzione di v: u = y k B k s k v T s k E dalla relazione y k B k s k = y k + F(x k ) = F(x k+1 ) si semplifica in: Scegliendo v = s k u = 1 v T s k F(x k+1 ) otteniamo il metodo di Broyden classico
13 Altre varianti di Broyden Scegliendo il vettore u in maniera diversa si ottengono metodi diversi Ad esempio scegliendo il vettore v = e ik dove (s k ) ik = ± s k si ottiene il metodo column-updating
14 Riscrittura del metodo di Broyden Il metodo di Broyden precedentemente descritto necessita della soluzione di un sistema lineare con matrice dei coefficienti La soluzione del sistema lineare può essere molto costosa sia in termini di occupazione di memoria che di tempo di CPU. B k Si può riscrivere il metodo di Broyden in funzione di H k = B 1 k Il metodo riscritto in funzione di H k risolve il problema della efficienza (soluzione del sistema lineare) ma non risolve il problema della occupazione di memoria specialmente nel caso di sistemi di grandi e grandissime dimensione Il problema della occupazione di memoria verrà parzialmente risolto tramite la riscrittura di come prodotto di matrici semplici H k
15 La formula di Sherman-Morrison E possibile scrivere l inversa di una matrice perturbata da una matrice di rango 1 con una formula esplicita. (A + uv T ) 1 = A 1 1 α A 1 uv T A 1 dove α = 1 + v T A 1 u
16 Applicazione Data la formula di aggiornamento B k+1 = B k + F(x k+1)s T k s T k s k usando la formula di Sherman-Morrison B 1 k+1 = B 1 k 1 B 1 k β F(x k+1)s T k B 1 k k β k = s T k s k + s T k B 1 k F(x k+1) reinterpretando la formula per H k = B 1 k H k+1 = H k 1 β k H k F(x k+1 )s T k H k β k = s T k s k + s T k H k F(x k+1 )
17 Metodo di Broyden (1965) - versione 2 Scelta del punto e dello Jacobiamo inverso approssimato iniziale: x 0 B 0 Ciclo: per k = 0, 1, 2,... Calcolo direzione avanzamento Aggiorna approssimazione della radice Aggiorna la matrice H s k = H k F(x k ) x k+1 = x k + s k z k = H k F(x k+1 ) β k = s T k (s k + z k ) H k+1 = ( I β 1 k z ks T k ) Hk Possibili criteri di terminazione: x k+1 x k = s k < ɛ F(x k ) < ɛ
18 Riscrittura di H k La espressione H k+1 = ( I β 1 k z ks T k ) Hk usata ripetutamente permette di scrivere H k come segue H k = ( I β 1 k 1 z k 1s T k 1) Hk 1 = ( I β 1 k 1 z k 1s T )( k 1 I β 1 k 2 z k 2s T k 2) Hk 2 = ( I β 1 k 1 z k 1s T ) ( k 1 I β 1 1 z 1s T 1 )( I β 1 0 z 0s T 0 ) H0
19 Prodotto di H k per un vettore dalla relazione (I αuv T )a = a (αv T a)u possiamo scrivere il seguente algoritmo per calcolare H k a Algoritmo 1 calcola: per i = 0, 1, 2,..., k-1 b H 0 a b b β 1 i (s T i b)z i il vettore b contiene il prodotto H k a
20 Metodo di Broyden (1965) - versione 3 Scelta del punto e dello Jacobiamo inverso approssimato iniziale: x 0 H 0 Ciclo: per k = 0, 1, 2,... Calcolo la direzione avanzamento con l algoritmo 1 Aggiorna approssimazione della radice s k = H k F(x k ) x k+1 = x k + s k Aggiorna il vettore z k usando l algoritmo 1 z k = H k F(x k+1 ) β k = s T k (s k + z k ) Possibili criteri di arresto: x k+1 x k = s k < ɛ F(x k ) < ɛ
21 Osservazione Date le seguenti uguaglianze: s k = H k F(x k ) z k = H k F(x k+1 ) H k+1 = ( I β 1 k z ks T k ) Hk β k = s T k s k + s T k z k possiamo scrivere s k+1 = ( I β 1 k z ks T k ) Hk F(x k+1 ) = ( β 1 k z ks T k I ) z k = ( β 1 k (st k z k ) 1 ) z k = (s T k s k )β 1 k z k
22 Metodo di Broyden (1965) - versione 3 (bis) Scelta del punto e dello Jacobiamo inverso approssimato iniziale: calcola: s 0 = H 0 F(x 0 ) Ciclo: per k = 0, 1, 2,... x 0 H 0 Aggiorna approssimazione della radice Aggiorna il vettore z k usando l algoritmo 1 x k+1 = x k + s k z k = H k F(x k+1 ) Aggiorna il vettore s k+1 α k = s T k s k Possibili criteri di arresto: x k+1 x k = s k < ɛ β k = α k + s T k z k s k+1 = α k β 1 k z k F(x k ) < ɛ
23 Esempio di soluzione con Broyden