(computer science) The set of algorithms used in a computer system to solve general mathematical problems.
The collection of computer programs that can solve equations or perform mathematical manipulations. The developing of mathematical equations that describe a process is called mathematical modeling. Once these equations are developed, they must be solved, and the solutions to the equations are then analyzed to determine what information they give about the process. Many discoveries have been made by studying how to solve the equations that model a process and by studying the solutions that are obtained.
Before computers, these mathematical equations were usually solved by mathematical manipulation. Frequently, new mathematical techniques had to be discovered in order to solve the equations. In other cases, only the properties of the solutions could be determined. In those cases where solutions could not be obtained, the solutions had to be approximated by using numerical calculations involving only addition, subtraction, multiplication, and division. These methods are called numerical algorithms. These algorithms are often straightforward, but they are usually tedious and require a large number of calculations, usually too many for a human to perform. There are also many cases where there are too many equations to write down. See also Algorithm; Numerical analysis.
The advent of computers and high-level computer languages has allowed many of the tedious calculations to be performed by a machine. In the cases where there are too many equations, computer programs have been written to manipulate the equations. A numerical algorithm carried out by a computer program can then be applied to these equations to approximate their solutions. Mathematical software is usually divided into two categories: the numerical computation environment and the symbolic computation environment. However, many software packages exist that can perform both numerical and symbolic computation.
Mathematical software that does numerical computations must be accurate, fast, and robust. Accuracy depends on both the algorithm and the machine on which the software is run. Most mathematical software uses the most advanced numerical algorithms. Robustness means that the software checks to make sure that the user is inputting reasonable data, and provides information during the performance of the algorithm on the convergence of the calculated numbers to an answer. Mathematical software packages can approximate solutions to a large range of problems in mathematics, including matrix equations, nonlinear equations, ordinary and partial differential equations, integration, and optimization. Mathematical software libraries contain large collections of subroutines that can solve problems in a wide range of mathematics. These subroutines can easily be incorporated into larger programs.
Early computers were used mainly to perform numerical calculations, while the mathematical symbolic manipulations were still done by humans. Now software is available to perform these mathematical manipulations. Most of the mathematical software packages that perform symbolic manipulations can also perform numerical calculations. Software can be written in the package to perform the numerical calculations, or the calculations can be performed after the symbolic manipulations by putting numbers into the symbolic formulas. Mathematical software that is written to solve a specific problem using a numerical algorithm is usually computationally more efficient than thesesoftware environments. However, these software environments can perform almostall the commonly used numerical and symbolic mathematical manipulations. See also Symbolic computing.
Parallel computers have more than one processor that can work on the sameproblem at the same time. Parallel computing allows a large problem to bedistributed over the processors. This allows the problem to be solved in asmaller period of time. Many numerical algorithms have been converted to run onparallel computers. See also Computer programming; Concurrent processing; Distributed systems (computers); Multiprocessing; Software engineering.
Mathematical software is software used to model, analyze or calculate numeric, symbolic or geometric data.[citation needed]
|
Contents
|
Many mathematical suites are computer algebra systems that use symbolic mathematics. They are designed to solve classical algebra equations and problems in human readable notation.
Many tools are available for statistical analysis of data. See also Comparison of statistical packages.
The Netlib repository contains various collections of software routines for numerical problems, mostly in Fortran and C. Commercial products implementing many different numerical algorithms include the IMSL, NMath and NAG libraries; a free alternative is the GNU Scientific Library. A different approach is taken by the Numerical Recipes library, where emphasis is placed on clear understanding of algorithms.
Many computer algebra systems (listed above) can also be used for numerical computations.
See also Comparison of numerical analysis software.
Growing number of mathematical software is available in the web browser, without the need to download or install any code. Examples are NCLab and Sage.
Low-level mathematical libraries intended for use within other programming languages:
| Software portal |
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)