Moin leute
versuche den sinuswert zu berechnen ohne Math.sin() zu benutzen.
für kleine werte funktioniert es auch aber bei großen scheint irgendwo ein überlauf oder so zu sein, aufjedenfall stimmen dann die werte nicht. findet ihr evtl den fehler?
versuche den sinuswert zu berechnen ohne Math.sin() zu benutzen.
für kleine werte funktioniert es auch aber bei großen scheint irgendwo ein überlauf oder so zu sein, aufjedenfall stimmen dann die werte nicht. findet ihr evtl den fehler?
Code:
public static double fac(double zahl){
double erg = 1;
double n = zahl;
while(n >= 1){
erg = erg*n;
n-=1;
}
return erg;
}
public static double sinReihe(double zahl){
double old = 1.0;
double neu = 0.0;
double bruch = 0.0;
double i = 0;
double exp = 0.0;
System.out.println();
// Math.abs Math.abs() liefert doppelte genauigkeit (16 stellen) //
while (Math.abs(old - neu) != 0){
old = neu;
exp = (i*2)+1;
//## VORZEICHEN ## ## x^(1,3,5,7...) / (1,3,5,7,...)! ##//
bruch = Math.pow(-1,i)*((Math.pow(zahl,exp))/fac(exp));
neu = old + bruch;
i++;
}
System.out.println("durchgänge:"+i);
return neu;
}