A computer algebra system written in pure Python http://sympy.org/ . To get started to with contributing https://github.com/sympy/sympy/wiki/Introduction-to-contributing
class CustomLatexPrinter(LatexPrinter):
def _print_Idx(self,expr):
return self._print(expr.label)
@sym.printing.printer.print_function(CustomLatexPrinter)
def custom_latex(expr,**settings):
return CustomLatexPrinter(settings).doprint(expr)
.subs
function is quite slow. When I have a long expression e
(can contain nonlinear terms like x**2
, y*x*z
), calling e.subs(some_dict)
takes quite sometime (a sec or so). In fact subs is often slower than solving for large equations. Am I using subs
correctly?
import sympy as sp
from sympy import exp, oo
sp.init_printing()
x = sp.Symbol("x")
a, m, h = sp.symbols("a, m, h", positive = True)
A = sp.Symbol("A")
f = exp(-2 * a * m * x**2 / h)
int_f = sp.integrate(f, (x, 0, oo))
eq1 = 2 * (abs(A))**2 * (int_f) - 1
print(sp.solve(eq1, A))
Sum((-1)**(x+1) + (-1)**(x+2) , (x, 1, oo)).is_convergent()
is not returning the expected result and raises a TypeError saying Invalid NaN comparison , is this a meaningful error or Am I missing something useful ?Maybe I could raise an issue ?
sym.simplify(sym.Sum((-1)**(x+1)+(-1)**(x+2),(x,1,sym.oo)))