Laboratorio 5-6 Metodi di Bisezione, Newton e Punto Fisso



Documenti analoghi
Laboratorio 10 Metodi Bisezione e Newton

Soluzione del laboratorio 11 Metodi di punto fisso e sistemi di equazioni non lineari

Laboratorio di Matematica Computazionale A.A Lab. 3

Metodi iterativi per equazioni nonlineari.

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Soluzione del laboratorio 13 Formule di quadratura

Soluzione di Equazioni non lineari

Complementi di Matematica A.A Laboratorio 10

METODI DI PUNTO FISSO

Equazioni e sistemi non lineari

Laboratorio di Matematica Computazionale A.A Lab. 4

Equazioni non lineari. Gabriella Puppo

Corso di Calcolo Numerico

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

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

MATLAB:Metodi Numerici per zeri di funzioni.

ISTRUZIONI PER LA CONSEGNA DEI FILE MATLAB

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

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

Laboratorio di Matematica Computazionale A.A Lab. 4

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

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 7

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

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

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

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

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3

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

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Claudio Estatico Equazioni non-lineari

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

Elementi di Calcolo Scientifico per l Ingegneria A.A

Calcolo del fattore di convergenza

Soluzioni: Laboratorio Calcolo Numerico labor3.pdf

Metodi per il calcolo degli zeri di funzioni non lineari

Metodi Numerici per l Approssimazione degli Zeri di una Funzione

Metodi di Ottimizzazione

Equazioni e sistemi non lineari

Metodi di Iterazione Funzionale

Equazioni non lineari

Equazioni e sistemi non lineari

Laboratorio di Calcolo Numerico

Alcuni esercizi in preparazione all appello scritto di Calcolo Numerico

Laboratorio di Calcolo Numerico

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

Ricerca di zeri di equazioni non lineari

Calcolo Numerico Informatica Manolo Venturin A.A Guida all esame

Laboratorio di Calcolo Numerico Laboratorio 5: Scrittura su FILE. Soluzione di Equazioni non lineari

Calcolo Numerico (A.A ) Esercitazione n. 9. Metodo del punto unito, Metodo di Newton per sistemi

Equazioni e sistemi non lineari

Corso di Calcolo Numerico

g(x) = arctan(1.5x 0.1)

Esercizio 1. Errori di cancellazione

Laboratorio 3-30 settembre 2005

Calcolo Numerico - Prova Matlab 19 luglio 2013

Laboratorio di Matematica Computazionale A.A Lab. 3

Lezione 5, 5/11/2014

Corso di Analisi Numerica

Raccolta di esercizi di Calcolo Numerico Prof. Michela Redivo Zaglia

Calcolo Numerico Laurea di base in Ingegneria Elettronica e delle Telecomunicazioni

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

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

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

Laboratorio di Calcolo Numerico

1. Sia data la funzione f(x) = x + log x nel proprio insieme di definizione D.

CALCOLO NUMERICO Laurea di base in Ingegneria Elettronica, delle Comunicazioni

Daniela Lera A.A

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

Laboratorio di Calcolo Numerico - Corso di Laurea in Matematica Appello d esame del 12/07/2012

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

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

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

Esercizio 1. Esercizio 2

Calcolo Numerico (A.A ) Esercitazione n. 9. Metodo del punto unito, Metodo di Newton per sistemi

Daniela Lera A.A

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

Equazioni non lineari

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

Equazioni e sistemi non lineari

Programma del corso di: Calcolo Numerico Corso di laurea in Matematica a.a Prof. B.Paternoster

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

Equazioni e sistemi non lineari

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

Esame di Calcolo Numerico per Informatica Prof. S. De Marchi Padova, 2 settembre 2013

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

Metodi Numerici Prova di Laboratorio Esami del Stefano Gualandi

Analisi cinematica di meccanismi articolati

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

Relazione di laboratorio di Analisi Numerica: metodi di ricerca zeri

Polinomi. I polinomi della forma

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

Fondamenti di Informatica, A.A Compito A

Esercizi Elaborato (versione )

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

Transcript:

Laboratorio 5-6 Metodi di Bisezione, Newton e Punto Fisso 2009 - Questo testo (compresi i quesiti ed il loro svolgimento) è coperto da diritto d autore. Non può essere sfruttato a fini commerciali o di pubblicazione editoriale. Non possono essere ricavati lavori derivati. Ogni abuso sarà punito a termine di legge dal titolare del diritto. This text is licensed to the public under the Creative Commons Attribution-NonCommercial-NoDerivs2.5 License (http://creativecommons.org/licenses/by-nc-nd/2.5/) Algoritmo di Bisezione Sia data una funzione f continua, con una radice nel punto x = α all interno dell intervallo I = (a, b), dove a e b sono tali che f(a) f(b) < 0. Il metodo di bisezione calcola un approssimazione x dello zero α tramite il seguente algoritmo: posto a (0) = a e b (0) = b, per k = 0,..., n max x (k) = (a (k) + b (k) )/2 if (f(x (k) ) == 0) x = x (k) return elseif (f(a (k) )f(x (k) ) < 0) a (k+1) = a (k) b (k+1) = x (k) else end a (k+1) = x (k) b (k+1) = b (k) Il criterio d arresto si basa sulla semiampiezza dell intervallo: fissata una tolleranza ε 1, il metodo si arresta quando 1 2 (bk a k ) < ε 1. (1) Di conseguenza il numero massimo di iterazioni che vengono eseguite è n max = log 2 ( b a ε 1 ) 1, (2) dove m indica il più piccolo numero intero maggiore di m (arrotondamento per eccesso). Per rendere più efficiente lo schema si controlla anche il residuo, cioè si arresta il metodo non appena f(x k ) < ε 2 (nella pratica spesso si considera un solo valore di tolleranza, ε 2 = ε 1 ). Esercizio 1 Vogliamo risolvere il problema della ricerca degli zeri dell equazione non lineare f(x) = 0, dove f è definita da: f(x) = x 3 (2 + e)x 2 + (2e + 1)x + (1 e) cosh(x 1), x [0.5, 6.5] (3) 1

1. Disegnare il grafico della funzione f nell intervallo [0.5, 6.5] ed evidenziare le radici dell equazione. (Suggerimento: utilizzare il comando grid on). 2. Si dica per quali radici il metodo di bisezione è applicabile a partire dal grafico della funzione. 3. Scrivere una function Matlab R (Octave ) bisez.m che implementi il metodo di bisezione. Tale funzione ˆ riceve in input gli estremi a e b dell intervallo di ricerca, la tolleranza toll richiesta sul residuo e la funzione fun. ˆ restituisce in output il vettore xvect delle iterate e il numero it delle iterazioni effettivamente eseguite. ˆ si utilizzi un criterio d arresto basato sul residuo, accoppiato ad un controllo sul massimo numero di iterate, determinato come in (2), assumendo ε 1 = ε 2 = toll. L intestazione della funzione sarà ad esempio: [xvect,it] = bisez(a,b,toll,fun) ( Suggerimento: definire la funzione fun da passare alla funzione bisez.m tramite i comandi inline o @). 4. Calcolare le radici di f per le quali il metodo di bisezione risulta applicabile, utilizzando la funzione bisez.m con una tolleranza di 10 12. Metodo di Newton Il metodo di Newton per la ricerca dello zero α di un equazione non lineare f(x) = 0 è un metodo iterativo che necessita della conoscenza della derivata prima f (x) della funzione f(x). Dato x (0), la formula della generica iterazione k del metodo di Newton si esprime come: x (k+1) = x (k) f(x(k) ) f (x (k) ) se f (x (k) ) 0, k 0. (4) Nel caso in cui α sia uno zero semplice di f (f (α) 0) il metodo di Newton converge quadraticamente. Se invece la molteplicità è maggiore di uno, il metodo di Newton converge linearmente. Detta m la molteplicità dello zero α, la convergenza quadratica può essere recuperata modificando la formula generale del metodo di Newton nel modo seguente: x (k+1) = x (k) m f(x(k) ) f (x (k) ) se f (x (k) ) 0, k 0. (5) Il metodo (5) si chiama Newton modificato. Per arrestare il metodo di Newton si utilizza generalmente il criterio seguente: ad ogni iterazione k si valuta se la differenza tra due iterate successive è inferiore ad una certa soglia ε: x (k) x (k 1) < ε (6) 2

Esercizio 2 Si consideri l equazione non lineare f(x) = 0 dell Esercizio 1. Sappiamo che essa ammette tre zeri nell intervallo indicato. 1. Dal grafico di f e di f discutere le proprietà di convergenza del metodo di Newton per tutti gli zeri, valutando l opportunità di applicare il metodo di Newton modificato. Noto il valore esatto della radice α 1 = 1 si valuti la molteplicità della radice. 2. Scrivere una funzione Matlab R (Octave ) newton.m che implementi il metodo di Newton; la funzione ˆ riceve in input la guess iniziale x0, la tolleranza toll, il numero massimo di iterazioni nmax, la funzione fun, la sua derivata dfun e la molteplicità della radice mol. ˆ restituisce in output il vettore xvect delle iterate e il numero it di iterazioni effettivamente eseguite. Si utilizzi un criterio d arresto basato sul modulo della differenza tra due iterate successive. La function newton.m deve comportarsi come il metodo di Newton classico nel caso in cui non venga specificata la molteplicità della radice e come il metodo di Newton modificato se viene espressamente passata in ingresso la variabile mol (utilizzare a tal proposito la function nargin). L intestazione della funzione sarà ad esempio la seguente: [xvect,it]=newton(x0,nmax,toll,fun,dfun,mol) 3. Risolvere il problema della ricerca degli zeri di f tramite il metodo di Newton, utilizzando la funzione newton.m con tolleranza 10 6. Si utilizzi per il calcolo di ogni radice un opportuno valore x0. Nel caso della radice α 1 = 1 si riporti su un grafico in scala semilogaritmica l andamento degli errori in funzione del numero di iterazioni per il metodo di Newton standard e per quello modificato. Esercizio 3 Si consideri l equazione non lineare f(x) = 0, in cui f è definita come: ( ( f(x) = arctan 7 x π )) ( ( + sin x π ) ) 3, x [ 1, 6]. (7) 2 2 1. Si disegni il grafico della funzione f nell intervallo [ 1, 6]. 2. Si verifichi che l unico zero α della funzione f è semplice e si utilizzi la funzione newton.m per calcolarlo. Si assuma una tolleranza pari a 10 10 e guess iniziale x0 = 1.5. Successivamente si ripeta tale calcolo partendo da x0 = 4. Sapendo che α = π/2, si calcolino gli errori assoluti nei due casi e si motivino i risultati ottenuti. 3. Verificate la possibilità di utilizzare il metodo di bisezione; si utilizzi la funzione bisez.m sull intervallo [a, b] = [ 1, 6] con tolleranza toll = (b a)/2 31. Si riporti l errore ottenuto. 3

4. Si implementi una function biseznewton.m che combini il metodo di bisezione e di Newton. In particolare si adotti il metodo di bisezione per l avvicinamento allo zero e successivamente il metodo di Newton per calcolare α. La funzione richiesta ˆ riceve in input gli estremi dell intervallo di ricerca a e b, la tolleranza richiesta toll, il numero massimo di iterazioni nmax b per le iterazioni con il metodo di bisezione, il numero massimo di iterazioni nmax n per le iterazioni con il metodo di Newton, la funzione fun e la sua derivata dfun. ˆ restituisce in output il vettore delle iterate xvect e il numero it di iterazioni effettivamente eseguite. L intestazione della funzione sarà, ad esempio, la seguente: [xvect,it]=biseznewton(a,b,nmax b,nmax n,toll,fun,dfun) 5. Si calcoli utilizzando la funzione biseznewton lo zero α di f, impiegando 5 iterazioni del metodo di bisezione. Si mantengano i valori precedentemente utilizzati per tutti gli altri parametri di input. Metodo delle iterazioni di punto fisso Consideriamo il problema: data una funzione φ : [a, b] R, trovare α [a, b] tale che: α = φ(α). Se un tale α esiste, viene detto punto fisso di φ. Se la funzione di iterazione è sufficientemente regolare e φ (α) < 1 la successione definita da x (k+1) = φ(x (k) ), k 0 (8) converge ad α per ogni scelta del dato iniziale x (0) in un intorno opportuno di α. successione soddisfa la condizione di convergenza Tale x (k+1) α lim k x (k) α = φ (α), (9) ovvero (per k grande) l errore al passo (k + 1) è uguale all errore al passo k moltiplicato per una costante φ (α) il cui valore assoluto è minore di 1 (ordine di convergenza uguale almeno ad 1, o convergenza almeno lineare). In maniera del tutto generale si può dimostrare che se le derivate i-esime della funzione φ valutate in α si annullano per i = 1,, p con p 1 e φ (p+1) (α) 0, allora il metodo di punto fisso ha ordine (p + 1) e vale: lim k x (k+1) α (x (k) α) p+1 = φ(p+1) (α) (p + 1)!. (10) Ad esempio, se φ (α) = 0, (ma φ (α) 0) il metodo di punto fisso è convergente di ordine 2. 4

Le iterazioni di punto fisso possono servire anche per il calcolo degli zeri di una funzione f(x). In generale, la funzione di iterazione φ deve essere scelta in modo tale che φ(α) = α ogni volta che f(α) = 0. La scelta di φ ovviamente non è unica. Si può ricorrere infatti a manipolazioni algebriche differenti di f per ottenere delle possibili funzioni di iterazione φ. Ad esempio, ogni funzione della forma φ(x) = x + F (f(x)) è una funzione di iterazione ammissibile, purchè F sia una funzione continua tale che F (0) = 0. Una semplice implementazione dell algoritmo di punto fisso è la seguente: function [succ, it] = ptofis(x0, phi, nmax, toll) % % [succ, it] = ptofis(x0, phi, nmax, toll) % Metodo di punto fisso x = phi(x) % % Parametri di ingresso: % x0 Punto di partenza % phi Funzione di punto fisso (definita inline o anonimous) % nmax Numero massimo di iterazioni % toll Tolleranza sul test d'arresto % % Parametri di uscita: % succ Vett. contenente tutte le iterate calcolate % (l'ultima componente e' la soluzione) % it Iterazioni effettuate err = 1 + toll; it = 0; succ = x0; xv = x0; while (it < nmax && err > toll) xn = phi(xv); err = abs(xn xv); succ = [succ; xn]; it = it + 1; xv = xn; end fprintf(' \n Numero di Iterazioni : %d \n',it); fprintf(' Punto fisso calcolato : %12.13f \n',succ(end)); Spesso può essere interessante visualizzare le iterate successive dell algoritmo di punto fisso; anzichè visualizzare i valori generati x (k) al variare dell indice k, si preferisce costruire un grafico formato da una linea spezzata che congiunge i punti di coordinate: ( ) x (k), φ(x (k) ) ( x (k+1), x (k+1)) ( x (k+1), φ(x (k+1) ) ), k 0. Il grafico così ottenuto consente di distinguere immediatamente ipunti fissi attrattori dai punti fissi repulsori. 5

Esercizio 4 Si consideri la funzione f(x) = cos 2 (2x) x 2. 1. Si disegni la funzione e si individuino graficamente i punti in cui f(x) = 0. 2. Si verifichi teoricamente per quale intervallo di valori della costante A il metodo di punto fisso per la ricerca degli zeri di f(x) con funzione di iterazione: φ(x) = x + Af(x) può convergere alla radice α > 0 per una scelta opportuna del dato iniziale. 3. Si utilizzi la function ptofis.m con A = 0.1 e x (0) = 0.1 per ottenere un valore della radice α, scegliendo come tolleranza 10 10. Si usi il valore della radice ottenuta per verificare numericamente il range di valori ammissibili per A ottenuto teoricamente al punto precedente. Si studi la sensibilità della convergenza del metodo al variare di A e x (0). 4. Stimare l ordine di convergenza e il fattore di convergenza del metodo di punto fisso al variare di A utilizzando la funzione stimap.m, verificando l affidabilità delle stime teoriche. 5. Fornire un valore di A tale da ottenere un metodo del secondo ordine. 6. Ricordando che il metodo di Newton può essere riletto come metodo di punto fisso, implementarlo utilizzando la function ptofis.m. Determinare sperimentalmente gli intervalli in cui scegliere il dato iniziale in modo che il metodo converga alla radice α positiva. 6