|
Commercial NA Libraries and PackagesCommercial libraries and packages tend to merge, so I've combined them in one category. Typically a commercial product contains:Many symbolic algebra packages also contain NA packages. For info on these packages, see Symbolic Algebra . NAGNAG provides numerical, symbolic, statistical, and visualization libraries in Fortran 77, Fortran 90, C, Pascal, Ada, and parallel machine versions. High performance Fortran 90 and Fortran 77 compilers.IMSL and PV-WAVEIMSL from Visual Numerics, Inc. is a set of routines in C, C++, and Fortran libraries for general NA, statistics and graphics. PV-WAVE is a visual programming environment that includes IMSL as a "plug-in".
PV-WAVE is a software environment for solving problems requiring the
application of graphics, mathematics, numerics and statistics to data
and equations.
Simulink is modeling, simulation, and system analysis tool. For a comparison of Matlab and IDL, see Comparison of IDL and Matlab . MATLAB is a technical computing environment for high-performance numeric computation and visualization. MATLAB integrates numerical analysis, matrix computation, signal processing, and graphics in an easy-to-use environment where problems and solutions are expressed just as they are written mathematically - without traditional programming. MATLAB has evolved over a period of years with input from many users. In university environments, it has become the standard instructional tool for introductory courses in applied linear algebra, as well as advanced courses in other areas. In industrial settings, MATLAB is used for research and to solve practical engineering and mathematical problems. Typical uses include general purpose numeric computation, algorithm prototyping, and special purpose problem solving with matrix formulations that arise in disciplines such as automatic control theory, statistics, and digital signal processing (time-series analysis). MATLAB also features a family of application-specific solutions that we call toolboxes. Very important to most users of MATLAB, toolboxes are comprehensive collections of MATLAB functions (M-files) that extend the MATLAB environment in order to solve particular classes of problems. Areas in which toolboxes are available include signal processing, control systems design, dynamic systems simulation, systems identification, neural networks, and others.
SIMULINK is a tool for modeling, analyzing, and simulating an
extraordinarily wide variety of physical and mathematical systems,
including those with nonlinear elements and those which make use of
continuous and discrete time.
For a comparison of IDL and Matlab, see Comparison of IDL and Matlab . Following are two sets of comments on IDL: Comments by Pierre MaxtedI find that IDL is good for "playing" with data. This works well for astronomers who seem to end up always wanting to do something a little different to last time to data that always has slightly different quirks every time. I also find that it is a rather easy language in which to write my own routines. This is probably because I can start with interactive IDL to get the feel for what the data is like and what I want to do with it - this then becomes a simple batch file which can be turned into a routine if the procedure is useful - this seems to be a natural way to develop things. These libraries of routines are what makes IDL really powerful in my opinion. I found that adding the astronomy user's library to IDL was like adding wheels to a car. I would recommend to anyone considering using IDL to find out what libraries are out there (e.g. starting at the IDL WWW home page).Whatever you add to the FAQ, make one point clear - calling IDL a fancy plotting package is like calling a Formula 1 racing car good for picking up the kids from school - IDL can do plotting, but that is not its strength. Well, I agree that the hard copy manuals are rather opaque but Version 4 of IDL has online help (Hyperhelp) that is rather good - especially since it had text searching capabilities so that you can go straight to the bit you need (usually). Comments by Amara GrapsFollowing is an excerpt of comments by [Amara Graps]: For the full text of her review, please see: Amara Graps' PapersIf you install IDL without a valid license, you will get IDL's 7 minute demo mode. This mode is designed for users who are considering buying the package. IDL is a vector-based language that makes it easy to manipulate arrays and matrices. I've done testing comparing IDL speed to Fortran in various actions, and IDL was as fast as a Fortran program for the IDL array computations where loops were removed (i.e., when using implicit loops in IDL instead of explicit FOR statements). The scientific functions and procedures that come with IDL are often all that scientists need. In addition, there are net archives containing contributed routines. The archives at John Hopkins and at Goddard are especially good (see below). The language, for the most part is "open", i.e. you can see the text of any particular procedure or function, in case you doubt the technique, or want to modify it. Some functions and procedures are black-box, intrinsic functions or procedures, but not nearly as many as Matlab (see below) are. Most work in IDL is done at the command line level. However, IDL supplies rudimentary "widgets" to wrap a GUI around your procedures and functions. You can create buttons, menus, scrollboxes etc. Three-d plotting is currently not very well documented, and the way that IDL does it is very convoluted. Other users and I have complained about it, and I think RSI are taking steps to better document how to do it. Image processing and animation is pretty slick. If you need to do "slicing and dicing" of a volume, in a way like Spyglass Dicer, IDL has a really great widget routine to do it. The IDL plots are high quality enough to use in initial journal submissions. RSI's support (writing to support@rsinc.com) is pretty good, I usually get responses within 24-34 hours. You have to pay yearly technical support costs, though- about $200 year (don't remember exactly how much). The Usenet group: comp.lang.idl-pvwave has some smart programmers giving answers if you don't want to pay for the IDL technical support. RSI usually doesn't answer questions on that newsgroup (they have a company policy against promoting IDL there because it's shared by two products: IDL and PV-WAVE). I've never liked the IDL documentation very much. The information that you need probably *is* in the manuals, but it's somewhat hard to find (the manuals are organized in a weird way). [Note, however, the comments by Pierre Maxted above]. Public IDL codeThe anonymous ftp sites below contain public domain IDL code. JHU/APL/S1R IDL library NASA IDL Astro Library NASA IDL Astro Library via ftp IUE RDAF library at NASA IUE RDAF library at U. of Colorado ICUR Spectral Analysis Software IDL ROSAT software IDLmeteo library ESRG library Hal Mueller has a Digital U.S. Map browser based on images created by Ray Sterner at Johns Hopkins University using IDL.Comparison of IDL and MatlabFollowing is an excerpt of a paper by [Amara Graps]: For the full text of her review, please see: Amara Graps' paper.IDL is a package that began life as an image-processing utility that has grown to be a general-purpose numerical analysis tool. Matlab started as a numerical analysis package that now includes [at extra cost] image processing tools. Now the two have a similar scientific data-analysis environment, with capabililties to build GUI programs and do very robust data analysis. (Note: all prices are approximate October 1995 prices - SJS) They each cost about the same: ~$1500 for Mac and PC versions and more for Unix (~4000 -- single user to $15,000 -- unlimited number of users). Matlab is popular among education institutions because it has exceptional educational discounts. If you are an academic, Matlab can be had for $495 and each toolbox only $195. My NASA colleagues thought that MathWorks "nickled- and-dimed" them with the costs of the Toolkits (like the signal processing toolkit), but given what you get, it probably isn't that unreasonable. IDL seems to be more widespread in the NASA communities probably because the original developer used several spacecraft teams (Pioneer Venus and Voyager) as test beds for the IDL software. IDL is more of a true programming language. Matlab has scripts and functions and no way to explicitly type a variable. IDL has programs, procedures, and functions and a language syntax sort of like a cross between Fortran, Pascal, and APL. If you have programmed in Fortran before, then the syntax will be a snap to learn. Matlab's syntax is much more compact than IDL's. For example: x = transpose(y) in IDL is x=y' in Matlab. Matlab has many more built-in, intrinsic functions than IDL. MatLab has many optional Toolkits, such as a Signal Processing Toolkit and an Image Processing Toolkit, which are libraries of more intrinsic functions. Reading and writing files, and handling formats such as GIF, PICT, GDF, and custom formats, seems much easier in IDL than MATLAB. Handling directories is difficult in MATLAB when run on non-unix machines. Matlab has more types of graph types than IDL, and handling colors is simpler than IDL. However, I found most other Matlab graphical programming non-intuitive. It uses a system where each element in a graph is an "object." These objects can have sub-objects. So to change an element in a graph, say the axis color, you have to first find the object (a "get" function), and then set it to the color you want. IDL has system variables storing all graphics elements which can be easily changed. One can also customize a graph upon making the graph, with a keyword.
IDL's technical support is pretty good, but Matlab's is better. Post
a question on comp.soft-sys.matlab and either a developer, the company
president, or a tech support person will respond that day. You can call
them, too, but it's not a toll-free call.
As a complete programming language, the GAUSS system is both flexible and powerful. Immediately available to the GAUSS user is a wide variety of statistical, mathematical and matrix handling routines. Powerful data handling capabilities including a data loop allow transformations in a data set by directly using variable names in expressions. This greatly simplifies data transformations and makes for shorter more readable programs. GAUSS can be used in either command mode(interactively) or in edit mode. In command mode; one-line commands, or small screen-resident programs, can be issued and the results of calculations seen immediately. In edit mode you can write complex programs and store them in files.
GAUSS has over 400 functions built in, including LINPACK and EISPACK
routines.
MATLIB, a Matlab Compatible C++ Matrix Class Library,
is designed for development of advanced
scientific high-level C++ code. Evalution version of the MAT
SPT - The Signal Processing Toolbox for O-Matrix:
SPT for O-Matrix provides a broad, extensible
set of functions and utilities that expands the capabilities of
O-Matrix in the area of digital signal processing. Built on the
high-performance capabilities and flexibility of O-Matrix, the toolbox
contains tools for algorithm development, data analysis, and visual
presentation. SPT enables the rapid development of robust, high-performance
applications in areas including digital filtering, spectral estimation,
digital communication system simulation, time series analysis, real time
control, geophysics, and more. The package comes with complete source code,
online tutorials and examples, and unlimited free technical support.
KBF - The Kalman Filter Interface Pack for O-Matrix:
The KBF interface simplifies the design of a filter
or smoother by dividing the design process into simple steps with each
step corresponding to an input window or dialog. Extensive plotting of
results, including residuals and correlations is also automated. In
addition, a simulation feature is included to aid in testing the validity
of the design. KBF is used in a wide range of applications such as tracking,
weather and earth process modeling, economic forecasting and bioengineering.
In addition to the above, UCALC introduces an innovative feature
- User Solution Modules (USM). USMs are created by simply providing
a math formula, and giving it a name. UCALC parses the formula and
creates a template form which allows the user to solve for any item
by simply filling in the blanks. Useful USMs are included to get
you started.
By incorporating external libraries, it provides access to linear algebra, ODE, integration, graphics, etc.
|