Improved Numerics in Maple V Release 5
Many improvements to the numeric capabilities of Maple have been made in Release 5. A brief description of these improvements follows.
Matlab link
Hardware Float Arrays
Improvements to the Floating Point Solver, fsolve
Improvements to the Hardware Float Evaluator, evalhf
Numerical Integration
Special Functions
Arbitrary Precision Complex Evaluation
Matlab is a computer software package for performing numerical computations.
Matlab Link is a new facility in Maple V Release 5 that allows you to perform numerical computations using MATLAB®, especially those involving matrices within a Maple session.
Facilities exist for working either in a Maple-like or a MATLAB®-like manner.
To use the Matlab Link facility, you must have a licensed copy of MATLAB®.
See the Matlab example worksheets available that illustrate the use of MATLAB® within Maple. Information can also be found in the highlights document.
Support for arrays of hardware floats has been added to Release 5; see the help topic hfarray, and the highlights document.
IEEE special-values support has been added to evalhf. This means that NaN (Not a Number) is handled properly within evalhf, and is translate to undefined on output to the rest of Maple. Considerable effort has been made to make all floating point operations within evalhf comply with the IEEE-854 standard.
Within evalhf, expressions which evaluate to NULL become the value undefined. In particular, NULL, RETURN() and RETURN( NULL ) all return undefined within evalhf.
The floating point solver, fsolve has been completely rewritten. Very few changes, however, are visible to users. In particular, the polynomial and system solvers should now be much stronger.
There is a new avoid option.
Now you can specify an initial guess:
fsolve( sin( x ), x = 3.1 );
3.141592654
The fsolve command now recognizes bound variables:
fsolve( Int( sin( x ), x = 0 .. y ), y );
0.
fsolve( Int( sin( x ), x = 0 .. y ), y, avoid = { y = 0 } );
12.56637061
The hardware floating point evaluator evalhf now understands the following operators and procedures:
`+`, `*`, `^`, `**`, `&*`,
`&^`, add, sum, Sum,
log, log10, mul, erfc,
product, Product, ceil, Dirac,
floor, frac, Heaviside, piecewise,
round, signum, trunc, surd,
userinfo,binomial,csgn
see evalhf[fcnlist]
evalhf can now return arrays of hardware float. This can significantly speed up computations since the (large) overhead of converting to and from software floats can be avoided.
Complex limits are now supported in numerical integration.
evalf( Int( sin( z ), z = 0 .. I ) );
−0.5430806348
Many internal improvements exist. Numerical integration is faster and more robust.
An inert version, Hypergeom of hypergeom has been added.
Other new functions:
LegendreP, LegendreQ - The Legendre functions of the first and second kinds
erfi - The imaginary error function
LerchPhi - General Lerch Phi function
KummerM, KummerU - The Kummer functions KummerM⁡μ,ν,z and KummerU⁡μ,ν,z
LommelS1, LommelS2 - The Lommel functions LommelS1⁡μ,ν,z and LommelS2⁡μ,ν,z
WhittakerM, WhittakerW - The Whittaker functions WhittakerM⁡μ,ν,z and WhittakerM⁡μ,ν,z
MeijerG - A modified Meijer G function.
An essential reference for all the listed functions is: M. Abramowitz and I. Stegun, Handbook of Mathematical Functions, chapter 13.
Arbitrary precision evaluation over the complex plane of:
Legendre functions
associated Legendre functions of the first and second kind: LegendreP, LegendreQ
erfi
Lerch's Phi
confluent hypergeometric functions:
Kummer functions: KummerM, KummerU
Lommel Functions: LommelS1, LommelS2
Whittaker functions: WhittakerM, WhittakerW
MeijerG - valid in some regions of parameters
Download Help Document