Integralberechnung über Rekursion¶
Berechne numerisch den Wert des bestimmten Integrals
\[I_n := \int_0^1 x^n e^x dx.\]
Die analytische Lösung kann mit Hilfe der partiellen Integration als Rekursionsformel hergeleitet werden. Es gilt
\[I_n = e - n\,I_{n-1},\quad I_1 = 1.\]
In der python
-Funktion frekursiv
basiert die Berechnung des Integrals auf der rekursiv definierten Stammfunktion:
[1]:
from math import exp
def frekursiv(n):
if n>1:
return exp(1)-n*frekursiv(n-1)
else:
return 1
Für \(n\ge 18\) ist das Resultat offensichtlich falsch. Das Integral kann unmöglich negativ werden:
[2]:
for n in range(1,31):
print('n='+str(n)+'\t I('+str(n)+')='+str(frekursiv(n)))
n=1 I(1)=1
n=2 I(2)=0.7182818284590451
n=3 I(3)=0.5634363430819098
n=4 I(4)=0.4645364561314058
n=5 I(5)=0.395599547802016
n=6 I(6)=0.34468454164694906
n=7 I(7)=0.30549003693040166
n=8 I(8)=0.27436153301583177
n=9 I(9)=0.24902803131655915
n=10 I(10)=0.22800151529345358
n=11 I(11)=0.21026516023105568
n=12 I(12)=0.19509990568637692
n=13 I(13)=0.18198305453614516
n=14 I(14)=0.17051906495301283
n=15 I(15)=0.1604958541638526
n=16 I(16)=0.15034816183740363
n=17 I(17)=0.16236307722318344
n=18 I(18)=-0.2042535615582568
n=19 I(19)=6.599099498065924
n=20 I(20)=-129.26370813285942
n=21 I(21)=2717.256152618507
n=22 I(22)=-59776.91707577869
n=23 I(23)=1374871.8110247385
n=24 I(24)=-32996920.746311896
n=25 I(25)=824923021.3760792
n=26 I(26)=-21447998553.05978
n=27 I(27)=579095960935.3323
n=28 I(28)=-16214686906186.586
n=29 I(29)=470225920279413.7
n=30 I(30)=-1.4106777608382408e+16
Aufgabe: Berechne den absoluten Fehler!