Hallo zusammen.
Ich weiß, dass hier im Forum schon ein paar Newtonsche Näherungsverfahren existieren. Meine Frage bezieht sich aber viel eher auf eine Schleife.
Und zwar möchte ich, nachdem ich mit der Formel Xneu = Xstart - (f(x) / f'(x)) den Xneu-Wert berechnet habe, diesen mit dem Xstart-Wert vergleichen. Sollten die Werte sich unterscheiden, soll Xneu als Xstart verwendet werden und der Vorgang wiederholt werden, bis Xneu = Xstart ist.
Ich glaube mein Problem ist, dass ich zum Schluss ja Xneu = Xstart setzten möchte um damit weiter zu rechnen. Jedoch setzte ich damit gleichzeitig die Bedingung meiner While-Schleife auf false und breche sie ab.
Ich komme einfach nicht drauf wie ich das am besten löse und habs auch mit der SuFu nicht wirklich lösen können, weil es mir unglaublich schwer fällt anhand fremder Codes etwas zu verstehen.
Wäre sehr nett wenn mir jemand auf die Sprünge helfen könnte.
Hier mein missratener Ansatz:
Ich weiß, dass hier im Forum schon ein paar Newtonsche Näherungsverfahren existieren. Meine Frage bezieht sich aber viel eher auf eine Schleife.
Und zwar möchte ich, nachdem ich mit der Formel Xneu = Xstart - (f(x) / f'(x)) den Xneu-Wert berechnet habe, diesen mit dem Xstart-Wert vergleichen. Sollten die Werte sich unterscheiden, soll Xneu als Xstart verwendet werden und der Vorgang wiederholt werden, bis Xneu = Xstart ist.
Ich glaube mein Problem ist, dass ich zum Schluss ja Xneu = Xstart setzten möchte um damit weiter zu rechnen. Jedoch setzte ich damit gleichzeitig die Bedingung meiner While-Schleife auf false und breche sie ab.
Ich komme einfach nicht drauf wie ich das am besten löse und habs auch mit der SuFu nicht wirklich lösen können, weil es mir unglaublich schwer fällt anhand fremder Codes etwas zu verstehen.
Wäre sehr nett wenn mir jemand auf die Sprünge helfen könnte.
Hier mein missratener Ansatz:
Java:
Xstart = nullstelleraten(A,Aex,B,Bex,C,Cex,D);
//System.out.printf("x = %f\n", x);
while(Xstart!=Xneu)
{
f1 = f1(A,Aex,B,Bex,C,Cex,D,Xstart); //berechnet f(x) mit Xstart
//System.out.printf("f1= %f\n",f1);
f2 = f2(Anew,AexNew,Bnew,BexNew,Cnew,CexNew,Xstart); //berechnet f'(x) mit Xstart
//System.out.printf("f2= %f\n",f2);
Xneu =Xstart-(f1/f2);
if(Xneu==Xstart)
{
System.out.printf("Die Nullstelle ist: %10.5f", Xneu);
}
else
{
Xstart=Xneu;
}
}