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

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

Soluzione del laboratorio 13 Formule di quadratura

Laboratorio 10 Metodi Bisezione e Newton

ISTRUZIONI PER LA CONSEGNA DEI FILE MATLAB

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

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

Metodi iterativi per equazioni nonlineari.

Fondamenti di Informatica, A.A Compito A

Esercizio 1. Esercizio 2

Alcuni esercizi in preparazione all appello scritto di Calcolo Numerico

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

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

Laboratorio di Calcolo Numerico

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

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

Equazioni e sistemi non lineari

Metodi di Iterazione Funzionale

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

Prove d esame Esercizi con Matlab

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

Progetto Matlab N 2. Calcolo Numerico 6 CFU. Corso di Laurea in Ingegneria delle Comunicazioni 31/05/2014

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

Corso di Matematica per la Chimica

1 Successioni di funzioni

Prova di ammissione al Dottorato di Ricerca in Matematica XXVIII ciclo. Universitá del Salento, 9 Aprile 2013

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

Laboratorio di Matematica Computazionale A.A Lab. 4

Corso di Laurea in Ingegneria Informatica Anno Accademico 2012/2013 Analisi Matematica 1

Calcolo Numerico per Ingegneria. Corso estivo di Bressanone. Prof. L. Bergamaschi SOLUZIONE DELLA PROVA SCRITTA del

Laboratorio di Calcolo Numerico

A.A Prof. R. Morandi

Equazioni e sistemi non lineari

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

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

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

Ottimizzazione numerica

Claudio Estatico Equazioni non-lineari

Corso di Geometria e Algebra Lineare - Sezione di Metodi Numerici

Esercizi svolti. a 2 x + 3 se x 0; determinare a in modo che f risulti continua nel suo dominio.

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Calcolo Numerico Informatica Manolo Venturin A.A Guida all esame

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Metodi per la risoluzione di equazioni non lineari

MATLAB Elementi di grafica Costrutti di programmazione

2. Costruire un M function file di Matlab che calcola il valore del

Calcolo del fattore di convergenza

Laboratorio di Matematica Computazionale A.A Lab. 3

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

Il metodo di Galerkin Elementi Finiti Lineari

Algoritmi e dintorni: La radice quadrata Prof. Ettore Limoli. Formule iterative

Università degli Studi della Calabria Facoltà di Ingegneria. 17 luglio 2012

Relazione di laboratorio di Analisi Numerica: metodi di ricerca zeri

Calcolo Numerico con elementi di programmazione

1. Scrivere il termine generale a n delle seguenti successioni e calcolare lim n a n:

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

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Esercizi 3. cos x ln(sin x), ln(e x 1 x ), ln( x 2 1), x sin x + x cos x + x, x 3 2x + 1. x 2 x + 2, x cos ex, x 2 e x.

Integrazione numerica

Teorema delle Funzioni Implicite

Esercizi svolti. g(x) = sono una l inversa dell altra. Utilizzare la rappresentazione grafica di f e f 1 per risolvere l equazione f(x) = g(x).

Corso di Analisi Numerica

V Esercitazione di Matematica Finanziaria

Esercitazione 6: Metodi iterativi per sistemi lineari.

Metodi iterativi per la soluzione di sistemi lineari: Jacobi e Gauss-Seidel

Analisi 4 - SOLUZIONI (compito del 29/09/2011)

Metodi iterativi per sistemi lineari

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

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

Laboratorio 2 Grafici di funzione in Scilab Metodo di Bisezione

Corso di Calcolo Numerico

Corso di Matematica per la Chimica

3 Bacini di attrazione

CONTINUITÀ E DERIVABILITÀ Esercizi risolti

Serie di Fourier - Esercizi svolti

Funzioni reali di variabile reale

Metodi Numerici con elementi di Programmazione (A.A )

Concludiamo questa Appendice, riportando alcuni programmi scritti in linguaggio

CORSO DI LAUREA IN INFORMATICA CALCOLO NUMERICO Primo esonero - 20 Novembre

Università di Foggia - Facoltà di Economia. Prova scritta di Matematica Generale - Vecchio Ordinamento - 04 giugno 2002

Corso di Matematica per la Chimica

Corso di Analisi Matematica. Polinomi e serie di Taylor

RENDITE. Ricerca del tasso di una rendita

Facoltá di Scienze MM.FF.NN. Corso di Studi in Informatica- A.A

Ingegneria Tessile, Biella Analisi II

Corso di Calcolo Numerico

Laboratorio 3. Integrazione numerica

Corso di Calcolo Scientifico

Esercizi 2. e xy x + y = 0. definisce una ed una unica funzione implicita x = φ(y) nell intorno di (0, 0), se ne calcoli

Mini-Corso di Informatica

Esercitazione 5: Sistemi a risoluzione immediata.

Limiti di funzioni e loro applicazioni

Funzioni implicite - Esercizi svolti

Calcolo di autovalori e autovettori

Equazioni, funzioni e algoritmi: il metodo delle secanti

Introduzione al Calcolo Scientifico - A.A

Analisi Matematica I per Ingegneria Gestionale, a.a Scritto del secondo appello, 1 febbraio 2017 Testi 1

Esercizi geometria analitica nello spazio. Corso di Laurea in Informatica. Docente: Andrea Loi. Correzione

Viceversa stabilito il flusso dei pagamenti/incassi se esiste un unico tasso t per cui

Introduzione soft alla matematica per l economia e la finanza. Marta Cardin, Paola Ferretti, Stefania Funari

Confronto tra stringhe. (modulo) Calcolo della media e della varianza. Ecco un elenco di codici Matlab: - Calcolo valore assoluto (modulo)

Transcript:

Soluzione del laboratorio Metodi di punto fisso e sistemi di equazioni non lineari 29 - 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/) Esercizio Si consideri la funzione f(x) = cos 2 (2x) x 2.. Si disegni la funzione e si individuino graficamente i punti in cui f(x) =. Definiamo la anonymous function f = @(x) e la rappresentiamo graficamente dopo averla valutata su mille punti equispaziati; >> f = @(x) cos (2* x ).^2 - x.^2; >> x = linspace (-pi /2, pi /2,); >> plot (x,f(x),x, zeros ( size (x)), 'k '); Si individuano graficamente due zeri, simmetrici rispetto all origine, che chiameremo nel seguito α > e α <..5.5.5 2.5.5.5.5 2 Figura : Rappresentazione di f(x) nell intervallo [ π/2, π/2]. 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 α > per una scelta opportuna del dato iniziale. Per il teorema di Ostrowski è richiesto che φ (α) <, ovvero: +Af (α) < < +Af (α) < 2 <Af (α) < <A < 2/f (α) Si noti che, deduco da una analisi del grafico della funzione che f (α) <, è stato cambiato il segno della disequazione nell ultimo passaggio. 3. Si utilizzi la function ptofis.m con A =. e x () =. per ottenere un valore della radice α, sceglio come tolleranza. 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 (). Dobbiamo in questo caso definire la funzione phi ed utilizzare la function ptofis.m con la seguente sintassi: >> phi = @(x) x +.*( cos (2* x ).^2 - x.^2) >> [ succ, it ] = ptofis (., phi,,e -, - pi /2, pi /2); dove gli ultimi due argomenti -pi/2,pi/2 sono gli estremi (su entrambi gli assi cartesiani) dell intervallo nel quale verrà plottato l output grafico della funzione (si veda help ptofis).5.5.5.5.5.5.5.5 Figura 2: Rappresentazione grafica delle iterate di punto fisso per la funzione dell Esercizio con A =. e x () =.. In blu viene rappresentato il grafico della funzione di iterazione φ(x), in verde la bisettrice degli assi e in rosso le iterate calcolate dall algoritmo Il numero di iterazioni effettuate e il valore numerico della soluzione (contenuto nell ultimo elemento del vettore fornito come output della funzione succ) sono: 2

Numero di Iterazioni : 65 Radice calcolata :.5493326 Valutando f (x) = 4 cos(2x) sin(2x) 2x nella radice calcolata otteniamo l intervallo di valori ammissibili di A: >> df = @(x) -4* cos (2* x ).* sin (2* x) -2*x; >> df_a = df( succ ( )) df_a = -2.7955 >> Asup = -2/( df_ a ) Asup =. 754 Ovvero il metodo converge ad α > per < A <.754. Ad esempio, per A =.6 e x () =. otteniamo il seguente risultato: >> phi6 = @(x) x +.6*( cos (2* x ).^2 - x.^2); >> [ succ2, it2 ] = ptofis (., phi6,,e -, - pi /2, pi /2); Numero di Iterazioni : 57 Radice calcolata :.5493326.5.5.5.5.5.5.5.5 Figura 3: Rappresentazione grafica delle iterate di punto fisso per la funzione dell Esercizio con A =.6 e x () =. Notiamo che l algoritmo può convergere per valori del dato iniziale relativamente lontani dalla soluzione, ad esempio per A =.6 e x () = 2. si ottiene il seguente risultato: >> [ succ3, it3 ] = ptofis (2., phi6,,e -, - pi /2, 2.); Numero di Iterazioni : 58 Radice calcolata :.5493326 3

2.5.5.5.5.5.5.5.5 2 Figura 4: Rappresentazione grafica delle iterate di punto fisso per la funzione dell Esercizio con A =.6 e x () = 2.. Per A =.75 >.754, l algoritmo di punto fisso non converge, non esso verificata l ipotesi del teorema di Ostrowski: >> phi75 = @(x) x +.75*( cos (2* x ).^2 - x.^2); >> [ succ3, it3 ] = ptofis (., phi75,,e -, - pi /2, pi /2); Numero massimo di iterazioni raggiunto 4. Stimare l ordine di convergenza e il fattore di convergenza del metodo di punto fisso al variare di A utilizzando la function stimap.m, verificando l affidabilità delle stime teoriche. Dalla stima teorica, per i metodi di punto fisso di ordine il fattore di convergenza è uguale al valore di φ (α). Invochiamo la function stimap.m (che riceve in ingresso il vettore di valori ottenuti dalle successive iterazioni di un metodo iterativo) per verificare ordine e fattore di convergenza per le successioni ottenute con A =. e A =.6: >> [p,c] = stimap ( succ ); Ordine stimato :.83 Fattore di riduzione :.7247642 >> [p2,c2] = stimap ( succ2 ); Ordine stimato :.9999988 Fattore di riduzione :.677333 La convergenza è sempre lineare (ordine uguale a ), mentre i fattori sono in perfetto accordo con la stima teorica (si noti che per A =.6 si ha +.6f (α) < e la convergenza è oscillante, come si vede nell output grafico in Figura 3): >> +.* df_a ans = 4

.5.5.5.5.5.5.5.5 Figura 5: Rappresentazione grafica delle iterate di punto fisso per la funzione dell Esercizio con A =.75 e x () =., caso in cui l algoritmo non giunge a convergenza.. 724 >> +.6* df_a ans = -.6773 5. Fornire un valore di A tale da ottenere un metodo del secondo ordine. Si ha un metodo del secondo ordine se φ (α) =, ovvero se + Af (α) =, e quindi: A = f (α).3577 Verifichiamo di ottenere effettivamente un metodo del secondo ordine con i comandi: >> A_opt = -/ df_a A_ opt =. 3577 >> phi_opt = @(x) x + A_opt *( cos (2* x ).^2 - x.^2); >> [ succ_opt, it_opt ] = ptofis (., phi_opt,,e -, -pi /2, pi /2); Numero di Iterazioni : 5 Radice calcolata :.5493326 >> [ p_opt, c_opt ] = stimap ( succ_opt ); Ordine stimato : 2.6432 Fattore di riduzione :.376845 Il metodo converge in sole 5 iterazioni e la stima dell ordine di convergenza è in accordo con le considerazioni teoriche. 6. Ricordando che il metodo di Newton può essere riletto come metodo di punto fisso, implementarlo utilizzando la function ptofis.m. Determinare sperimentalmente gli 5

.5.5.5.5.5.5.5.5 Figura 6: Rappresentazione grafica delle iterate di punto fisso per la funzione dell Esercizio con A = A opt =.3577 e x () =., caso in cui il metodo ha ordine di convergenza pari a 2. intervalli in cui scegliere il dato iniziale in modo che il metodo converga alla radice α positiva. Il metodo di Newton si può rileggere come metodo di punto fisso con funzione di iterazione: φ N = x f(x) f (x) In questo caso, la funzione di iterazione è discontinua in x = e oscillante altrove. Ciò implica che l intervallo [a, b] all interno del quale scegliere il dato iniziale per assicurare convergenza allo zero α > è piccolo. Per stimare questo intervallo sperimentalmente possiamo procedere nella maniera seguente: variamo il valore di x all interno di un intervallo a piacere; eseguiamo il metodo di Newton a partire da questo dato iniziale e salviamo il valore della soluzione alla quale il metodo converge; infine rapprensentiamo su un grafico i valori della radice così ottenuta in funzione di x. In pratica: phin = @(x)x - ( cos (2* x ).^2 - x.^2)./( -4* cos (2* x ).* sin (2* x) -2*x) vett_sol =[]; vett_x = [.:.:] for x = vett_x [succ,it] = ptofis (x,phin,,e -, - pi /2, pi /2); vett_sol = [ vett_sol succ ( )]; plot ( vett_x, vett_sol, 'o-- ') Dalla Figura 7 si ottiene un intervallo per la scelta del dato iniziale pari a [.2,.88]. Un risultato del metodo di Newton è il seguente (per x () =.8): 6

.6.4.2.2.4.6.8..2.3.4.5.6.7.8.9 Figura 7: Radice calcolata dal metodo di Newton al variare del dato iniziale. Sceglio un dato iniziale all interno dell intervallo [.2,.88] si converge alla radice α >. >> [ succn, itn ] = ptofis (.8, phin,,e -, -pi, 2* pi ); Numero di Iterazioni : 5 Radice calcolata :.5493326 6 5 4 3 2 2 3 3 2 2 3 4 5 6 Figura 8: Rappresentazione grafica delle iterate di punto fisso per il metodo di Newton. Si noti la forma della funzione di iterazione. 7

Esercizio 2. Si scriva la function y = F_molle(x) che restituisce la valutazione di F sul generico vettore x (ovvero deve restituire un vettore di N componenti). La funzione richiede come input il vettore degli N gradi di libertà interni e restituisce le valutazioni delle N funzioni non lineari su tale vettore. Bisogna prestare particolare attenzione per la prima e l ultima componente del sistema, poiché esse sono funzione anche dei punti estremi del x = e x N = L, che non sono dei gradi di libertà incogniti del sistema. Al fine di compattare la scrittura, decidiamo di creare un vettore ausiliario che compre anche i punti estremi x = [; x ; L], e calcoliamo le componenti di F su tale vettore ausiliario tramite un singolo ciclo for : function [y] = F_molle (x) K = ; b = -; L = 2; n = length (x); x = [; x; L]; y = zeros (n,); for j =: n i = j +; y(j) = - K*( -x(i -) + 2*x(i) - x(i +) ) +... b*( (x(i)-x(i -))^3 - (x(i+) -x(i ))^3 ); Si noti che, avo inserito un elemento in testa al vettore x, gli indici di tale vettore sono sfasati rispetto a quelli del vettore y (istruzione i = j+). 2. Si scriva la function J = J_molle(x) che restituisce la matrice Jacobiana J F valutata sul generico vettore x. Anche in questo caso, scegliamo di utilizzare la strategia di creare il vettore ausiliario che compre anche gli estremi per compattare la scrittura. Esso J F una matrice tridiagonale, la componente extradiagonale inferiore esiste solo dalla seconda riga in poi, quella extradiagonale superiore invece fino alla penultima riga. function [J] = J_molle (x) K = ; b = -; L = 2; n = length (x); x = [; x; L]; J = for zeros (n,n); j =: n i = j +; J(j,j) = -2*K + 3*b*(( x(i)-x(i -))^2 + (x(i+) -x(i ))^2); if (j > ) senza la creazione di tale vettore ausiliario, avremmo potuto calcolare la prima e l ultima componente di F all esterno del ciclo for, otteno una scrittura meno compatta 8

J(j,j -) = K - 3*b * (x(i) - x(i -))^2 ; if (j < n) J(j,j +) = K - 3*b * (x(i +) - x(i ))^2 ; 3. Si scriva la function [x,niter] = newton_molle(x,tol,nmax) che implementa il metodo di Newton per il sistema non lineare in esame. Seguo lo schema presentato nell introduzione del metodo, ad ogni iterazione si dovranno richiamare le funzioni appena implementate per la costruzione della matrice e del termine noto del sistema lineare, risolvere il sistema lineare con il comando \di Matlab e infine aggiornare la soluzione. L implementazione del metodo di Newton per sistemi in questo caso è la seguente: function [x, niter ] = newton_molle (x,tol, nmax ) niter = ; err = tol +; x = x; while ( err >= tol && niter < nmax ) J = J_molle (x); y = F_molle (x); dx = -J\y; x = x + dx; err = norm (dx ); niter = niter +; res = norm ( F_molle (x )); if (( niter == nmax && err > tol ) isnan ( res )) fprintf ( 'Non converge \n ') else fprintf ( ' Converge in %i iterazioni,... residuo finale pari a %g\n ',niter, res ); 4. Si risolva il sistema lineare con una tolleranza pari a, un numero massimo di iterazioni pari a e parto da un dato iniziale x sufficientemente vicino alla soluzione del problema x = [, 2,..., 9] T. In questo caso non è necessario fornire un dato iniziale relativamente vicino alla soluzione, ad esempio anche parto dal vettore nullo si giunge a convergenza. >> x = zeros (9,); >> tol = e - ; >> nmax = ; >> [x, niter ] = newton_molle (x,tol, nmax ) Converge in iterazioni, residuo finale pari a. 237 e -3 9