Integration Methods - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Calculus : Integration : int : Integration Methods

Integration Methods

The method option for Integration

 

Definite Integration

Numeric Integration

Indefinite Integration

Examples

Compatibility

Definite 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.

Numeric Integration

• 

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.

Indefinite Integration

• 

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.

• 

method=_RETURNVERBOSE applies all of the known methods and reports the results for each.

Examples

int1sqrt1t212t2,t=0..1,method=FTOC

EllipticK2

(1)

int1sqrt1t212t2,t=0..1,method=Elliptic

I2EllipticK222+2EllipticK222

(2)

int1sqrt1t212t2,t=0..1,method=NoElliptic

EllipticK2

(3)

If a method does not return a result, an unevaluated int call will be returned with the given method option.

int1sqrt1t212t2,t=0..1,method=Polynomial

int1t2+12t2+1,t=0..1,method=Polynomial

(4)

int1sqrt1t212t2,t=0..1,method=_UNEVAL

int1t2+12t2+1,t=0..1,method=_UNEVAL

(5)

infolevelIntegrationTools3:

int1sqrt1t212t2,t=0..1,method=_DEFAULT

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.

I2EllipticK222+2EllipticK222

(6)

Numeric Examples

intsinexpabsx1+x2,x=10..10,numeric,method=_DEFAULT

1.235076653

(7)

int11+ln1+x,x=0..1,numeric,method=_Gquad

0.7371607096

(8)

intsinexpabsx1+x2,x=10..10,numeric,method=_NoNAG

1.235076653

(9)

Indefinite Examples

intln1+expx,x,method=Risch

Stage2:   second-stage indefinite integration

dilog1+ⅇx

(10)

When a method fails, an unevaluated integral with the method option included is returned

intln1+expx,x,method=MeijerG

intln1+ⅇx,x,method=MeijerG

(11)

intcosx+1,x,method=Norman

2tanx2+121+tanx2+122

(12)

intcosx+1,x,method=MeijerG_raw

cos1xhypergeom,32,x24sin1x2hypergeom1,32,2,x242

(13)

Compatibility

• 

The  and  options were introduced in Maple 2023.

• 

For more information on Maple 2023 changes, see Updates in Maple 2023.

See Also

elliptic_int

evalf/Int

int

int/details

IntegrationTools

VectorCalculus[int]