In Java ME gibt es ja keine arctan-Funktion.
Habe versucht, meine eigene zu schreiben nach dem, was hier:
Inverse trigonometric functions - Wikipedia, the free encyclopedia
unter "Continued fraction for arctangent" steht.
Mein Versuch:
Doch die Ausgabe:
liefert:
Wenn ich das mit den Ergebnissen meines Taschenrechners vergleiche,
hat das wenig mit der Realität zu tun.
Wo liegt der Fehler in meinem Code?
Habe versucht, meine eigene zu schreiben nach dem, was hier:
Inverse trigonometric functions - Wikipedia, the free encyclopedia
unter "Continued fraction for arctangent" steht.
Mein Versuch:
Code:
public class TestKlasse {
static double arctan(double z)
{
if ( z==0 ) return 0;
double Nenner6teEbene;
double Nenner5teEbene;
double Nenner4teEbene;
double Nenner3teEbene;
double Nenner2teEbene;
double Nenner1teEbene;
double Endergebnis;
double z_quadrat;
//continued fraction for arctangent
z_quadrat = z*z;
Nenner6teEbene = 11 + (36*z_quadrat)/13;
Nenner5teEbene = 9 + (25*z_quadrat)/Nenner6teEbene;
Nenner4teEbene = 7 + (16*z_quadrat)/Nenner5teEbene;
Nenner3teEbene = 5 + ( 9*z_quadrat)/Nenner4teEbene;
Nenner2teEbene = 3 + ( 4*z_quadrat)/Nenner3teEbene;
Nenner1teEbene = 1 + ( 1*z_quadrat)/Nenner2teEbene;
Endergebnis = 0 + ( z )/Nenner1teEbene;
return Endergebnis;
};
Doch die Ausgabe:
Code:
public static void main (String argv[])
{
//System.out.println("Hello World!");
for (int i=10;i<=100;i=i+10)
{
System.out.println("arctan von "+i+": "+arctan(i));
}
System.out.println("arctan von 0.5: "+arctan(0.5));
}
liefert:
Code:
arctan von 10: 2.372521980541964
arctan von 20: 4.3262544536273175
arctan von 30: 6.367850287305142
arctan von 40: 8.4332129693478
arctan von 50: 10.508270843292705
arctan von 60: 12.588215645729225
arctan von 70: 14.670964602845421
arctan von 80: 16.7554704191579
arctan von 90: 18.841149288535433
arctan von 100: 20.927650155827695
arctan von 0.5: 0.4636476102024936
Wenn ich das mit den Ergebnissen meines Taschenrechners vergleiche,
hat das wenig mit der Realität zu tun.
Wo liegt der Fehler in meinem Code?