Hallo, ich habe folgendes Problem, nämlich habe ich zwar ein teilweise funktionierendes Programm der Nullstellenberechnung / Bisektion, doch leider funktioniert das Programm nur bei fallenden und nicht bei steigenden Funktionen, deshalb ist somit die Funktionalität nicht ganz korrekt.
Vielleicht könnte mir jemand dabei behilflich sein den Quelltext und die "falsche" if- Bedingung mal auf Korrektheit zu überprüfen bzw. mich auf richtige if- Schleife berichtigen.
Nachfolgend ist mein Java-Text:
Vielleicht könnte mir jemand dabei behilflich sein den Quelltext und die "falsche" if- Bedingung mal auf Korrektheit zu überprüfen bzw. mich auf richtige if- Schleife berichtigen.
Nachfolgend ist mein Java-Text:
Java:
static double nullstelle2(double a, double b, double eps)
// Bisektionsverfahren für die Funktion x
{
double m, y;
while (b - a > 1e-4) // Abbruch, wenn Intervall durch Epsilion klein
// genug
{
m = (a + b) / 2; // Berechne Mitte m
y = fkt3(m); // und Wert in der Mitte für f(x)
if (y > 0)
a = m; // Nimm rechtes Halb-Intervall
else
b = m; // Nimm linkes Halb-Intervall
}
return (a + b) / 2;
}