By DE Editors
Optimization, modeling, and simulation call for mighty tools, but they must be affordable, accessible, and approachable. Engineers who choose to use the new NAG Toolbox for MATLAB, released by the Numerical Algorithms Group (NAG), gain a cost-effective, all-in-one, interactive solution designed to increase productivity in application prototyping. It makes the extensive mathematical and statistical functionality of the NAG Library available to users of MATLAB and users gain access to more than 1,300 NAG Library algorithms.
NAG Toolbox for MATLAB gives engineers access to additional functionality that was previously unavailable from a single source, and was only accessible to MATLAB users by purchasing multiple toolboxes.
“The NAG Toolbox for MATLAB is designed to help engineers get the breadth of functionality they need in a single toolbox at a fraction of the cost of the multiple toolboxes otherwise required to get the same functionality,” explains Rob Meyer, CEO of the worldwide Numerical Algorithms Group (NAG) — NAG’s central office is in Oxford, UK; a U.S. office is located in Lisle, IL.
Mathematical & Statistical Algorithms
Engineers can access NAG routines in the integrated and interactive MATLAB environment, which, according to the company, has positioned MATLAB as a viable alternative to C and C++ in application prototyping. Plus, greater productivity is garnered from NAG routines that are described as globally renowned for their quality, flexibility, and robustness. (These algorithms have all been filtered through NAG’s stringent testing procedures, providing extensive numerical functionality not previously available.)
"Desktop engineers benefit by having access to a wide range of numerical routines from within MATLAB via the NAG Toolbox. … The routines mentioned above account for only a few of the 1,300 routines already coded and easily accessible with the NAG Toolbox."
— Kurt Peckman, marketing manager, Numerical Algorithms Group
The routines were written by experts at NAG, which, for more than 30 years, has been conducting business in mathematical, statistical, and data-mining technology — NAG components have provided the speed, accuracy, and documentation that support applications in Java, C/C++, Excel, Fortran, and .NET.
“NAG Toolbox for MATLAB also includes a number of algorithms especially important to research projects that just aren’t found in any other commercially available MATLAB toolbox,” adds Meyer. This is because the NAG Toolbox for MATLAB provides access to the NAG Library, which the company explains is known as the largest and most comprehensive collection of mathematical and statistical algorithms available today.
The list of NAG’s numerical facilities includes optimization (linear, quadratic, integer and nonlinear programming and least squares problems); ordinary and partial differential equations, and mesh generation; numerical integration and integral equations; roots of nonlinear equations (including polynomials); solution of dense, banded and sparse linear equations and eigenvalue problems; solution of linear and nonlinear least squares problems; a variety of special functions; and curve and surface fitting and interpolation. NAG’s statistical facilities range from random number generation, simple calculations on statistical data, correlation and regression analysis, multivariate methods, analysis of variance and contingency table and time series analysis, to nonparametric statistics.
One of the key benefits to MATLAB users from the NAG Toolbox for MATLAB is the extensive routine documentation for every routine accessible from the Toolbox. The company says all the NAG Library documentation has been converted to a MATLAB help format, making it instantly accessible via MATLAB’s documentation facilities. Included in the documentation for each NAG Library routine is example MATLAB code showing how to call the routine.
To illustrate how easy the NAG Toolbox for MATLAB is to use, the company provides demonstrations on how to call some popular NAG routines, and how to use MATLAB’s plotting facilities to view the results shown here.
NAG Toolbox for MATLAB Example
Derived from NAG Chapter
Finding the root of an equation
The C05 Chapter
To access the data in the column above on the left, use the Product Demonstrations link at the end of this article.
A Simple Example
In particular, "Desktop engineers benefit by having access to a wide range of numerical routines from within MATLAB via the NAG Toolbox,” explains Kurt Peckman, marketing manager for NAG. “In the example provided ]at the right], the NAG routine "g05ra" (top box) generates a matrix of random numbers from a Gaussian Copula while the NAG routine "g01fe" (bottom box) computes deviates for the Beta distribution enabling quick model development for the financial engineer.”
Peckman adds, “Mechanical engineers report the D02 (ODE) and D03 (PDE) chapters to be crucial to their research, while others report that the D06 routines (mesh generation) are the most useful to their work. The routines mentioned above account for only a few of the 1,300 routines already coded and easily accessible with the NAG Toolbox."
NAG makes every possible effort to provide all the information users will seek about to use the NAG Toolbox for MATLAB. In addition to promises of regular updates, online documentation, expert customer support service, and quality assurance on its Product Demonstrations page online, one can access links to the list of numerical routines available, product availability and compatibility, download/trial product, training courses, articles and papers, information for existing NAG Library users, and the NAG Toolbox for MATLAB Introductory Guide.
An example of the depth of information provided in the Introductory Guide is a discussion on calling NAG Routines from MATLAB. The Guide explains that although the NAG Library is written in Fortran, users can leverage it from within MATLAB as if it were a collection of native MATLAB commands. The code in the Toolbox will transform MATLAB data into a form suitable for passing to Fortran, and will transform the results into MATLAB objects on successful completion of the algorithm.
One more example: The Guide goes on to provide a simple example of how to use the NAG Library to compute the solution of a real system of linear equations, AX=B, where A is an n by n matrix and X and B are n vectors. (For how this all turns out, use the link below pointing to the NAG Toolbox for MATLAB Introductory Guide.)
Licenses & Reach
“Cost-effective individual and department licenses are available for the NAG Toolbox for MATLAB, and discounts are available to existing NAG license holders. The NAG Toolbox for MATLAB is available for both the Microsoft Windows (32-bit) and Linux (32- and 64-bit) OS and is compatible with MATLAB versions 2007a, 2007b, and 2008a," says Meyer.
With NAG’s expertise said to be in compilers, software engineering tools, and visualization, many challenging applications and handling of huge data sets have been tackled. One of the principal technical consultants on the NAG staff, Malcolm Cohen, wrote the world’s first Fortran 90 compiler in 1990-1991. In software engineering, NAG partnered with AMD to co-produce the AMD Core Math Library (ACML), which has been optimized for various AMD processors including the AMD Opteron and Athlon 64.
NAG also partnered with DemandTec to help handle huge data sets of retail sales data. Other members on the customer list for NAG software includes Shell, Lockheed-Martin, Ford Motor, Emhart Glass, Air Products & Chemicals, S&P, and others, such as government research institutions like CERN, Argonne, Lawrence Livermore National Laboratory, to name a few.
Read why DE’s editors chose NAG Toolbox for MATLAB as a Pick of the Week.
If the reference to NAG’s expertise in compilers and the mention about NAG’s Malcolm Cohen interested you, then perhaps you’d like to check on some of NAG’s partnerships, like those with AMD, and DemandTec.
And finally, here is the full story about NAG and HECToR (High End Computing Terascale Resource) — a supercomputer that is a Cray XT4 with a current peak performance of 63 teraflops, rising to 250 teraflops in 2009.