Interesting and relevant developments in the MathematicalFunctions and FunctionAdvisor projects happened for Maple 2016, regarding both the user-interface and the mathematics, making this release a more complete and user-friendly environment to work with mathematical functions.
Gaps were filled regarding mathematical formulas, with more identities for all of BesselI, BesselK, BesselY, ChebyshevT, ChebyshevU, Chi, Ci, FresnelC, FresnelS, GAMMA(z), HankelH1, HankelH2, InverseJacobiAM, the twelve InverseJacobiPQ for P, Q in [C,D,N,S], KelvinBei, KelvinBer, KelvinKei, KelvinKer, LerchPhi, arcsin, arcsinh, arctan, ln;
Developments happened in the Mathematical function package, to both compute with symbolic sequences and symbolic nth order derivatives of algebraic expressions and functions;
The input FunctionAdvisor⁡differentiate_rule,mathematical_function now returns both the first derivative (old behavior) and the nth symbolic derivative (new behavior) of a mathematical function;
A new topic, plot, used as FunctionAdvisor⁡plot,mathematical_function, now returns 2-D and 3-D plots for each mathematical function, following the NIST Digital Library of Mathematical Functions;
The FunctionAdvisor⁡display,mathematical_function was redesigned, so that the display keyword is not necessary anymore. The command now displays more information about any mathematical function, and organized into a Section with subsections for each of the different topics, making it simpler to find the information one needs without getting distracted by a myriad of formulas that are not related to what one is looking for.
To display special functions and sequences using textbook notation as shown in this page, use extended typesetting:
More powerful symbolic differentiation (nth order derivative)
Mathematical handling of symbolic sequences
Visualization of mathematical functions
Section and subsections displaying properties of mathematical functions
More mathematical knowledge is in place, more identities, differentiation rules of special functions with respect to their parameters, differentiation of functions whose arguments involve symbolic sequences with an indeterminate number of operands, and sum representations for special functions under different conditions on the functions' parameters.
More identities for all of BesselI, BesselK, BesselY, ChebyshevT, ChebyshevU, Chi, Ci, FresnelC, FresnelS, GAMMA(z), HankelH1, HankelH2, InverseJacobiAM, the twelve InverseJacobiPQ for P, Q in [C,D,N,S], KelvinBei, KelvinBer, KelvinKei, KelvinKer, LerchPhi, arcsin, arcsinh, arctan, ln
More differentiation rules of special functions with respect to their parameters
Equating the inert derivative (on hold) to the active derivative (computed)
%diff = diffLaguerreLa, b, z, a
%diff = diffLaguerreLa, b, z, b
Differentiation rules of the hypergeometric pFq and MeijerG functions for an indeterminate (symbolic sequence) number of parameters:
%diff = diffhypergeomai$i=1..p, bi$i=1..q, z,z
The system can now also compute the nth symbolic order derivative of these hypergeometric functions of an indeterminate number of parameters:
%diff = diffhypergeomai$i=1..p, bi$i=1..q, z,z$n
In this development converge a number of lower level developments a) the Maple system now operates mathematically with symbolic sequences, addition, multiplication and differentiation, b) there is new typesetting for displaying of symbolic sequences, c) there is more mathematical knowledge in the differentiation rules, taking advantage of a) and b).
The kth order derivative of the more general MeijerG function with an indeterminate number (symbolic sequence) of parameters:
%diff = diffMeijerGai $ i=1..n,bi $ i=n+1..p, bi $ i=1..m,bi $ i=m+1..q, z ,z$k
The first order derivative of this function:
These formulas involve a rather high level of abstraction and required a number of underlying supporting routines to do all the mathematics correctly.
More sum representations of mathematical functions under different conditions on their parameters
* Partial match of "sum" against topic "sum_form".
Significant developments happened in the computation of the nth order derivative of mathematical functions and algebraic expressions involving them.
The symbolic differentiation of binomial(z, m)
And for the first time in computer algebra systems, we now have the Faà di Bruno formula for the nth derivative of a composite function working, using the IncompleteBell polynomials and taking advantage of the new developments in the mathematical handling and display of symbolic sequences:
All these results can also be verified with ease, for instance, the third derivative of the composite function f⁡g⁡z is given by
Check that the left-hand side in (2.1.5) is actually equal to the right-hand side
These developments regarding nth order symbolic differentiation are now displayed by the FunctionAdvisor when the differentiation rule of a mathematical function is requested
* Partial match of "diff" against topic "differentiation_rule".
Symbolic sequences enter various formulations in mathematics. Their computerized mathematical handling, however, was never implemented - only a representation for them existed in the Maple system. In connection with this, a new subpackage, Sequences, within the MathematicalFunctions package, has been developed.
The most typical cases of symbolic sequences are:
1) A sequence of numbers - say from n to m - frequently displayed as
2) A sequence of one object, say a, repeated say p times, frequently displayed as
3) A more general sequence, as in 1), but of different objects and not necessarily numbers, frequently displayed as
or likewise a sequence of functions
In all these cases, of course, none of n, m, or p are known: they are just symbols, or algebraic expressions, representing integer values.
A representation for these typical cases of symbolic sequences has been present in Maple for a long time using the `$` operator. Cases 1), 2) and 3) above are respectively entered as `$`n .. m, `$`a,p, and `$`ai, i = n .. m or `$`fi, i = n .. m. The typesetting of these symbolic sequences, however, did not exist. More relevant: too little could be done with these objects; the rest of Maple did not know how to add, multiply, differentiate, or map an operation over the elements of a symbolic sequence, nor for instance count the sequence's number of elements.
All these operations on symbolic sequences are now implemented and functional.
First of all, now these three types of sequences have textbook-like typesetting:
`$`n .. m
ai $ i = n .. m
Moreover, this now permits textbook display of mathematical functions that depend on sequences of parameters, for example:
hypergeomai $ i = 1 .. p,bi $ i = 1 .. q,z
More interestingly, these new developments now permit differentiating these functions even when their arguments are symbolic sequences, and displaying the result as in textbooks, with copy and paste working properly, for instance
%diff = diff,z
This enhances the representation capabilities in different relevant ways; to mention but one, this made possible the implementation of the Faà di Bruno formula for the nth symbolic derivative of composite functions for the first time in computer algebra systems.
To access the mathematics of symbolic sequences in Maple, first load the corresponding package:
With these commands, it is now possible to add, multiply, differentiate, or map an operation over the elements of a symbolic sequence, as well as count the sequence's number of elements.
For example, here are the three types of symbolic sequences mentioned, with textbook-like typesetting, and on which the operations Add, Multiply, Differentiate, Map, and Nops can now be performed:
`$`ai, i = n .. m
When working with mathematical functions, it is frequently desired to have a rapid glimpse of the shape of the function for some sample values of their parameters. Following the NIST Digital Library of Mathematical Functions, a new option, plot, has now been implemented.
The Jacobi elliptic sn and Weierstrass P functions,
In the first of the 3-D plots, for real values of the parameters n and z, sn⁡z|1−ⅇ−n is real and its value is on the vertical axis, while in last three 3-D complex plots, the coloring of the surface follows the value of the argument θ in z=z⁢ⅇI⁢θ, while on the vertical axis the absolute value of the function is plotted.
For the Weierstrass P function,
Each of these plots can be rotated, selected with the mouse, or copied and pasted elsewhere in the worksheet for further analysis.
Until recently, the display of a whole set of mathematical information regarding a function was somehow cumbersome, appearing all together on the screen. That display was and is still available via entering, for instance for the sin function, FunctionAdvisor⁡table, sin . That returns a table of information that can be used programmatically.
With time however, the FunctionAdvisor evolved into a consultation tool, where a better organization of the information being displayed is required, making it simpler to find the information we need without being distracted by a screen full of complicated formulas.
To address this requirement, the FunctionAdvisor now returns the information organized into a Section with subsections, built using the DocumentTools package. This enhances the presentation significantly.
For example, for the Ei and GAMMA functions
with no restrictions on ⁡z
Γ=Gamma and incomplete Gamma functions
No branch points
No branch cuts