PDA

Visualizza la versione completa : [C] Calcolo della radice con Newton-Raphson


MicheleVicenza
22-10-2006, 20:44
Devo scrivere un semplice programma C in cui applico il metodo di Newton-Raphson per il calcolo della radice quadrata.
Devo usare un solo ciclo While o For senza chiamare funzioni.
Il metodo di Newton-Raphson funziona in questo modo:
F0 = 1,
F1=(F0+x/F0)/2,...,F(i+1)=(Fi+x/Fi)/2

In pratica il valore di Fi si avvicina sempre di piu alla radice quadrata di x

Ho provato a scrivere il programma cosi ma non viene:

#include <stdio.h>

int main (){

int x;
int n; /* numero iterazioni che voglio eseguire */
scanf("%d",&x);
scanf("%d",&n);

int i=0; /* contatore */
float f; /* variabile per contenere il risultato */
while (i<n){

if (i==0)
f=1;

else f=((i-1)+(x/(i-1)))/2;

printf("%f\n",f);
++i;

}
return 0;
}

Che correzioni potrei attuare?

oregon
22-10-2006, 21:58
In neretto le modifiche


Originariamente inviato da MicheleVicenza



#include <stdio.h>
int main ()
{
float x; /* il valore dell'argomento puo' essere con la virgola */
int n; /* numero iterazioni che voglio eseguire */
scanf("%f",&x);; /* il valore dell'argomento puo' essere con la virgola */
scanf("%d",&n);

int i=0; /* contatore */
float f; /* variabile per contenere il risultato */
while (i<n)
{
if (i==0)
f=1;
else
f=(f+x/f)/2; /* non utilizzare i ma il valore di f(i) ... */
printf("%f\n",f);
++i;
}

return 0;
}

MicheleVicenza
23-10-2006, 21:21
Ti ringrazio!!! :unz:

n0t
23-10-2006, 23:38
ti voglio dire una cosa, un consiglio, quando fai un programma non classificarlo fra quelli che una volta fatti, non si guardano pił, nel futuro ti potrebbe servire e vedere delle variabili "f, i, etc.. " non aiuta a capire il funzionamente a distanza di tempo.. quindi il consiglio e dichiarare variabili con nomi pił "umani" :)

Loading