Soluzioni Analitiche e Numeriche Applicate all Ingegneria Ambientale



Похожие документы
Equazioni non lineari

EQUAZIONI non LINEARI

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

EQUAZIONI DIFFERENZIALI Esercizi svolti. y = xy. y(2) = 1.

Corso di Calcolo Numerico

Equazioni non lineari

Introduzione al MATLAB c Parte 2

Documentazione esterna al software matematico sviluppato con MatLab

Docente: Anna Valeria Germinario. Università di Bari. A.V.Germinario (Università di Bari) Analisi Matematica ITPS 1 / 22

1 Serie di Taylor di una funzione

Ottimizzazione non Vincolata

EQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6

2 Argomenti introduttivi e generali

Matematica generale CTF

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

Sulle funzioni di W 1,p (Ω) a traccia nulla

15 febbraio Soluzione esame di geometria - 12 crediti Ingegneria gestionale - a.a COGNOME... NOME... N. MATRICOLA...

Ammortamento di un debito

METODI ITERATIVI PER SISTEMI LINEARI

Esercizi svolti. 1. Si consideri la funzione f(x) = 4 x 2. a) Verificare che la funzione F(x) = x 2 4 x2 + 2 arcsin x è una primitiva di

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

Indice Elementi di analisi delle matrici I fondamenti della matematica numerica

l insieme Y è detto codominio (è l insieme di tutti i valori che la funzione può assumere)

Condizionamento del problema

u 1 u k che rappresenta formalmente la somma degli infiniti numeri (14.1), ordinati al crescere del loro indice. I numeri u k

Limiti e continuità di funzioni reali di una variabile

LE FIBRE DI UNA APPLICAZIONE LINEARE

Corso di Matematica per la Chimica

Dimensione di uno Spazio vettoriale

Applicazioni lineari

1. Sia dato un poliedro. Dire quali delle seguenti affermazioni sono corrette.

Approssimazione polinomiale di funzioni e dati

Esempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Corso di Analisi Numerica

Da una a più variabili: derivate

LEZIONE 31. B i : R n R. R m,n, x = (x 1,..., x n ). Allora sappiamo che è definita. j=1. a i,j x j.

SUCCESSIONI NUMERICHE

Computational Game Theory

Elementi Finiti: stime d errore e adattività della griglia

Rette e curve, piani e superfici

Equazione di Keplero (eqz. nonlineari).

Funzioni con dominio in R n

I appello - 24 Marzo 2006

Parte 2. Determinante e matrice inversa

ANALISI DEL CONDIZIONAMENTO DI UN SISTEMA LINEARE

MATLAB:Condizionamento Sistemi Lineari.

Appunti delle esercitazioni di Ricerca Operativa

Massimi e minimi vincolati

Metodi iterativi per sistemi lineari

Interpolazione ed approssimazione di funzioni

Daniela Lera A.A

ESERCIZI APPLICAZIONI LINEARI

Limiti e continuità delle funzioni reali a variabile reale

a) Osserviamo innanzi tutto che dev essere x > 0. Pertanto il dominio è ]0, + [. b) Poniamo t = log x. Innanzi tutto si ha:

Se x* e punto di minimo (locale) per la funzione nell insieme Ω, Ω = { x / g i (x) 0 i I, h j (x)= 0 j J } lo e anche per F(x) = f o (x) + c x x 2

Un modello matematico di investimento ottimale

Insiemi di livello e limiti in più variabili

Indice. 1 Introduzione alle Equazioni Differenziali Esempio introduttivo Nomenclatura e Teoremi di Esistenza ed Unicità...

09 - Funzioni reali di due variabili reali

Massimi e minimi vincolati di funzioni in due variabili

Corso di Analisi Matematica. Successioni e serie numeriche

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

CRITERI DI CONVERGENZA PER LE SERIE. lim a n = 0. (1) s n+1 = s n + a n+1. (2) CRITERI PER LE SERIE A TERMINI NON NEGATIVI

E naturale chiedersi alcune cose sulla media campionaria x n

C. Borelli - C. Invernizzi

APPLICAZIONI LINEARI

Basi di matematica per il corso di micro

ELEMENTI DI ALGEBRA LINEARE E GEOMETRIA Corso di Laurea Ingegneria Edile-Architettura

Equazioni e sistemi non lineari

Crittografia. Primalità e Fattorizzazione. Corso di Laurea Specialistica. in Informatica

Funzioni con dominio in R 2

CONTINUITÀ E DERIVABILITÀ Esercizi risolti

Appunti sul corso di Complementi di Matematica - prof. B.Bacchelli Equazioni differenziali lineari omogenee a coefficienti costanti.

La distribuzione Normale. La distribuzione Normale

Corso di Matematica per CTF Appello 15/12/2010

Matematica e Statistica

Raccolta degli Scritti d Esame di ANALISI MATEMATICA U.D. 1 assegnati nei Corsi di Laurea di Fisica, Fisica Applicata, Matematica

Prova parziale di Geometria e Topologia I - 5 mag 2008 (U1-03, 13:30 16:30) 1/8. Cognome:... Nome:... Matricola:...

MINIMI QUADRATI. REGRESSIONE LINEARE

x u v(p(x, fx) q(u, v)), e poi

Economia Applicata ai sistemi produttivi Lezione II Maria Luisa Venuta 1

min 4x 1 +x 2 +x 3 2x 1 +x 2 +2x 3 = 4 3x 1 +3x 2 +x 3 = 3 x 1 +x 2 3x 3 = 5 Innanzitutto scriviamo il problema in forma standard: x 1 x 2 +3x 3 = 5

RETTE, PIANI, SFERE, CIRCONFERENZE

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni

Laboratorio 2. Calcolo simbolico, successioni, limiti e derivate

Matematica generale CTF

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

11) convenzioni sulla rappresentazione grafica delle soluzioni

STRUTTURE ALGEBRICHE

Una ricetta per il calcolo dell asintoto obliquo. Se f(x) è asintotica a mx+q allora abbiamo f(x) mx q = o(1), da cui (dividendo per x) + o(1), m =

Esercizi su lineare indipendenza e generatori

1. Distribuzioni campionarie

Proposta di soluzione della prova di matematica Liceo scientifico di Ordinamento

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

LE FUNZIONI A DUE VARIABILI

Транскрипт:

Soluzioni Analitiche e Numeriche Applicate all Ingegneria Ambientale Massimiliano Martinelli massimiliano.martinelli@gmail.com Università Politecnica delle Marche, Ancona Facoltà di Ingegneria 4-5 Febbraio 2009

Outline Introduzione 1 Introduzione 2 Metodi diretti Metodi iterativi 3 4

Outline Introduzione 1 Introduzione 2 Metodi diretti Metodi iterativi 3 4

Outline Introduzione 1 Introduzione 2 Metodi diretti Metodi iterativi 3 4

Sistemi non-lineari Il problema Data una funzione F: D R n R n, trovare x R n tale che F(x ) = 0 (1)

Sistemi non-lineari Il problema Data una funzione F: D R n R n, trovare x R n tale che Motivazione F(x ) = 0 (1) Discretizzazione delle equazioni alle derivate parziali non lineari sistemi di equazioni non lineari

Sistemi non-lineari Il problema Data una funzione F: D R n R n, trovare x R n tale che Motivazione F(x ) = 0 (1) Discretizzazione delle equazioni alle derivate parziali non lineari sistemi di equazioni non lineari Il problema seguente: trovare x R n tale che F(x ) = y per y R n può essere scritto nella forma (1) semplicemente ponendo F(x) = F(x) y

Sistemi non-lineari Il problema Data una funzione F: D R n R n, trovare x R n tale che Motivazione F(x ) = 0 (1) Discretizzazione delle equazioni alle derivate parziali non lineari sistemi di equazioni non lineari Il problema seguente: trovare x R n tale che F(x ) = y per y R n può essere scritto nella forma (1) semplicemente ponendo F(x) = F(x) y Il problema della soluzione di un sistema di equazioni non lineari può essere sempre riformulato come un problema di minimizzazione

Sistemi non-lineari Al contrario del caso lineare non c è una teoria generale che assicura l esistenza e l unicità della soluzione

Sistemi non-lineari Al contrario del caso lineare non c è una teoria generale che assicura l esistenza e l unicità della soluzione La risoluzione numerica è sempre basata su un algoritmo iterativo

Sistemi non-lineari Al contrario del caso lineare non c è una teoria generale che assicura l esistenza e l unicità della soluzione La risoluzione numerica è sempre basata su un algoritmo iterativo In generale, dato x (0), la procedura iterativa consiste nel definire una successione x (k) x (k+1) = G(x (k) ) k 0 in cui l operatore G: R n R n verifica G(x ) = x ogni volta che F(x ) = 0

Sistemi non-lineari Al contrario del caso lineare non c è una teoria generale che assicura l esistenza e l unicità della soluzione La risoluzione numerica è sempre basata su un algoritmo iterativo In generale, dato x (0), la procedura iterativa consiste nel definire una successione x (k) x (k+1) = G(x (k) ) k 0 in cui l operatore G: R n R n verifica G(x ) = x ogni volta che F(x ) = 0 Esempio G(x) = x+a(x)f(x) in cui A(x): R n R n n è una matrice non singolare

Sistemi non-lineari Al contrario del caso lineare non c è una teoria generale che assicura l esistenza e l unicità della soluzione La risoluzione numerica è sempre basata su un algoritmo iterativo In generale, dato x (0), la procedura iterativa consiste nel definire una successione x (k) x (k+1) = G(x (k) ) k 0 in cui l operatore G: R n R n verifica G(x ) = x ogni volta che F(x ) = 0 la scelta del punto di partenza x (0) è molto importante per la convergenza Esempio G(x) = x+a(x)f(x) in cui A(x): R n R n n è una matrice non singolare

Definizione di contrazione Una funzione G: D R n R n è una contrazione su un insieme D 0 D se esiste una costante α < 1 tale che G(x) G(y) α x y per tutti gli x, y D 0 dove è un opportuna norma vettoriale.

Definizione di contrazione Una funzione G: D R n R n è una contrazione su un insieme D 0 D se esiste una costante α < 1 tale che G(x) G(y) α x y per tutti gli x, y D 0 dove è un opportuna norma vettoriale. Teorema delle contrazioni (o del punto fisso, o di Banach-Caccioppoli) Supponiamo che G: D R n R n è una contrazione su un insieme chiuso D 0 D e che G(x) D 0 per tutti gli x D 0. Allora esiste un unico punto x D 0 (chiamato punto fisso o punto unito) tale che G(x ) = x

Definizione di contrazione Una funzione G: D R n R n è una contrazione su un insieme D 0 D se esiste una costante α < 1 tale che G(x) G(y) α x y per tutti gli x, y D 0 dove è un opportuna norma vettoriale. Teorema delle contrazioni (o del punto fisso, o di Banach-Caccioppoli) Supponiamo che G: D R n R n è una contrazione su un insieme chiuso D 0 D e che G(x) D 0 per tutti gli x D 0. Allora esiste un unico punto x D 0 (chiamato punto fisso o punto unito) tale che G(x ) = x Il teorema delle contrazioni fornisce la convergenza globale dell algoritmo iterativo x (k+1) = G(x (k) ) ma la definizione di contrattività è molto restrittiva Tipicamente non è possibile dimostrare la convergenza globale degli algoritmi comunemente usati

Teorema di convergenza locale (Ostrowski) Supponiamo che: Allora: G: D R n R n abbia un punto fisso x all interno di D G sia differenziabile con continuità in un intorno di x. Denotiamo con J G la matrice Jacobiana di G e assumiamo che ρ(j G (x )) 1. Esiste un intorno S di x tale che S D Per ogni x (0) S le iterate x (k+1) = G(x (k) ) (k 0) appartengono tutte a D e convergono a x

Teorema di convergenza locale (Ostrowski) Supponiamo che: Allora: G: D R n R n abbia un punto fisso x all interno di D G sia differenziabile con continuità in un intorno di x. Denotiamo con J G la matrice Jacobiana di G e assumiamo che ρ(j G (x )) 1. Esiste un intorno S di x tale che S D Per ogni x (0) S le iterate x (k+1) = G(x (k) ) (k 0) appartengono tutte a D e convergono a x Teorema di Ostrowski nel caso monodimensionale Sia g: R R una funzione derivabile in un intorno di un punto fisso x e tale che g (x ) < 1. Allora esiste un ε > 0 tale che lim k x (k) = x per ogni x (0) tale che x x (0) < ε

Definizione di ordine di convergenza La successione {x (k) } converge ad x con ordine p 1 se: β > 0 tale che k k 0 si ha x (k+1) x β x (k) x p (nel caso in cui p = 1, per avere convergenza si deve anche richiedere che β < 1)

Definizione di ordine di convergenza La successione {x (k) } converge ad x con ordine p 1 se: β > 0 tale che k k 0 si ha x (k+1) x β x (k) x p (nel caso in cui p = 1, per avere convergenza si deve anche richiedere che β < 1) Teorema Sia g: D R R la funzione che definisce l iterazione x (k+1) = g(x (k) ). Se g C p+1 (I) (p 0) per un opportuno intorno I di un punto fisso x g (i) (x ) = 0 per 0 i p g (p+1) (x ) 0 Allora il metodo di punto fisso x (k+1) = g(x (k) ) converge con ordine p+1 e x (k+1) x lim x (x (k) x ) p = g(p+1) (x ) (p+1)! p 0

Esercizio Quante iterazioni bisogna fare per guadagnare quindici cifre significative nell errore (ovvero e(k+r) e (k) = x(k+r) x x (k) x 10 15 )? r 1 ma i=0 e (k+r) β e (k+r 1) p β p+1 e (k+r 2) p2 β r 1 i=0 pi e (k) pr p i è uguale a r se p = 1 e a pr 1 p 1 e (k+r) e (k) se p 1, perciò abbiamo { β r se p = 1 ) (β p 1 1 p r e (k) 1 se p 1 ovvero r ( e (k+r) e ( (k) e (k+r) e (k) log [ log log ) /logβ se p = 1 ) ) ] /log (β p 1 1 e (k) + 1 /logp se p 1

log r [ log log ( e (k+r) e ( (k) e (k+r) e (k) ) /logβ se p = 1 ) ) ] /log (β p 1 1 e (k) + 1 /logp se p 1 siccome vogliamo che e(k+r) e (k) 10 15 otteniamo 15log10 logβ se p = 1 r > [ )] log 1 15log10/log (β p 1 1 e (k) /logp se p 1 supponendo che β = 0.9 e e (k) = 0.5 otteniamo 328 se p = 1 10 se p = 1.5 r > 6 se p = 2 4 se p = 3

Metodo di bisezione (caso unidimensionale f(x) = 0) Si localizza lo zero di f individuando degli intervalli sempre più piccoli in cui questo zero è contenuto Se f(x) è continua nell intervallo [a, b] e se f(a)f(b) 0, allora f(x) si annulla almeno una volta nell intervallo [a, b]

Metodo di bisezione (caso unidimensionale f(x) = 0) Si localizza lo zero di f individuando degli intervalli sempre più piccoli in cui questo zero è contenuto Se f(x) è continua nell intervallo [a, b] e se f(a)f(b) 0, allora f(x) si annulla almeno una volta nell intervallo [a, b] Algoritmo Sia a (0) = a, b (0) = b e x (0) = 1 2 (a(0) + b (0) ). Allora, per k 0 1 Se f(a (k) )f(x (k) ) 0 porre a (k+1) = a (k), b (k+1) = x (k), altrimenti porre a (k+1) = x (k), b (k+1) = b (k) 2 Calcolare x (k+1) = 1 2 (a(k) + b (k) )

Metodo di bisezione (caso unidimensionale f(x) = 0) Si localizza lo zero di f individuando degli intervalli sempre più piccoli in cui questo zero è contenuto Se f(x) è continua nell intervallo [a, b] e se f(a)f(b) 0, allora f(x) si annulla almeno una volta nell intervallo [a, b] Algoritmo Sia a (0) = a, b (0) = b e x (0) = 1 2 (a(0) + b (0) ). Allora, per k 0 1 Se f(a (k) )f(x (k) ) 0 porre a (k+1) = a (k), b (k+1) = x (k), altrimenti porre a (k+1) = x (k), b (k+1) = b (k) 2 Calcolare x (k+1) = 1 2 (a(k) + b (k) ) Questo algoritmo genera una successione di intervalli I k = [a k,b k ] con f(a k )f(b k ) < 0 e tali che I k I k 1 con I k = b k a k = 1 2 b k 1 a k 1 = I k 2

Metodo di bisezione (caso unidimensionale f(x) = 0) Criteri di arresto: b k a k < ε 1 oppure ( ak + b ) k f ε2 2

Metodo di bisezione (caso unidimensionale f(x) = 0) Criteri di arresto: b k a k < ε 1 oppure ( ak + b ) k f ε2 2 È un metodo globalmente convergente (cioé indipendente dal punto di partenza) Non garantisce una diminuzione monotona dell errore È un algoritmo di convergenza sicura ma lenta

Metodo di bisezione (caso unidimensionale f(x) = 0) Criteri di arresto: b k a k < ε 1 oppure ( ak + b ) k f ε2 2 È un metodo globalmente convergente (cioé indipendente dal punto di partenza) Non garantisce una diminuzione monotona dell errore È un algoritmo di convergenza sicura ma lenta Utilizza come unica informazione i segni della funzione in alcuni punti

Metodo di bisezione (caso unidimensionale f(x) = 0) Criteri di arresto: b k a k < ε 1 oppure ( ak + b ) k f ε2 2 È un metodo globalmente convergente (cioé indipendente dal punto di partenza) Non garantisce una diminuzione monotona dell errore È un algoritmo di convergenza sicura ma lenta Utilizza come unica informazione i segni della funzione in alcuni punti Per una convergenza più veloce si devono degli algoritmi che tengano conto di informazioni aggiuntive (valori assunti dalla funzione, derivate,... )

Supponendo che f C 1 (R) e usando lo sviluppo di Taylor nell intorno del punto x abbiamo che f(x ) = 0 = f(x)+(x x)f (ξ) con ξ ]x,x[

Supponendo che f C 1 (R) e usando lo sviluppo di Taylor nell intorno del punto x abbiamo che f(x ) = 0 = f(x)+(x x)f (ξ) con ξ ]x,x[ Questo suggerisce la seguente famiglia di metodi iterativi ovvero f(x (k) )+(x (k+1) x (k) )q k = 0 k 0 x (k+1) = x (k) q 1 k f(x(k) ) k 0 in cui q k è un opportuna approssimazione di f (x (k) )

Supponendo che f C 1 (R) e usando lo sviluppo di Taylor nell intorno del punto x abbiamo che f(x ) = 0 = f(x)+(x x)f (ξ) con ξ ]x,x[ Questo suggerisce la seguente famiglia di metodi iterativi ovvero f(x (k) )+(x (k+1) x (k) )q k = 0 k 0 x (k+1) = x (k) q 1 k f(x(k) ) k 0 in cui q k è un opportuna approssimazione di f (x (k) ) I diversi algoritmi si differenziano per come viene scelto q k

Metodo delle corde: q k = q Si costruisce una successione x (k+1) = x (k) f(x(k) ) q k 0 in cui q = (b,f(b))) f(b) f(a) b a (pendenza della retta passante per i punti (a,f(a)) e

Metodo delle corde: q k = q Si costruisce una successione x (k+1) = x (k) f(x(k) ) q k 0 in cui q = (b,f(b))) f(b) f(a) b a Il metodo converge linearmente se 0 < f (x ) q (pendenza della retta passante per i punti (a,f(a)) e < 2

Metodo delle corde: q k = q Si costruisce una successione x (k+1) = x (k) f(x(k) ) q k 0 in cui q = (b,f(b))) f(b) f(a) b a (pendenza della retta passante per i punti (a,f(a)) e Il metodo converge linearmente se 0 < f (x ) < 2 q Una valutazione della funzione f(x) per ogni iterazione

Metodo delle secanti Si scelgono due punti di partenza x ( 1) e x (0) Si costruisce una successione x (k+1) = x (k) f(x(k) ) q k k 0 in cui q k = f(x(k) ) f(x (k 1) ) x (k) x (k 1) q k = pendenza della retta passante per i punti (x (k 1),f(x (k 1) )) e (x (k),f(x (k) )))

Metodo delle secanti Si scelgono due punti di partenza x ( 1) e x (0) Si costruisce una successione x (k+1) = x (k) f(x(k) ) q k k 0 in cui q k = f(x(k) ) f(x (k 1) ) x (k) x (k 1) q k = pendenza della retta passante per i punti (x (k 1),f(x (k 1) )) e (x (k),f(x (k) ))) Se f C 2 (I) (dove I è un opportuno intorno di x ), f (x ) 0 e x ( 1), x (0) I, allora il metodo converge con ordine p = (1+ 5)/2 1.63

Metodo delle secanti Si scelgono due punti di partenza x ( 1) e x (0) Si costruisce una successione x (k+1) = x (k) f(x(k) ) q k k 0 in cui q k = f(x(k) ) f(x (k 1) ) x (k) x (k 1) q k = pendenza della retta passante per i punti (x (k 1),f(x (k 1) )) e (x (k),f(x (k) ))) Se f C 2 (I) (dove I è un opportuno intorno di x ), f (x ) 0 e x ( 1), x (0) I, allora il metodo converge con ordine p = (1+ 5)/2 1.63 Due valutazione della funzione f(x) per ogni iterazione

Regula falsi Introduzione È una variante del metodo delle secanti Si scelgono due punti di partenza x ( 1) e x (0) tali che f(x ( 1) )f(x (0) ) < 0 Si costruisce una successione x (k+1) = x (k) f(x(k) ) q k k 0 in cui q k = f(x(k) ) f(x (k ) ) x (k) dove k è il massimo indice minore di k tale che x (k ) f(x (k) )f(x (k ) ) < 0

Regula falsi Introduzione È una variante del metodo delle secanti Si scelgono due punti di partenza x ( 1) e x (0) tali che f(x ( 1) )f(x (0) ) < 0 Si costruisce una successione x (k+1) = x (k) f(x(k) ) q k k 0 in cui q k = f(x(k) ) f(x (k ) ) x (k) dove k è il massimo indice minore di k tale che x (k ) f(x (k) )f(x (k ) ) < 0 La convergenza di questo metodo è lineare Al contrario del metodo delle secanti, le iterate sono tutte contenute in [x ( 1),x (0) ] e il metodo è globalmente convergente

Regula falsi Introduzione È una variante del metodo delle secanti Si scelgono due punti di partenza x ( 1) e x (0) tali che f(x ( 1) )f(x (0) ) < 0 Si costruisce una successione x (k+1) = x (k) f(x(k) ) q k k 0 in cui q k = f(x(k) ) f(x (k ) ) x (k) dove k è il massimo indice minore di k tale che x (k ) f(x (k) )f(x (k ) ) < 0 La convergenza di questo metodo è lineare Al contrario del metodo delle secanti, le iterate sono tutte contenute in [x ( 1),x (0) ] e il metodo è globalmente convergente Due valutazione della funzione f(x) per ogni iterazione

Metodo di Newton Si richiede che f sia derivabile

Metodo di Newton Si richiede che f sia derivabile Si costruisce una successione in cui q k = f (x (k) ) x (k+1) = x (k) f(x(k) ) q k k 0 q k è la pendenza della retta tangente alla funzione f(x) nel punto (x (k),f(x (k) ))

Metodo di Newton Si richiede che f sia derivabile Si costruisce una successione in cui q k = f (x (k) ) x (k+1) = x (k) f(x(k) ) q k k 0 q k è la pendenza della retta tangente alla funzione f(x) nel punto (x (k),f(x (k) )) La convergenza di questo metodo è quadratica vicino alla soluzione

Metodo di Newton Si richiede che f sia derivabile Si costruisce una successione in cui q k = f (x (k) ) x (k+1) = x (k) f(x(k) ) q k k 0 q k è la pendenza della retta tangente alla funzione f(x) nel punto (x (k),f(x (k) )) La convergenza di questo metodo è quadratica vicino alla soluzione Per ogni iterazione bisogna fare una valutazione di f(x) e una valutazione della derivata f (x)

Metodo di Newton Metodo di Newton Sia F: R n R n una funzione differenziabile, e sia J F (x) la sua matrice Jacobiana ( Fi ) (J F (x)) ij = (x) x j

Metodo di Newton Metodo di Newton Sia F: R n R n una funzione differenziabile, e sia J F (x) la sua matrice Jacobiana ( Fi ) (J F (x)) ij = (x) x j Il metodo di Newton si scrive allora come segue: Dato x (0) R n, per k = 0,1,..., fino alla convergenza 1 Risolvere il sistema lineare J F (x (k) )δx (k) = F(x (k) ) 2 Calcolare x (k+1) = x (k) + δ x (k)

Metodo di Newton Metodo di Newton Sia F: R n R n una funzione differenziabile, e sia J F (x) la sua matrice Jacobiana ( Fi ) (J F (x)) ij = (x) x j Il metodo di Newton si scrive allora come segue: Dato x (0) R n, per k = 0,1,..., fino alla convergenza 1 Risolvere il sistema lineare J F (x (k) )δx (k) = F(x (k) ) 2 Calcolare x (k+1) = x (k) + δ x (k) Il metodo di Newton è un modo di risolvere un problema non lineare mediante la linearizzazione

Metodo di Newton Metodo di Newton Sia F: R n R n una funzione differenziabile, e sia J F (x) la sua matrice Jacobiana ( Fi ) (J F (x)) ij = (x) x j Il metodo di Newton si scrive allora come segue: Dato x (0) R n, per k = 0,1,..., fino alla convergenza 1 Risolvere il sistema lineare J F (x (k) )δx (k) = F(x (k) ) 2 Calcolare x (k+1) = x (k) + δ x (k) Il metodo di Newton è un modo di risolvere un problema non lineare mediante la linearizzazione E richiesta la risoluzione di un sistema lineare per ogni passo di iterazione

Metodo di Newton Risultato di convergenza Se: F: R n R n una funzione differenziabile in un aperto convesso di R n contenente x J F (x ) è invertibile e tale che J 1 F (x ) C, con C > 0 esistono due costanti positive R e L tali che J F (x) J F (y) L x y x,y B(x ;R) Allora esiste r > 0 tale che, per ogni x (0) B(x ;R), la sequenza x (k+1) = x (k) J 1 F (x(k) )F(x (k) ) converge a x con x (k+1) x CL x (k) x 2

Metodo di Newton Considerazioni Come risolvere J F (x (k) )δx (k) = F(x (k) )?

Metodo di Newton Considerazioni Come risolvere J F (x (k) )δx (k) = F(x (k) )? Calcolare (e memorizzare) la matrice Jacobiana J F (x (k) ) e poi risolvere il sistema lineare Calcolare il prodotto J F (x (k) )y per un generico y R n ed utilizzare un metodo di risoluzione matrix-free (per esempio GMRES)

Metodo di Newton Considerazioni Come risolvere J F (x (k) )δx (k) = F(x (k) )? Calcolare (e memorizzare) la matrice Jacobiana J F (x (k) ) e poi risolvere il sistema lineare Calcolare il prodotto J F (x (k) )y per un generico y R n ed utilizzare un metodo di risoluzione matrix-free (per esempio GMRES) In generale, se n è grande il calcolo di J F (x (k) ) può essere costoso Inoltre, J F (x (k) ) può essere mal condizionata varianti al metodo di Newton

Varianti del Metodo di Newton Valutazione ciclica della matrice Jacobiana Si usa la stessa matrice Jacobiana per un certo numero r di iterazioni Ha senso usare questo metodo solo se si utilizzano approcci basati sulla fattorizzazione (eseguita una volta ogni r iterazioni)

Varianti del Metodo di Newton Valutazione ciclica della matrice Jacobiana Si usa la stessa matrice Jacobiana per un certo numero r di iterazioni Ha senso usare questo metodo solo se si utilizzano approcci basati sulla fattorizzazione (eseguita una volta ogni r iterazioni) Algoritmo Per x (0) R n e k = 0,1,... fino alla convergenza Calcolare (e fattorizzare) A = J F (x (rk) ) Per i = 0,...,r 1 Risolvere Aδx (rk+i) = F(x (rk+i) ) Calcolare x (rk+i+1) = x (rk+i) + δ x (rk+i)

Risoluzione approssimata del sistema lineare Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov,...

Risoluzione approssimata del sistema lineare Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov,... Esempio: Newton-Gauss-Seidel a un passo Il singolo passo dell iterazione di Gauss-Seidel è x (r+1) = (D E) 1 Fx (r) +(D E) 1 b

Risoluzione approssimata del sistema lineare Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov,... Esempio: Newton-Gauss-Seidel a un passo Il singolo passo dell iterazione di Gauss-Seidel è x (r+1) = (D E) 1 Fx (r) +(D E) 1 b Il singolo passo dell iterazione di Newton è x (k+1) = x (k) J 1 F (x(k) )F(x (k) )

Risoluzione approssimata del sistema lineare Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov,... Esempio: Newton-Gauss-Seidel a un passo Il singolo passo dell iterazione di Gauss-Seidel è x (r+1) = (D E) 1 Fx (r) +(D E) 1 b Il singolo passo dell iterazione di Newton è x (k+1) = x (k) J 1 F (x(k) )F(x (k) ) Il termine noto del sistema lineare J F (x (k) )δ x (k) = F(x (k) ) è b = F(x (k) )

Risoluzione approssimata del sistema lineare Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov,... Esempio: Newton-Gauss-Seidel a un passo Il singolo passo dell iterazione di Gauss-Seidel è x (r+1) = (D E) 1 Fx (r) +(D E) 1 b Il singolo passo dell iterazione di Newton è x (k+1) = x (k) J 1 F (x(k) )F(x (k) ) Il termine noto del sistema lineare J F (x (k) )δ x (k) = F(x (k) ) è b = F(x (k) ) Si effettua un passo del metodo di Gauss-Seidel per calcolare δ x (k) δx (k) 1 = JF 1 (x(k) )F(x (k) ) (D k E k ) 1 F k δx (k) 0 (D k E k ) 1 F(x (k) )

Risoluzione approssimata del sistema lineare Si risolve il sistema lineare con un metodo iterativo fissando a priori il numero massimo di iterazioni o il test di convergenza viene effettuato con una soglia abbastanza alta Questi schemi vengono chiamati Newton-Jacobi, Newton-SOR, Newton-Richardson, Newton-Krylov,... Esempio: Newton-Gauss-Seidel a un passo Il singolo passo dell iterazione di Gauss-Seidel è x (r+1) = (D E) 1 Fx (r) +(D E) 1 b Il singolo passo dell iterazione di Newton è x (k+1) = x (k) J 1 F (x(k) )F(x (k) ) Il termine noto del sistema lineare J F (x (k) )δ x (k) = F(x (k) ) è b = F(x (k) ) Si effettua un passo del metodo di Gauss-Seidel per calcolare δ x (k) δx (k) 1 = JF 1 (x(k) )F(x (k) ) (D k E k ) 1 F k δx (k) 0 (D k E k ) 1 F(x (k) ) Ma δx (k) 0 = 0 e quindi x (k+1) = x (k) (D k E k ) 1 F(x (k) )

Metodi Quasi-Newton Generalizzazione del metodo di Newton Algoritmo Sia F: R n R n una funzione differenziabile, e sia x (0) R un punto iniziale. Ad ogni passo k si effettuano le seguenti operazioni calcolare F(x (k) ) scegliere J F (x (k) ) come la matrice Jacobiana esatta J F (x (k) ) o una sua approssimazione risolvere il sistema lineare J F (x (k) )δx (k) = F(x (k) ) porre x (k+1) = x (k) + α k δ x (k) dove α k è un parametro opportuno

Metodo di Broyden Generalizzazione del metodo delle secanti nel caso multidimensionale Dati due vettori x 0 e x 1 si risolve Q k δ x (k) = Q k ( x (k+1) x (k)) = F(x (k) ) k 1 Per ogni passo k si cerca una matrice Q k R n n tale che Q k ( x (k) x (k 1) ) = F(x (k) ) F(x (k 1) ) = b (k 1) k 1 ma questo è un sistema indeterminato (n equazioni per n 2 variabili) Per determinare univocamente Q k si richiede che valga Q k ( x (k) x (k j) ) = F(x (k) ) F(x (k j) ) j = 1,...,n (2) con x (k j),...,x (k) linearmente indipendenti In pratica x (k j),...,x (k) tendono a diventare linearmente dipendenti e il metodo precedente non è stabile

Metodo di Broyden Si cerca allora Q k in modo che venga minimizzata la differenza tra le approssimazioni di F(x): F(x (k) )+Q k (x x (k) ) e F(x (k 1) )+Q k 1 (x x (k 1) )

Metodo di Broyden Si cerca allora Q k in modo che venga minimizzata la differenza tra le approssimazioni di F(x): F(x (k) )+Q k (x x (k) ) e F(x (k 1) )+Q k 1 (x x (k 1) ) d k = F(x (k) )+Q k (x x (k) ) F(x (k 1) ) Q k 1 (x x (k 1) ) = ( F(x (k) ) F(x (k 1) ) ) + Q k (x x (k) ) Q k 1 (x x (k 1) ) ( = Q k x (k) x (k 1)) + Q k (x x (k) ) Q k 1 (x x (k 1) ) = (Q k Q k 1 )(x x (k 1) )

Metodo di Broyden Si cerca allora Q k in modo che venga minimizzata la differenza tra le approssimazioni di F(x): F(x (k) )+Q k (x x (k) ) e F(x (k 1) )+Q k 1 (x x (k 1) ) d k = F(x (k) )+Q k (x x (k) ) F(x (k 1) ) Q k 1 (x x (k 1) ) = ( F(x (k) ) F(x (k 1) ) ) + Q k (x x (k) ) Q k 1 (x x (k 1) ) ( = Q k x (k) x (k 1)) + Q k (x x (k) ) Q k 1 (x x (k 1) ) = (Q k Q k 1 )(x x (k 1) ) Scriviamo x x (k 1) = α δx (k 1) + s dove δx (k 1),s = 0

Metodo di Broyden Si cerca allora Q k in modo che venga minimizzata la differenza tra le approssimazioni di F(x): F(x (k) )+Q k (x x (k) ) e F(x (k 1) )+Q k 1 (x x (k 1) ) d k = F(x (k) )+Q k (x x (k) ) F(x (k 1) ) Q k 1 (x x (k 1) ) = ( F(x (k) ) F(x (k 1) ) ) + Q k (x x (k) ) Q k 1 (x x (k 1) ) ( = Q k x (k) x (k 1)) + Q k (x x (k) ) Q k 1 (x x (k 1) ) = (Q k Q k 1 )(x x (k 1) ) Scriviamo x x (k 1) = α δx (k 1) + s dove δx (k 1),s = 0 d k = (Q k Q k 1 ) ( α δ x (k 1) + s ) = α ( b (k 1) Q k 1 δx (k 1)) +(Q k Q k 1 )s

Metodo di Broyden Quindi la minimizzazione deve essere effettuata solo sul termine (Q k Q k 1 )s (gli altri non dipendono da Q k )

Metodo di Broyden Quindi la minimizzazione deve essere effettuata solo sul termine (Q k Q k 1 )s (gli altri non dipendono da Q k ) Il problema è diventato: trovare la matrice Q k tale che (Q k Q k 1 )s 2 è minima per ogni s ortogonale a δx (k 1) e con la condizione Eq. (2)

Metodo di Broyden Quindi la minimizzazione deve essere effettuata solo sul termine (Q k Q k 1 )s (gli altri non dipendono da Q k ) Il problema è diventato: trovare la matrice Q k tale che (Q k Q k 1 )s 2 è minima per ogni s ortogonale a δx (k 1) e con la condizione Eq. (2) Si può dimostrare che tale matrice esiste e può essere calcolata per ricorrenza come Q k = Q k 1 + (b(k 1) Q k 1 δx (k 1) )δx (k 1)T δx (k 1) 2 2

Metodo di Broyden Quindi la minimizzazione deve essere effettuata solo sul termine (Q k Q k 1 )s (gli altri non dipendono da Q k ) Il problema è diventato: trovare la matrice Q k tale che (Q k Q k 1 )s 2 è minima per ogni s ortogonale a δx (k 1) e con la condizione Eq. (2) Si può dimostrare che tale matrice esiste e può essere calcolata per ricorrenza come Q k = Q k 1 + (b(k 1) Q k 1 δx (k 1) )δx (k 1)T δx (k 1) 2 2 L inizializzazione è effettuata utilizzando la matrice Jacobiana esatta Q 0 = J F (x (0) )

Metodo di Broyden Quindi la minimizzazione deve essere effettuata solo sul termine (Q k Q k 1 )s (gli altri non dipendono da Q k ) Il problema è diventato: trovare la matrice Q k tale che (Q k Q k 1 )s 2 è minima per ogni s ortogonale a δx (k 1) e con la condizione Eq. (2) Si può dimostrare che tale matrice esiste e può essere calcolata per ricorrenza come Q k = Q k 1 + (b(k 1) Q k 1 δx (k 1) )δx (k 1)T δx (k 1) 2 2 L inizializzazione è effettuata utilizzando la matrice Jacobiana esatta Q 0 = J F (x (0) ) Se x (0) è abbastanza vicino a x, il metodo di Broyden converge a x in maniera superlineare, ovvero x (k) x c k x (k 1) x dove lim k c k = 0

I metodi Quasi-Newton x (k+1) = x (k) α k J F (x (k) ) 1 F(x (k) ) possono essere visti come metodi di punto fisso con funzione di iterazione G N (x) = x α k J F (x) 1 F(x)

I metodi Quasi-Newton x (k+1) = x (k) α k J F (x (k) ) 1 F(x (k) ) possono essere visti come metodi di punto fisso con funzione di iterazione G N (x) = x α k J F (x) 1 F(x) Se denotiamo r (k) = F(x (k) ) il residuo al passo k, possiamo anche scrivere il metodo Quasi-Newton come x (k+1) = x (k) α k J F (x (k) ) 1 r (k) ovvero come un metodo di Richardson precondizionato, dove la matrice di precondizionamento è P k = J F (x (k) )

Outline Introduzione 1 Introduzione 2 Metodi diretti Metodi iterativi 3 4

Domanda Dato x (k), come calcolare la matrice Jacobiana J F (x (k) ) o una sua approssimazione J F (x (k) )?

Domanda Dato x (k), come calcolare la matrice Jacobiana J F (x (k) ) o una sua approssimazione J F (x (k) )? Metodi per calcolare numericamente le derivate Differenziazione analitica seguita da discretizzazione Differenze divise Metodo della variabile complessa Differenziazione automatica

Domanda Dato x (k), come calcolare la matrice Jacobiana J F (x (k) ) o una sua approssimazione J F (x (k) )? Metodi per calcolare numericamente le derivate Nota: Differenziazione analitica seguita da discretizzazione Differenze divise Metodo della variabile complessa Differenziazione automatica Se n non è troppo grande ed abbiamo un metodo (programma) per calcolare il prodotto Ax dove A è una matrice n n (sconosciuta o non disponibile) e x R n, possiamo costruire A colonna per colonna calcolando Ae i (i = 1,...,n) dove e i è l i-esimo vettore della base canonica di R n

Domanda Dato x (k), come calcolare la matrice Jacobiana J F (x (k) ) o una sua approssimazione J F (x (k) )? Metodi per calcolare numericamente le derivate Nota: Differenziazione analitica seguita da discretizzazione Differenze divise Metodo della variabile complessa Differenziazione automatica Se n non è troppo grande ed abbiamo un metodo (programma) per calcolare il prodotto Ax dove A è una matrice n n (sconosciuta o non disponibile) e x R n, possiamo costruire A colonna per colonna calcolando Ae i (i = 1,...,n) dove e i è l i-esimo vettore della base canonica di R n Se A è sparsa, esistono delle tecniche di compressione che permettono di calcolare la matrice effettuando un numero di moltiplicazioni matrice-per-vettore < n

So do you need derivatives? Given a program P computing a function Φ Φ: R m R n x y = Φ(x) we want to build a program that computes the derivatives of Φ. Specifically, we want the derivatives of the dependent, i.e. some variables in y R n, with respect to the independent, i.e. some variables in x R m.

Which derivative do you want? Many choices are possible: ( ) dφ Jacobian matrices: J = R n,m dx Directional ( ) or tangential derivatives (differentials): dφ δy = δx dx Gradients High-order derivative tensors (Hessian,... )...

Differentiate-then-discretize approach Given the equation y = Φ(x) we can write a new set of equations, whose solutions are the derivative of the initial result = Discretization of the new equations Write a new program P that solves these new equations for the desired derivatives

Differentiate-then-discretize approach Given the equation y = Φ(x) we can write a new set of equations, whose solutions are the derivative of the initial result = Discretization of the new equations Write a new program P that solves these new equations for the desired derivatives Pros: mathematically elegant Cons: Hard to develop a new program Possible inconsistencies between discretization grids Error prone Sometimes the equation y = Φ(x) is not available

Divided differences ( ) dφ δx = dx Φ(x+εδx) Φ(x) ε + O(ε) Φ(x+εδx) Φ(x εδx) 2ε + O(ε 2 )

Divided differences ( ) dφ δx = dx Φ(x+εδx) Φ(x) ε + O(ε) Φ(x+εδx) Φ(x εδx) 2ε + O(ε 2 ) Pros: Very easy to implement Requires only the results of the original program P Black-box approach (the implementation of P is not needed) Cons: Only directional derivatives Expensive (extra evaluations of the function for each direction) Problems on the choice of the stepsize ε (tradeoff between approximation and roundoff errors) Approximate derivatives

Complex variables method Taylor expansion of Φ using a complex increment iεδx ( ) dφ x Im [Φ(x+iεδx)] δx = + O(ε 2 ) dx ε

Complex variables method Taylor expansion of Φ using a complex increment iεδx ( ) dφ x Im [Φ(x+iεδx)] δx = + O(ε 2 ) dx ε Pros: Very small ε can be used low errors Cons: Only directional derivatives Work from the user to modify the program (from real-values functions to complex-variables functions)

Automatic Differentiation (AD) Augment the program P so that it computes the analytic derivatives P: a = b*t(10) + c The differentiated program must somehow compute P : da = db*t(10) + b*dt(10) + dc How we can achieve this? AD by overloading AD by program (source) transformation

Automatic Differentiation (AD) Augment the program P so that it computes the analytic derivatives P: a = b*t(10) + c The differentiated program must somehow compute P : da = db*t(10) + b*dt(10) + dc How we can achieve this? AD by overloading AD by program (source) transformation AD gives us exact differentiation!

AD by overloading Tools: ADOL-C, ADC, ADF, FADBAD++,... Few manipulations required: new type definitions: DOUBLE ADOUBLE ; link with provided overloaded +,-,*,... Easy extension to higher-order, Taylor series, intervals,... but not so easy for gradients.

AD by Program transformation Tools: TAPENADE, ADIFOR, ADIC, OPENAD,... Complex transformation required: Build a new program that computes the analytic derivatives explicitly. Requires a compiler-like, sophisticated tool 1 PARSING, 2 ANALYSIS, 3 DIFFERENTIATION, 4 REGENERATION

Overloading vs Transformation Overloading is versatile: easy to use; simple to extend to high-order derivatives but...problems with the adjoint formulation Transformed programs are efficient: Global program analyses are possible and most welcome! The compiler can optimize the generated program. but...some work by the user is needed

How does AD work? Program P is a sequence of instructions I 1,I 2,...,I p Each instruction I k is a function φ k : R q k 1 R q k The program P : {I 1,I 2,...,I p } is then Apply the chain rule x y = Φ(x) = φ p φ p 1 φ 1 (x) dφ dx = φ p (w p 1)φ p 1 (w p 2) φ 1 (w 0) where w 0 = x and w k = φ k (w k 1 )

AD: Tangent and Reverse mode w 0 = x w k = φ k (w k 1 ) with k = 1,...,p 1 dφ dx = φ p (w p 1)φ p 1 (w p 2) φ 1 (w 0) The full Jacobian dφ dx is expensive (matrix-by-matrix multiplications) Use the less expensive matrix-by-vector multiplication ( ) dφ Tangent mode: x,ẋ ẋ = φ dx p(w p 1 )φ p 1 (w p 2) φ 1 (w 0)ẋ ( ) dφ T Reverse mode: x, Φ Φ = φ 1 T dx (w 0) φ p 1 T (w p 2)φ p T (w p 1 ) Φ Theoretical cost is a small multiple of the cost of P [Griewank, 2000]

Example: Tangent differentiation by Program transformation SUBROUTINE FOO (a, x, y ) REAL a, x, y y = a*y + a END x = x*y

Example: Tangent differentiation by Program transformation SUBROUTINE FOO_D(a,ad,x,xd,y,yd) REAL a, x, y REAL ad, xd, yd END yd = ad*y + a*yd + ad y = a*y + a xd = x*yd x = x*y

Example: Tangent differentiation by Program transformation SUBROUTINE FOO_D(a,ad,x,xd,y,yd) REAL a, x, y REAL ad, xd, yd END yd = ad*y + a*yd + ad y = a*y + a xd = x*yd x = x*y Tangent AD keeps the structure of the original program FOO Differentiated instructions inserted into FOO s original control flow.

Example: Reverse differentiation SUBROUTINE FOO (a, x, y ) REAL a, x, y y = a*y + a x = x*y END

Example: Reverse differentiation SUBROUTINE FOO_B(a,ab,x,xb,y,yb) REAL a, x, y, ab, xb, yb CALL PUSHREAL4(y) y = a*y + a CALL PUSHREAL4(y) x = x*y CALL POPREAL4(y) yb = x*xb CALL POPREAL4(y) ab = (y+1.0)*yb yb = a*yb yb = x*xb END

Reverse mode Instructions differentiated in the reverse order Forward sweep (original code) then backward sweep (differentiation) Different approaches to restore the previous values

Reverse mode Instructions differentiated in the reverse order Forward sweep (original code) then backward sweep (differentiation) Different approaches to restore the previous values Store-All strategy (CPU use: low, memory use: high) Recompute-All strategy (CPU use: high, memory use: low)

Reverse mode Instructions differentiated in the reverse order Forward sweep (original code) then backward sweep (differentiation) Different approaches to restore the previous values Store-All strategy (CPU use: low, memory use: high) Recompute-All strategy (CPU use: high, memory use: low) Often a trade-off between SA and RA is needed (Checkpointing)

Why the Reverse mode is useful? It gives us the gradient of a functional at a cost that is independent from the number of variables [( ) inputs ] m n outputs Gradient Tangent The Jacobian costs α T m P with the Tangent mode (1 < α T 4) [Griewank, 2000] good if n > m The Jacobian costs α R n P with the Reverse mode (1 < α R 5) [Griewank, 2000] good if m n (for functionals n = 1)