Hi!
Ich habe eine Monte Carlo Methode (innerhalb einer größeren Klasse) geschrieben, die inzwischen auch von javac problemlos akzeptiert wird. Sie entspricht allem, was ich im Internet darüber gelesen habe, aber dennoch: Das Ergebnis ist falsch!
Hier der Code:
func in Zeile 7 leitet wiederum zu folgender Methode weiter:
(habe diese Methode schon mehrfach extern getestet, sie rechnet richtig)
Ich habe schon mehrfach die 6 Parameter überprüft, aber auch die werden korrekt übergeben. Das Ergebnis der Monte Carlo Methode schwankt bei den einzelnen Tests ganz leicht, wie es sein sollte (nur eben ist das Ergebnis ansich komplett falsch).
Hat jemand vielleicht eine Idee, was da falsch läuft? Vielleicht ein Denkfehler meinerseits?
Syrill
Ich habe eine Monte Carlo Methode (innerhalb einer größeren Klasse) geschrieben, die inzwischen auch von javac problemlos akzeptiert wird. Sie entspricht allem, was ich im Internet darüber gelesen habe, aber dennoch: Das Ergebnis ist falsch!
Hier der Code:
Code:
protected static double integrateMonteCarlo(int function, double xMin, double xMax, long steps, double yMin, double yMax) {
double approximation;
double hit = 0;
for (double stepsdone = 0; stepsdone < steps; ++stepsdone) {
double pointx = xMin + (Math.random() * (xMax - xMin));
double pointy = yMin + (Math.random() * (yMax - yMin));
double funcvalue = func(function, pointx);
if (funcvalue > pointy && pointy > 0) {
++hit;
}
else if (funcvalue < pointy && pointy < 0) {
--hit;
}
}
approximation = hit / steps;
return approximation;
}
func in Zeile 7 leitet wiederum zu folgender Methode weiter:
Code:
private static double func1(double x) {
double result = 4 * Math.pow((x - 1), 2) + (x - 1) - 1;
return result;
}
Ich habe schon mehrfach die 6 Parameter überprüft, aber auch die werden korrekt übergeben. Das Ergebnis der Monte Carlo Methode schwankt bei den einzelnen Tests ganz leicht, wie es sein sollte (nur eben ist das Ergebnis ansich komplett falsch).
Hat jemand vielleicht eine Idee, was da falsch läuft? Vielleicht ein Denkfehler meinerseits?
Syrill