Integral Transforms - 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 : System : Information : Updates : Maple 2020 : Integral Transforms

Integral Transforms

Integral transforms are special integrals that appear frequently in mathematical physics and that have remarkable properties.  For Maple 2020, the implementation of these integrals has been extended in several ways, making them more useful for a variety of applications, including computing integrals, finding exact solutions to PDEs with boundary conditions (see also what's new in Maple 2020 for PDE & Boundary Conditions).  Improvements include the option to compute derivatives, numeric support, an alternate definition of the Hankel transform, and the ability to compute more transforms.

 

As background, these integrals are represented by the commands of the inttrans package:

withinttrans

addtable,fourier,fouriercos,fouriersin,hankel,hilbert,invfourier,invhilbert,invlaplace,invmellin,laplace,mellin,savetable,setup

(1)

Three of these commands, addtable, savetable, and setup (new as of Maple 2020) are "administrative" commands, while the others are computational representations for definite integrals. For example,

FunctionAdvisorintegral_form, fourier

a,b,z=aⅇIbzⅆb,with no restrictions on a,b,z

(2)

FunctionAdvisorintegral_form, mellin

a,b,z=0abz1ⅆb,with no restrictions on a,b,z

(3)

For all integral transform commands, the first argument is the integrand, the second one is the dummy integration variable of a definite integral and the third one is the evaluation point (also called transform variable).

 

Compute derivatives: yes or no.

Numerical evaluation

Two Hankel transform definitions

More integral transform results

Compute derivatives: yes or no.

Generally speaking, in computer algebra, "given a function fx, the input ⅆⅆxfx should return the derivative of fx". For the purpose of using integral transforms to solve differential equations, however, the implementation in previous Maple releases worked in the opposite direction: if you were to input the result of the derivative, you would receive the derivative representation. For example, to the input laplacetft,t,s you would receive ddslaplaceft,t,s. To extend the capabilities of the system and have the best result in any scenario, a new command, setup, has been added to the package, so that you can set whether or not to compute derivatives, and the default has been changed to computederivatives = true while the previous behavior is obtained only if you input setupcomputederivatives=false. To query about the status of this new setting enter

 

setupcomputederivatives

computederivatives=true

(1.1)

and so differentiating returns the derivative computed

%diff = difflaplaceft,t,s,s

sft,t,s=ftt,t,s

(1.2)

while changing this setting to work as in previous releases you have this computation reversed: you input the output (1.2) and you get the corresponding input

setupcomputederivatives = false

computederivatives=false

(1.3)

sft,t,s=sft,t,s

(1.4)

Reset the value of computederivatives

setupcomputederivatives = true

computederivatives=true

(1.5)

sft,t,s=ftt,t,s

(1.6)

In summary: by default, derivatives of all the 11 integral transforms are now computed. This setting can be changed any time you want within a Maple session without restarting, and changing it does not have any impact on the performance of intsolve, dsolve and pdsolve to solve differential equations using integral transforms.

 

Numerical evaluation

In previous releases, integral transforms had no numerical evaluation implemented. This is in the process of changing. So, for example, to numerically evaluate the inverse laplace transform (invlaplace command), three different algorithms have been implemented: Gaver-Stehfest, Talbot and Euler, following the presentation by Abate and Whitt, "Unified Framework for Numerically Inverting Laplace Transforms", INFORMS Journal on Computing 18(4), pp. 408–421, 2006.

 

For example, consider the exact solution to this partial differential equation subject to initial and boundary conditions

pdexux,t=42t2ux,t:

iv  ux, 0 = 0, u0, t = 1:

 

Note that these two conditions are not entirely compatible: the solution returned cannot be valid for x=0 and t=0 simultaneously. However, a solution discarding that point does exist and is given by

sol  pdsolvepde, iv

solux,t=1ⅇst2s,s,x+1

(2.1)

Verifying the solution, one condition remains to be tested

pdetestsol,pde,iv

0,0,1ⅇst2s,s,0

(2.2)

Since we now have numerical evaluation rules, we can test that what looks different from 0 in the above is actually 0.

zero  1

zero1ⅇst2s,s,0

(2.3)

Add a small number to the initial value of t to skip the point t=0:

plotzero,t=0+1010..1

The default method used is the method of Euler sums and the numerical evaluation is performed as usual using the evalf command. For example, consider

Fsin2t

Fsin2t

(2.4)

 

The Laplace transform of F is given by

LT  laplaceF,t,s

LT2πⅇ12s2s32

(2.5)

and the inverse Laplace transform of LT in inert form is

ILT  %invlaplaceLT, s, t

ILT12πⅇ12s2s32,s,t

(2.6)

Since by construction ILT = F, at t=1 we have

evalILT=F, t=1

12πⅇ12s2s32,s,1=sin2

(2.7)

This inert form on the left-hand side is numerically evaluated next, directly, without symbolically resolving it to be equal to sin2. The result of both sides is consistent:

evalf

0.9877659460=0.9877659459

(2.8)

In addition to the standard use of evalf to numerically evaluate inverse Laplace transforms, one can invoke each of the three different methods implemented using the MathematicalFunctions:-Evalf command

withMathematicalFunctions,Evalf

Evalf

(2.9)

Evalflhs, method = Talbot

0.9877659460

(2.10)

MathematicalFunctions:-Evalflhs, method = GaverStehfest

0.9877659460

(2.11)

MathematicalFunctions:-Evalflhs, method = Euler

0.9877659460

(2.12)

Regarding the method we use by default: from a numerical experiment with varied problems, we have concluded that our implementation of the Euler (sums) method is faster and more accurate than the other two.

 

Two Hankel transform definitions


In previous Maple releases, the definition of the Hankel transform was given by

hankelft,t,s,ν=0ftstJνstⅆt

where Jνst is the BesselJnu, st function. This definition, sometimes called alternative definition of the Hankel transform, has the advantage of having a large table of transforms presented in the literature (ref.[1]) but has the inconvenience of the square root st in the integrand, complicating the form of the Hankel transform for the Laplacian in cylindrical coordinates. On the other hand, the other definition in the literature,

 hankelft,t,s,ν=0fttJνstⅆt

has the advantage that, with it, the Hankel transform of 2r2ur,t+rur,tr+2t2ur,t is given by the simple ODE form d2dt2 ℋk,tk2ℋk,t. Several other transforms also acquire a simpler form. So for Maple 2020 we added an algorithm that takes formulas for one definition and transforms them into formulas for the other definition, and have aligned Maple with this simpler definition (no st in the integrand), while keeping the previous definition as an alternative.

 

Hence, by default, when you load the inttrans package, the new definition in use for the Hankel transform is

hankelft,t,s,nu: % = convert%,Int

ft,t,s,ν=0fttJνstⅆt

(3.1)

You can change this default so that Maple works with the alternative definition as in previous releases.  For that purpose, use the new inttrans:-setup command (which you can also use to query about the definition in use at any moment):

setupalternativehankeldefinition

alternativehankeldefinition=false

(3.2)

The change in the default definition implemented in Maple 2020 is automatically taken into account by other parts of the Maple library using the Hankel transform. For example, the differentiation rule with the new definition is

%diff = diffhankelft,t,z,nu,z

zft,t,z,ν=ftt,t,z,ν+1+νft,t,z,νz

(3.3)

This differentiation rule resembles (is connected to) the differentiation rule for BesselJ, and this is another advantage of the new definition.

%diff = diffBesselJnu,z,z

ⅆⅆzJνz=Jν+1z+νJνzz

(3.4)

Furthermore, several transforms have acquired a simpler form, as for example:

%hankel &equals; hankelexpI a rr&comma; r&comma; k&comma; 0 assuming a &gt; 0&comma; k < a

(3.5)

Let's compare: make the definition be as in previous releases.

setupalternativehankeldefinition &equals; true

alternativehankeldefinition=true

(3.6)

hankelft&comma;t&comma;s&comma;nu&colon; % &equals; convert%&comma;Int

ft&comma;t&comma;s&comma;ν=0ftstJνst&DifferentialD;t

(3.7)

The differentiation rule with the previous (alternative) definition was not as simple:

%diff &equals; diffhankelft&comma;t&comma;s&comma;nu&comma;s

sft&comma;t&comma;s&comma;ν=ftt&comma;t&comma;s&comma;ν+1+νft&comma;t&comma;s&comma;νs+ft&comma;t&comma;s&comma;ν2s

(3.8)

And the transform (3.5) was also not so simple:

%hankel &equals; hankelexpI a rr&comma; r&comma; k&comma; 0 assuming a &gt; 0&comma; k < a

&ExponentialE;Iarr&comma;r&comma;k&comma;0=IΓ344aF1234,34;32;a2k2+π2F1214,14;12;a2k2kkπΓ342

(3.9)

Reset to the new default value of the definition.

setupalternativehankeldefinition &equals; false

alternativehankeldefinition=false

(3.10)

hankelft&comma;t&comma;s&comma;nu&colon; % &equals; convert%&comma;Int

ft&comma;t&comma;s&comma;ν=0fttJνst&DifferentialD;t

(3.11)

References

[1] Oberhettinger Fritz, Tables of Bessel Transforms. Springer Verlag, 1972.

 

More integral transform results

 

Maple is now able to compute more transforms. For example, for the Hankel transform, consider the operators

`D/t`u&rarr;tut&colon;formula_plustν`D/t`mtm+νut&colon;formula_minustν`D/t`mtmνut&colon;

 

Being able to transform these operators into algebraic expressions or differential equations of lower order is key for solving ODE and PDE problems with Boundary Conditions. To illustrate that, set computederivatives&equals;false, a more convenient setting to use transforms to simplify differential equations, and insert some values in formula_minus

setupcomputederivatives &equals; false&semi;

computederivatives=false

(4.1)

simplifyevalformula_minus&comma; nu &equals; 6&comma; m &equals; 3

&DifferentialD;3&DifferentialD;t3utt312&DifferentialD;2&DifferentialD;t2utt2+57&DifferentialD;&DifferentialD;tutt105utt3

(4.2)

Its Hankel transform is

hankel&comma;t&comma;s&comma;6

s3ut&comma;t&comma;s&comma;3

(4.3)

An example with formula_plus:

simplifyevalformula_plus&comma; nu &equals; 7&comma; m &equals; 4

&DifferentialD;4&DifferentialD;t4utt4+38&DifferentialD;3&DifferentialD;t3utt3+477&DifferentialD;2&DifferentialD;t2utt2+2295&DifferentialD;&DifferentialD;tutt+3465utt4

(4.4)

hankel&comma;t&comma;s&comma;7

s4ut&comma;t&comma;s&comma;11

(4.5)

Not just differential operators but also several new transforms are now computable

hankel1&comma;r&comma;k&comma;nu

δkkν=0νk2otherwise

(4.6)

hankelrm&comma;r&comma;k&comma;nu

δkkν=0m=02m+1km2Γ1+m2+ν2Γν2m2otherwise

(4.7)

 

mellinlog4&plus;xx3&comma;x&comma;s

πcscπs169cosπss

(4.8)

fouriersinlna&plus;xxb&comma;x&comma;y assuming 0<a&comma;0<b

2lnab+cosbyCibycosayCiay+sinbySibysinaySiay+πsinby+sinay2πy

(4.9)

fouriersinlna&plus;xxax2&comma;x&comma;y assuming 0<a

2π1cosayaySsiaya

(4.10)

fouriersinlna2&plus;x2b2&plus;x2x&comma;x&comma;y assuming 0<a&comma;0<b

2πCibyEiaylnba

(4.11)

fouriercoslna&plus;xxax&comma;x&comma;y assuming 0<a

2πSsiay

(4.12)