1 / 10

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

Esercitazione 5 Esercizio 3 (radice quadrata con metodo di Newton). Autore: Cristiano Cavo S161894 I Corso. 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: R n = (R n-1 + x / R n-1 ) / 2

judah-weber
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Esercitazione 5Esercizio 3 (radice quadrata con metodo di Newton) Autore: Cristiano Cavo S161894 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 / 1.5) / 2 = 1.416 R3 = (1.416 + 2 / 1.416) / 2 = 1.4142

  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 0.001 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"); }");

More Related