Integration Methods
The method option for Integration
Definite Integration
Numeric Integration
Indefinite Integration
Examples
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 derivative of the integrand divides the the integrand, and if so does a substitution to compute the integral.
Risch applies a partial implementation of Risch's algorithm for expressions involving elementary but no general algebraic functions 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.)
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 MiegerG functions in all cases.
Elliptic applies methods to rewrite an integral in terms of elliptic integrals. See the elliptic_int help page.
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.
int⁡1sqrt⁡1−t2⁢1−2⁢t2,t=0..1,method=FTOC
EllipticK⁡2
int⁡1sqrt⁡1−t2⁢1−2⁢t2,t=0..1,method=Elliptic
−I⁢2⁢EllipticK⁡222+2⁢EllipticK⁡222
int⁡1sqrt⁡1−t2⁢1−2⁢t2,t=0..1,method=NoElliptic
If a method does not return a result, an unevaluated int call will be returned with the given method option.
int⁡1sqrt⁡1−t2⁢1−2⁢t2,t=0..1,method=Polynomial
int⁡1−t2+1⁢−2⁢t2+1,t=0..1,method=Polynomial
int⁡1sqrt⁡1−t2⁢1−2⁢t2,t=0..1,method=_UNEVAL
int⁡1−t2+1⁢−2⁢t2+1,t=0..1,method=_UNEVAL
infolevelIntegrationTools≔3:
int⁡1sqrt⁡1−t2⁢1−2⁢t2,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.
Numeric Examples
int⁡sin⁡exp⁡abs⁡x1+x2,x=−10..10,numeric,method=_DEFAULT
1.235076653
int⁡11+ln⁡1+x,x=0..1,numeric,method=_Gquad
0.7371607096
int⁡sin⁡exp⁡abs⁡x1+x2,x=−10..10,numeric,method=_NoNAG
Indefinite Examples
int⁡ln⁡1+exp⁡x,x,method=Risch
−dilog⁡1+ⅇx
When a method fails, an unevaluated integral with the method option included is returned
int⁡ln⁡1+exp⁡x,x,method=MeijerG
int⁡ln⁡1+ⅇx,x,method=MeijerG
int⁡cos⁡x+1,x,method=Norman
2⁢tan⁡x2+121+tan⁡x2+122
int⁡cos⁡x+1,x,method=MeijerG_raw
cos⁡1⁢x⁢hypergeom⁡,32,−x24−sin⁡1⁢x2⁢hypergeom⁡1,32,2,−x242
See Also
elliptic_int
evalf/Int
int
int/details
IntegrationTools
VectorCalculus[int]
Download Help Document
What kind of issue would you like to report? (Optional)