freizeit-psychologe
Mitglied
Hi,
ich habe folgendes Problem:
Mein Prof hat mir die Aufgabe gestellt eine Methode zur Cosinus Funktion zu schreiben, welche die Berechnung abbricht, sobald der Summand nur noch an der 8. Stelle verändert wird.
Dabei soll ich den Cosinus der Werte (0,-1,1,1000) ausgeben.
Mit 0,-1 und 1 funktioniert auch alles wunder bar, auch 2 geht, doch bei allem darüber geht nichts mehr und das Programm gibt ab der Ausgabe des letzten funktionierenden Ergenisses nichts mehr aus, auch keine folgenden System.out Ausgaben.
Kann da einer von euch mal drüberschauen? Ich bin da echt am verzweifeln.
ich habe folgendes Problem:
Mein Prof hat mir die Aufgabe gestellt eine Methode zur Cosinus Funktion zu schreiben, welche die Berechnung abbricht, sobald der Summand nur noch an der 8. Stelle verändert wird.
Dabei soll ich den Cosinus der Werte (0,-1,1,1000) ausgeben.
Mit 0,-1 und 1 funktioniert auch alles wunder bar, auch 2 geht, doch bei allem darüber geht nichts mehr und das Programm gibt ab der Ausgabe des letzten funktionierenden Ergenisses nichts mehr aus, auch keine folgenden System.out Ausgaben.
Kann da einer von euch mal drüberschauen? Ich bin da echt am verzweifeln.
Code:
public class cosinustest3 {
/**
* @param args
*/
public static double EPSILON = 1E-8;
//Fakultät
public static long Fakultaet(int max)
{
long fakultaet = 1;
for (int x = 1; x <= max; x++) {
fakultaet = fakultaet * x;
}
return fakultaet;
}
//Cosinusberechnung
public static float cosinus(float x, int n)
{
float result = 0;
double z = 0;
for (int i = 0; i <= n; i++)
{
z = ( (Math.pow(x, (float)2*i))/(float)Fakultaet(2*i)) * Math.pow((float)-1, (float)i);
result += z;
} while (Math.abs(z) > EPSILON);
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//Ausgabe der Ergebnisse
// Cosinus nach Berechnung
System.out.println("Berechnung");
System.out.println("cos(0) = " + cosinus(0,8));
System.out.println("cos(1) = " + cosinus(1,8));
System.out.println("cos(-1) = " + cosinus(-1,8));
System.out.println("cos(2) = " + cosinus(2,8));
System.out.println("cos(1000) = funktioniert nicht (System hängt sich auf)" ); // cos(0,-1,1,2) funktionieren, bei allem darüber hängt sich das System auf.
// Vergleich mit den Ergebnissen der in Java eingebauten Cosinus Methode
// Cosinus Math.cos
System.out.println("Vergl. mit Math.cos");
System.out.println("cos(0) = " + Math.cos(0));
System.out.println("cos(1) = " + Math.cos(1));
System.out.println("cos(-1) = " + Math.cos(-1));
System.out.println("cos(2) = " + Math.cos(2));
System.out.println("cos(1000) = " + Math.cos(1000));
}
}
Anhänge
Zuletzt bearbeitet: