Berechnung eines sinh abbrechen, wenn 16. Nachkommastelle sich nicht mehr ändert

babuschka

Top Contributor
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!

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));
		
	}

}
 

Michael...

Top Contributor
Du willst den sinh mittels Taylorreihe bestimmen?
Java:
for (int i = 1..
    erg = (Math.pow(x, (2 * i - 1))) / fac(2 * i - 1);
    lol=erg;
Da sind zunächst mal ein paar Fehler drin:
- i muss bei 0 beginnen
- ausserdem gilt
Code:
erg = (Math.pow(x, (2*i [B]+[/B] 1))/fac(2*i [B]+[/B] 1);
- es fehlt die Summierung
Code:
lol = lol + erg;
oder kurz
Code:
lol += erg;

Bzgl Abbruchbedingung:
- ich würde das statt mit einer for mit einer while-Schleife machen
- musst Du das vorherige Zwischenergebnis in einer weiteren Variablen speichern
- die Schleife muss dann abbrechen sobald der
Code:
Betrag von (neuesErgebnis - zwischenErgebnis) < EPSILON
 

babuschka

Top Contributor
Ok, habe das alles nochmal überarbeitet....Es funktioniert aber nur teilweise...
Für x=0 und x=1 stimmt der output. Für x=-1 und x=1000 ist es totaler blödsinn...
Kann mir jemand den letzten Denkanstoß geben? :)


Java:
public class Program {
	public final static double EPSILON = 1E-16;

	public static double sinh(final double x) {

		double n=1;
		double sum=0, sumtemp=0;


		do
		{
		sumtemp = sum; 
		sum += (Math.pow(x, (2 * n - 1))) / fac(2 * n - 1);
		n++;
		//System.out.println("Sum: "+sum); 
		}
		while ((sum-sumtemp)>EPSILON);


		return sum;

		}


	

	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));

	}

}
 

Illuvatar

Top Contributor
(Math.pow(x, (2*i + 1))/fac(2*i + 1);

eq.latex


- die Schleife muss dann abbrechen sobald der Betrag von (neuesErgebnis - zwischenErgebnis) < EPSILON

Wobei es vllt etwas verständlicher wäre mit
Java:
do {
  // ...
  double addend = //taylor
  sum += addend;
}while (Math.abs(addend) > EPSILON);
finde ich zumindest

Edit: Apropos verständlich, ich würde dir (carpenoctem) empfehlen den Code sinnvoll einzurücken...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Eclipse Verschiedene Ergebnisse bei Berechnung eines double-Werts Allgemeine Java-Themen 5
pkm Berechnung der Fakultät von Fließkommazahlen anhand von Stirlingformel Allgemeine Java-Themen 4
I Berechnung Lagerbestands / Verfügbarkeitsprüfung Allgemeine Java-Themen 1
L RegEx für Teile einer Berechnung Allgemeine Java-Themen 14
L Korrektur nach der Berechnung vornehmen, aber wie? Allgemeine Java-Themen 11
D Berechnung des Cosinus Allgemeine Java-Themen 4
H float Berechnung: Ergebnis ohne wissenschaftliche Notation Allgemeine Java-Themen 5
A Fehlerhafte Nst Berechnung einer bestimmten Fkt. (Bisektion) Allgemeine Java-Themen 10
E Berechnung des Schnittpunktes von zwei Geraden Allgemeine Java-Themen 1
P Performate Zeiteiteiteilungs- Berechnung Allgemeine Java-Themen 4
B TileMap berechnung? Allgemeine Java-Themen 8
P jodaTime Berechnung Geburtstag Allgemeine Java-Themen 1
K Probleme bei Berechnung der Komplexität Allgemeine Java-Themen 7
S Welcher Schleifen type für eine Berechnung Allgemeine Java-Themen 7
B BlueJ Potenz Berechnung Allgemeine Java-Themen 16
W Berechnung Durchschnitt mit Schleife Allgemeine Java-Themen 9
M Berechnung verbessern Allgemeine Java-Themen 8
W OOP Berechnung des Skalarprodukts Allgemeine Java-Themen 9
H Demonstrationsprogramm zur CRC-Berechnung Allgemeine Java-Themen 2
D Berechnung von Sonnenauf und Sonnenuntergang Allgemeine Java-Themen 2
E Berechnung in Arraylist Allgemeine Java-Themen 10
E Falsche Ergebnisse bei PQ-Formel Berechnung Allgemeine Java-Themen 12
N Optimierung einer Berechnung Allgemeine Java-Themen 17
G java.sql Time Berechnung Allgemeine Java-Themen 6
Eldorado Berechnung von Koordinaten, die zufällig aussehen Allgemeine Java-Themen 5
J Berechnung anhand einer XML-Datei Allgemeine Java-Themen 3
Private Void rekursive vs. iterative Lösung für Berechnung der Fakultät Allgemeine Java-Themen 12
S YUV to RGB (einfache Berechnung) Allgemeine Java-Themen 5
G Programm zur Berechnung von Summe, Median, Erwartungswert, usw von einem Array Allgemeine Java-Themen 7
C Bilder rotieren, Denkfehler in der Berechnung? Allgemeine Java-Themen 2
B Berechnung von Punkten/ If-else Strategie?! Allgemeine Java-Themen 51
T Berechnung in zweidimensionalem Array Allgemeine Java-Themen 3
X hashCode() Berechnung Allgemeine Java-Themen 5
R Tabelle - Berechnung der "Zeilenart" Allgemeine Java-Themen 2
L Berechnung mit Module bis bes.timme Zahl erreicht. Allgemeine Java-Themen 4
P CRC Berechnung Allgemeine Java-Themen 2
J berechnung von potenzen und wurzel-ziehen ohne klasse " Allgemeine Java-Themen 14
D Problem bei einer Berechnung (pow?) Allgemeine Java-Themen 3
P Java-Programm zur Berechnung globaler Minimas und Maximas-ff Allgemeine Java-Themen 4
B Primzahlen Berechnung optimieren Allgemeine Java-Themen 7
A Probleme bei der Berechnung von Pi! Java Problem Allgemeine Java-Themen 2
M Servlet --> Berechnung --> Timeout vom Proxy oder IE!? Allgemeine Java-Themen 7
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
T Rotationswinkel eines Bildes bestimmen Allgemeine Java-Themen 4
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
8u3631984 Prüfen ob min. ein Element eines Sets in einem anderen Set enh Allgemeine Java-Themen 4
M Array Rang eines Elements Allgemeine Java-Themen 4
OnDemand Teile eines Links entfernen Allgemeine Java-Themen 6
H Auslesen eines (LDAP-)Attributs in Active Directory Allgemeine Java-Themen 2
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
H Textposition eines gedrehten Textes verschieben Allgemeine Java-Themen 8
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
E Ersetzen eines Bildes in der Kopfzeile eines Word-Docx-Dokuments mit Apache POI XWPF Allgemeine Java-Themen 0
N Fahrtrichtung eines selbstfahrenden Auto ändern Allgemeine Java-Themen 3
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
gotzi242 Schatzsuche mithilfe eines O(log n) Algorithmus Allgemeine Java-Themen 2
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
kodela Breite eines erweiterten Monitors feststellen Allgemeine Java-Themen 5
R Zeilen eines 2d Arrays abwechselnd links und rechts mit Nullen auffüllen Allgemeine Java-Themen 14
Zrebna Alternative Darstellung eines Codesnippets Allgemeine Java-Themen 33
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
bueseb84 Wget mit Wildcards - oder wie lädt man bei JFrog die letzte Version eines Artifacts herunter Allgemeine Java-Themen 3
N Erkennen eines Programs Allgemeine Java-Themen 2
N Pausieren eines Programmes Allgemeine Java-Themen 4
D Input/Output Implementierung eines CommandHandlers/Parsers für viele Eingaben Allgemeine Java-Themen 26
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
F Wie bekommt man alle Filenamen eines Webserver Verzeichnisses Allgemeine Java-Themen 6
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
N Eigenschaften eines Buttons per Setter verändern Allgemeine Java-Themen 5
S Ausfuehrung eines Programms aufzeichnen..? Allgemeine Java-Themen 4
X Ermittlung eines doppelte Paars mit Streams Allgemeine Java-Themen 50
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
S Vorbereitung eines Praktikums Allgemeine Java-Themen 4
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
M Weiterleiten von empfangenen Nachrichten eines StompSessionHandlers Allgemeine Java-Themen 1
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
H Rename eines Projekts Allgemeine Java-Themen 1
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
ReinerCoder auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
Meeresgott Erste Schritte Sourcetree - Git | Suchen eines Commits Allgemeine Java-Themen 2
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
DaCrazyJavaExpert OOP Ansätze und Tipps zum Porgrammieren eines Taschenrechners Allgemeine Java-Themen 25
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
I Verbindung eines Java-Plugins mit Webserver Allgemeine Java-Themen 3
L Auswertung eines Testes funktioniert nicht Allgemeine Java-Themen 37
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
B Spalten eines 2d-Arrays Allgemeine Java-Themen 2
M Rechenprogramm eines wissenschaftlichen Taschenrechners Allgemeine Java-Themen 4
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
E Typüberprüfung eines chars Allgemeine Java-Themen 5
H Hilfe bei Erstellung eines Hilfe Fenster bei Tastendruck (F1 bei Win98) Allgemeine Java-Themen 5
T Teile eines Double-Wertes verändern Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben