Mathematical Functions
Maple provides a state-of-the-art environment for algebraic and numeric computations with mathematical functions. The requirements concerning mathematical functions, however, are not just computational: typically, you also need information on identities, alternative definitions and mathematical properties in general. For these purposes Maple provides the MathematicalFunctions package and the FunctionAdvisor command, whose main goals are to provide tools for advanced computations with mathematical functions, and to make the information that the Maple system can provide more complete at each release, providing access to each piece of information through a simple interface.
The FunctionAdvisor
The conversion network for mathematical functions
New commands in the MathematicalFunctions package
Numerical evaluation of the Jacobi Amplitude
For Maple 2015, an important amount of mathematical formulas were added to the database of the FunctionAdvisor command.
Examples
The complex components:
FunctionAdvisoridentities,argument
arg⁡z=−I⁢ln⁡zz,arg⁡z=−I⁢ln⁡signum⁡z,arg⁡z=arctan⁡ℑ⁡z,ℜ⁡z,arg⁡z⁢a=arg⁡z,0<a,arg⁡z⁢a=arg⁡z+arg⁡a+2⁢π⁢12−arg⁡z2⁢π−arg⁡a2⁢π,arg⁡za=arg⁡z−arg⁡a+2⁢π⁢12−arg⁡z2⁢π+arg⁡a2⁢π,arg⁡za=a⁢arg⁡z,a::realAnd−π<a⁢arg⁡zAnda⁢arg⁡z<π,arg⁡za=arg⁡ⅇI⁢a⁢arg⁡z,a::real,arg⁡za=arctan⁡sin⁡arctan⁡ℑ⁡z,ℜ⁡z⁢ℜ⁡a+ℑ⁡a⁢ln⁡z,cos⁡arctan⁡ℑ⁡z,ℜ⁡z⁢ℜ⁡a+ℑ⁡a⁢ln⁡z
FunctionAdvisoridentities,Re
ℜ⁡I⁢z=−ℑ⁡z,ℜ⁡z=z⁢1+1ⅇ2⁢I⁢arg⁡z2,ℜ⁡z=z⁢1+1signum⁡z22,ℜ⁡z=z2+z22⁢z,ℜ⁡z=z2+z&conjugate0;2,ℜ⁡z⁢a=a⁢ℜ⁡z,a::real,ℜ⁡z⁢a=ℜ⁡z⁢ℜ⁡a−ℑ⁡a⁢ℑ⁡z,ℜ⁡za=ℜ⁡z⁢ℜ⁡a+ℑ⁡a⁢ℑ⁡za2,ℜ⁡za=zℜ⁡a⁢ⅇ−arg⁡z⁢ℑ⁡a⁢cos⁡arg⁡z⁢ℜ⁡a+ℑ⁡a⁢ln⁡z
The Jacobi elliptic functions:
FunctionAdvisoridentities,JacobiAM
am⁡z|k=arccos⁡cn⁡z|k,0<ℜ⁡am⁡z|k<πAndk∈−1,1orℜ⁡am⁡z|k=0And0≤ℑ⁡am⁡z|kAndk∈−1,1orℜ⁡am⁡z|k=πAndℑ⁡am⁡z|k≤0Andk∈−1,1,am⁡z|k=arcsin⁡sn⁡z|k,−π2<ℜ⁡am⁡z|k<π2Andk::realorℜ⁡am⁡z|k=−π2And0≤ℑ⁡am⁡z|kAndk::realorℜ⁡am⁡z|k=π2Andℑ⁡am⁡z|k≤0Andk::real
A new topic, periodicity, got added:
FunctionAdvisorperiodicity,JacobiAM
am⁡2⁢K⁡k⁢m+z|k=am⁡z|k+π⁢mk≤10m::evensignum⁡motherwiseotherwise,And⁡m::integer,am⁡2⁢I⁢K′⁡k⁢n+z|k=−1n⁢am⁡z|k+π⁢0n::evensignum⁡ℜ⁡z⁢signum⁡notherwise,And⁡n::integer
FunctionAdvisorperiodicity,JacobiCN
cn⁡z+2⁢K⁡k⁢r+2⁢I⁢K′⁡k⁢s|k=−1s+r⁢cn⁡z|k,r::integerAnds::integer
FunctionAdvisoridentities,JacobiCN
cn⁡z|k=π⁢∑n=−∞∞⁡−1n⁢sech⁡π⁢K⁡k⁢n+z2⁢K⁡kK′⁡k2⁢k2⁢K′⁡k,cn⁡z+K⁡k|k=−−k2+1⁢sn⁡z|kdn⁡z|k,cn⁡z+I⁢K′⁡k|k=−I⁢dn⁡z|kk2⁢sn⁡z|k,cn⁡z|1k=dn⁡zk|k,cn⁡I⁢z|k=1cn⁡z|−k2+1,cn⁡z|I⁢k=dc⁡k⁢z|1+1k2,cn⁡1+k⁢z|2⁢k1+k2=cn⁡z|k⁢dn⁡z|k1+k⁢sn⁡z|k2,cn⁡z|k=nc⁡I⁢z|−k2+1,cn⁡1+−k2+1⁢z|1−−k2+121+−k2+12=1−1+−k2+1⁢sn⁡z|k2dn⁡z|k,cn⁡z2|k2=dn⁡z|k+cn⁡z|k1+dn⁡z|k,cn⁡z|k2=1−sn⁡z|k2,cn⁡v+z|k=sn⁡z|k⁢dn⁡z|k⁢sn⁡v|k⁢dn⁡v|k−cn⁡z|k⁢cn⁡v|kk2⁢sn⁡v|k2⁢sn⁡z|k2−1
FunctionAdvisoridentities,InverseJacobiSN
The JacobiTheta functions:
FunctionAdvisoridentities,JacobiTheta1
ϑ1⁡z+2⁢m+1⁢π2,q=−1m⁢ϑ2⁡z,q,m::integer,ϑ1⁡z,q⁡k=k214⁢sn⁡2⁢K⁡k⁢zπ|k⁢ϑ4⁡z,q⁡k,ϑ1⁡zτ,ⅇ−I⁢πτ=−I⁢−I⁢τ⁢ϑ1⁡z,ⅇI⁢π⁢τ⁢ⅇ−I⁢πτ14⁢ⅇI⁢z2π⁢τ+I⁢π4⁢τ,0<ℑ⁡τ,ϑ1⁡z,q2=ϑ2⁡0,q2⁢ϑ3⁡z,q2−ϑ3⁡0,q2⁢ϑ2⁡z,q2ϑ4⁡0,q2,ϑ2⁡0,q2⁢ϑ1⁡y+x,q⁢ϑ1⁡x−y,q=ϑ1⁡x,q2⁢ϑ2⁡y,q2−ϑ2⁡x,q2⁢ϑ1⁡y,q2,ϑ1⁡2⁢z,q=2⁢ϑ1⁡z,q⁢ϑ2⁡z,q⁢ϑ3⁡z,q⁢ϑ4⁡z,qϑ2⁡0,q⁢ϑ3⁡0,q⁢ϑ4⁡0,q,ϑ1⁡y+x,q⁢ϑ1⁡x−y,q⁢ϑ1⁡c+d,q⁢ϑ1⁡c−d,q−ϑ1⁡x+c,q⁢ϑ1⁡−x+c,q⁢ϑ1⁡d+y,q⁢ϑ1⁡d−y,q+ϑ1⁡x+d,q⁢ϑ1⁡−x+d,q⁢ϑ1⁡y+c,q⁢ϑ1⁡−y+c,q=0,ϑ1⁡z,q=2⁢ϑ1⁡z,q⁢ϑ4⁡z,qϑ2⁡0,q,ϑ1⁡z,q=2⁢q14⁢sin⁡z⁢∏k=1∞⁡1−q2⁢k⁢1−2⁢q2⁢k⁢cos⁡2⁢z+q4⁢k,ϑ1⁡z,q=ϑ2⁡z−π2,q,ϑ1⁡z,q=I⁢ϑ3⁡z+I⁢ln⁡q2−π2,q⁢q14ⅇI⁢z,ϑ1⁡z,q=I⁢ϑ4⁡z+I⁢ln⁡q2,q⁢q14ⅇI⁢z
The Weierstrass functions:
FunctionAdvisoridentities,WeierstrassP
𝒫⁡I⁢z;g__2,g__3=−𝒫⁡z;g__2,−g__3,𝒫⁡z;g__2,g__3=a2⁢𝒫⁡z⁢a;g__2a4,g__3a6,𝒫⁡z__1+z__2;g__2,g__3=𝒫′⁡z__1;g__2,g__3−𝒫′⁡z__2;g__2,g__324⁢𝒫⁡z__1;g__2,g__3−𝒫⁡z__2;g__2,g__32−𝒫⁡z__1;g__2,g__3−𝒫⁡z__2;g__2,g__3,𝒫⁡ω__j;g__2,g__3=e__j,j∈1,2,3Andz3−14⁢g__2⁢z−14⁢g__3=z−e__1⁢z−e__2⁢z−e__3Andω__1=K⁡e__2−e__3e__1−e__32e__1−e__3Andω__3=K⁡e__1−e__2e__1−e__32e__3−e__1Andω__2=−ω__3−ω__1And⁡g__23g__32≠27Or⁡e__1=tAndg__2=3⁢t2Andg__3=t3And⁡g__2≠0Org__3≠0,𝒫⁡z;g__2,g__3=e__1+π2⁢ϑ3⁡0,ⅇI⁢π⁢ω__3ω__12⁢ϑ4⁡0,ⅇI⁢π⁢ω__3ω__12⁢ϑ2⁡π⁢z2⁢ω__1,ⅇI⁢π⁢ω__3ω__124⁢ω__12⁢ϑ1⁡π⁢z2⁢ω__1,ⅇI⁢π⁢ω__3ω__12,z3−14⁢g__2⁢z−14⁢g__3=z−e__1⁢z−e__2⁢z−e__3Andω__1=K⁡e__2−e__3e__1−e__32e__1−e__3Andω__3=K⁡e__1−e__2e__1−e__32e__3−e__1And⁡g__23g__32≠27Or⁡e__1=tAndg__2=3⁢t2Andg__3=t3And⁡g__2≠0Org__3≠0,𝒫⁡v;g__2,g__3⁢𝒫′⁡w;g__2,g__3−𝒫′⁡v;g__2,g__3⁢𝒫⁡w;g__2,g__3−𝒫⁡u;g__2,g__3⁢𝒫′⁡w;g__2,g__3+𝒫′⁡u;g__2,g__3⁢𝒫⁡w;g__2,g__3+𝒫⁡u;g__2,g__3⁢𝒫′⁡v;g__2,g__3−𝒫′⁡u;g__2,g__3⁢𝒫⁡v;g__2,g__3=0,And⁡u+v+w=0,n2⁢𝒫⁡n⁢z;g__2,g__3=∑j=0n−1⁡∑l=0n−1⁡𝒫⁡z+2⁢j⁢ω__1n+2⁢l⁢ω__3n;g__2,g__3,z3−14⁢g__2⁢z−14⁢g__3=z−e__1⁢z−e__2⁢z−e__3Andω__1=K⁡e__2−e__3e__1−e__32e__1−e__3Andω__3=K⁡e__1−e__2e__1−e__32e__3−e__1And⁡g__23g__32≠27Or⁡e__1=tAndg__2=3⁢t2Andg__3=t3And⁡g__2≠0Org__3≠0,𝒫⁡ω__12;g__2,g__3=e__1+e__1−e__3⁢csgn⁡e__1−e__2e__1−e__3⁢e__1−e__2e__1−e__3,z3−14⁢g__2⁢z−14⁢g__3=z−e__1⁢z−e__2⁢z−e__3Andω__1=K⁡e__2−e__3e__1−e__32e__1−e__3And⁡g__23g__32≠27Or⁡e__1=tAndg__2=3⁢t2Andg__3=t3And⁡g__2≠0Org__3≠0,𝒫⁡ω__32;g__2,g__3=e__3−e__1−e__3⁢csgn⁡e__2−e__3e__1−e__3⁢e__2−e__3e__1−e__3,z3−14⁢g__2⁢z−14⁢g__3=z−e__1⁢z−e__2⁢z−e__3Andω__3=K⁡e__1−e__2e__1−e__32e__3−e__1And⁡g__23g__32≠27Or⁡e__1=tAndg__2=3⁢t2Andg__3=t3And⁡g__2≠0Org__3≠0
New specializations for elliptic functions:
FunctionAdvisorspecialize, JacobiSN, JacobiCN
sn⁡z|k=1−cn⁡z|k2,And⁡0<ℜ⁡sn⁡z|korℜ⁡sn⁡z|k=0And0<ℑ⁡sn⁡z|k,sn⁡z|k=−1−cn⁡z|k2,And⁡ℜ⁡sn⁡z|k<0orℜ⁡sn⁡z|k=0Andℑ⁡sn⁡z|k<0
Related to the changes in FunctionAdvisor , a relevant number of new conversion routines related to elliptic functions got added to the network of relationships between mathematical functions.
New conversion routines in connection with these enhancements to the FunctionAdvisor.
FunctionAdvisorjacobi
* Partial match of "jacobi" against topic "Jacobi_related". The 18 functions in the "Jacobi_related" class are:
JacobiAM,JacobiCD,JacobiCN,JacobiCS,JacobiDC,JacobiDN,JacobiDS,JacobiNC,JacobiND,JacobiNS,JacobiSC,JacobiSD,JacobiSN,JacobiTheta1,JacobiTheta2,JacobiTheta3,JacobiTheta4,JacobiZeta
Apply them:
(2.1.1)(z,k)
am⁡z|k,cd⁡z|k,cn⁡z|k,cs⁡z|k,dc⁡z|k,dn⁡z|k,ds⁡z|k,nc⁡z|k,nd⁡z|k,ns⁡z|k,sc⁡z|k,sd⁡z|k,sn⁡z|k,ϑ1⁡z,k,ϑ2⁡z,k,ϑ3⁡z,k,ϑ4⁡z,k,Z⁡z,k
The elliptic Theta functions start at position 14:
14
JacobiTheta1
The following are relationships (conversions) between Jacobi theta functions now implemented in the library:
for m from 14 to 17 do for n from 14 to 17 do if m ≠ n then printm = convertm,n fiod; od;
ϑ1⁡z,k=ϑ2⁡z−π2,k
ϑ1⁡z,k=I⁢ϑ3⁡z+I⁢ln⁡k2−π2,k⁢k14ⅇI⁢z
ϑ1⁡z,k=I⁢ϑ4⁡z+I⁢ln⁡k2,k⁢k14ⅇI⁢z
ϑ2⁡z,k=ϑ1⁡z+π2,k
ϑ2⁡z,k=I⁢ϑ3⁡z+I⁢ln⁡k2,k⁢k14ⅇI⁢z+π2
ϑ2⁡z,k=I⁢ϑ4⁡z+π2+I⁢ln⁡k2,k⁢k14ⅇI⁢z+π2
ϑ3⁡z,k=ϑ1⁡z−I⁢ln⁡k2+π2,k⁢k14⁢ⅇI⁢z
ϑ3⁡z,k=ϑ2⁡z−I⁢ln⁡k2,k⁢k14⁢ⅇI⁢z
ϑ3⁡z,k=I⁢ϑ4⁡z+π2,k⁢k⁢ⅇ−ln⁡k2−I⁢π2
ϑ4⁡z,k=I⁢ϑ1⁡z+I⁢ln⁡k2,k⁢k14ⅇI⁢z
ϑ4⁡z,k=I⁢ϑ2⁡z+I⁢ln⁡k2−π2,k⁢k14ⅇI⁢z
ϑ4⁡z,k=−ϑ3⁡z+I⁢ln⁡k−π2,k⁢kⅇ−ln⁡k2+2⁢I⁢z
The JacobiPQ elliptic functions are thirteen elliptic functions that in some sense generalize trigonometric functions and have an enormous amount of properties. There are new conversion routines for all of them. For example:
for m from 2 to 13 do m =convertm, JacobiSN od;
cd⁡z|k=I⁢sn⁡z⁢−k2+1|I⁢k−k2+1sn⁡I⁢z⁢−k2+1|1−k2+1
cn⁡z|k=I⁢sn⁡z|ksn⁡I⁢z|−k2+1
cs⁡z|k=Isn⁡I⁢z|−k2+1
dc⁡z|k=−I⁢sn⁡I⁢z⁢−k2+1|1−k2+1sn⁡z⁢−k2+1|I⁢k−k2+1
dn⁡z|k=I⁢sn⁡k⁢z|1ksn⁡I⁢k⁢z|I⁢−k2+1k
ds⁡z|k=I⁢sn⁡k⁢z|1ksn⁡I⁢k⁢z|I⁢−k2+1k⁢sn⁡z|k
nc⁡z|k=−I⁢sn⁡I⁢z|−k2+1sn⁡z|k
nd⁡z|k=−I⁢sn⁡I⁢k⁢z|I⁢−k2+1ksn⁡k⁢z|1k
ns⁡z|k=1sn⁡z|k
sc⁡z|k=−I⁢sn⁡I⁢z|−k2+1
sd⁡z|k=−I⁢sn⁡I⁢k⁢z|I⁢−k2+1k⁢sn⁡z|ksn⁡k⁢z|1k
sn⁡z|k=sn⁡z|k
Seven new commands were added to the MathematicalFunctions package: · &Intersect, &Minus and &Union respectively compute the intersection, minus, and union of regions of the complex plane expressed algebraically as sets of equations and inequations. · Assume places assumptions similar to what the assume command does but without redefining the variables. Coulditbe and Is compute boolean answers (like the coulditbe and is commands respectively), but also handle a sequence of an arbitrary number of nested conditionals, which possibly include And, Or, and Not (see also convert/boolean_function to relate to and, or, and not respectively), along with the ability to test them directly on lists. · Evalf is a new command to numerically evaluate the Heun and HeunPrime mathematical functions (in Maple 2015 it is restricted to HeunC and HeunCPrime) using different approaches, including sequences of Taylor functions through paths that go around singularities.
The MathematicalFunctions package has 7 new commands.
withMathematicalFunctions
&Intersect,&Minus,&Union,Assume,Coulditbe,Evalf,Get,Is,SearchFunction,Series
The new commands &Intersect,&Minus, and &Union respectively perform the intersection, union, and minus of regions of the complex plane expressed algebraically as sets of equation and inequations.
Consider:
R__1 ≔x in RealRange−2,infinity
R__1≔x∈−2,∞
R__2≔x in RealRange−infinity, 5
R__2≔x∈−∞,5
R__1&MinusR__2
5<x≤∞
R__1&IntersectR__2
−2≤x≤5
Using algebraic expressions to represent regions:
R__3 ≔ 0<x2+3⁢x+2
R__3≔0<x2+3⁢x+2
R__4 ≔ x^2−9 ≥ 0
R__4≔0≤x2−9
R__3 &Union R__4
x<−2Or−1<x
R__3 &Intersect R__4
x≤−3Or3≤x
R__3 &Minus R__4
⁡−3<x<−2Or⁡−1<x<3
The set of new commands Assume, Coulditbe, and Is perform basically the same operations as the standard assume, coulditbe, and is commands but with the following differences, more convenient depending on the situation.
Assume uses the new Physics:-Assume command, capable of placing assumptions without redefining the variables, hence it is possible to reuse expressions entered before placing the assumptions. The result can also be reused after removing the assumptions, computing as in an extended-assuming context.
simplifyarccoscosx
arccos⁡cos⁡x
This expression cannot be simplified further: it is equal to x only within some restricted range of x values. You can now place the assumption,
Assume0 < x < π2
x::0,π2
and reuse the equation (3.1.11) entered before placing the assumption, hence invoke it by entering its label:
simplify
x
Coulditbe and Is permit computing the related operations with an arbitrary number of conditions to be tested, that could be nested with no restrictions, involving And and Or, and also lists.
Consider the two conditions:
c__1 ≔ Andb < a, b = a
c__1≔b<aAndb=a
c__2 ≔ Andb > a, b = a
c__2≔a<bAndb=a
None of them can be true, so:
CoulditbeOrc__1,c__2
false
Change the second condition to be:
c__3 ≔ Andb ≥ a, b = a
c__3≔a≤bAndb=a
Now c__3 can be true, therefore:
CoulditbeOrc__1,c__2,c__3
true
Coulditbe can also receive as sequence of arguments (statements), in which case it only returns true if it would return true for each of the arguments received. In this example, two conditions cannot be true at the same time, but either of them can be true.
a,b,c ≠ A,B,C, a,b,c = A,B,C
a,b,c≠A,B,C,a,b,c=A,B,C
Coulditbe
Add a condition that cannot be:
Coulditbe, 1 = 0
Note the difference with Or:
CoulditbeOr, 1 = 0
Note also the difference between the result (3.1.20) and the one using And:
CoulditbeAnd
The Is command is entirely based on Coulditbe so that Is⁡A,B,C returns as notCoulditbe⁡Not⁡A,Not⁡B,Not⁡C. This is a generalization to many arguments of the relationship between the output of the standard is and coulditbe commands.
Hence:
Is
Evalf is a new command to numerically evaluate the Heun mathematical functions using different approaches, including sequences of Taylor functions through paths that go around singularities.
EvalfHeunC1,2,3,4,5,6
HeunCZ and HeunCZPrime at Z = .500000000000-.559016994375*I using a series expansion around Z = 0
HeunCZ and HeunCZPrime at Z = 1.06250000000-.559016994375*I using a series expansion around Z = .500000000000-.559016994375*I HeunCZ and HeunCZPrime at Z = 1.16204916259-.149352378815*I using a series expansion around Z = 1.06250000000-.559016994375*I
HeunCZ at Z = 1.200000000 using a series expansion around Z = 1.16204916259-.149352378815*I
CPU time elapsed during evaluation: .426 seconds
−0.009083056536−0.004476814952⁢I
Compare with the value obtained using a differential equation approach to this problem:
EvalfHeunC1,2,3,4,5,6,DE
C using dsolve/numeric approach for 1 <= abs(z).
-> computing initial conditions for C and CPrime at z = .1 HeunC at z = .1 using a series expansion around z = 0 HeunCPrime at z = .1 using a series expansion around z = 0 -> computing an extra step at z = 1.+.2*I
CPU time elapsed during evaluation: 1.009 seconds
−0.009083056540−0.004476814953⁢I
Perform the same computation requiring accuracy up to the value of Digits:
Digits
10
EvalfHeunC1,2,3,4,5,6,withaccuracy
HeunCZ at Z = 1.200000000 using a series expansion around Z = 1.16204916259-.149352378815*I HeunCZ and HeunCZPrime at Z = .50000000000000000-.55901699437494740*I using a series expansion around Z = 0 HeunCZ and HeunCZPrime at Z = 1.0625000000000000-.55901699437494740*I using a series expansion around Z = .50000000000000000-.55901699437494740*I
HeunCZ and HeunCZPrime at Z = 1.1620491625867589-.14935237881501522*I using a series expansion around Z = 1.0625000000000000-.55901699437494740*I HeunCZ at Z = 1.200000000 using a series expansion around Z = 1.1620491625867589-.14935237881501522*I
-> Testing accuracy of 10 digits for HeunCZ at Z = 1.200000000 around Z = 1.162049163-.1493523788*I and Z = 1.200000000 using Digits = 15 HeunCZ at Z = 1.16204916259-.149352378815*I using a series expansion around Z = 1.06250000000-.559016994375*I HeunCZ at Z = 1.06250000000-.559016994375*I using a series expansion around Z = .500000000000-.559016994375*I HeunCZ and HeunCZPrime at Z = .499999999999973874825-.559016994374970791168*I using a series expansion around Z = 0 HeunCZ at Z = .500000000000-.559016994375*I using a series expansion around Z = .499999999999973874825-.559016994374970791168*I HeunCZ and HeunCZPrime at Z = .272727272727272727250-.408180805829884514696*I using a series expansion around Z = 0 HeunCZ and HeunCZPrime at Z = .449885452775968702046-.541443395498165954360*I using a series expansion around Z = .272727272727272727250-.408180805829884514696*I HeunCZPrime at Z = .500000000000-.559016994375*I using a series expansion around Z = .449885452775968702046-.541443395498165954360*I HeunCZPrime at Z = 1.06250000000-.559016994375*I using a series expansion around Z = .500000000000-.559016994375*I
HeunCZPrime at Z = 1.16204916259-.149352378815*I using a series expansion around Z = 1.06250000000-.559016994375*I
<- Reached required accuracy of 10 digits for HeunCZ using Digits = 15
CPU time elapsed during evaluation: 1.507 seconds
−0.009083056535−0.004476814952⁢I
Options arguments of the new MathematicalFunctions Evalf command include:
DE to numerically evaluate using a differential equation approach
R = ... to indicate the maximum value of the radius used in each Taylor series in a sequence of Taylor series.
Taylor to indicate the use of a Taylor series approach
Z to use the Z approach to numerically evaluate the confluent HeunC function
fdiff to use numerical differentiation to evaluate any of the five HeunPrime functions
plot = ... to indicate the display of a plot showing the path and centers of the Taylor series used to evaluate the function
withaccuracy = ... to compute with as many accurate digits as the value of Digits
truncate = ... to request truncating the value returned to the indicated number of digits
zoom = ... to zoom within the last plot shown
Full rewriting of the numerical evaluation of the Jacobi amplitude, represented in Maple by the function JacobiAM, precisely matching the definition given in the NIST Digital Library of Mathematical Functions.
The graphs shown in NIST for the Jacobi amplitude:
am ≔ JacobiAMz,k
Color ≔ green,red,blue,orange:
k_val ≔ 0.4,0.7,0.99,0.999999:
NIST_22_16_2 ≔ seqplotsubsk=k_valj,am,z=0..10 Pi, 'color'=Colorj, j=1..4:
am≔am⁡z|k
plots:-displayNIST_22_16_2
k_val ≔ 0.5,0.9999,1.0001,2:
NIST_22_19_1 ≔ seqplotsubsk=k_valj,am,z=0..10 Pi, 'color'=Colorj, j=1..4:
plots:-displayNIST_22_19_1
Download Help Document