Estratto del documento

Teoria calcolo numerico

Lorenzo Quaranta
VR455934
18 maggio 2023

Condizionamento in generale

Per certi problemi è possibile che un piccolo errore nell’input risulta in un errore molto più grande nell’output. Quando questo succede si dice che il problema è mal condizionato. Un’altra caratteristica di un problema mal condizionato è che l’errore nella risposta è molto più grande del residuo. Quando gli errori non sono molto amplificati, cioè un piccolo errore nell’input risulta in un errore nell’output solo leggermente più grande, si dice che il problema è ben condizionato.

-r := f (a) - f (a) Residuo dove a è il candidato per la soluzione, mentre a è la soluzione esatta; la quantità r dovrebbe essere 0 se a fosse la soluzione.

Dal Teorema della Media abbiamo che -f (a) - f (a) = f (c) - a per un punto c fra a e a. Risulta che 1 - - a a = f (a) - f (a) / f (c)

Ovvero errore = fattore di espansione * residuo. Se il fattore di espansione dell’errore è grande vuol dire che un piccolo residuo può risultare in un errore molto più grande. In questo caso il problema sarà mal condizionato.

Supponiamo che vogliamo calcolare la funzione y = F (x) per un certo input x = a (e output y) ma facciamo un piccolo errore nell’input cioè usiamo a + h invece di a. Secondo il Teorema della Media - F (a + h) - F (a) = F (c) (a + h - a) dove c è fra a e a+h. Se il fattore di espansione dell’errore F (c) è grande significa che un piccolo errore nell’input può essere amplificato in un errore molto più grande nell’output.

Metodo di bisezione

Il Teorema di Bolzano garantisce l’esistenza di uno zero: se f(x) è continua sull’intervallo [a, b] e f (a) e f (b) hanno segni diversi, ovvero f (a)f (b) < 0, allora esiste almeno un punto z (a, b) tale che f (z) = 0.

Input: la funzione f (x), un intervallo [a, b] tale che f (a)f (b) < 0 e una tolleranza tol per decidere quando fermarci. Siano a = a, b = b e n = 1.

  • Mentre a > tol calcoliamo c = (a + b) / 2
  • Se f (an)f (cn) < 0 allora an+1 = an e bn+1 = cn.
  • Se invece f (cn)f (bn) < 0 allora an+1 = cn e bn+1 = bn.
  • n = n + 1

Potremo ritornare c := (a + b) / 2 per la nostra stima. Avremo che z ∈ (an, bn) e quindi l’errore sarà dimezzato per ogni iterazione. Grazie alla stima dell’errore possiamo analizzare quante iterazioni siano necessarie per avere un errore sotto una certa tolleranza. Dato ε l’errore che vogliamo raggiungere, cerchiamo n tale che (b - a) / (2n) ≤ ε ⇔ n + 1 ≥ (log(b - a) - log(ε)) / log(2).

Vantaggi:

  • È molto semplice
  • Dipende solo dal poter calcolare il segno
  • Converge sempre se f (a)f (b) < 0

Svantaggi:

  • Non trova zeri doppi
  • Non trova zeri complessi
  • Se confrontato ad altri metodi, è lento

Iterazioni di punto fisso

x = z è uno zero di f (x) se e solo se z ha la proprietà g(z) = z. Si dice che x = z è un punto fisso di g(x). Geometricamente, un punto fisso è l’intersezione di y = g(x) e y = x. Una volta messa nella forma di punto fisso possiamo provare a trovare uno zero: scegliamo x0 e creiamo la successione xn+1 := g(xn) per n = 0, 1, 2...

Se l’iterazione converge, che tipo di punto è questo limite? Sia p = lim xn che assumiamo esista. Allora se g(x) è continua p = lim xn = lim xn+1 = lim g(xn) = g(lim xn) = g(p). In altre parole, se un’iterazione di punto fisso converge, converge a un punto fisso della funzione di integrazione g(x). (NON converge sempre).

- Studiamo l’errore en := xn - p dove xn = p è il punto fisso.

  • en+1 = xn+1 - p = g(xn) - p = g(xn) - g(p)
  • = g'(cn)(xn - p) Teorema della Media
  • = g'(cn) × en

In altre parole, l’errore è amplificato se |g'(cn)| > 1 e diminuito se |g'(cn)| < 1. c è fra x e p e allora, nella zona di p g'(c) ≈ g'(p). Infatti se lim xn = p allora lim g'(cn) = g'(p) e tutto dipende da |g'(p)|.

Se |g'(p)| < 1 diciamo che x = p è un punto di attrazione (convergenza), in caso contrario avremo un punto di repulsione (divergenza).

È possibile che |g'(p)| = 1, in questo caso potrebbe convergere o divergere; è richiesta un’analisi dettagliata caso per caso.

Confronto punto fisso e bisezione

Per bisezione una soprastima per l’errore è dimezzato ad ogni iterazione, mentre per punto fisso l’errore è moltiplicato del fattore |g'(z)|. Se quest’ultima è minore di 1/2 vuol dire che punto fisso è più veloce di bisezione, in caso contrario sarà meno veloce. C’è un metodo che è generalmente più veloce di tutti e due.

Metodo delle tangenti - Metodo di Newton

L’idea è molto geometrica, cominciamo con una stima iniziale dello zero x0 e troviamo un miglioramento x1 sostituendo la funzione dalla sua tangente a x = x0. La formula è:

y = f(x0) + f'(x0)(x - x0)

Il miglioramento x1 è lo zero della tangente, da cui:

  • 0 = f(x0) + f'(x0)(x - x0)
  • -f(x0) = f'(x0)(x - x0)
  • x = x0 - f(x0) / f'(x0)

In generale avremmo quindi:

  • xn+1 = xn - f(xn) / f'(xn) per n = 0, 1, 2...

Per capire la convergenza basta calcolare g'(z) dove x = z è uno zero di f(x), cioè, f(z) = 0. Assumiamo per ora che f''(z) = 0 non potendo dividere per 0.

Calcoliamo per g(x) = x - f(x) / f'(x):

  • g(x) = x - f(x) / f'(x)
  • g'(x) = 1 - f'(x)f''(x) / (f'(x))2 = 0

Quindi il fattore di espansione dell’errore g'(cn) ≈ g'(z) = 0 è molto piccolo e il più vicino è s a z. Per punto fisso abbiamo usato il Teorema della Media; notiamo che è un caso speciale di uno sviluppo di Taylor con errore:

  • f(x) = f(a) + f'(a)(x - a) + f''(a)(x - a)2/2 + ...

Usando quello di grado 1 con a = z:

  • en+1 = xn+1 - z = g(xn) - z = g(xn) - g(z)
  • = g'(z)(xn - z) + g''(cn)(xn - z)2/2
  • = g'(z)(xn - z) + (xn - z)2/2 g''(cn)
  • = en2/2 g''(cn)

Nel caso che lim xn = z, lim cn = z. Quindi il comportamento dell’errore è come en+1 = Cen2 convergenza quadratica. Un comportamento come quello di punto fisso è detto convergenza lineare, ovvero |C|en+1 = Cen con |C| < 1.

Attenzione:

  • Se |C| > 1 si ha la divergenza anziché la convergenza
  • Se |en| > 1 l’errore crescerà

Se invece f'(z) = 0 si può fattorizzare f(x) = (x - z)h(x).

Se anche f''(z) = 0 vuol dire che x = z è almeno uno zero doppio e f(x) = (x - z)2h(x).

In generale x = z è uno zero di ordine r se:

  • f(x) = (x - z)rh(x) con h(z) ≠ 0

Per la convergenza calcoliamo g'(z). Per r ≥ 1, |g'(z)| < 1 ⇔ r = 1. Quindi, per uno zero con molteplicità 2 c’è solo convergenza lineare. Ricordiamo che gli zeri doppi sono anche mal condizionati e Newton è meno veloce; se sappiamo la molteplicità di r allora la media delle r stime è una stima buona dello zero. Ho bisogno che x0 sia vicino sufficientemente allo zero, cioè che x0 sia nella zona di attrazione dello zero. Z = {x ∈ C : lim xn = z} zona di attrazione.

C’è un algoritmo speciale per il caso p(x) = Σk=0nakxk. Per un polinomio l’iterazione è sempre:

  • xn+1 = xn - p(xn) / p'(xn)

C’è un algoritmo efficiente per valutare p(x) a un punto generale x = z (Newton-Horner).

Condizionamento degli zeri di un polinomio

Per il polinomio p(x) = Σk=0nakxk, l’input è il vettore (a0 ... an) e l’output uno degli zeri z = zj.

Per analizzare il condizionamento di uno zero vogliamo calcolare il suo fattore di espansione dell’errore per un errore nel coefficiente dell’input ak. Per gradi superiori al 5 non esiste una formula esplicita, possiamo calcolarne la derivata implicita:

∂z/∂ak = -zk/p'(z)

che è il fattore di espansione dell’errore nel coefficiente di input ak. Quando uno di questi fattori è grande vuol dire che lo zero è mal condizionato.

Un difetto del Metodo di Newton è che è necessario sapere anche la derivata della funzione, che potrebbe non essere possibile calcolare, o comunque molto difficile. Il Metodo delle Secanti sostituisce la tangente dalla secante fra gli ultimi due punti.

Metodo delle secanti

Per trovare il nuovo punto xn+1 usiamo i due precedenti xn e xn-1. La secante è la retta fra i due punti (xn, f(xn)) e (xn-1, f(xn-1)):

y = f(xn-1) + m(x - xn-1) dove m è il coefficiente angolare della retta.

m = (f(xn) - f(xn-1)) / (xn - xn-1)

Troviamo lo zero di questa retta:

xn+1 = xn - f(xn) / m

che è proprio come Newton, ma con la derivata f'(xn) sostituita dal coefficiente angolare m della secante.

Ordine di convergenza

Per punto fisso l’errore ha il comportamento:

|en+1| ≈ C |en|

Mentre per Newton:

|en+1| ≈ C |en|2

In generale, se l’errore ha il comportamento:

|en+1| ≈ C |en|p

si dice che la convergenza è di ordine p.

Norme di matrici

Consideriamo il sistema lineare Ax = b dove A ∈ Rn×n e b ∈ Rn. Sia x candidato per la soluzione. Calcoliamo il residuo r := b - Ax. Notiamo che, dato il candidato, il residuo si può sempre calcolare. Usiamo il residuo per capire quanto grande può essere l’errore e = x - x dove x è la soluzione esatta.

r = b - Ax = Ax - Ax = A(x - x)

e = x - x = A-1r

Essendo un vettore, usiamo le norme:

  • ||x||2 norma euclidea
  • ||x||1 := Σ|xi| norma uno
  • ||x|| := max |xi| norma infinito

Tutte e tre fanno parte di una famiglia generale di norme:

||x||p := (Σ|xi|p)1/p dove p ∈ R, p ≥ 1.

Da notare che p = ∞ da ||x|| = max |xi| = lim ||x||p quando p → ∞.

Quindi abbiamo che:

||x||1 ≤ ||x||p ≤ ||x|| ≤ n1/p ||x||p

Visto che limp→∞ n1/p = 1, allora:

||x|| = max |xi|.

Per determinare quanto più grande potrebbe essere ||y|| in confronto a ||x|| scriviamo:

||y|| / ||x||.

Anteprima
Vedrai una selezione di 7 pagine su 29
Esame Calcolo numerico I Pag. 1 Esame Calcolo numerico I Pag. 2
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Esame Calcolo numerico I Pag. 6
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Esame Calcolo numerico I Pag. 11
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Esame Calcolo numerico I Pag. 16
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Esame Calcolo numerico I Pag. 21
Anteprima di 7 pagg. su 29.
Scarica il documento per vederlo tutto.
Esame Calcolo numerico I Pag. 26
1 su 29
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher 40lorenzo40 di informazioni apprese con la frequenza delle lezioni di Calcolo numerico i e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Verona o del prof Caliari Marco.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community