math - Calculating exp(x) with the use of recursion in Python -


this question has answer here:

i'm attempting calculate e^x using recursion, e^x = e^(x/2)*e^(x/2), , third order maclaurin expansion e^x , script keeps returning 1. i'm not looking higher accuracy solution, understand script goes wrong : )

my thought enough iterations should end (1+x/n+(x/n)^2/2)^n when function value goes below limit.

def exp(x):       if abs(x)<0.0001:             return 1+x+x**2/2       else:             y=exp(x/2)             return y*y 

try instead (note 2.0 in recursive call):

def exp(x):     if abs(x) < 0.0001:         return 1 + x + x**2 / 2.0     else:         y = exp(x / 2.0)         return y * y 

it failing because if pass integer in x, 1, x / 2 integer division (in python 2.x), result in 0 instead of 0.5. using x / 2.0, forces python use float division.


Comments

Popular posts from this blog

c# - Better 64-bit byte array hash -

webrtc - Which ICE candidate am I using and why? -

php - Zend Framework / Skeleton-Application / Composer install issue -