Use python to calculate a special limit

Ryan picture Ryan · Mar 26, 2017 · Viewed 9.9k times · Source

I want to calculate this expression:

(1 + 1 / math.inf) ** math.inf,

which should evaluates to e. However Python returns 1. Why is that?

=====UPDATE========

What I want to do here is to derive the effective annual rate from user's input, APR (annual percentage rate).

def get_EAR(APR, conversion_times_per_year = 1):
    return (1 + APR / conversion_times) ** conversion_times - 1

I would want this expression to also apply to continuous compounding. Yes I understand I can write if statements to differentiate continuous compounding from normal cases (and then I can use the constant e directly), but I would better prefer an integrated way.

Answer

eyllanesc picture eyllanesc · Mar 26, 2017

The calculation of limits is not implemented in python by default, for this you could use sympy

from sympy import *

x= symbols('x')
r = limit((1+1/x)**x, x, oo)
print(r)

Output:

E