The method option for Integration
The following definite integration methods can be specified with the method option to int.
method=_DEFAULT forces use of the default integration method. It runs all of the integrators in sequence and returns the first answer found.
method=_UNEVAL causes the integrator to return unevaluated without trying any integration methods.
method=Integrator runs only the named Integrator and returns the result or unevaluated. The integrator names are not case sensitive. The most interesting integrators for users are:
LookUp tries to find the integral in a lookup table.
FTOC applies the fundamental theorem of calculus using indefinite integration and limits. The method FTOCMS does the same, but uses the limit implementation in MultiSeries.
Elliptic applies methods to rewrite an integral in terms of elliptic integrals. See the elliptic_int help page. There is also an EllipticTrig method which applies substitutions to find trig and hyperbolic trig forms of elliptic integrals.
Polynomial directly computes the integral algebraically if it is a polynomial. Ratpoly does the same with rational functions.
MeijerG attempts to integrate by converting the integrand into an expression in terms of MeijerG functions.
Running int with infolevel[IntegrationTools] set to 3 will show the list of integrators run.
method=NoIntegrator runs the default integration method but skips the any integrator with a name prefixed by Integrator. e.g. NoElliptic skips methods Elliptic and EllipticTrig.
method=NoXXIntegrator skips only the named integrator. e.g. NoXXElliptic skips only method Elliptic.
method=[method1, method2, etc] combines methods. If the methods are integrators, then each is tried in sequence. If the methods are all of the form NoIntegrator then they are each removed from the default integration sequence. A list with one method or a list combining Integrator and NoIntegrator methods is not particularly useful, but both are supported. _UNEVAL overrides any other methods it might be combined with and _DEFAULT is overridden by any other methods.
method=_RETURNVERBOSE applies all of the known methods and reports the results for each.
When int is called with the numeric option then the value of the method option is passed to evalf/Int. A comprehensive guide to all the possible method options can be found on the evalf/Int help page.
The indefinite integration polyalgorithm in Maple is not formulated as a single pass through a list of integration methods. However, the method option can be used get access to some of the individual integration algorithms used as part of the integration process. The supported values for indefinite integration are below. They can be given as names or strings and are not case sensitive.
method=_DEFAULT is equivalent to not specifying a method, exactly like definite and numeric integration.
method=_UNEVAL returns without trying anything, exactly like definite integration.
method=algorithm runs exactly the method specified:
DDivides tests if the derivatives of subexpressions of the integrand divide the integrand, and if so it does a substitution to compute the integral.
Parts tests if any possible factors of the integrand have a factor with a nice antiderivative and if so computes the integral by integration by parts.
Risch applies a partial implementation of Risch's algorithm for expressions involving elementary but no general algebraic functions. If no radical functions are in the integrand, failure of this method indicates there is no integral in terms of elementary functions.
Norman applies just the Risch-Norman stage of the method=Risch.
Trager applies the Risch-Trager algorithm for the integration of a pure algebraic function, given by a single extension. (In terms of a single unnested RootOf, it will try to convert radical expressions to RootOf form.)
ParallelRisch applies a version of the Risch algorithm that considers the extensions in parallel rather than one at a time. It can produce much simpler answers than method=Risch in some cases.
MeijerG uses a variation of the definite MeijerG method that can find indefinite integrals. Two variations MeijerG_raw and Meijer_hg return the results of the method in terms of MeijerG functions or hypergeom functions, respectively. (Note that some MeijerG functions already automatically evaluate to hypergeometric functions so the raw output may not actually be presented in terms if MeijerG functions in all cases.
Elliptic applies methods to rewrite an integral in terms of elliptic integrals. See the elliptic_int help page.
Pseudoelliptic does a broad search for substitutions to compute an elementary integral for algebraic integrands that look similar to elliptic integrals.
LookUp tries to find the integral in a lookup table--this is very limited compared to the lookup tables for definite integration.
Gosper applies Gosper's method to find the integral of hyperexponential functions. It calls DEtools[Gosper].
method=[method1, method2, etc] applies every method in the list in turn and returns the answer from the first one successful.
If a method does not return a result, an unevaluated int call will be returned with the given method option.
infolevelIntegrationTools ≔ 3:
Definite Integration: Integrating expression on t=0..1
Definite Integration: Using the integrators [distribution, piecewise, series, o, polynomial, ln, lookup, cook, ratpoly, elliptic, elliptictrig, meijergspecial, improper, asymptotic, ftoc, ftocms, meijerg, contour]
LookUp Integrator: unable to find the specified integral in the table
Definite Integration: Method elliptic succeeded.
Definite Integration: Finished sucessfully.
Stage2: second-stage indefinite integration
When a method fails, an unevaluated integral with the method option included is returned
The and options were introduced in Maple 2023.
For more information on Maple 2023 changes, see Updates in Maple 2023.
Download Help Document