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
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ⅇI⁢b⁢zⅆb,with no restrictions on ⁡a,b,z
FunctionAdvisorintegral_form, mellin
ℳ⁡a,b,z=∫0∞a⁢bz−1ⅆb,with no restrictions on ⁡a,b,z
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
Generally speaking, in computer algebra, "given a function f⁡x, the input ⅆⅆxf⁡x should return the derivative of f⁡x". 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 laplace−t⋅ft,t,s you would receive ddslaplace⁡f⁡t,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 setup⁡computederivatives=false. To query about the status of this new setting enter
setupcomputederivatives
computederivatives=true
and so differentiating returns the derivative computed
%diff = difflaplacef⁡t,t,s,s
∂∂sℒ⁡f⁡t,t,s=−ℒ⁡f⁡t⁢t,t,s
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
∂∂sℒ⁡f⁡t,t,s=∂∂sℒ⁡f⁡t,t,s
Reset the value of computederivatives
setupcomputederivatives = true
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.
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
pde≔∂∂xux,t=4⁢∂2∂t2u⁡x,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
sol≔u⁡x,t=−ℒ−1⁡ⅇ−s⁢t2s,s,x+1
Verifying the solution, one condition remains to be tested
pdetestsol,pde,iv
0,0,−ℒ−1⁡ⅇ−s⁢t2s,s,0
Since we now have numerical evaluation rules, we can test that what looks different from 0 in the above is actually 0.
zero ≔ −1
zero≔−ℒ−1⁡ⅇ−s⁢t2s,s,0
Add a small number to the initial value of t to skip the point t=0:
plotzero,t=0+10−10..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
F≔sin2⁢t
F≔sin⁡2⁢t
The Laplace transform of F is given by
LT ≔ laplaceF,t,s
LT≔2⁢π⁢ⅇ−12⁢s2⁢s32
and the inverse Laplace transform of LT in inert form is
ILT ≔ %invlaplaceLT, s, t
ILT≔ℒ−1⁡2⁢π⁢ⅇ−12⁢s2⁢s32,s,t
Since by construction ILT = F, at t=1 we have
evalILT=F, t=1
ℒ−1⁡2⁢π⁢ⅇ−12⁢s2⁢s32,s,1=sin⁡2
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
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
Evalflhs, method = Talbot
0.9877659460
MathematicalFunctions:-Evalflhs, method = GaverStehfest
MathematicalFunctions:-Evalflhs, method = Euler
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.
In previous Maple releases, the definition of the Hankel transform was given by
hankel⁡f⁡t,t,s,ν=∫0∞f⁡t⁢s⁢t⁢Jν⁡s⁢tⅆt
where Jν⁡s⁢t is the BesselJnu, s⋅t 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 s⁢t 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,
hankel⁡f⁡t,t,s,ν=∫0∞f⁡t⁢t⁢Jν⁡s⁢tⅆt
has the advantage that, with it, the Hankel transform of ∂2∂r2u⁡r,t+∂∂ru⁡r,tr+∂2∂t2u⁡r,t is given by the simple ODE form d2dt2 ℋk,t−k2⁢ℋ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 s⁢t 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
ℋ⁡f⁡t,t,s,ν=∫0∞f⁡t⁢t⁢Jν⁡s⁢tⅆt
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
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
∂∂zℋ⁡f⁡t,t,z,ν=−ℋ⁡f⁡t⁢t,t,z,ν+1+ν⁢ℋ⁡f⁡t,t,z,νz
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ν+1⁡z+ν⁢Jν⁡zz
Furthermore, several transforms have acquired a simpler form, as for example:
%hankel = hankelexpI a rr, r, k, 0 assuming a > 0, k < a
Let's compare: make the definition be as in previous releases.
setupalternativehankeldefinition = true
alternativehankeldefinition=true
ℋ⁡f⁡t,t,s,ν=∫0∞f⁡t⁢s⁢t⁢Jν⁡s⁢tⅆt
The differentiation rule with the previous (alternative) definition was not as simple:
%diff = diffhankelft,t,s,nu,s
∂∂sℋ⁡f⁡t,t,s,ν=−ℋ⁡f⁡t⁢t,t,s,ν+1+ν⁢ℋ⁡f⁡t,t,s,νs+ℋ⁡f⁡t,t,s,ν2⁢s
And the transform (3.5) was also not so simple:
ℋ⁡ⅇI⁢a⁢rr,r,k,0=I⁢Γ⁡344⁢a⁢F12⁡34,34;32;a2k2+π2⁢F12⁡14,14;12;a2k2⁢kk⁢π⁢Γ⁡342
Reset to the new default value of the definition.
setupalternativehankeldefinition = false
References
[1] Oberhettinger Fritz, Tables of Bessel Transforms. Springer Verlag, 1972.
Maple is now able to compute more transforms. For example, for the Hankel transform, consider the operators
`D/t` ≔ u→∂∂t⁢ut:formula_plus≔t−ν⁢`D/t`mtm+ν⁢u⁡t:formula_minus≔tν⁢`D/t`mtm−ν⁢u⁡t:
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=false, a more convenient setting to use transforms to simplify differential equations, and insert some values in formula_minus
setupcomputederivatives = false;
simplifyevalformula_minus, nu = 6, m = 3
ⅆ3ⅆt3u⁡t⁢t3−12⁢ⅆ2ⅆt2u⁡t⁢t2+57⁢ⅆⅆtu⁡t⁢t−105⁢u⁡tt3
Its Hankel transform is
hankel,t,s,6
−s3⁢ℋ⁡u⁡t,t,s,3
An example with formula_plus:
simplifyevalformula_plus, nu = 7, m = 4
ⅆ4ⅆt4u⁡t⁢t4+38⁢ⅆ3ⅆt3u⁡t⁢t3+477⁢ⅆ2ⅆt2u⁡t⁢t2+2295⁢ⅆⅆtu⁡t⁢t+3465⁢u⁡tt4
hankel,t,s,7
s4⁢ℋ⁡u⁡t,t,s,11
Not just differential operators but also several new transforms are now computable
hankel1,r,k,nu
δ⁡kkν=0νk2otherwise
hankelrm,r,k,nu
δ⁡kkν=0∧m=02m+1⁢k−m−2⁢Γ⁡1+m2+ν2Γ⁡ν2−m2otherwise
mellinlog⁡4+xx−3,x,s
π⁢csc⁡π⁢s⁢16−9⁢cos⁡π⁢ss
fouriersinln⁡a+xx−b,x,y assuming 0<a,0<b
2⁢ln⁡ab+cos⁡b⁢y⁢Ci⁡b⁢y−cos⁡a⁢y⁢Ci⁡a⁢y+sin⁡b⁢y⁢Si⁡b⁢y−sin⁡a⁢y⁢Si⁡a⁢y+π⁢sin⁡b⁢y+sin⁡a⁢y2π⁢y
fouriersinln⁡a+xx−ax2,x,y assuming 0<a
2⁢π⁢1−cos⁡a⁢y−a⁢y⁢Ssi⁡a⁢ya
fouriersinln⁡a2+x2−b2+x2x,x,y assuming 0<a,0<b
2⁢π⁢Ci⁡b⁢y−Ei⁡−a⁢y−ln⁡ba
fouriercosln⁡a+xx−ax,x,y assuming 0<a
−2⁢π⁢Ssi⁡a⁢y
Download Help Document