def maxima_integrator(expression, v, a=None, b=None): """ Integration using Maxima EXAMPLES:: sage: from sage.symbolic.integration.external import maxima_integrator sage: maxima_integrator(sin(x), x) -cos(x) sage: maxima_integrator(cos(x), x) sin(x) sage: f(x) = function('f')(x) sage: maxima_integrator(f(x), x) integrate(f(x), x) TESTS: Check that :trac:`25817` is fixed:: sage: maxima_integrator(log(e^x*log(x)*sin(x))/x^2, x) 1/2*(x*(Ei(-log(x)) + conjugate(Ei(-log(x)))) - 2*x*integrate(sin(x)/(x*cos(x)^2 + x*sin(x)^2 + 2*x*cos(x) + x), x) + 2*x*integrate(sin(x)/(x*cos(x)^2 + x*sin(x)^2 - 2*x*cos(x) + x), x) + 2*x*log(x) + 2*log(2) - log(cos(x)^2 + sin(x)^2 + 2*cos(x) + 1) - log(cos(x)^2 + sin(x)^2 - 2*cos(x) + 1) - 2*log(log(x)))/x """ from sage.calculus.calculus import maxima if not isinstance(expression, Expression): expression = SR(expression) if a is None: result = maxima.sr_integral(expression, v) else: result = maxima.sr_integral(expression, v, a, b) return result._sage_()
def maxima_integrator(expression, v, a=None, b=None): """ sage: from sage.symbolic.integration.external import maxima_integrator sage: maxima_integrator(sin(x), x) -cos(x) sage: maxima_integrator(cos(x), x) sin(x) sage: f(x) = function('f')(x) sage: maxima_integrator(f(x), x) integrate(f(x), x) """ from sage.calculus.calculus import maxima if not isinstance(expression, Expression): expression = SR(expression) if a is None: result = maxima.sr_integral(expression, v) else: result = maxima.sr_integral(expression, v, a, b) return result._sage_()
def maxima_integrator(expression, v, a=None, b=None): """ sage: from sage.symbolic.integration.external import maxima_integrator sage: maxima_integrator(sin(x), x) -cos(x) sage: maxima_integrator(cos(x), x) sin(x) sage: f(x) = function('f', x) sage: maxima_integrator(f(x), x) integrate(f(x), x) """ from sage.calculus.calculus import maxima if not isinstance(expression, Expression): expression = SR(expression) if a is None: result = maxima.sr_integral(expression,v) else: result = maxima.sr_integral(expression, v, a, b) return result._sage_()