Austin Roche

140 Reputation

11 years, 122 days
Maplesoft
I am a Senior Software Developer in the Math Group, working mostly on the Maple library. I have been working at Maplesoft since 2007, in various areas including differential equations, integration, mathematical functions, simplification, root finding, and logic. I completed a Master's degree from McGill University with a thesis in Differential Geometry, and a PhD from Simon Fraser University with a thesis on Differential Equations.

New and improved integration results in ...

Maple 2016

The attached worksheet shows a small selection of new and improved results in integration for Maple 2016. Note that integration is a vast topic, so there will always be more improvements that can be made, but be sure that we are working on them.

A selection of new and improved integration results for Maple 2016

Indefinite integrals:

 > int(sqrt(1+sqrt(z-1)), z);
 (1.1)
 > int(arctan((-1+sec(x))^(1/2))*sin(x), x);
 (1.2)
 > int(((1+exp(I*x))^2+(1+exp(-I*x))^2)/(1-2*c*cos(x)+c^2), x);
 (1.3)
 > int(x^4/arccos(x)^(3/2),x);
 (1.4)

Definite integrals:

 > int(arcsin(sin(z)), z=0..1);
 (1.5)
 > int(sqrt(1 - sqrt(1+z)), z=0..1);
 (1.6)
 > int(z/(exp(2*z)+4*exp(z)+10),z = 0 .. infinity);
 (1.7)
 > simplify(int(sinh(a*abs(x-y)), y=0..c, 'method'='FTOC'));
 (1.8)
 > int(ln(x+y)/(x^2+y), [x=0..infinity, y=0..infinity]);
 (1.9)

Definite integrals with assumptions on the parameters:

 > int(x^(-ln(x)),x=0..b) assuming b > 0;
 (1.10)
 > int(exp(-z)*exp(-I*n*z)*cos(n*z),z = -infinity .. infinity) assuming n::integer;
 (1.11)

Integral of symbolic integer powers of sin(x) or cos(x):

 > int(sin(x)^n,x) assuming n::integer;
 (1.12)
 > int(cos(x)^n,x) assuming n::negint;
 (1.13)
 > int(cos(x)^n,x) assuming n::posint;
 (1.14)

 > int(sqrt(1+sqrt(x)), x);
 (2.1)
 > int(sqrt(1+sqrt(1+z)), z= 0..1);
 (2.2)
 > int(signum(z^k)*exp(-z^2), z=-infinity..infinity) assuming k::real;
 (2.3)
 > int(2*abs(sin(x*p)*sin(x)), x = 0 .. Pi) assuming p> 1;
 (2.4)
 > int(1/(x^4-x+1), x = 0 .. infinity);
 (2.5)

In Maple 2016, this multiple integral is computed over 3 times faster than it was in Maple 2015.

 > int(exp(abs(x1-x2))*exp(abs(x1-x3))*exp(abs(x3-x4))*exp(abs(x4-x2)), [x1=0..R, x2=0..R, x3=0..R, x4=0..R], AllSolutions) assuming R>0;
 (2.6)

Austin Roche
Mathematical Software, Maplesoft

Integration Variables in Maple...

A customer on Twitter recently asked why Maple gives the following result:

The issue here is that the  in  is the same as the integration variable. 140 characters is not a lot to work with for a reply, so here is a longer explanation.

First, note that the process of integration treats the integration variable differently than the other variables, so that replacing another variable by the integration variable has a different effect depending on whether the replacement is done before or after the integration is performed. Consider this simple example:

 (4)

 (5)

 (6)

 (7)

In other words, integration does not commute with substitution. This is a fundamental property of integration and in fact, Maple's eval has special rules to take this into account when you ask it to replace the integration variable.  For example, if you evaluate the inert form of the integral at , the substitution is performed explicitly:

 (8)

 (9)

However, if you try to evaluate at , the evaluation is delayed until after the integral is evaluated:

 (10)

 (11)

The eval command knows it shouldn't substitute into an integral when the substitution involves the variable of integration.

However, in the user's example, asking Maple for  is equivalent to substitution directly before the integration is performed, like this:

 (12)

which of course gives:

 (13)

Another way to have the two  variables be considered distinct is to explicitly make the integration variable a dummy by declaring it local:

Now the s are treated differently:

 (14)

Austin Roche

Senior Math Developer

Maplesoft