Hi,
ich bin dabei das Bisektionsverfahren für die Nullstellenbestimmung für Java in Eclipse zum erstellen, dabei habe ich hier im Forum folgenden Code gefunden, welchen ich noch anpassen wollte, doch leider vergebens;
Hier der Text:
Das Problem ist die Erstellung und Einbindung der class Funktionen, irgendwas geht da nicht, bekomme immer Fehler angezeigt und kann nicht auf Funktion zugreifen.
Außerdem wollte ich jeweils für die Funktionen f1, f2, f3 Intervallgrenzen eingeben; weis nicht wie bzw. wo ich das machen soll. (Müsste ich ja z.B. a=0, b=2 für Intervall [0,2] festsetzen, oder?)
Die Berechnung soll dann mit Genauigkeit von 0,0001 erfolgen, wird diese Genauigkeit durch den letzten if Zweig
if (BiSektion(0.0,1.0,0.0001,f1)) angezeigt, oder was bedeutet dies?
Vielen Dank für die Antworten bzw. Hilfe!
ich bin dabei das Bisektionsverfahren für die Nullstellenbestimmung für Java in Eclipse zum erstellen, dabei habe ich hier im Forum folgenden Code gefunden, welchen ich noch anpassen wollte, doch leider vergebens;
Hier der Text:
Java:
interface Function {
double evaluateAt(double x);
}
class Funktionen {
//wollte hier f1= 1-x^2/2
// f2= 1+sin(x)-x^0,5
// f3= 0,000001-sin(0,000001x)
//definieren
}
class F1 implements Function {
public double evaluateAt(double x) {
return Math.cos(x)-x;
}
}
class Bisektionsverfahren {
static boolean BiSektion(double a, double b, double eps, Function f1) {
if (f1.evaluateAt(a)*f1.evaluateAt(b) > 0)
return false;
int n=0;
double m;
for (n=0; Math.abs(a-b) >= eps; n++) {
m = (a+b)/2;
if (f1.evaluateAt(a)*f1.evaluateAt(m) > 0)
a = m;
else
b = m;
}
System.out.println(n + ", " + (a+b)/2);
return true;
}
public static void main(String arg[]) {
Function f1 = new F1();
if (BiSektion(0.0,1.0,0.0001,f1)) {
System.out.println("Success!");
} else {
System.out.println("Failure...");
}
}
}
Das Problem ist die Erstellung und Einbindung der class Funktionen, irgendwas geht da nicht, bekomme immer Fehler angezeigt und kann nicht auf Funktion zugreifen.
Außerdem wollte ich jeweils für die Funktionen f1, f2, f3 Intervallgrenzen eingeben; weis nicht wie bzw. wo ich das machen soll. (Müsste ich ja z.B. a=0, b=2 für Intervall [0,2] festsetzen, oder?)
Die Berechnung soll dann mit Genauigkeit von 0,0001 erfolgen, wird diese Genauigkeit durch den letzten if Zweig
if (BiSektion(0.0,1.0,0.0001,f1)) angezeigt, oder was bedeutet dies?
Vielen Dank für die Antworten bzw. Hilfe!