Project 1: vraag 3 (vergelijken van methoden)

2273 days ago by Niels.Neirynck

We berekenen de integraal

$$\int_{5}^{15} e^{k - {(x-10)}^2} \,\text{d}x, \quad k \in \mathbb{N}$$

op twee manieren en we vergelijken het resultaat.

Benadering 1: Numerieke Integratie

De eerste functie maakt gebruik van 'numerical_integral' om de integraal te berekenen. Deze functie geeft een waarde voor de integraal terug en een schatting van de fout.

#bijvoorbeeld: numerical_integral(x^2, 0, 1, max_points=100) 
       
(0.3333333333333333, 3.700743415417188e-15)
(0.3333333333333333, 3.700743415417188e-15)

 We maken enkel gebruik van de numerieke waarde (op index 0).

def benadering1(k): return (numerical_integral(exp(k - (x - 10)^2), 5, 15, max_points=100)[0]) 
       

Benadering 2: Steunen op de numerieke benadering van 'erf'

De tweede functie maakt gebruik van

$$\int_{5}^{15} e^{k - {(x-10)}^2} \,\text{d}x = \sqrt{\pi}\,\mathsf{erf}(5)\, e^k$$

def benadering2(k): return N(erf(5) * sqrt(pi) * exp(k)) 
       

Berekenen van verschillen

We berekenen het verschil voor $k = 0, 1, 2,\ldots ,59$. Vervolgens tonen we voor elke $k$ het verschil  en berekenen we $\log_{10}(\text{verschil})$.

def verschil(k): return abs(benadering1(k) - benadering2(k)) 
       
aantal = 60; #Berekenen van de verschillen verschillen = [verschil(k) for k in range(aantal)] #Uitprinten van de verschillen for k in range(aantal): print('{:>2} {:>30} {:>30}'.format(k, verschillen[k], N(log(verschillen[k])/log(10)))) 
       
 0           4.44089209850063e-16              -15.3525297788630
 1           1.77635683940025e-15              -14.7504697875351
 2           1.77635683940025e-15              -14.7504697875351
 3           7.10542735760100e-15              -14.1484097962071
 4           1.42108547152020e-14              -13.8473798005431
 5           5.68434188608080e-14              -13.2453198092152
 6           2.27373675443232e-13              -12.6432598178872
 7           4.54747350886464e-13              -12.3422298222232
 8           1.81898940354586e-12              -11.7401698308953
 9           1.81898940354586e-12              -11.7401698308953
10           7.27595761418343e-12              -11.1381098395673
11           1.45519152283669e-11              -10.8370798439033
12           5.82076609134674e-11              -10.2350198525754
13           1.16415321826935e-10              -9.93398985691138
14           9.31322574615479e-10              -9.03089986991943
15           9.31322574615479e-10              -9.03089986991943
16            3.72529029846191e-9              -8.42883987859147
17              0.000000000000000                      -infinity
18              0.000000000000000                      -infinity
19            1.19209289550781e-7              -6.92368990027157
20            1.19209289550781e-7              -6.92368990027157
21            1.43051147460938e-6              -5.84450865422394
22            9.53674316406250e-7              -6.02059991327962
23              0.000000000000000                      -infinity
24            7.62939453125000e-6              -5.11750992628768
25          0.0000152587890625000              -4.81647993062370
26          0.0000610351562500000              -4.21441993929574
27              0.000000000000000                      -infinity
28           0.000488281250000000              -3.31132995230379
29            0.00390625000000000              -2.40823996531185
30            0.00390625000000000              -2.40823996531185
31             0.0156250000000000              -1.80617997398389
32             0.0781250000000000              -1.10720996964787
33              0.125000000000000             -0.903089986991943
34              0.500000000000000             -0.301029995663981
35               1.50000000000000              0.176091259055681
36              0.000000000000000                      -infinity
37               4.00000000000000              0.602059991327962
38               16.0000000000000               1.20411998265592
39               64.0000000000000               1.80617997398389
40               128.000000000000               2.10720996964787
41               384.000000000000               2.58433122436753
42               2048.00000000000               3.31132995230379
43               1024.00000000000               3.01029995663981
44               4096.00000000000               3.61235994796777
45               16384.0000000000               4.21441993929574
46               32768.0000000000               4.51544993495972
47               65536.0000000000               4.81647993062370
48               524288.000000000               5.71956991761564
49               524288.000000000               5.71956991761564
50             3.14572800000000e6               6.49772116799929
51             4.19430400000000e6               6.62265990460758
52             2.51658240000000e7               7.40081115499123
53             6.71088640000000e7               7.82677988726351
54              0.000000000000000                      -infinity
55             5.36870912000000e8               8.72986987425545
56             2.14748364800000e9               9.33192986558342
57             2.14748364800000e9               9.33192986558342
58             8.58993459200000e9               9.93398985691138
59            1.71798691840000e10               10.2350198525754
 0           4.44089209850063e-16              -15.3525297788630
 1           1.77635683940025e-15              -14.7504697875351
 2           1.77635683940025e-15              -14.7504697875351
 3           7.10542735760100e-15              -14.1484097962071
 4           1.42108547152020e-14              -13.8473798005431
 5           5.68434188608080e-14              -13.2453198092152
 6           2.27373675443232e-13              -12.6432598178872
 7           4.54747350886464e-13              -12.3422298222232
 8           1.81898940354586e-12              -11.7401698308953
 9           1.81898940354586e-12              -11.7401698308953
10           7.27595761418343e-12              -11.1381098395673
11           1.45519152283669e-11              -10.8370798439033
12           5.82076609134674e-11              -10.2350198525754
13           1.16415321826935e-10              -9.93398985691138
14           9.31322574615479e-10              -9.03089986991943
15           9.31322574615479e-10              -9.03089986991943
16            3.72529029846191e-9              -8.42883987859147
17              0.000000000000000                      -infinity
18              0.000000000000000                      -infinity
19            1.19209289550781e-7              -6.92368990027157
20            1.19209289550781e-7              -6.92368990027157
21            1.43051147460938e-6              -5.84450865422394
22            9.53674316406250e-7              -6.02059991327962
23              0.000000000000000                      -infinity
24            7.62939453125000e-6              -5.11750992628768
25          0.0000152587890625000              -4.81647993062370
26          0.0000610351562500000              -4.21441993929574
27              0.000000000000000                      -infinity
28           0.000488281250000000              -3.31132995230379
29            0.00390625000000000              -2.40823996531185
30            0.00390625000000000              -2.40823996531185
31             0.0156250000000000              -1.80617997398389
32             0.0781250000000000              -1.10720996964787
33              0.125000000000000             -0.903089986991943
34              0.500000000000000             -0.301029995663981
35               1.50000000000000              0.176091259055681
36              0.000000000000000                      -infinity
37               4.00000000000000              0.602059991327962
38               16.0000000000000               1.20411998265592
39               64.0000000000000               1.80617997398389
40               128.000000000000               2.10720996964787
41               384.000000000000               2.58433122436753
42               2048.00000000000               3.31132995230379
43               1024.00000000000               3.01029995663981
44               4096.00000000000               3.61235994796777
45               16384.0000000000               4.21441993929574
46               32768.0000000000               4.51544993495972
47               65536.0000000000               4.81647993062370
48               524288.000000000               5.71956991761564
49               524288.000000000               5.71956991761564
50             3.14572800000000e6               6.49772116799929
51             4.19430400000000e6               6.62265990460758
52             2.51658240000000e7               7.40081115499123
53             6.71088640000000e7               7.82677988726351
54              0.000000000000000                      -infinity
55             5.36870912000000e8               8.72986987425545
56             2.14748364800000e9               9.33192986558342
57             2.14748364800000e9               9.33192986558342
58             8.58993459200000e9               9.93398985691138
59            1.71798691840000e10               10.2350198525754