Stabilità : radici secondo grado

Documenti analoghi
Matlab: complessità e stabilità degli algoritmi. Alcuni esempi.

Alcuni esperimenti in Matlab relativi alla teoria degli errori

Alcuni esperimenti in Matlab relativi alla teoria degli errori (corso di Ingegneria dell Energia) 1

Matlab: complessità e stabilità degli algoritmi. Alcuni esempi.

Emma Perracchione A.A. 2018/2019

Sulla propagazione degli errori

Francesca Mazzia Dipartimento Interuniversitario di Matematica Università di Bari. MATLAB: analisi degli errori

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

Note del corso di Laboratorio di Programmazione e Calcolo: Analisi della stabilità e della complessità computazionale di un algoritmo

Esercitazione 2: Errori macchina Stabilità numerica

Algoritmi stabili e instabili

Numeri macchina. Alvise Sommariva. Università degli Studi di Padova Dipartimento di Matematica Pura e Applicata. 6 marzo 2019

Francesca Mazzia Dipartimento Interuniversitario di Matematica Università di Bari. MATLAB: analisi degli errori

Analisi degli Errori

Equazione del calore

Quadratura numerica. Alvise Sommariva. Università degli Studi di Padova Dipartimento di Matematica. 25 maggio 2015

Esercizio 1. Errori di cancellazione

I numeri reali e la loro rappresentazione

Metodi iterativi per il calcolo approssimato di autovalori

Sulla propagazione degli errori

Esercitazione 2 Numeri finiti e propagazione dell errore

Minimi quadrati. Ángeles Martínez Calomardo e Alvise Sommariva. 4 dicembre Università degli Studi di Padova

Matlab. Vettori, funzioni matematiche e grafici.

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

Aritmetica di macchina

1) D0MINIO FUNZIONE. Determinare il dominio della funzione f (x) = 4 x 2 4x + 3 x 2 6x + 8 Deve essere. x 2 6x + 5 (x 1) (x 5)

Laboratorio di Matematica Computazionale A.A Lab. 4

Prove d esame Esercizi con Matlab

Minimi quadrati in Matlab

Matlab. Vettori, funzioni matematiche e grafici.

Calcolo Numerico Laurea di I livello in Ingegneria Elettronica ed Ingegneria delle Comunicazioni

Università degli Studi di Verona

Sulla propagazione degli errori

n! n n. n=1 an = L [0, + ] Se L = 1 il criterio non dà una risposta e la serie potrebbe sia convergere che divergere. 2 n2. n 1

SULLA PROPAGAZIONE DEGLI ERRORI

Esercitazione 1: Errori macchina

1 n 1. n + 1. n=1 N+1. n=1. n=1 N N + 1.

Successioni numeriche (II)

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili Programma gnuplot

Soluzione di Equazioni non lineari

Analisi degli errori

Laboratorio di Matematica Computazionale A.A Lab. 4

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

Esercitazione 4. Prima parte. La definizione che segue è una realizzazione del metodo ad un punto definito dalla funzione h. 1

Matlab. Prime nozioni.

Cause di errore. Analisi dell errore. Cause di errore nel calcolo di un espressione razionale. Errore inerente. Esempio

ISTRUZIONI PER LA CONSEGNA DEI FILE MATLAB

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

SCILAB: Analisi degli errori

Numeri di macchina. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Laboratorio di Calcolo Numerico Laboratorio 7: Quadratura numerica

ANALISI MATEMATICA 1 Commissione F. Albertini, V. Casarino e M. Motta Ingegneria Gestionale, Meccanica, Meccatronica, Vicenza

Numeri floating point

aprile 2007 dicembre 2000 Metodi iterativi Metodi iterativi dell equazione equazione f(x)=0 per l approssimazione l

Successioni e serie di funzioni / Esercizi svolti

Serie di funzioni: esercizi svolti

PROVA PRATICA di CALCOLO NUMERICO Prof. S. De Marchi Verona, 19 dicembre 2006

Laboratorio di Calcolo Numerico - Corso di Laurea in Matematica Appello d esame del 19/06/2012

Laboratorio di Calcolo Numerico Laboratorio 2: Algoritmi Stabili

Metodi iterativi per equazioni nonlineari.

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

SUCCESSIONI E SERIE NUMERICHE E DI FUNZIONI

1 Successioni di funzioni

Laboratorio di Calcolo Numerico Approssimazione ai minimi quadrati

Quadratura numerica. Alvise Sommariva. Università degli Studi di Padova Dipartimento di Matematica Pura e Applicata. 2 maggio 2012

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

Polinomio di Taylor.

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

Esercitazione 4. Prima parte. v($ + 1) = g(v($))

Lezione 5, 5/11/2014

METODI NUMERICI - II canale (A.A )

Analisi Matematica I per Ingegneria Gestionale, a.a Scritto del quarto appello, 12 giugno 2017 Testi 1. n a + n 2a n 4 log(1 + 1/n 2 )

Esercitazioni di Calcolo Numerico 09-16/03/2009, Laboratorio 1

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

(File scaricato da lim. x 1. x + ***

Informatica Applicata al Suono Tutorial Matlab

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

CALCOLO NUMERICO. Aritmetica di macchina e analisi degli errori

Esercizi di Laboratorio del corso di Analisi Numerica 1

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

Università di Pisa - Corso di Laurea in Informatica Analisi Matematica A. Pisa, 13 luglio 2017

Esame di Calcolo Numerico per Informatica A.A. 2010/11: testo soluzioni Proff. S. De Marchi e M. R. Russo 12 luglio 2011

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

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

Serie trigonometriche e di Fourier Ci occuperemo di serie le cui ridotte N-esime sono polinomi trigonometrici di grado (o ordine) N:

Corso di Calcolo Numerico

Corsi di Laurea in Ingegneria Elettronica e Telecomunicazioni.

Esercitazione 3. Prima parte

Interpolazione polinomiale.

Esame del 24 Giugno Per lo svolgimento di questa prova è concesso un tempo massimo di tre ore. (4x 1) log(x x 2 ) dx

Problema numerico. Relazione funzionale chiara e non ambigua tra dati iniziali e la soluzione. Dati iniziali e soluzione sono due vettori finiti

Compito n. 1 (Gennaio 2013)

Transcript:

Stabilità : radici secondo grado Dato x 2 + 2px q, con p 2 + q 0 eseguiamo un primo algoritmo Matlab che valuta la radice via: y = p + p 2 + q. (1) p 2 + q 0 implica radici reali. Valutiamo radice con un secondo algoritmo stabile via razionalizzazione di (1): y = p + p 2 + q = ( p + p 2 + q)(p + p 2 + q) (p + p 2 + q) q = (p + p 2 + q) (2) Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 1/ 20

Stabilità : radici secondo grado Dato x 2 + 2px q, con p 2 + q 0 eseguiamo un primo algoritmo Matlab che valuta la radice via: y = p + p 2 + q. (1) p 2 + q 0 implica radici reali. Potenzialmente instabile per p q a causa della sottrazione tra p e p 2 + q (cancellazione). Valutiamo radice con un secondo algoritmo stabile via razionalizzazione di (1): y = p + p 2 + q = ( p + p 2 + q)(p + p 2 + q) (p + p 2 + q) q = (p + p 2 + q) (2) Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 1/ 20

Codice complessita : algoritmo 1 Salviamo il seguente codice in radicesecgrado.m. p=1000; q=0.018000000081; s o l =0.9 10ˆ( 5); % ALGORITMO 1 s=p ˆ2; t=s+q ; i f t >=0 u=sqrt ( t ) ; e l s e f p r i n t f ( \n \ t [ RADICI COMPLESSE] ) ; end s1= p+u ; Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 2/ 20

Codice complessita : algoritmo 2 % ALGORITMO 2 s=p ˆ2; t=s+q ; i f t >=0 u=sqrt ( t ) ; e l s e f p r i n t f ( \n \ t [ RADICI COMPLESSE] ) ; end v=p+u ; t1=q/v ; Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 3/ 20

Codice complessita : stampa risultati f p r i n t f ( \n \ t [ALG. 1 ] : %10.19 f, s1 ) ; f p r i n t f ( \n \ t [ALG. 2 ] : %10.19 f, t1 ) ; i f length ( s o l ) > 0 & ( s o l = 0) r e rr1 =abs ( s1 s o l )/ abs ( s ol ) ; r e rr2=abs ( t1 s o l )/ abs ( s o l ) ; f p r i n t f ( \ n \t [REL.ERR.ALG. 1 ] : %2.2e, r e r r1 ) ; f p r i n t f ( \ n \t [REL.ERR.ALG. 2 ] : %2.2e, r e r r2 ) ; end Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 4/ 20

Test. Come previsto, il secondo algoritmo si comporta notevolmente meglio del primo, che compie un errore relativo dell ordine di circa 10 9. Infatti: >> radicesecgrado >> [ALG. 1 ] [ 1 ] : 0.0000089999999772772 [ALG. 2 ] [ 1 ] : 0.0000090000000000000 [REL.ERR. ] [ ALG. 1 ] : 2.52 e 009 [REL.ERR. ] [ ALG. 2 ] : 0.00 e+000 Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 5/ 20

Calcolo π Eseguiamo un codice Matlab che valuti le successioni {u n }, {z n }, definite rispettivamente come s 1 = 1, s 2 = 1 + 1 4 u 1 = 1, u 2 = 1 + 1 4 s n+1 = s n + 1 (n+1) 2 u n+1 = 6s n+1 e { z1 = 1, z 2 = 2 z n+1 = 2 n 1 2 1 1 4 1 n zn 2 che teoricamente convergono a π. (3) Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 6/ 20

Calcolo π Implementiamo poi la successione, diciamo {y n }, che si ottiene razionalizzando (3), cioè moltiplicando numeratore e denominatore di z n+1 = 2 n 1 2 1 1 4 1 n zn 2 per 1 + 1 4 1 n z 2 n e calcoliamo u m, z m e y m per m = 2,3,...,40 (che teoricamente dovrebbero approssimare π). Infine disegniamo in un unico grafico l andamento dell errore relativo di u n, z n e y n rispetto a π aiutandoci con l help di Matlab relativo al comando semilogy. Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 7/ 20

Calcolo π: metodo 1 In seguito scriviamo un implementazione di quanto richiesto commentando i risultati. Si salvi in un file pigreco.m il codice % SEQUENZE CONVERGENTI PI GRECO. % METODO 1. s (1)=1; u(1)=1; s (2)=1.25; u(2)= s ( 2); f or n=2:40 s (n+1)=s (n)+(n+1)ˆ( 2); u(n+1)= sqrt (6 s (n+1)); f p r i n t f ( \ n \t [SEQ. 1 ] [ INDEX ] : %3.0 f, n ) ; f p r i n t f ( [REL.ERR ] : %2.2e, abs (u(n+1) pi )/ pi ) ; end r e l e r r u=abs (u pi )/ pi ; f p r i n t f ( \n ) ; Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 8/ 20

Calcolo π: metodo 2 % METODO 2. format long z (1)=1; z (2)=2; f or n=2:40 c=(4ˆ(1 n )) ( z (n ))ˆ2; i n n e r s q r t=sqrt (1 c ) ; z (n+1)=(2ˆ(n 0.5)) sqrt ( 1 i n n e r s q r t ) ; f p r i n t f ( \ n \t [SEQ. 2 ] [N] : %3.0 f, n ) ; f p r i n t f ( [REL.ERR ] : %2.2e, abs ( z (n+1) pi )/ pi ) ; end r e l e r r z=abs (z pi )/ pi ; f p r i n t f ( \n ) ; Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 9/ 20

Calcolo π: metodo 3 % METODO 3. y (1)=1; y (2)=2; f or n=2:40 num=(2ˆ(1/2)) abs ( y(n ) ) ; c=(4ˆ(1 n )) ( z (n ))ˆ2; i n n e r s q r t=sqrt (1 c ) ; den=sqrt ( 1+i n n e r s q r t ) ; y (n+1)=num/den ; r e l e r r 3= f p r i n t f ( \ n \t [SEQ. 3 ] [N] : %3.0 f,n ) ; f p r i n t f ( [REL.ERR]:%2.2 e, abs ( y (n+1) pi )/ pi ) ; end r e l e r r y=abs (y pi )/ pi ; Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 10/ 20

Calcolo π: plots % SEMILOGY PLOT. hold on ; semilogy (1: length (u ), r e l e r r u, k. ) ; semilogy (1: length ( z ), r e l e r r z, m+ ); semilogy (1: length ( y ), r e l e r r y, ro ) ; hold o f f ; Di seguito digitiamo sulla shell di Matlab/Octave >> pigreco Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 11/ 20

Plot risultati 10 0 10 5 10 10 10 15 0 5 10 15 20 25 30 35 40 45 Figura: Grafico che illustra le 3 successioni, rappresentate rispettivamente da., + e o. Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 12/ 20

Discussione risultati. La prima successione converge molto lentamente a π, la seconda diverge mentre la terza converge velocemente a π. Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 13/ 20

Discussione risultati. La prima successione converge molto lentamente a π, la seconda diverge mentre la terza converge velocemente a π. Per alcuni valori {z n } e {y n } coincidono per alcune iterazioni per poi rispettivamente divergere e convergere a π. Tutto ciò è naturale poichè le due sequenze sono analiticamente (ma non numericamente) equivalenti. Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 13/ 20

Discussione risultati. La prima successione converge molto lentamente a π, la seconda diverge mentre la terza converge velocemente a π. Per alcuni valori {z n } e {y n } coincidono per alcune iterazioni per poi rispettivamente divergere e convergere a π. Tutto ciò è naturale poichè le due sequenze sono analiticamente (ma non numericamente) equivalenti. Dal grafico dell errore relativo, la terza successione, dopo aver raggiunto errori relativi prossimi alla precisione di macchina, si assesta ad un errore relativo di circa 10 15 (probabilmente per questioni di arrotondamento). Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 13/ 20

Una successione ricorrente. Consideriamo la successione {I n } definita da 1 I n = e 1 x n e x dx (4) n = 0: I 0 = e 1 1 0 ex dx = e 1 (e 1 1). 0 Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 14/ 20

Una successione ricorrente. Consideriamo la successione {I n } definita da 1 I n = e 1 x n e x dx (4) n = 0: I 0 = e 1 1 0 ex dx = e 1 (e 1 1). integrando per parti ( 1 I n+1 = e 1 x n+1 e x 1 0 (n + 1) 0 = 1 (n + 1)I n. 0 ) x n e x dx Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 14/ 20

Una successione ricorrente. Consideriamo la successione {I n } definita da 1 I n = e 1 x n e x dx (4) n = 0: I 0 = e 1 1 0 ex dx = e 1 (e 1 1). integrando per parti ( 1 I n+1 = e 1 x n+1 e x 1 0 (n + 1) 0 = 1 (n + 1)I n. 0 ) x n e x dx I n > 0, decrescente e si prova che I n 0 come 1/n. Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 14/ 20

Problema. Calcoliamo I n per n = 1,...,99: mediante la successione in avanti 1 I n = e 1 x n e x dx,i 0 = e 1 (e 1 1). (5) 0 Si noti che se I n+1 = 1 (n + 1)I n allora I n = (1 I n+1 )/(n + 1) e quindi I n 1 = (1 I n )/n. Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 15/ 20

Problema. Calcoliamo I n per n = 1,...,99: mediante la successione in avanti 1 I n = e 1 x n e x dx,i 0 = e 1 (e 1 1). (5) mediante la successione all indietro { t1000 = 0 t n 1 = 1 tn n 0 Si noti che se I n+1 = 1 (n + 1)I n allora I n = (1 I n+1 )/(n + 1) e quindi I n 1 = (1 I n )/n. Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 15/ 20

Successioni ricorrente in Matlab Scriviamo il codice in un file succricorrente.m. % SUCCESSIONE RICORRENTE. % SUCCESSIONE s n. s (1)= exp ( 1); f or n=1:99 s (n+1)=1 (n+1) s (n ) ; end % SUCCESSIONE t n. m=500; M=2 m; t=zeros (M, 1 ) ; % INIZIALIZZAZIONE t. f or n=m: 1:2 j=n 1; t ( j )=(1 t (n))/ n ; end Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 16/ 20

Successioni ricorrente in Matlab % PLOT SEMI LOGARITMICO. subplot (2,1,1) semilogy (1: length ( s ), abs ( s ), k ); hold on ; semilogy (1: length ( s ), abs ( t (1: length ( s ))), m ); hold o f f ; Di seguito digitiamo sulla shell di Matlab/Octave >> s u c c r i c o r r e n t e Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 17/ 20

Plot risultati 10 160 10 140 10 120 10 100 10 80 10 60 10 40 10 20 10 0 10 20 0 10 20 30 40 50 60 70 80 90 100 Figura: Grafico che illustra i valori assoluti assunti dalla successione in avanti (in nero) e all indietro (in rosa magenta). Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 18/ 20

Commento successione ricorrente. La successione in avanti amplifica gli errori. Infatti se I 0 = I 0 + ǫ allora I n+1 = 1 (n + 1)I n I 1 I 2 I 3 I 4 = 1 I 0 = 1 (I 0 + ǫ) = I 1 ǫ = 1 2I 1 = 1 2(I 1 ǫ) = I 2 + 2 1 ǫ = 1 3I 2 = 1 3(I 2 + 2ǫ) = I 3 3 2 1 ǫ = 1 4I 3 = 1 4(I 3 + 3ǫ) = I 4 4 3 2 1 ǫ e in generale I n = I n + ( 1) n n! ǫ. con il termine n! ǫ che tende velocemente a + al crescere di n. Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 19/ 20

Commento successione ricorrente. La successione all indietro smorza gli errori. Infatti, se I m = I m + ǫ e allora I n 1 = (1 I n )/n I m 1 = (1 I m )/m = (1 (I m + ǫ))/m = I m ǫ/m I m 2 = (1 (I m 1 + ǫ/m))/(m 1) = I m 2 ǫ/((m 1) m)... k I m k =... = I m k ǫ/ (m s) con il termine ǫ/ k crescere di k. s=0 s=0 (m s) che tende velocemente a 0 al Alvise Sommariva Matlab: complessità e stabilità degli algoritmi. 20/ 20