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

Documenti analoghi
Complementi di Matematica e Calcolo Numerico A.A Laboratorio 7

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

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 3

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

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Laboratorio di Matematica Computazionale A.A Lab. 3

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

MATLAB:Metodi Numerici per zeri di funzioni.

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 - Metodi numerici per equazioni differenziali ordinarie

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

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 - Metodi numerici per equazioni differenziali ordinarie

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

Calcolo Numerico - Prova Matlab 19 luglio 2013

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 11 Metodi numerici per equazioni differenziali ordinarie

Soluzione di Equazioni non lineari

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

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

Esercizio 1. Errori di cancellazione

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

Equazioni non lineari. Gabriella Puppo

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

Laboratorio di Matematica Computazionale A.A Lab. 4

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 10

Laboratorio di Matematica Computazionale A.A Lab. 4

Claudio Estatico Equazioni non-lineari

Daniela Lera A.A

Calcolo Numerico Laurea di base in Ingegneria Elettronica e delle Telecomunicazioni

Metodi per il calcolo degli zeri di funzioni non lineari

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

Corso di laurea in Matematica Laboratorio di Programmazione e Calcolo Prof. A. Murli. Esercizi di riepilogo - LABORATORIO

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

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 12 Metodi numerici per equazioni differenziali ordinarie

METODI DI PUNTO FISSO

Esercizio 1. Esercizio 2

Ricerca di zeri di equazioni non lineari

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 9 Metodi numerici per equazioni differenziali ordinarie

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

Laboratorio di Calcolo Numerico

Esercizi proposti di Analisi Numerica

Corso di Calcolo Numerico

Calcolo Numerico A.A Laboratorio 8 Integrazione numerica

Laboratorio di Matematica Computazionale A.A Lab. 3

Relazione di laboratorio di Analisi Numerica: metodi di ricerca zeri

Metodi di Iterazione Funzionale

Lezione 5, 5/11/2014

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

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

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 6 Metodi iterativi per sistemi lineari

Metodi iterativi per equazioni nonlineari.

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

Metodi Numerici per l Approssimazione degli Zeri di una Funzione

ISTRUZIONI PER LA CONSEGNA DEI FILE MATLAB

RISOLUZIONE DI EQUAZIONI NON LINEARI PROBLEMA:

Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni

Corso di Analisi Numerica

CALCOLO NUMERICO Laurea di base in Ingegneria Elettronica, delle Comunicazioni

Problemi di Calcolo Numerico

Metodi Numerici con elementi di Programmazione (A.A )

Alcuni esercizi in preparazione all appello scritto di Calcolo Numerico

Analisi Numerica. Francesca Mazzia. a.a. 2006/2007. Integrazione. Dipartimento di Matematica. Università di Bari

Corso di Calcolo Numerico

Esercizi Elaborato (versione )

Matematica Lezione 18

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

Calcolo Numerico Laurea di base in Ingegneria Elettronica, Ingegneria delle Comunicazioni

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 19 settembre 2011

Esercizi di autovalutazione - Matlab Metodi Numerici con Elementi di Programmazione A.A

Metodi Numerici con elementi di Programmazione (A.A )

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

Calcolo del fattore di convergenza

Quale delle seguenti rappresentazioni del numero reale è in virgola mobile normalizzata?

Raccolta di Esercizi d esame ( di Calcolo Numerico) Prof. Laura Pezza. Equazioni non lineari

Complementi di Matematica e Calcolo Numerico A.A

restituisce un approssimazione di uno zero di f in [a, b] dopo aver eseguito k iterazioni. Determinare k. Sia: 1 f(x) =

Supponiamo di voler risolvere l equazione lineare scalare:

g(x) = arctan(1.5x 0.1)

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: esempi. Risoluzione f (x) = 0 con x [a,b] R, f C([a,b]).

Esercizio 1. Per quali valori di h e k le seguenti funzione sono derivabili? x 3 sin 1 x 0. 0 x = 0. x cos 1 x > 0

RISOLUZIONE APPROSSIMATA DI UN EQUAZIONE

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

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 31 agosto 2011 Testo e soluzioni

A.A Prof. R. Morandi

Esercizi di autovalutazione - Matlab Metodi Numerici con Elementi di Programmazione A.A

Corso di Geometria e Algebra Lineare - Sezione di Metodi Numerici

Transcript:

Complementi di Matematica e Calcolo Numerico A.A. 2017-2018 Laboratorio 9 - Equazioni non lineari Data f : R R determinare α R tale che f(α) = 0 Le soluzioni di questo problema vengono dette radici o zeri di f Teorema degli zeri Sia f : R R, f C 0 ([a,b]), f(a)f(b) < 0, allora esiste α [a,b] tale che f(α) = 0. Nelle ipotesi del Teorema degli zeri, per determinare una radice α di f possiamo utilizzare la funzione predefinita di Matlab fzero. Sintassi: alfa = fzero(f,[a,b]) input: output: f è la funzione definita con @ [a,b] sono gli estremi di un intervallo contenente la radice cercata che soddisfino f(a) f(b) < 0 alfa approssimazione della radice calcolata

fzero come gli altri metodi numerici che permettono di approssimare radici di funzioni sono di tipo iterativo, ovvero a partire da un valore iniziale x 0 producono una successione di approssimazioni che sotto opportune ipotesi converge a una radice di f. Pertanto è possibile utilizzare fzero dando in input, al posto dell intervallo[a, b], un solo valore x0, a partire dal quale l algoritmo cercherà la radice di f: alfa = fzero(f, x0) Attenzione: La convergenza dipende dalla scelta del punto iniziale x0. Se x0 non viene scelto in maniera opportuna, l algoritmo potrebbe non convergere o, in caso di più radici, potrebbe convergere ad una radice diversa da quella cercata! Osservazione: Nel caso si utilizzi fzero non si incorre in questi problemi utilizzando la modalità precedente ed avendo l accortezza di scegliere come [a,b] un intervallo che contenga solo la radice voluta. Osservazione: In caso si volessero trovare più radici della stessa funzione è necessario ripetere la procedura per ogni singola radice. Onde localizzare ogni radice e scegliere un intervallo [a, b] che la contenga è utile tracciare preliminarmente un grafico della funzione f. Uno studio preliminare della funzione per localizzare le eventuali radici sarà sempre utile anche utilizzando altri metodi. 2

Limitazioni La funzione fzero definisce uno zero come un punto in cui la funzione assegnata attraversa l asse x. Punti in cui la funzione tocca ma non attaversa l asse x non sono considerati zeri validi. Ad esempio la parabola f(x) = x 2 ha una radice doppia in 0 e quindi tocca ma non attraversa l asse x pertanto fzero non è in grado di determinare tale radice di f. >> f=@(x) x.^2; >> x=fzero(f,[-1,1])??? Error using ==> fzero at 293 The function values at the interval endpoints must differ in sign. >> x=fzero(f,0.005) Exiting fzero: aborting search for an interval containing a sign change because NaN or Inf function value encountered during search. (Function value at -1.55333e+154 is Inf.) Check function or try again with a different starting value. x = NaN 3

La funzione fzero(f,x0) cerca di individuare punti in un intorno di x 0 in cui la f cambia segno, se la funzione assegnata è continua un tale punto corrisponde ad una radice di f altrimenti fzero può ritornare un punto di discontinuità anziché uno zero di f. Ad esempio >> f=@(x) tan(x); >> alfa=fzero(f,1) alfa = 1.5708 Si osservi che entrambe le limitazioni osservate sono strettamente legate al venire meno di qualche ipotesi del teorema degli zeri sul quale infatti si basa il metodo implementato in fzero. Esercizio 1. Eseguire il grafico delle seguenti funzioni negli intervalli specificati ed in seguito, con la funzione fzero,trovarne le radici: a. f(x) = e x sin(x) x [ 1,5] b. f(x) = (x 3 3x+2)e x, x [ 3,1.5] 4

Metodo di Bisezione fzero implementa una versione sofisticata del semplicissimo metodo di bisezione che a sua volta si basa sul teorema degli zeri ed è cosi definito: Sia[a,b]unintervalloincuisianosoddisfatteleipotesidelteorema degli zeri inizializzazione: k = 1, a (1) = a, b (1) = b, calcolo x (1) = (a (1) +b (1) )/2 pongo err (1) = (b (1) a (1) )/2, finchè err (k) > toll itero le operazioni seguenti: se f(x (k) ) = 0, stop se f(a (k) ) f(x (k) ) < 0 a (k+1) = a (k),b (k+1) = x (k) se f(a (k) ) f(x (k) ) > 0 a (k+1) = x (k),b (k+1) = b (k) calcolo x (k+1) = (a (k) +b (k) )/2, pongo err (k+1) = err (k) /2 aggiorno k = k +1 dove toll è la precisione voluta. Si noti che per l errore vale x (k) α < (b (k) a (k) )/2 e che ad ogni iterazione l ampiezza del sottointervallo si dimezza. Il metodo converge sempre, non è quindi necessario fissare un numero massimo di iterazioni consentite. 5

Costruire una function Matlab che implementi il metodo sopra descritto con la seguente sintassi. [x, nit] = bisezione(f, a, b, toll) input: output: f funzione definita con @ a,b con a < b: estremi di un intervallo contenente la radice cercata che soddisfino f(a)f(b) < 0 toll precisione richiesta x approssimazione della radice calcolata nit numero iterazioni effettuate Un esempio di possibile implementazione si trova nel file bisezione.m scaricabile dalla pagina web del corso Attenzione: Come nel caso di fzero, punti in cui la funzione tocca ma non attaversa l asse x non sono zeri calcolabili con la funzione bisezione in quanto avvivicinandoci a un tale punto non siamo più nelle ipotesi del Teorema degli zeri. Ad esempio bisezione non è in grado di determinare la radice doppia della parabola f(x) = x 2. 6

Esercizio 2. Si consideri il problema della ricerca degli zeri α 1 e α 2 (con α 1 < α 2 ) della funzione non lineare f(x) = e x x 2 sin(x) 1, 2 x 2. 1. Tracciare un grafico della funzione nell intervallo considerato. Localizzare graficamente gli zeri di f(x) = 0 eventualmente con l aiuto dello zoom. 2. Il metodo di bisezione è applicabile per calcolare tutti gli zeri? 3. Applicare il metodo, quando possibile, utilizzando il programma bisezione con tolleranza eps=1e-8 e considerando un opportuno intervallo di partenza. Esercizio 3. Si considerino le funzioni dell Esercizio 1 e si determini, ove possibile, le radici negli intervalli di definizione sopraindicati utilizzando il metodo di bisezione con tolleranza 1e-5 e scegliendo in modo opportuno gli intervalli di partenza. 7

Metodo di Newton Costruire una function Matlab che, dati dall utente: una funzione f una funzione df (derivata di f) un punto iniziale x 0 una tolleranza TOL un numero massimo di iterazioni NMAX, trovi uno zero della funzione f(x) usando il metodo di Newton x k+1 = x k f(x k) f (x k ) k = 0,1,2,3,... Il programma deve fermarsi qualora almeno una delle seguenti condizioni sia soddisfatta il modulo della differenza tra il valore x k calcolato nel passo corrente e il valore x k 1 calcolato nel passo precedente è inferiore a TOL il numero totale di iterazioni effettuate è maggiore o uguale a NMAX. ovvero [x,nit]=newton(f,df,x0,toll,nitmax) Esercizio 4. Si applichi il metodo di Newton alla funzione f(x) = x 2 7 con x 0 = 10, TOL= 10 12 e NMAX=200. 8

Esercizio 5. Si applichi il metodo di Newton alla funzione f(x) = sin(x 2 ) con x 0 = 1/2, TOL=10 12, NMAX=200. Si osservi che il metodo di Newton è in grado di calcolare la radice multipa α = 0 di f Esercizio 6. Eseguire il grafico delle seguenti funzioni negli intervalli specificati ed in seguito trovarne le radici con il metodo di Newton scegliendo tolleranza 1e 6 e numero massimo di iterazioni pari a 100: a. f(x) = sin(e x ), x [0,2.5] b. f(x) = e x sin(x), x [ 1,5] c. f(x) = (x 1) 2 (x+2), x [ 3,3] Nel caso c. la funzione f ha una radice doppia e una semplice, si confronti il numero di iterazioni effettuate dal metodo di Newton per calcolare ciascuna di esse. Quale radice viene calcolata più velocemente? Esercizio 7. Combinazione di bisezione e Newton Applicare sia il metodo di bisezione (con la scelta di intervallo [ 15,20]) che il metodo di Newton (con punto iniziale 20), entrambi con TOL = 10 12, alla seguente funzione f(x) = arctg(x). (1) 9

Commentare i risultati. Sono soddisfacenti in entrambi i casi? Si scriva un programma che usi in successione il metodo di bisezione (toll=0.001)equellodinewton(toll=1e-12)passandoanewton come valore di innesco il valore ottenuto con le bisezioni, e lo si applichi alla funzione f(x) = arctg(x) sull intervallo [ 15, 20]. Esercizio 8. Di riepilogo Si consideri la funzione f(x) = x 1 sin(x)+2. 1. Si approssimi la radice α di f nell intervallo [0, 5] utilizzando la function di Matlab fzero. 2. Si approssimi la radice α di f nell intervallo [0, 5] utilizzando il metodo di Bisezione con tolleranza 1e-8. 3. Si approssimi la radice α di f nell intervallo [0, 5] utilizzando il metodo di Newton con tolleranza 1e-8 e numero massimo di iterazioni 200 a partire dal punto iniziale x 0 = 2. 4. Considerando come soluzione esatta la radice trovata con fzero, calcolare gli errori di approssimazione commessi utilizzando gli altri due metodi. 10

Esercizio 9. Di riepilogo Si consideri la funzione f(x) = 2x 2 1 cos(x 2 )+3. 1. Si approssimi la radice α di f nell intervallo [0, 5] utilizzando la function di Matlab fzero. 2. Si utilizzi il metodo di bisezione nell intervallo [0, 5] con tolleranza 1e-2 per determinare il punto iniziale x 0 da passare al metodo di Newton per approssimare la radice α di f nell intervallo [0,5]. Si scelga per il metodo di Newton tolleranza 1e-6 e numero massimo di iterazioni 200. Sia α l approssimazione calcolata. 3. Considerando come soluzione esatta α la radice trovata con fzero, calcolare l errore di approssimazione commesso α α. 11