do-Schleife

GVille

Erfahrenes Mitglied
Code:
double x0;
double x1 = 0;
do
            {
                x0 = x1;
                for (int i = 0; i < (Grad + 1); i++) //f(x) bilden
                {
                    f = f + kff[i] * Math.Pow(x0, (Grad - i));
                }
                for (int i = 0; i < (Grad); i++) //f1(x) bilden
                {
                    f1 = f1 + (Grad - i) * kff[i] * Math.Pow(x0, (Grad - 1 - i));
                }
                x1 = x1 - (f / f1);
                Console.WriteLine(x1); //Wiedergabe von x1
                Console.ReadLine();
            } while (x1 != x0);

Hallo,

irgendwie gibt mir die Console falsche Werte zurück. Nach dem ersten durchlauf sollte -1,5 rauskommen, was es auch tut und bei zweiten durchlauf sollte -1,05 raukommen, aber es kommt -1,607...
Bei jedem Durchlauf soll der Wert von x1 an x0 übergeben werden.
Was habe ich falsch gemacht?

PS: Newtonverfahren
 
Hi

Hat sich das Thema erledigt? Dann ist's ja gut. Für die Nachwelt wäre es nur super, wenn du die Lösung noch liefern würdest.

Wenn nein: Schon mal den Debugger bemüht? Damit kannst du genau prüfen, wann welche Variable welchen Wert hat.
 
Ja es hat sich erledigt. Das passiert mir jedes Mal, dass ich nicht auf die Lösung komme und sobald ich ein Thread gemacht habe, dass mir die Lösung in den Kopf kommt :D

Also:

Man musste die Variblen f und f1 nicht ausserhalb der Schleife sonder innerhalb deklarieren, dadurch wird die bei jedem Durchlauf auf 0 zurückgesetzt.

MfG
 

Neue Beiträge

Zurück