La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Esercitazione 5 Esercizio 3 (radice quadrata con metodo di Newton)

Presentazioni simili


Presentazione sul tema: "Esercitazione 5 Esercizio 3 (radice quadrata con metodo di Newton)"— Transcript della presentazione:

1 Esercitazione 5 Esercizio 3 (radice quadrata con metodo di Newton)
Autore: Cristiano Cavo S I Corso

2 Esercizio 3 (radice quadrata con metodo di Newton)
Il problema chiede di utilizzare l’algoritmo di Newton per il calcolo della radice quadrata di x: Rn = (Rn-1 + x / Rn-1) / 2 avendo posto R0 = x dove Rn è il valore della radice all'iterazione n-esima e Rn-1 è quello all'iterazione n-1. Il metodo proposto da Newton è iterativo.

3 Esercizio 3 (radice quadrata con metodo di Newton)
Tradotto in algoritmo: Per un certo numero di volte rn = (rn_meno1 + x/rn_meno1) / 2 /* devo predisporre per la prossima iterazione */ rn_meno1 = rn

4 Esercizio 3 (radice quadrata con metodo di Newton)
Il ciclo (WHILE) deve essere effettuato fintanto che si verifica una certa condizione. Per capire qual è questa condizione, valuto come evolve l’algoritmo di Newton facendo un esempio: R0 = 2 R1 = (2 + 2 / 2) / 2 = 1.5 R2 = ( / 1.5) / 2 = R3 = ( / 1.416) / 2 =

5 Esercizio 3 (radice quadrata con metodo di Newton)
Si deduce che Rn si avvicina asintotticamente al valore vero. Un criterio di terminazione in questo caso è di vedere se tra una iterazione e quella successiva il valore è cambiato di poco: devo quindi calcolare la differenza tra Rn ed Rn-1 e controllare se il valore ottenuto è minore di una soglia (conviene calcolare la differenza in valore assoluto, per tener conto dei numeri < 1).

6 Esercizio 3 (radice quadrata con metodo di Newton)
Finché (diff > SOGLIA) rn = (rn_meno1 + x/rn_meno1) / 2 diff = |rn – rn_meno1| rn_meno1 = rn Adesso aggiungo le inizializzazioni: rn_meno1 è fissata dall’alg. Di Newton (= x) diff la devo scegliere io, in modo che al primo passaggio si entri nel ciclo.

7 Esercizio 3 (radice quadrata con metodo di Newton)
Se prima dell’istruzione WHILE impostiamo: diff = 2 * SOGLIA possiamo essere sicuri che la condizione di partenza è una condizione valida. Ora ci si può occupare del resto del programma.

8 Esercizio 3 (radice quadrata con metodo di Newton)
Traduzione in linguaggio C. /*Definizione librerie e costanti*/ #include <stdio.h> #include <math.h> #define SOGLIA main() { double x, rn, rn_meno1, diff, r; system("CLS");

9 Esercizio 3 (radice quadrata con metodo di Newton)
Traduzione in linguaggio C. printf("Calcolo della radice di un numero.\n\nInserisci il numero x di cui calcolarne la radice:\n"); scanf("%lf", &x); rn_meno1=x; diff=2*SOGLIA;

10 Esercizio 3 (radice quadrata con metodo di Newton)
Traduzione in linguaggio C. while(diff>SOGLIA) { rn=(rn_meno1+x/rn_meno1)/2; diff=fabs(rn-rn_meno1); rn_meno1=rn; } r=sqrt(x); printf("\nLa radice di x equivale a: %f\n\nIl valore di x calcolato con sqrt è: %f\n\n\n\n", rn, r); system("PAUSE"); }");


Scaricare ppt "Esercitazione 5 Esercizio 3 (radice quadrata con metodo di Newton)"

Presentazioni simili


Annunci Google