Equazioni e sistemi non lineari

Documenti analoghi
Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Complementi di Matematica A.A Laboratorio 10

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3-24/3/2014

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 9 - Equazioni non lineari

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Metodi di Newton e Punto fisso

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 7

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4-23/3/2015

Laboratorio di Calcolo Numerico Laboratorio 4: Functions. Soluzione di Equazioni non lineari

Soluzione di Equazioni non lineari

Claudio Estatico Equazioni non-lineari

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

Laboratorio di Calcolo Numerico

Programmare con MATLAB c Parte 5 Cicli: for e while

Metodi per il calcolo degli zeri di funzioni non lineari

Autovalori ed autovettori di una matrice

Equazioni non lineari. Gabriella Puppo

Autovalori ed autovettori di una matrice

Metodi Numerici con elementi di Programmazione (A.A )

Esercizio 1. Esercizio 2

MATLAB:Metodi Numerici per zeri di funzioni.

Daniela Lera A.A

Laboratorio di Matematica Computazionale A.A Lab. 3

Equazioni non lineari: esempi. Risoluzione f (x) = 0 con x [a,b] R, f C([a,b]).

Metodi Numerici con elementi di Programmazione (A.A )

Lezione 5, 5/11/2014

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

Autovalori ed autovettori di una matrice

Corso di Calcolo Numerico

Metodi iterativi per equazioni nonlineari.

Corso di Analisi Numerica

Calcolo Numerico - Prova Matlab 19 luglio 2013

Laboratorio di Matematica Computazionale A.A Lab. 4

Metodi numerici per zeri di funzioni

Laboratorio di Matematica Computazionale A.A Lab. 4

Autovalori ed autovettori di una matrice

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3

Corso di Calcolo Numerico

Equazioni differenziali con valori al bordo

Metodi Numerici per l Approssimazione degli Zeri di una Funzione

Laboratorio di Calcolo Numerico A.A Laboratorio 4 Risoluzione di sistemi non lineari Metodo di punto fisso

Esercizi su polinomio di Taylor, metodi numerici per il calcolo di zeri di funzione e iterazioni di punto fisso

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

Annamaria Mazzia. Corso di Metodi Numerici per l Ingegneria dispense e altro materiale su

Corso di Laurea Specialistica in Ingegneria Meccanica e Ingegneria Energetica Progetto numerico al calcolatore

Laboratorio 2. Calcolo simbolico, limiti e derivate. Metodo di Newton.

La determinazione delle radici in forma chiusa non è sempre possibile (già per polinomi di ordine 5 non è generalmente possibile).

Metodi di Iterazione Funzionale

CALCOLO NUMERICO Laurea di base in Ingegneria Elettronica, delle Comunicazioni

Ricerca di zeri di equazioni non lineari

Calcolo Numerico Laurea di base in Ingegneria Elettronica e delle Telecomunicazioni

Integrazione numerica

Analisi cinematica di meccanismi articolati

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione

Algoritmi numerici. Zeri di una funzione. Integrale di una funzione. Soluzione di una equazione differenziale

Capitolo 2. Equazioni non lineari. 2.1 Metodo di bisezione. 2.2 Ordine dei metodi

Calcolo del fattore di convergenza

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

Metodi per la risoluzione di equazioni non lineari

f(x) = x e x, prendere come intervallo iniziale [0, 1] e fissare come precisione ε = 10 8.

Integrazione numerica

LEZIONE 5. Esercizio 5.1. Calcolare il limite per x ± delle seguenti funzioni. lim. lim. lim. lim. lim. e x ) x. per x. lim

Polinomi. I polinomi della forma

data una funzione f, non lineare calcolare le soluzioni dell equazione f(x) = 0 in un intervallo [a,b]

Laboratorio 3-30 settembre 2005

Calcolo Numerico con elementi di programmazione

Metodi Numerici con elementi di Programmazione (A.A )

METODI DI PUNTO FISSO

1 Esercizi relativi al Capitolo 1

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

Esercitazione 4. F (x) = x + log x. Prima parte. La definizione che segue è una realizzazione del metodo ad un punto definito dalla funzione h.

Equazioni non lineari

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Integrazione numerica

Ottimizzazione numerica

Integrazione numerica

Elementi di Calcolo Scientifico per l Ingegneria A.A

Soluzioni: Laboratorio Calcolo Numerico labor3.pdf

Relazione di laboratorio di Analisi Numerica: metodi di ricerca zeri

Esercizio 1. Errori di cancellazione

Metodi di Ottimizzazione

Calcolo Numerico (CdS in Matematica) A.A. 2012/13

Integrazione numerica

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

Laboratorio 10 Metodi Bisezione e Newton

Interpolazione e approssimazione di funzioni

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Transcript:

Equazioni e sistemi non lineari Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it

Indice 1 Ricerca degli zeri di una funzione Problema e definizioni Metodo di Newton-Raphson Test d arresto Algoritmo ed esercizi Function di Matlab 2 Il metodo di Newton-Raphson per sistemi

Zeri di funzione Problema Data f : [a, b] R si cerca x [a, b] tale che f (x) = 0. Indichiamo con α uno zero di f. Teorema Supponiamo che la funzione f : [a, b] R sia continua in [a, b] e che f (a) f (b) < 0; allora esiste α (a, b) tale che f (α) = 0. page 2

Ordine di convergenza di un metodo iterativo Definizione Si dice che un metodo iterativo è convergente di ordine p > 1 se vale α x k+1 lim k α x k p = C 0. Si dice che un metodo iterativo converge linearmente se esiste un numero positivo 0 < C < 1 tale che α x k+1 lim = C. k α x k Si dice che un metodo iterativo converge superlinearmente se vale α x k+1 lim = 0. k α x k page 3

Metodo di Newton-Raphson Supponiamo di avere calcolato il valore x k. La migliore approssimazione lineare della funzione f nel punto x k è data dalla retta tangente t k (x) = f (x k ) + f (x k )(x x k ). Ponendo t k (x) = 0, si ricava il nuovo punto della successione x k+1. Iterata di Newton-Raphson Dato x 0, x k+1 = x k f (x k) f (x k ) page 4

Teorema di convergenza locale quadratica Teorema Sia f : [a, b] R una funzione di classe C 2. Sia α tale che f (α) = 0, f (α) 0. Allora esiste η > 0 tale che se il punto iniziale x 0 soddisfa α x 0 η allora si ha: 1. Per ogni k N, α x k η; 2. lim x k = α; k x k+1 α 3. lim k (x k α) 2 = f (α) 2f (α). Nota Bene: se f (α) = 0, il metodo converge ma la convergenza diventa di tipo lineare. page 5

Test d arresto Si deve trovare un modo per imporre che l errore sia inferiore ad una tolleranza prestabilita, ossia tale che α x k α toll, oppure α x k toll se α = 0. Due possibilità: f (x k ) toll non efficiente se f (α) 0 oppure f (α) >> 1. x k+1 x k toll efficiente se il metodo converge superlinearmente. page 6

Algoritmo di Newton-Raphson 1. Dati f, f, x 0, toll e nmax; 2. valuta y = f (x 0 ) e la derivata dy = f (x 0 ); 3. inizializza δ = 1 e iter = 0; 4. Se δ toll il test d arresto è verificato, x 0 è la soluzione cercata; stop. 5. Se iter > nmax, è stato raggiunto il numero massimo di iterazioni senza arrivare a convergenza; stop. 6. Altrimenti: 6.1 calcola δ = y/dy; 6.2 aggiorna x 0 = x 0 + δ. 6.3 valuta y = f (x 0 ) e la derivata dy = f (x 0 ); 6.4 incrementa l indice di iterazione iter = iter + 1. 7. Ripeti da 4. page 7

Function newton La function newton calcola uno zero di una funzione f. [zero,fz,iter,xk]=newton(f,df,x0,toll,nmax) Input f function che contiene l espressione della funzione f ; df function che contiene l espressione della derivata f ; x0 punto iniziale per l iterazione; toll tolleranza desiderata; Nmax numero massimo di ietrazioni da eseguire; Output zero soluzione cercata; fz valore di f nello zero calcolato; iter numero di iterazioni utilizzate; xk vettore delle approssimazioni successive. NB Se non interessa conoscere i valori di xk il comando [zero,fz,iter]=newton(f,df,x0,toll,nmax) fornisce soltanto le informazioni desiderate. page 8

Esercizi Esercizio 1 Testare la function newton per determinare gli zeri delle seguenti funzioni: f (x) = x 2 2, x [0, 2] f (x) = 3x 1, x [0, 1] f (x) = arctan(x), x [ 2, 2] f (x) = sin(x) cos(2x), x [ π, π]. Per ciascuna funzione fare il grafico, scegliere un valore del dato iniziale nell intervallo assegnato, calcolare la soluzione con la function newton, marcare lo zero trovato sul grafico della funzione. page 9

Esercizio 2 La funzione f (x) = e x 2x 2 ha tre zeri, α 1 < 0, α 2 e α 3 positivi. Fare il grafico della funzione. Per i = 1, 2, 3 trovare un valore di x 0 in modo che il metodo di Newton converga a α i. Marcare gli zeri trovati sul grafico della funzione. page 10

Verifica della convergenza Avendo a disposizione il vettore xk si possono vedere le seguenti informazioni: Comportamento della successione Il comando plot(xk) riporta in un grafico i valori di x k in funzione del valore k. Convergenza Per controllare la convergenza del metodo si può calcolare la differenza diff fra due iterate successive e plottarle su un grafico in scala semilogaritmica in funzione di k. page 11

Esercizio 3 La funzione f (x) = sin(x) cos(2x) nell intervallo [ π, π] si annulla in tre punti π/2, π/6 e 5π/6. Fare il grafico della funzione insieme all asse delle ascisse. In corrispondenza dei seguenti dati iniziali x0 = 1, x0 = 1, x0 = 2 eseguire la seguente procedura: calcolare lo zero della funzione e riportarlo sul grafico della funzione; riportare la successione delle approssimanti in una figura con il comando plot(xk); a partire dal vettore xk, calcolare la differenza fra due iterate successive nel vettore diff e plottarla in scala semilogaritmica semilogy(diff). page 12

fzero Calcola gli zeri di una funzione reale di variabile reale con la seguente sintassi [x,fval]=fzero(fun,x0) [x,fval]=fzero(@fun,x0) se fun è una function Input fun function che contiene la funzione f x0 dato iniziale Output x approssimazione dello zero calcolato fval valore di f in x. Si possono ottenere delle informazioni complete sulle iterazioni usando il comando [x,fval]=fzero(@fun,x0,optimset( disp, iter )) page 13

fzero Algoritmo di Dekker-Brent Cerca un intervallo [a, b] in modo che f (a)f (b) < 0. Usa un passo delle secanti per trovare c. Ripete i passi seguenti finché b a < ε b o f (b) = 0. Ordina a, b e c in modo tale che: f (a)f (b) < 0, f (b) < f (a), c è il valore precedente di b. Se c a, usa un passo IQI (Inverse Quadratic Interpolation). Se c = a, usa il passo delle secanti. Se IQI o le secanti forniscono un valore interno a [a, b], lo accetta. Altrimenti, usa il metodo delle bisezioni. page 14

Utilizzo di fzero [x,fval]=fzero(fun,x0) nello zero x. [x,fval,exitflag]=fzero(fun,x0) exitflag che indica l esito di fzero fornisce il valore della funzione fun fornisce un valore Valore Esito 1 convergenza verso la soluzione x -1 l algoritmo è interrotto da un output function -3 sono stati trovati valori NaN o Inf -4 sono stati trovati valori complessi durante la ricerca di un intervallo con cambio di segno -5 fzero potrebbe essere arrivata a convergenza in un punto singolare -6 fzero non trova un intervallo con cambio di segno. page 15

Esercizio 4 Usare la function fzero per risolvere gli esercizi 1, 2 e 3, scegliendo gli stessi valori iniziali per x0 e confrontare i risultati ottenuti con il metodo di Newton. page 16

Il metodo di Newton-Raphson per sistemi Consideriamo una funzione a valori vettoriali F : A R n con A R n : f 1 (x 1, x 2,..., x n ) f F (x) = 2 (x 1, x 2,..., x n )......... f n (x 1, x 2,..., x n ) Problema Trovare x = (x 1, x 2,..., x n ) A tale che F (x) = 0. page 17

Linearizzazione Per semplicità consideriamo n = 2 quindi abbiamo il sistema: { f (x, y) = 0 g(x, y) = 0 Supponiamo di essere arrivati a calcolare un approssimazione (x k, y k ) e consideriamo l approssimazione di f e g con i piani tangenti nel punto (x k, y k ): { f (x, y) f (xk, y k ) + f x (x k, y k )(x x k ) + f y (x k, y k )(y y k ) g(x, y) g(x k, y k ) + g x (x k, y k )(x x k ) + g y (x k, y k )(y y k ) page 18

Iterazione del metodo di Newton-Raphson La nuova approssimazione si ottiene come x k+1 = x k + δ x y k+1 = y k + δ y dove il vettore δ = (δ x, δ y ) T è la soluzione del sistema J(x k, y k )δ = F (x k, y k ) e ( fx (x J(x k, y k ) = k, y k ) f y (x k, y k ) g x (x k, y k ) g y (x k, y k ) ( ) f (xk, y F (x k, y k ) = k ) g(x k, y k ) ) page 19

Algoritmo di Newton-Raphson Newton sist.m 1. Dato x 0. 2. Se il test d arresto è verificato, x 0 è la soluzione cercata; stop. 3. Altrimenti: 3.1 valuta Y = F(x 0 ) e lo Jacobiano A = J(x 0 ); 3.2 risolvi Aδ = Y ; 3.3 aggiorna x 0 = x 0 + δ. 4. Ripeti da 2. Nota bene F è il nome di una function che fornisce il valore di F in un vettore colonna di dimensione n. J è il nome di una function che fornisce il valore dello Jacobiano come array nxn. page 20

Function newtonsys Modificare la function newton in modo da risolvere un sistema non lineare mediante il seguente comando: [z,fz,iter]=newtonsys(f,fd,x0,tol,nit) Input f df x0 tol Nit Output zero fz iter function handle per la funzione f (vettore colonna); function handle per lo Jacobiano J (matrice); punto iniziale per l iterazione (vettore colonna); tolleranza desiderata; numero massimo di ietrazioni da eseguire; soluzione cercata; valore di f nello zero calcolato; numero di iterazioni utilizzate; page 21

fsolve Risolve i sistemi di equazioni non lineari in più variabili. Appartiene al toolbox optim. Input fun [x,fval]=fsolve(@fun,x0) nome della function che contiene la funzione f fun accetta in input un vettore x e dà in output il vettore dei valori di f valutata in x. dato iniziale x0 Output x approssimazione dello zero calcolato fval valore di fun in x. page 22

Esercizi Esercizio 5 Applicare il metodo di Newton-Raphson per trovare gli zeri delle seguenti funzioni: F 1 (x, y) = F 2 (x, y) = ( x + y 3 x 2 + y 2 9 ( x 2 + y 2 2 e x 1 + y 3 2 ) ) radici: (0, 3) (3, 0) x 0 = (1, 5), x 0 = (2, 3) radice: (1, 1) x 0 = (1.5, 2), x 0 = (2, 3) Trovare la soluzione usando il metodo di Newton (Newtonsys) e la function di Matlab fsolve. page 23