La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Esercitazione 5 Esercizio 3 (radice quadrata con metodo di Newton) Autore: Cristiano Cavo S161894 I Corso."— 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 lalgoritmo di Newton per il calcolo della radice quadrata di x: R n = (R n-1 + x / R n-1 ) / 2 avendo posto R 0 = x dove R n è il valore della radice all'iterazione n- esima e R n-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 lalgoritmo di Newton facendo un esempio: R 0 = 2 R 1 = (2 + 2 / 2) / 2 = 1.5 R 2 = ( / 1.5) / 2 = R 3 = ( / 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 dallalg. 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 dellistruzione 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 #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) Autore: Cristiano Cavo S161894 I Corso."

Presentazioni simili


Annunci Google