R
Reaper
Gast
Hallo will gerade Programm zur Berechnung der Kubikwurzel mithilfe der Näherungsformel von Newton:
yi = (2*y(i-1) + (x/y(i-1)²))/3;
(yi ist der Näherungswert der Kubikwurzel nach dem i-ten Schritt, Man beginnt mit y0 = x/3. Die Iteration soll so lange fortgesetzr werden bis sich yi und yi-1 um weniger als 1.0E-5 unterscheiden)
schreiben, komm aber irgendwie nie zu einem Ergebniss.
Nun anbei mein Programm:
class newton{
static double root3(double x){
double y = x/3;
while(Math.abs(y1 - y < 1.0E-5){ //solange y1 - y < 1.0E-5 gilt rechne zuerst y1 aus und weise dann y = y1 zu
//sodass y1 immer den neuesten Itarationsschritt enthält
y1 = (2*y + (x/y*y))/3;
y = y1;
}
return y1;
}
public static void main(String[] arg){
IO.write("Geben Sie einen Startwert fuer die Naeherungsformel ein: ");
double x = IO.readDouble();
IO.write(root3(x));
}
}
Irgendein grober Fehler muss in meiner Überlegung liegen denn ihr mir hoffentlich sagen könnt
yi = (2*y(i-1) + (x/y(i-1)²))/3;
(yi ist der Näherungswert der Kubikwurzel nach dem i-ten Schritt, Man beginnt mit y0 = x/3. Die Iteration soll so lange fortgesetzr werden bis sich yi und yi-1 um weniger als 1.0E-5 unterscheiden)
schreiben, komm aber irgendwie nie zu einem Ergebniss.
Nun anbei mein Programm:
class newton{
static double root3(double x){
double y = x/3;
while(Math.abs(y1 - y < 1.0E-5){ //solange y1 - y < 1.0E-5 gilt rechne zuerst y1 aus und weise dann y = y1 zu
//sodass y1 immer den neuesten Itarationsschritt enthält
y1 = (2*y + (x/y*y))/3;
y = y1;
}
return y1;
}
public static void main(String[] arg){
IO.write("Geben Sie einen Startwert fuer die Naeherungsformel ein: ");
double x = IO.readDouble();
IO.write(root3(x));
}
}
Irgendein grober Fehler muss in meiner Überlegung liegen denn ihr mir hoffentlich sagen könnt