Guten Tag,
ich hatte gerade mal etwas Zeit und habe meine Formelsammlung versucht weiter aufzubessern. Hab schon einige Funktionen selbst Programmiert.
Nun sitze ich vor einem Problem und komme nicht ganz zurecht
Die Funktion ist: f(x)=(1/Math.sqrt(1+x)) Für alle |x| < 1
Die Potenzreihe sieht wie folgt aus:
1-(1/2)*x+(3/8)*x*x-(15/48)x*x*x+...
Wie man sieht stehen im Nenner alle ungeraden (n*2-1) Produkte und im Zähler die geraden also (n*2) Produkte.
Das ganze hab ich so Programmiert:
Problem ist:
bei der Eingabe von:
bekomme ich eine abweichung von 0.01...

Ich finde den Fehler leider nicht.
Vielleicht hat ja jemand eine Idee
LG
ich hatte gerade mal etwas Zeit und habe meine Formelsammlung versucht weiter aufzubessern. Hab schon einige Funktionen selbst Programmiert.
Nun sitze ich vor einem Problem und komme nicht ganz zurecht
Die Funktion ist: f(x)=(1/Math.sqrt(1+x)) Für alle |x| < 1
Die Potenzreihe sieht wie folgt aus:
1-(1/2)*x+(3/8)*x*x-(15/48)x*x*x+...
Wie man sieht stehen im Nenner alle ungeraden (n*2-1) Produkte und im Zähler die geraden also (n*2) Produkte.
Das ganze hab ich so Programmiert:
Java:
public static double f(double x) {
double basis=x;
int k=0;
double product=1;
int n=1;
double an=1;
double sn=1;
while(Math.abs(an)>EPSILON*Math.abs(sn)) {
k=n;
while(k>0) {
product*=basis;
k--;
}
an*=-(2*n-1)*product/(2*n);
sn+=an;
n++;
}
return sn;
}
Problem ist:
bei der Eingabe von:
Java:
System.out.println(f(.9));
System.out.println(1/Math.sqrt(1+.9));
Und das ganze wird nicht besser bei anderen Zahlen0.7147474611281968
0.7254762501100117
Ich finde den Fehler leider nicht.
Vielleicht hat ja jemand eine Idee
LG