25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

2.3 Istruzioni di ripetizione 121<br />

DO n=1,nmax<br />

somma = somma+(base)**i<br />

PRINT*, n, somma<br />

IF(somma>=5.0) THEN<br />

converge = .TRUE.<br />

EXIT<br />

END IF<br />

END DO<br />

IF(converge) THEN<br />

PRINT*, "Convergenza raggiunta dopo ",n," iterazioni"<br />

ELSE<br />

PRINT*, "Superato il numero massimo di iterazioni"<br />

END IF<br />

STOP<br />

END PROGRAM prova_sum3<br />

Quest’ultima possibilità rappresenta nulla di più che una variante alla soluzione precedente,<br />

non esistendo alcuna differenza sostanziale fra i due tipi di approcci.<br />

<strong>Il</strong> problema di determinare una condizione di arresto per un ciclo a condizione è, in molti<br />

casi, assai critico per il motivo opposto, cioè si può commettere l’errore di arrestare anzitempo<br />

le iterazioni. In questa problematica va riconosciuto che, purtroppo, assai spesso nella pratica<br />

computazionale si è costretti a procedere in modo empirico seguendo criteri pratici il che può<br />

comportare pericoli piuttosto subdoli. Ad esempio è facilmente prevedibile che qualora da un<br />

processo iterativo scaturisse una successione di valori del tipo:<br />

S1 = 1<br />

S2 = 1 + 1<br />

2<br />

S3 = 1 + 1<br />

. . .<br />

2<br />

+ 1<br />

3<br />

Sn = 1 + 1 1<br />

+ . . . +<br />

2 n<br />

la tecnica di controllo adoperata per decidere l’arresto potrebbe essere (incautamente) quella<br />

di verificare che l’n_mo valore della successione sia minore di un dato epsilon. In questo modo<br />

non solo la successione in esame fornirebbe un valore fortemente dipendente dalla accuratezza<br />

richiesta (il valore di ǫ) ma completamente errato visto che la successione in realtà diverge.<br />

E’ d’altronde vero che in situazioni in cui addirittura non vi è convergenza per il problema<br />

iterativo ma solo avvicinamento alla soluzione le tecniche di arresto consentono la ”cattura” di<br />

una utile approssimazione alla soluzione. Questo mostra l’importanza di garantire, se possibile,<br />

a priori la convergenza con considerazioni teoriche e tuttavia la questione della scelta di buoni<br />

criteri di arresto rimane, in molti casi, quantomai aperta.

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

Saved successfully!

Ooh no, something went wrong!