Hallo Leute,
ich hoffe, ich bin hier richtig. Ich sitze seit Ewigkeiten am Ende einer Aufgabe. Mein Programm soll den Sinus Hyperbolicus vom jenen Zahlen berechnen, die aus der Main-Methode übergeben werden. Das soll es in der Methode sinh tun. Dazu brauche ich auch eine Methode, die mir die Fakultät berechnet (der Formel wegen). Das habe ich alles schon erledigt. Uns wurde ganz oben dieses EPSILON vordeklariert. Ich kann damit nur leider garnichts anfangen. Die Berechnung soll abbrechen, wenn die 16. Nachkommastelle des Ergebnisses sich nicht mehr ändert. Wie kann ich das jetzt anstellen??? Wahrscheinlich unter der Verwendung von EPSILON....
Achso....Bitte macht mich jetzt nicht darauf aufmerksam, dass es eine math.sinh Funktion gibt....das weiß ich...darf ich aber nicht benutzen^^
Bitte helft mir!
ich hoffe, ich bin hier richtig. Ich sitze seit Ewigkeiten am Ende einer Aufgabe. Mein Programm soll den Sinus Hyperbolicus vom jenen Zahlen berechnen, die aus der Main-Methode übergeben werden. Das soll es in der Methode sinh tun. Dazu brauche ich auch eine Methode, die mir die Fakultät berechnet (der Formel wegen). Das habe ich alles schon erledigt. Uns wurde ganz oben dieses EPSILON vordeklariert. Ich kann damit nur leider garnichts anfangen. Die Berechnung soll abbrechen, wenn die 16. Nachkommastelle des Ergebnisses sich nicht mehr ändert. Wie kann ich das jetzt anstellen??? Wahrscheinlich unter der Verwendung von EPSILON....
Achso....Bitte macht mich jetzt nicht darauf aufmerksam, dass es eine math.sinh Funktion gibt....das weiß ich...darf ich aber nicht benutzen^^
Bitte helft mir!
Java:
public class Program {
public final static double EPSILON = 1E-16;
public static double sinh(final double x) {
double erg;
double lol =0;
for (int i = 1; i < BED; i++) // BED: nach sechzehnter dezimalstelle
{
erg = (Math.pow(x, (2 * i - 1))) / fac(2 * i - 1);
lol=erg;
}
return lol;
}
public static double fac(double fac) {
int r = 1;
for (int i = 1; i <= fac; i++)
r *= i;
return r;
}
public static void main(String[] args) {
System.out.println("sinh(0)=" + sinh(0.0));
System.out.println("sinh(1)=" + sinh(1.0));
System.out.println("sinh(-1)=" + sinh(-1.0));
System.out.println("sinh(1000)=" + sinh(1000.0));
}
}