In [24]:
import numpy as np
import sympy as sym
import mpmath

from sympy import *
sym.init_printing()

In [25]:
x, t = symbols('x t')

In [26]:
3/x**3


Out[26]:
$$\frac{3}{x^{3}}$$

In [27]:
t**3/(exp(t)-1)


Out[27]:
$$\frac{t^{3}}{e^{t} - 1}$$

In [29]:
#sym.integrate?

In [40]:
debye_fun = 3/x**3*Integral(t**3/(exp(t)-1),(t,0,x))

In [72]:
debye_fun


Out[72]:
$$\frac{3}{x^{3}} \int_{0}^{x} \frac{t^{3}}{e^{t} - 1}\, dt$$

In [ ]:


In [ ]:


In [73]:
debye_fun.subs({x:10}).evalf()


Out[73]:
$$0.0192957656903455$$

In [ ]:


In [75]:
def integral_as_quad(expr, lims):
    var, a, b = lims
    return scipy.integrate.quad(lambdify(var, expr), a, b)

f = lambdify(x, debye_fun, modules={"Integral": integral_as_quad})

In [76]:
f(.1)


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-76-f9e43a4a1965> in <module>()
----> 1 f(.1)

<string> in <lambda>(_Dummy_96)

NameError: name 'exp' is not defined

In [ ]:


In [70]:
f=lambdify(x,debye_fun, modules='numexpr')


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-70-7d4510b09c98> in <module>()
----> 1 f=lambdify(x,debye_fun, modules='numexpr')

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/utilities/lambdify.py in lambdify(args, expr, modules, printer, use_imps, dummify)
    376 
    377     # Create lambda function.
--> 378     lstr = lambdastr(args, expr, printer=printer, dummify=dummify)
    379     flat = '__flatten_args__'
    380 

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/utilities/lambdify.py in lambdastr(args, expr, printer, dummify)
    523         else:
    524             expr = sub_expr(expr, dummies_dict)
--> 525     expr = lambdarepr(expr)
    526 
    527     return "lambda %s: (%s)" % (args, expr)

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/utilities/lambdify.py in <lambda>(expr)
    450         else:
    451             if inspect.isclass(printer):
--> 452                 lambdarepr = lambda expr: printer().doprint(expr)
    453             else:
    454                 lambdarepr = lambda expr: printer.doprint(expr)

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/lambdarepr.py in doprint(self, expr)
    244 
    245     def doprint(self, expr):
--> 246         lstr = super(NumExprPrinter, self).doprint(expr)
    247         return "evaluate('%s', truediv=True)" % lstr
    248 

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/printer.py in doprint(self, expr)
    231     def doprint(self, expr):
    232         """Returns printer's representation for expr (as a string)"""
--> 233         return self._str(self._print(expr))
    234 
    235     def _print(self, expr, *args, **kwargs):

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/printer.py in _print(self, expr, *args, **kwargs)
    255                 printmethod = '_print_' + cls.__name__
    256                 if hasattr(self, printmethod):
--> 257                     return getattr(self, printmethod)(expr, *args, **kwargs)
    258 
    259             # Unknown object, fall back to the emptyPrinter.

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/str.py in _print_Mul(self, expr)
    288         a = a or [S.One]
    289 
--> 290         a_str = [self.parenthesize(x, prec) for x in a]
    291         b_str = [self.parenthesize(x, prec) for x in b]
    292 

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/str.py in <listcomp>(.0)
    288         a = a or [S.One]
    289 
--> 290         a_str = [self.parenthesize(x, prec) for x in a]
    291         b_str = [self.parenthesize(x, prec) for x in b]
    292 

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/str.py in parenthesize(self, item, level)
     29             return "(%s)" % self._print(item)
     30         else:
---> 31             return self._print(item)
     32 
     33     def stringify(self, args, sep, level=0):

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/printer.py in _print(self, expr, *args, **kwargs)
    255                 printmethod = '_print_' + cls.__name__
    256                 if hasattr(self, printmethod):
--> 257                     return getattr(self, printmethod)(expr, *args, **kwargs)
    258 
    259             # Unknown object, fall back to the emptyPrinter.

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/str.py in _print_Integral(self, expr)
    170             else:
    171                 return self._print((xab[0],) + tuple(xab[1:]))
--> 172         L = ', '.join([_xab_tostr(l) for l in expr.limits])
    173         return 'Integral(%s, %s)' % (self._print(expr.function), L)
    174 

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/str.py in <listcomp>(.0)
    170             else:
    171                 return self._print((xab[0],) + tuple(xab[1:]))
--> 172         L = ', '.join([_xab_tostr(l) for l in expr.limits])
    173         return 'Integral(%s, %s)' % (self._print(expr.function), L)
    174 

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/str.py in _xab_tostr(xab)
    169                 return self._print(xab[0])
    170             else:
--> 171                 return self._print((xab[0],) + tuple(xab[1:]))
    172         L = ', '.join([_xab_tostr(l) for l in expr.limits])
    173         return 'Integral(%s, %s)' % (self._print(expr.function), L)

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/printer.py in _print(self, expr, *args, **kwargs)
    255                 printmethod = '_print_' + cls.__name__
    256                 if hasattr(self, printmethod):
--> 257                     return getattr(self, printmethod)(expr, *args, **kwargs)
    258 
    259             # Unknown object, fall back to the emptyPrinter.

/Users/aswolf/anaconda/lib/python3.6/site-packages/sympy/printing/lambdarepr.py in blacklisted(self, expr)
    223     def blacklisted(self, expr):
    224         raise TypeError("numexpr cannot be used with %s" %
--> 225                         expr.__class__.__name__)
    226 
    227     # blacklist all Matrix printing

TypeError: numexpr cannot be used with tuple

In [69]:
f(.1)


Out[69]:
$$3000.0 \int_{0}^{0.1} \frac{t^{3}}{e^{t} - 1}\, dt$$

In [59]:
lambdify?

In [ ]: