def numerical(f, a, b, step): x = a lst = [] while x + step < b: dy, _ = numerical_integral(f, x, x + step) lst.append((x, dy)) x += step return lst
def _evalf_(self, f, x, a, b, parent=None, algorithm=None): """ Return a numerical approximation of the integral EXAMPLES:: sage: from sage.symbolic.integration.integral import definite_integral sage: h = definite_integral(sin(x)*log(x)/x^2, x, 1, 2); h integrate(log(x)*sin(x)/x^2, x, 1, 2) sage: h.n() # indirect doctest 0.14839875208053... TESTS: Check if :trac:`3863` is fixed:: sage: integrate(x^2.7 * e^(-2.4*x), x, 0, 3).n() 0.154572952320790 """ from sage.calculus.integration import numerical_integral # The gsl routine returns a tuple, which also contains the error. # We only return the result. return numerical_integral(f, a, b)[0]
def _evalf_(self, f, x, a, b, parent=None, algorithm=None): """ Returns numerical approximation of the integral EXAMPLES:: sage: from sage.symbolic.integration.integral import definite_integral sage: h = definite_integral(sin(x)*log(x)/x^2, x, 1, 2); h integrate(log(x)*sin(x)/x^2, x, 1, 2) sage: h.n() # indirect doctest 0.14839875208053... TESTS: Check if :trac:`3863` is fixed:: sage: integrate(x^2.7 * e^(-2.4*x), x, 0, 3).n() 0.154572952320790 """ from sage.calculus.integration import numerical_integral # The gsl routine returns a tuple, which also contains the error. # We only return the result. return numerical_integral(f, a, b)[0]