Hallo zusammen,
ich habe eine Aufgabe auf bekommen, die den Cosinus approximier und ie Berechnung beendet wenn sich der Summand nur in der 8 Stelle verändert. Aber Leider kommt bei mir immer nur bei dem Test 0 raus.
Kann mir evtl jmd helfen den Fehler zu finden
ich habe eine Aufgabe auf bekommen, die den Cosinus approximier und ie Berechnung beendet wenn sich der Summand nur in der 8 Stelle verändert. Aber Leider kommt bei mir immer nur bei dem Test 0 raus.
Kann mir evtl jmd helfen den Fehler zu finden
Java:
public static double EPSILON = 1E-8;
public static float cos(float x) {
float result = 0;
int n = -1;
while (true){
float delta = 0;
// Hier steht die Formel des Cosinus
delta = (float) (Math.pow(-1,n+ 3) * Math.pow(x,2*n + 1) / factorial(2*n + 2));
result += delta;
n++;
if (Math.abs(delta) > EPSILON * Math.abs(result));
return 0.0f;
}}
// Eingefügt um die Fakultät berechen zu können
private static double factorial(int x) {
// TODO Auto-generated method stub
return 0;
}
public static void main(String[] args) {
System.out.println("cos(0)=" + cos(0));
System.out.println("cos(1)=" + cos(1));
System.out.println("cos(-1)=" + cos(-1));
System.out.println("cos(1000)=" + cos(1000));
}
}