Exponenciális függvények értékeinek kiszámítása

Ez a cikk az e x {\displaystyle e^{x}} exponenciális függvény értékeinek numerikus kiszámításával foglalkozik.

Algoritmus

Az exponenciális, e x {\displaystyle e^{x}} , függvény Maclaurin-sora

e x {\displaystyle e^{x}} = 1 + x + x 2 2 ! {\displaystyle {\frac {x^{2}}{2!}}} + x 3 3 ! {\displaystyle {\frac {x^{3}}{3!}}} + ... + x n n ! {\displaystyle {\frac {x^{n}}{n!}}} + ...

A sor konvergens a teljes valós számhalmazon. A maradéktag

R n ( x ) {\displaystyle R_{n}(x)} = e Θ x ( n + 1 ) ! {\displaystyle {\frac {e^{\Theta x}}{(n+1)!}}} x n + 1 {\displaystyle x^{n+1}} (0 < θ < 1),

ahol a számláló kitevőjében a nagy theta jelölés szerepel. A maradéktag meredeken nő az x abszolút értékével, ezért lehetőleg kis értékek szerint kell a sorfejtést végezni. Ez elérhető a kitevő felbontásával egész- és törtrészre. Valóban, tetszőleges x érték felírható

x = [x] + q,

alakban, ahol [x] az x egészrésze és 0 ≤ q < 1 a törtrész, például: 4 , 7 = 4 + 0 , 7 {\displaystyle 4{,}7=4+0{,}7} , 2 , 45 = 3 + 0 , 55 {\displaystyle -2{,}45=-3+0{,}55} . Tehát

e x = e [ x ] e q {\displaystyle e^{x}=e^{[x]}\cdot e^{q}} .

Az első tényező egész kitevős hatvány, így értékét iterált szorzással kapjuk meg:

e [ x ] = e e {\displaystyle e^{[x]}=e\cdot \ldots \cdot e} , ha x 0 {\displaystyle x\geq 0} ,

illetve

e x = 1 e 1 e . . . 1 e {\displaystyle e^{x}={\frac {1}{e}}{\frac {1}{e}}...{\frac {1}{e}}} , ha x < 0 {\displaystyle x<0} ,

ahol e = 2,718 281828459045 ± 5 10 16 {\displaystyle e=2{,}718281828459045\pm 5\cdot 10^{-16}} az Euler-féle szám.

A sorfejtést tehát csak a második tényezőre kell kiszámolni:

e q = n = 1 g n n ! {\displaystyle e^{q}=\sum _{n=1}^{\infty }{\frac {g^{n}}{n!}}}

Mivel q < 1, a fenti sorozat a fentieknek megfelelően gyorsan konvergál, és a maradéktag

0 R n ( g ) < 3 ( n + 1 ) ! q n + 1 {\displaystyle 0\leq R_{n}(g)<{\frac {3}{(n+1)!}}q^{n+1}}

Az tagok rekurrenciás kapcsolata:

T 0 = u 0 = 1 {\displaystyle T_{0}=u_{0}=1} , u n + 1 = u n x n + 1 {\displaystyle u_{n+1}=u_{n}\cdot {\frac {x}{n+1}}} .

Pszeudokód

Az exponenciális függvényt számító algoritmus:

function TaylorExp( in: x, ε out: T )
u  1
n  0
T  1
repeat
u  u*(x/n+1)
T  T + u
n  n + 1
until |u| < ε
return T
end function

Példa

Alkalmazásként határozzuk meg e {\displaystyle {\sqrt {e}}} -t 10 7 {\displaystyle 10^{-7}} hibán belül. Ez esetben x = 1/2 tehát a rekurrenciás képlet:

u 0 = 0 {\displaystyle u_{0}=0} , u n + 1 = u n 1 2 ( n + 1 ) {\displaystyle u_{n+1}=u_{n}{\frac {1}{2(n+1)}}} , k=(1, 2, . . .)

un Tn
0 1 1
1 0.5 1.5
2 0.125 1.625
3 0.0208333333333 1.64583333333
4 0.00260416666667 1.6484375
5 0.000260416666667 1.64849791667
6 2.17013888889e-05 1.64871961806
7 1.55009920635e-06 1.64872116815
8 9.68812003968e-08 1.65872126504

A pontos érték 1.6487212707...

Források

  • Lázár Zsolt, Lázár József, Járai-Szabó Ferenc: Numerikus módszerek, Kolozsvári Egyetemi Kiadó, 2008

  • matematika Matematikaportál • összefoglaló, színes tartalomajánló lap