Hallo,
...diverse sachen gelöscht zwecks google...
Nachfolgend habe ich mal den Hunz von mir eingefügt an dem ich seit gestern Abend sitze.
Es funktioniert vorne und hintenrum nichts richtig. Ich dachte mir einfach ich mach 2 Schleifen für den Nenner und den Zähler, dividiere alles schön mit dem jeweiligen Vorzeichen und ziehe das Ergebnis meiner temporären Variable ab. Anschließend kopiere ich die Variable in eine andere Variable. Und im nächsten Durchlauf subtrahiere ich das neue durch das alte Ergebnis um zu schauen ob die Differenz kleiner dem "EPS" ist. Wenn JA, dann Abbruchkriterium. Irgendwie hab ich einen großen Denkfehler :-/
Hoffentlich kann mir einer helfen
...diverse sachen gelöscht zwecks google...
Nachfolgend habe ich mal den Hunz von mir eingefügt an dem ich seit gestern Abend sitze.
Es funktioniert vorne und hintenrum nichts richtig. Ich dachte mir einfach ich mach 2 Schleifen für den Nenner und den Zähler, dividiere alles schön mit dem jeweiligen Vorzeichen und ziehe das Ergebnis meiner temporären Variable ab. Anschließend kopiere ich die Variable in eine andere Variable. Und im nächsten Durchlauf subtrahiere ich das neue durch das alte Ergebnis um zu schauen ob die Differenz kleiner dem "EPS" ist. Wenn JA, dann Abbruchkriterium. Irgendwie hab ich einen großen Denkfehler :-/
Hoffentlich kann mir einer helfen
Java:
public class Sinus {
public static void main(String[] args) {
System.out.println(getSin(3.14159265,1E-10));
}
public static double getSin(double x, double eps){
// Variablen instanziieren
double result;
double vorzeichen = -1;
double tempEps = 0.0;
double temp1 = 0.0;
double temp2 = 0.0;
double num = x;
double denum = 1.0;
int i = 1;
int n = 1;
int faki = 1;
int fakn = 2;
while (tempEps <= eps) {
vorzeichen *= -1;
// Nenner erhöhen : Mit sich selbst multiplizieren!
while (i<n){
num *= num;
i++;
System.out.print(num);
}
// Zähler erhöhen
while (faki<fakn){
denum *= faki;
faki++;
System.out.print("/"+denum+"\n");
}
temp1 += vorzeichen*(num/denum);
tempEps = temp2-temp1;
System.out.println(tempEps);
temp2 = temp1;
n += 2; // Schleife immer um +2 erhöhen.
i=0;
fakn += 2;
faki=0;
}
return tempEps;
}
}
Zuletzt bearbeitet: