rekursion berechnen, werte stimmen nicht.
-
hallo,
ich will zu folgender formel werte von 0 bis 40 rekursiv berechnen:
I(n)=1/pi - (n(n-1)/pi^2)*I(n-2) , n>=2,
mit I(0) = 2/pi, I(1) = 1/pidazu habe ich folgendes programm geschrieben:
#include <math.h> #include <stdio.h> double integral (int n) { if(n==0) { return 2./3.14; } if(n==1) return 1./3.14; if(n>1) { return (1./3.14 - (n*(n-1))/(3.14*3.14) * integral(n-2)); } } int main() { int c=0; double vektor [41]; for(c=0; c<41; c++){ vektor [c] = integral(c); } for(c=0; c<41; c++){ printf("%d\t%f\n", c, vektor [c]); } return 0; }
die ersten werte sind ja noch ok, aber so ab n=10 kommt da nur noch müll raus.
ich schaue jetzt schon eine halbe ewigkeit auf die paar zeilen code, aber finde keinen fehler.
wer kann helfen?thx
CU
-
Schuß ins Blaue: Ersetz mal 3.14 durch eine etwas genauere Version von Pi. 3.1415926535897932384626433832795029L z.b.
-
hui, das sieht schon viel besser aus. hätte ich nicht gedacht.
danke!