26 July 2012 - The Numerical Algorithms Group announces new numerical functionality added to its NAG Toolbox for MATLAB® at the latest release (Mark 23). The new functionality brings the number of functions within the NAG Toolbox to 1535 - making it the world's largest toolbox for MATLAB. In addition to the 149 new numerical functions, a major enhancement, based on user feedback, focuses on improving ease of use.
The NAG Toolbox for MATLAB has become the toolbox for choice for many MATLAB users due to the extensive mathematical and statistical functionality it contains. Users of the NAG Toolbox can use NAG functions and MATLAB functions co-operatively - greatly increasing the numerical capability of the standard system.
New NAG Toolbox mathematical and statistical functionality:
- Matrix Operations - As a result of a project with Professor Nick Higham at the University of Manchester the following matrix functions are now included in the NAG Toolbox - matrix exponential and functions of symmetric/Hermitian matrices.
- Nearest Correlation Matrix - The Nearest Correlation Matrix functionality has been extended to include functions for k-factor structure and weights and bounds on the matrix elements.
- Skip ahead for the Mersenne Twister random number generator - The Mersenne Twister is a fast generator with extremely long period. Skipping ahead within the generator is not widely available elsewhere and consequently is a useful enhancement for many Toolbox users.
- L'Ecuyer random number generator - Combines two multiple recursive generators to provide a sequence with good statistical properties in high dimensions and a long period.
- Vectorised Simple Functions - Unlike their scalar counterparts, which take a single set of parameters and perform a single function evaluation, these functions take vectors of parameters and perform multiple function evaluations in a single call thus speeding up the calculations.
- Interpolation - New functions have been added the for interpolation of four- and five-dimensional data.
- Two-dimensional Wavelets - Functions for two dimensional discrete wavelet transformshave been introduced; these are important tools often used for image processing.
- New Optimization Techniques
- Multi-start Optimization - Two new functions further expand NAG's global optimization coverage.
- Minimization by Quadratic Approximation (BOBYQA) - of particular use with noisy functions.
- Stochastic Global Optimization using Particle Swarm Optimization - Particle Swarm Optimization (PSO) is one of the most well-established of the stochastic approaches applied to this global optimization. This NAG implementation is probably the most robust available since it can also utilize a local optimization algorithm.
- Quantile Regression - One advantage of quantile regression versus the more usual least squares regression (also in the NAG Toolbox) is that it is more robust if outliers are present in the response measurement.
- Sparse Nonlinear functions - Can now be solved using a new function in our 'Roots of One or More Transcendental Equations' Chapter.
NAG Toolbox for MATLAB Usability (or Interface) Improvements Include:
- All of the functions now have two names, the traditional short name (e.g. c09ab) for backwards compatibility, and a more descriptive long name such as nag_wav_2d_init (2D Wavelet function) which gives user choice and may help with speedier function selection.
- Integer Utility Functions have been introduced to help write programs that are interchangeable between 32 and 64-bit platforms.
- Improved error handling. Previously the NAG Toolbox issued warnings when problems arise, however many MATLAB users like to use try ... catch ... end blocks to handle errors. The NAG Toolbox now only uses warnings in cases where the output values may be of use or where the function has found a solution.
- The provision of function handles as an alternative to using M-Files gives added flexibility
- New format examples - all functions in the NAG Toolbox feature helpful examples and are now provided as single functions, rather than a collection of M-Files. In addition to this, many examples have been improved.
Parallelised Functions for Multiprocessor/Manycore Systems
In addition to the new functionality and interface improvements, a number of functions have been enhanced to allow them to exploit multiple cores and deliver speed-ups for moderate or large problems. This parallelism is provided in areas including: FFTs; random number generators; partial differential equations; interpolation; curve and surface fitting; correlation and regression analysis; multivariate methods; time series analysis and financial option pricing.
Importantly NAG users are not restricted to working from the MATLAB environment. The same NAG algorithms, in the form of the NAG Library, can also be called, from many different environments including .NET, C, Java and FORTRAN. This flexibility helps NAG's users to develop larger, high performance applications and models based on their MATLAB prototypes.
Talking about the NAG Toolbox for MATLAB a leading senior quant said "We deploy production code in C++ embedding the NAG C Library, but often prototype new models in MATLAB before writing our C++ code. Having the same NAG algorithms available in MATLAB and delivered as a numerical library is a real bonus for us"
- Highly detailed documentation accessible from MATLAB's help system, giving background information and function specification. In addition it guides users to the right function for their problem via decision trees.
- Expert Support Service direct from NAG's algorithm development team - if users need help, NAG's development team, are on hand to offer assistance with problems.
- Hands-on Product Training - NAG offers a wide range of tailored training courses either at our offices or in-house, including 'hands-on' practical sessions, helping users to get the most out of their software.
The NAG Toolbox for MATLAB is available for 32-bit and 64-bit Microsoft Windows and 64-bit Linux systems; it will also be available shortly for Mac OS X. For more information visit http://www.nag.co.uk/numeric/MB/start.asp.