18.01.2015 Views

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

Appunti di Calcolo Numerico - Esercizi e Dispense - Università degli ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4. ZERI DI FUNZIONE<br />

commette approssimando ξ me<strong>di</strong>ante x n . Vale infatti la <strong>di</strong>suguaglianza<br />

|ξ − x n | ≤ m<br />

1 − m |x n − x n−1 |<br />

dove m, come prima, è una maggiorazione <strong>di</strong> |g ′ (x)|.<br />

Proviamo questo risultato, scrivendo l’errore all’iterazione n come ξ − x n = g (ξ) −<br />

g (x n−1 ) Applicando il teorema del valor me<strong>di</strong>o e considerando, come prima, |g ′ (x)| ≤<br />

m < 1 in un intorno del punto fisso, si ha:<br />

|ξ − x n | ≤ m|ξ − x n−1 | (4.1)<br />

Possiamo scrivere ξ − x n−1 nel modo seguente aggiungendo e sottraendo x n :<br />

ξ − x n−1 = ξ − x n + x n − x n−1<br />

ξ − x n−1 = g (ξ) − g (x n−1 ) + x n − x n−1<br />

|ξ − x n−1 | ≤ m|ξ − x n−1 | + |x n − x n−1 |<br />

(1 − m)|ξ − x n−1 | ≤ |x n − x n−1 |<br />

|ξ − x n−1 | ≤ 1<br />

1 − m |x n − x n−1 |<br />

Andando a sostituire questa maggiorazione nella <strong>di</strong>suguaglianza (4.1), si ha<br />

|ξ − x n | ≤ m<br />

1 − m |x n − x n−1 |<br />

Abbiamo una maggiorazione dell’errore che lega l’errore al passo n con il valore assoluto della <strong>di</strong>fferenza<br />

tra due iterazioni successive |x n − x n−1 | (quest’ultima quantità prende il nome <strong>di</strong> scarto).<br />

Generalmente, per vedere se il metodo <strong>di</strong> punto fisso converge al punto fisso entro una certa tolleranza<br />

prestabilita, il controllo da fare è proprio sullo scarto d n = |x n − x n−1 |. Sfruttiamo questo fatto per vedere<br />

come implementare l’algoritmo dello schema <strong>di</strong> punto fisso (sotto forma <strong>di</strong> pseudo-co<strong>di</strong>ce; per i dettagli<br />

sull’implementazione in Fortran si vada a pag. ):<br />

Dati <strong>di</strong> input: x 0 , tol ,i tmax<br />

Dati <strong>di</strong> output: x n soluzione approssimata o messaggio <strong>di</strong> fallimento<br />

1 n ←− 1 contatore delle iterazioni;<br />

2 d n ←− 2tol (una quantità iniziale > tol ) ;<br />

3 Fintantochè n ≤ i tmax e d n > tol<br />

4 incrementa n <strong>di</strong> 1;<br />

5 applicare l’algoritmo <strong>di</strong> punto fisso x n = g (x n−1 ) ;<br />

6 aggiorna d n ;<br />

7 Fine-Fintantochè<br />

8 Se d n ≤ tol allora<br />

9 x n è la soluzione approssimata<br />

10 altrimenti<br />

11 n > i tmax ;<br />

12 il metodo è fallito dopo i tmax iterazioni ;<br />

13 Fine-Se<br />

44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!