为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

计算数学专业概述(英文)

2017-11-23 50页 doc 213KB 31阅读

用户头像

is_471618

暂无简介

举报
计算数学专业概述(英文)计算数学专业概述(英文) Computational mathematics From Wikipedia, the free encyclopedia Jump to: navigation, search Computational mathematics involves mathematical research in areas of science where computing plays a central and essential role, emphasizing algorithms, numer...
计算数学专业概述(英文)
计算数学专业概述(英文) Computational mathematics From Wikipedia, the free encyclopedia Jump to: navigation, search Computational mathematics involves mathematical research in areas of science where computing plays a central and essential role, emphasizing algorithms, numerical methods, and symbolic methods. Computation in the [1]research is prominent. Computational mathematics emerged as a distinct part of applied mathematics by the early 1950s. Currently, computational mathematics can refer to or include: , computational science, also known as scientific computation or computational engineering , solving mathematical problems by computer simulation as opposed to analytic methods of applied mathematics , numerical methods used in scientific computation, for example numerical linear algebra and numerical solution of partial differential equations [2], stochastic methods, such as Monte Carlo methods and other representations of uncertainty in scientific computation, for example stochastic finite elements [3], the mathematics of scientific computation (the theoretical side [4]involving mathematical proofs), in particular numerical analysis, the theory of numerical methods (but theory of computation and complexity of algorithms belong to theoretical computer science) , symbolic computation and computer algebra systems , computer-assisted research in various areas of mathematics, such as logic (automated theorem proving), discrete mathematics (search for mathematical structures such as groups), number theory (primality testing and factorization), cryptography, and computational algebraic topology , computational linguistics, the use of mathematical and computer techniques in natural languages , Computational geometry , Computational topology , Computational number theory , Algorithmic information theory , Algorithmic game theory Numerical analysis Numerical analysis is the study of algorithms that use numerical approximation (as opposed to general symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). One of the earliest mathematical writings is the Babylonian tablet BC 7289, which gives a sexagesimal numerical approximation of , the length of the diagonal in a unit square. Being able to compute the sides of a triangle (and hence, being able to compute square roots) is extremely important, [2]for instance, in carpentry and construction. Numerical analysis continues this long tradition of practical mathematical calculations. Much like the Babylonian approximation of , modern numerical analysis does not seek exact answers, because exact answers are often impossible to obtain in practice. Instead, much of numerical analysis is concerned with obtaining approximate solutions while maintaining reasonable bounds on errors. Numerical analysis naturally finds applications in all fields of engineering and the physical sciences, but in the 21st century, the life sciences and even the arts have adopted elements of scientific computations. Ordinary differential equations appear in the movement of heavenly bodies (planets, stars and galaxies); optimization occurs in portfolio management; numerical linear algebra is important for data analysis; stochastic differential equations and Markov chains are essential in simulating living cells for medicine and biology. Before the advent of modern computers numerical methods often depended on hand interpolation in large printed tables. Since the mid 20th century, computers calculate the required functions instead. The interpolation algorithms nevertheless may be used as part of the software for solving differential equations. Contents [hide] , 1 General introduction o 1.1 History o 1.2 Direct and iterative methods , 1.2.1 Discretization and numerical integration o 1.3 Discretization , 2 The generation and propagation of errors o 2.1 Round-off o 2.2 Truncation and discretization error o 2.3 Numerical stability and well-posed problems , 3 Areas of study o 3.1 Computing values of functions o 3.2 Interpolation, extrapolation, and regression o 3.3 Solving equations and systems of equations o 3.4 Solving eigenvalue or singular value problems o 3.5 Optimization o 3.6 Evaluating integrals o 3.7 Differential equations , 4 Software , 5 See also , 6 Notes , 7 References , 8 External links [edit] General introduction The overall goal of the field of numerical analysis is the design and analysis of techniques to give approximate but accurate solutions to hard problems, the variety of which is suggested by the following. , Advanced numerical methods are essential in making numerical weather prediction feasible. , Computing the trajectory of a spacecraft requires the accurate numerical solution of a system of ordinary differential equations. , Car companies can improve the crash safety of their vehicles by using computer simulations of car crashes. Such simulations essentially consist of solving partial differential equations numerically. , Hedge funds (private investment funds) use tools from all fields of numerical analysis to calculate the value of stocks and derivatives more precisely than other market participants. , Airlines use sophisticated optimization algorithms to decide ticket prices, airplane and crew assignments and fuel needs. This field is also called operations research. , Insurance companies use numerical programs for actuarial analysis. The rest of this section outlines several important themes of numerical analysis. [edit] History The field of numerical analysis predates the invention of modern computers by many centuries. Linear interpolation was already in use more than 2000 years ago. Many great mathematicians of the past were preoccupied by numerical analysis, as is obvious from the names of important algorithms like Newton's method, Lagrange interpolation polynomial, Gaussian elimination, or Euler's method. To facilitate computations by hand, large books were produced with formulas and tables of data such as interpolation points and function coefficients. Using these tables, often calculated out to 16 decimal places or more for some functions, one could look up values to plug into the formulas given and achieve very good numerical estimates of some functions. The canonical work in the field is the NIST publication edited by Abramowitz and Stegun, a 1000-plus page book of a very large number of commonly used formulas and functions and their values at many points. The function values are no longer very useful when a computer is available, but the large listing of formulas can still be very handy. The mechanical calculator was also developed as a tool for hand computation. These calculators evolved into electronic computers in the 1940s, and it was then found that these computers were also useful for administrative purposes. But the invention of the computer also influenced the field of numerical analysis, since now longer and more complicated calculations could be done. Direct and iterative methods Direct methods compute the solution to a problem in a finite number of steps. These methods would give the precise answer if they were performed in infinite precision arithmetic. Examples include Gaussian elimination, the QR factorization method for solving systems of linear equations, and the simplex method of linear programming. In practice, finite precision is used and the result is an approximation of the true solution (assuming stability). In contrast to direct methods, iterative methods are not expected to terminate in a number of steps. Starting from an initial guess, iterative methods form successive approximations that converge to the exact solution only in the limit. A convergence test is specified in order to decide when a sufficiently accurate solution has (hopefully) been found. Even using infinite precision arithmetic these methods would not reach the solution within a finite number of steps (in general). Examples include Newton's method, the bisection method, and Jacobi iteration. In computational matrix algebra, iterative methods are generally needed for large problems. Iterative methods are more common than direct methods in numerical analysis. Some methods are direct in principle but are usually used as though they were not, e.g. GMRES and the conjugate gradient method. For these methods the number of steps needed to obtain the exact solution is so large that an approximation is accepted in the same manner as for an iterative method. [edit] Discretization Furthermore, continuous problems must sometimes be replaced by a discrete problem whose solution is known to approximate that of the continuous problem; this process is called discretization. For example, the solution of a differential equation is a function. This function must be represented by a finite amount of data, for instance by its value at a finite number of points at its domain, even though this domain is a continuum. [edit] The generation and propagation of errors The study of errors forms an important part of numerical analysis. There are several ways in which error can be introduced in the solution of the problem. [edit] Round-off Round-off errors arise because it is impossible to represent all real numbers exactly on a machine with finite memory (which is what all practical digital computers are). [edit] Truncation and discretization error Truncation errors are committed when an iterative method is terminated or a mathematical procedure is approximated, and the approximate solution differs from the exact solution. Similarly, discretization induces a discretization error because the solution of the discrete problem does not coincide with the solution of the continuous problem. For instance, 3 + 4 = 28, in the iteration in the sidebar to compute the solution of 3x after 10 or so iterations, we conclude that the root is roughly 1.99 (for example). We therefore have a truncation error of 0.01. Once an error is generated, it will generally propagate through the calculation. For instance, we have already noted that the operation + on a calculator (or a computer) is inexact. It follows that a calculation of the type a+b+c+d+e is even more inexact. What does it mean when we say that the truncation error is created when we approximate a mathematical procedure? We know that to integrate a function exactly requires one to find the sum of infinite trapezoids. But numerically one can find the sum of only finite trapezoids, and hence the approximation of the mathematical procedure. Similarly, to differentiate a function, the differential element approaches to zero but numerically we can only choose a finite value of the differential element. [edit] Numerical stability and well-posed problems Numerical stability is an important notion in numerical analysis. An algorithm is called numerically stable if an error, whatever its cause, does not grow to be much larger during the calculation. This happens if the problem is well-conditioned, meaning that the solution changes by only a small amount if the problem data are changed by a small amount. To the contrary, if a problem is ill-conditioned, then any small error in the data will grow to be a large error. Both the original problem and the algorithm used to solve that problem can be well-conditioned and/or ill-conditioned, and any combination is possible. So an algorithm that solves a well-conditioned problem may be either numerically stable or numerically unstable. An art of numerical analysis is to find a stable algorithm for solving a well-posed mathematical problem. For instance, computing the square root of 2 (which is roughly 1.41421) is a well-posed problem. Many algorithms solve this problem by starting with an initial approximation x to , for instance x=1.4, 11 and then computing improved guesses x, x, etc.. One such method is the 23 famous Babylonian method, which is given by x = x/2 + 1/x. Another +1kkk22[3]iteration, which we will call Method X, is given by x = (x?2) + x. + 1kkk We have calculated a few iterations of each scheme in table form below, with initial guesses x = 1.4 and x = 1.42. 11 Babylonian Babylonian Method X Method X x = 1.4 x = 1.42 x = 1.4 x = 1.42 1111 x = 1.4142857... x = 1.41422535... x = 1.4016 x = 1.42026896 2222 x = 1.414213564... x = 1.41421356242... x = 1.4028614... x = 1.42056... 3333 ... ... x = 1.41421... x = 7280.2284... 100000028 Observe that the Babylonian method converges fast regardless of the initial guess, whereas Method X converges extremely slowly with initial guess 1.4 and diverges for initial guess 1.42. Hence, the Babylonian method is numerically stable, while Method X is numerically unstable. Numerical stability is affected by the number of the significant digits the machine keeps on, if we use a machine that keeps on the first four floating-point digits, a good example on loss of significance is given by these two equivalent functions If we compare the results of and by looking to the two above results, we realize that loss of significance which is also called Subtractive Cancelation has a huge effect on the results, even though both functions are equivalent; to show that they are equivalent simply we need to start by f(x) and end with g(x), and so The true value for the result is 11.174755..., which is exactly g(500) = 11.1748 after rounding the result to 4 decimal digits. Now imagine that lots of terms like these functions are used in the program; the error will increase as one proceeds in the program, unless one uses the suitable formula of the two functions each time one evaluates either f(x), or g(x); the choice is dependent on the parity of x. , The example is taken from Mathew; Numerical methods using matlab, 3rd ed. [edit] Areas of study The field of numerical analysis is divided into different disciplines according to the problem that is to be solved. [edit] Computing values of functions Interpolation: We have observed the temperature to vary from 20 degrees Celsius at 1:00 to 14 degrees at 3:00. A linear interpolation of this data would conclude that it was 17 degrees at 2:00 and 18.5 degrees at 1:30pm. Extrapolation: If the gross domestic product of a country has been growing an average of 5% per year and was 100 billion dollars last year, we might extrapolate that it will be 105 billion dollars this year. Regression: In linear regression, given n points, we compute a line that passes as close as possible to those n points. Optimization: Say you sell lemonade at a lemonade stand, and notice that at $1, you can sell 197 glasses of lemonade per day, and that for each increase of $0.01, you will sell one less lemonade per day. If you could charge $1.485, you would maximize your profit, but due to the constraint of having to charge a whole cent amount, charging $1.49 per glass will yield the maximum income of $220.52 per day. Differential equation: If you set up 100 fans to blow air from one end of the room to the other and then you drop a feather into the wind, what happens? The feather will follow the air currents, which may be very complex. One approximation is to measure the speed at which the air is blowing near the feather every second, and advance the simulated feather as if it were moving in a straight line at that same speed for one second, before measuring the wind speed again. This is called the Euler method for solving an ordinary differential equation. One of the simplest problems is the evaluation of a function at a given point. The most straightforward approach, of just plugging in the number in the formula is sometimes not very efficient. For polynomials, a better approach is using the Horner scheme, since it reduces the necessary number of multiplications and additions. Generally, it is important to estimate and control round-off errors arising from the use of floating point arithmetic. [edit] Interpolation, extrapolation, and regression Interpolation solves the following problem: given the value of some unknown function at a number of points, what value does that function have at some other point between the given points? Extrapolation is very similar to interpolation, except that now we want to find the value of the unknown function at a point which is outside the given points. Regression is also similar, but it takes into account that the data is imprecise. Given some points, and a measurement of the value of some function at these points (with an error), we want to determine the unknown function. The least squares-method is one popular way to achieve this. [edit] Solving equations and systems of equations Another fundamental problem is computing the solution of some given equation. Two cases are commonly distinguished, depending on whether the + 5 = 3 is linear equation is linear or not. For instance, the equation 2x2while 2x + 5 = 3 is not. Much effort has been put in the development of methods for solving systems of linear equations. Standard direct methods, i.e., methods that use some matrix decomposition are Gaussian elimination, LU decomposition, Cholesky decomposition for symmetric (or hermitian) and positive-definite matrix, and QR decomposition for non-square matrices. Iterative methods such as the Jacobi method, Gauss–Seidel method, successive over-relaxation and conjugate gradient method are usually preferred for large systems. Root-finding algorithms are used to solve nonlinear equations (they are so named since a root of a function is an argument for which the function yields zero). If the function is differentiable and the derivative is known, then Newton's method is a popular choice. Linearization is another technique for solving nonlinear equations. [edit] Solving eigenvalue or singular value problems Several important problems can be phrased in terms of eigenvalue decompositions or singular value decompositions. For instance, the [4]spectral image compression algorithm is based on the singular value decomposition. The corresponding tool in statistics is called principal component analysis. [edit] Optimization Main article: Mathematical optimization Optimization problems ask for the point at which a given function is maximized (or minimized). Often, the point also has to satisfy some constraints. The field of optimization is further split in several subfields, depending on the form of the objective function and the constraint. For instance, linear programming deals with the case that both the objective function and the constraints are linear. A famous method in linear programming is the simplex method. The method of Lagrange multipliers can be used to reduce optimization problems with constraints to unconstrained optimization problems. [edit] Evaluating integrals Main article: Numerical integration Numerical integration, in some instances also known as numerical quadrature, asks for the value of a definite integral. Popular methods use one of the Newton–Cotes formulas (like the midpoint rule or Simpson's rule) or Gaussian quadrature. These methods rely on a "divide and conquer" strategy, whereby an integral on a relatively large set is broken down into integrals on smaller sets. In higher dimensions, where these methods become prohibitively expensive in terms of computational effort, one may use Monte Carlo or quasi-Monte Carlo methods (see Monte Carlo integration), or, in modestly large dimensions, the method of sparse grids. [edit] Differential equations Main articles: Numerical ordinary differential equations and Numerical partial differential equations Numerical analysis is also concerned with computing (in an approximate way) the solution of differential equations, both ordinary differential equations and partial differential equations. Partial differential equations are solved by first discretizing the equation, bringing it into a finite-dimensional subspace. This can be done by a finite element method, a finite difference method, or (particularly in engineering) a finite volume method. The theoretical justification of these methods often involves theorems from functional analysis. This reduces the problem to the solution of an algebraic equation. [edit] Software Main articles: List of numerical analysis software and Comparison of numerical analysis software Since the late twentieth century, most algorithms are implemented in a variety of programming languages. 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 and NAG libraries; a free alternative is the GNU Scientific Library. There are several popular numerical computing applications such as MATLAB, S-PLUS, LabVIEW, and IDL as well as free and open source alternatives such as FreeMat, Scilab, GNU Octave (similar to Matlab), IT++ (a C++ library), R (similar to S-PLUS) and certain variants of Python. Performance varies widely: while vector and matrix operations are usually fast, scalar loops [5][6]may vary in speed by more than an order of magnitude. Many computer algebra systems such as Mathematica also benefit from the availability of arbitrary precision arithmetic which can provide more accurate results. spreadsheet software can be used to solve simple problems Also, any relating to numerical analysis. Direct vs iterative methods Consider the problem of solving 33x + 4 = 28 for the unknown quantity x. Direct method 33x + 4 = 28. 3Subtract 4 3x = 24. 3Divide by 3 x = 8. Take cube roots x = 2. 3For the iterative method, apply the bisection method to f(x) = 3x ? 24. The initial values are a = 0, b = 3, f(a) = ?24, f(b) = 57. Iterative method a b mid f(mid) 0 3 1.5 ?13.875 1.5 3 2.25 10.17... 1.5 2.25 1.875 ?4.22... 1.875 2.25 2.0625 2.32... We conclude from this table that the solution is between 1.875 and 2.0625. The algorithm might return any number in that range with an error less than 0.2. [edit] Discretization and numerical integration In a two hour race, we have measured the speed of the car at three instants and recorded them in the following table. 0:20 1:00 1:40 Time 140 150 180 km/h A discretization would be to say that the speed of the car was constant from 0:00 to 0:40, then from 0:40 to 1:20 and finally from 1:20 to 2:00. For instance, the total distance traveled in the first 40 minutes is approximately (2/3h × 140 km/h) = 93.3 km. This would allow us to estimate the total distance traveled as 93.3 km + 100 km + 120 km = 313.3 km, which is an example of numerical integration (see below) using a Riemann sum, because displacement is the integral of velocity. Ill posed problem: Take the function f(x) = 1/(x ? 1). Note that f(1.1) = 10 and f(1.001) = 1000: a change in x of less than 0.1 turns into a change in f(x) of nearly 1000. Evaluating f(x) near x = 1 is an ill-conditioned problem. Well-posed problem: By contrast, the function is continuous and so evaluating it is well-posed, at least for being not close to zero. x Computational science Computational science (or scientific computing) is the field of study concerned with constructing mathematical models and quantitative analysis techniques and using computers to analyze and solve scientific [citation needed]problems. In practical use, it is typically the application of computer simulation and other forms of computation to problems in various scientific disciplines. The field is distinct from computer science (the study of computation, computers and information processing). It is also different from theory and experiment which are the traditional forms of science and engineering. The scientific computing approach is to gain understanding, mainly through the analysis of mathematical models implemented on computers. Scientists and engineers develop computer programs, application software, that model systems being studied and run these programs with various sets of input parameters. Typically, these models require massive amounts of calculations (usually floating-point) and are often executed on supercomputers or distributed computing platforms. Numerical analysis is an important underpinning for techniques used in computational science. Contents [hide] , 1 Applications of computational science o 1.1 Numerical simulations o 1.2 Model fitting and data analysis o 1.3 Computational optimization , 2 Methods and algorithms , 3 Education , 4 Related fields , 5 See also , 6 References , 7 External links [edit] Applications of computational science Problem domains for computational science/scientific computing include: [edit] Numerical simulations Numerical simulations have different objectives depending on the nature of the task being simulated: , Reconstruct and understand known events (e.g., earthquake, tsunamis and other natural disasters). , Predict future or unobserved situations (e.g., weather, sub-atomic particle behaviour). [edit] Model fitting and data analysis , Appropriately tune models or solve equations to reflect observations, subject to model constraints (e.g. oil exploration geophysics, computational linguistics). , Use graph theory to model networks, especially those connecting individuals, organizations, and websites. [edit] Computational optimization Main article: Mathematical optimization , Optimize known scenarios (e.g., technical and manufacturing processes, front-end engineering). [edit] Methods and algorithms Algorithms and mathematical methods used in computational science are varied. Commonly applied methods include: , Numerical analysis , Application of Taylor series as convergent and asymptotic series , Computing derivatives by Automatic differentiation (AD) , Computing derivatives by finite differences , Graph theoretic suites , High order difference approximations via Taylor series and Richardson extrapolation , Methods of integration on a uniform mesh: rectangle rule (also called midpoint rule), trapezoid rule, Simpson's rule , Runge Kutta method for solving ordinary differential equations , Monte Carlo methods , Molecular dynamics , Numerical linear algebra , Computing the LU factors by Gaussian elimination , Cholesky factorizations , Discrete Fourier transform and applications. , Newton's method , Time stepping methods for dynamical systems Programming languages commonly used for the more mathematical aspects of scientific computing applications include R (programming language), [1]MATLAB, Mathematica, SciLab, GNU Octave, COMSOL Multiphysics, Python [citation needed](programming language) with SciPy, and PDL. The more computationally intensive aspects of scientific computing will often utilize some variation of C or Fortran and optimized algebra libraries such as BLAS or LAPACK. Computational science application programs often model real-world changing conditions, such as weather, air flow around a plane, automobile body distortions in a crash, the motion of stars in a galaxy, an explosive device, etc. Such programs might create a 'logical mesh' in computer memory where each item corresponds to an area in space and contains information about that space relevant to the model. For example in weather models, each item might be a square kilometer; with land elevation, current wind direction, humidity, temperature, pressure, etc. The program would calculate the likely next state based on the current state, in simulated time steps, solving equations that describe how the system operates; and then repeat the process to calculate the next state. The term computational scientist is used to describe someone skilled in scientific computing. This person is usually a scientist, an engineer or an applied mathematician who applies high-performance computers in of-the-art in their respective different ways to advance the state- applied disciplines in physics, chemistry or engineering. Scientific computing has increasingly also impacted on other areas including economics, biology and medicine. Computational science is now commonly considered a third mode of science, [2]complementing and adding to experimentation/observation and theory. The [3]essence of computational science is numerical algorithm and/or [4]computational mathematics. In fact, substantial effort in computational sciences has been devoted to the development of algorithms, the efficient implementation in programming languages, and validation of computational results. A collection of problems and solutions in computational science [5]can be found in Steeb, Hardy, Hardy and Stoop, 2004. [edit] Education Scientific computation is most often studied through an applied mathematics or computer science program, or within a standard mathematics, sciences, or engineering program. At some institutions a specialization in scientific computation can be earned as a "minor" within another program (which may be at varying levels). However, there are increasingly many bachelor's and master's programs in computational science. Some schools also offer the Ph.D. in computational science, computational engineering, computational science and engineering, or scientific computation. There are also programs in areas such as computational physics, computational chemistry, etc. List of numerical analysis software Listed here are end-user computer applications intended for use with numerical or data analysis: Contents [hide] , 1 MATLAB and its clones , 2 General-purpose computer algebra systems , 3 Interface-oriented , 4 Language-oriented , 5 Historically significant , 6 See also , 7 References , 8 External links [edit] MATLAB and its clones , MATLAB is a widely used program for performing numerical calculations. It comes with its own programming language, in which numerical algorithms can be implemented. The following programs use a similar syntax: , GNU Octave GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. It has an active user community. , FlexPro is a program for data analysis and presentation of measurement data. It provides a rich Excel-like user interface and its built-in vector programming language FPScript has a syntax similar to MATLAB. , Scilab is similar to MATLAB and Octave. (free software, GPL-compatible CeCILL license ) , FreeMat, an open-source MATLAB-like environment with a GPL license. , Rlab is another free software program which bears a strong resemblance to MATLAB. Rlab development ceased for several years but it was revived as RlabPlus. o SimplexNumerica is a program for data analysis and presentation of measurement data. It provides a state-of-the art user interface and a 2D/3D rendering engine for charts and mathematical routines for Approximation, Interpolation, FFT, Regression Analysis, etc. , Sysquake is a computing environment with interactive graphics for mathematics, physics and engineering. Like other applications from Calerga, it is based on a MATLAB-compatible language. , LabVIEW offers both textual and graphical programming approaches to numerical analysis. Its text-based programming language MathScript utilizes .m file script syntax providing some compatibility with MATLAB and its clones. , COMSOL Script , O-Matrix , jLab, a research platform for building an open source MATLAB-like environment in pure Java and Groovy. Currently supports interpreted j-Scripts (MATLAB-like) and compiled GroovySci (extension to Groovy) scripts that provides direct interfacing to Java code and scripting access to many popular Java scientific libraries (e.g. Weka and JSci[1]) and application Wizards. (Project Page: [2]) Add-ons: , Jacket, A GPU Toolbox for MATLAB, enabling MATLAB computations to be offloaded to the GPU for acceleration and data visualization purposes. [edit] General-purpose computer algebra systems Main article: List of computer algebra systems , Macsyma, a general-purpose computer algebra system, which has a free GPL-licensed version called Maxima. , Madeline, a free GPL-licensed clone of Mathematica. , Maple, a general-purpose commercial mathematics software package. , Mathcad offers a WYSIWYG interface and the ability to generate publication-quality mathematical equations. , Mathematica offers numerical evaluation, optimization and visualization of a very wide range of numerical functions. It also includes a programming language and computer algebra capabilities. , PARI/GP is a widely used computer algebra system designed for fast computations in number theory (factorizations, algebraic number theory, elliptic curves...), but also contains a large number of other useful functions to compute with mathematical entities such as matrices, polynomials, power series, algebraic numbers etc., and a lot of transcendental functions. PARI is also available as a C library to allow for faster computations. , Sage is an open-source math software, with a unified Python interface which is available as a text interface or a graphical web-based one. Includes interfaces for open-source and proprietary general purpose CAS, and other numerical analysis programs, like PARI/GP, GAP, gnuplot, Magma, and Maple. , Trilinos is a collection of open source, object-oriented libraries for use in scientific and engineering applications. Trilinos is based on scalable, parallel linear algebra algorithms. [edit] Interface-oriented , Baudline is a time-frequency browser for numerical signals analysis and scientific visualization. , Dataplot is provided by NIST. , DADiSP is a commercial program focused on DSP that combines the numerical capability of MATLAB with a spreadsheet like interface. , EJS is an open source software tool, written in Java, for generating simulations. , Euler Mathematical Toolbox is a powerful numerical laboratory with a programming language that can handle real, complex and interval numbers, vectors and matrices. It can produce 2D/3D plots. , jHepWork is a free data-analysis framework written in Java which uses Jython for scripting (although other Java scripting can also be used) , FEniCS Project is a collection of project for automated solutions to PDEs. , Fityk is a curve fitting and data analysis program. Primarily used for peak fitting and analyzing peak data. , FlexPro is a commercial program for interactive and automated analysis and presentation of mainly measurement data. It supports many binary instrument data formats and has its own vectorized programming language. , IGOR Pro, a software package with emphasis on time series, image analysis, and curve fitting. It comes with its own programming language and can be used interactively. , LabPlot is a data analysis and visualization application built on the KDE Platform. , MCSim a Monte Carlo simulation tool. , numberGo Publisher is a data analysis tool that lets you pivot and chart data, and save it as a portable document. , Origin, a software package that is widely used for making scientific graphs. It comes with its own C/C++ compiler that conforms quite closely to ANSI standard. , PAW is a free data analysis package developed at CERN. , PSPP, an application for statistical analysis. , QtiPlot is a data analysis and scientific visualisation program, similar to Origin. , Speakeasy is an interactive numerical environment also featuring an interpreted programming language. Born in the mid '60s for matrix manipulation and still in continuous evolution, it pioneered the most common paradigms of this kind of tools, featuring dynamic typing of the structured data objects, dynamic allocation and garbage collection, operators overloading, dynamic linking of compiled or interpreted additional modules contributed by the community of the users and so on. , ROOT is a free object oriented multipurpose data analysis package, developed at CERN. , SALOME is a free software that provides a generic platform for pre- and post-processing for numerical simulation. , Shogun, an open source Large Scale Machine Learning toolbox that provides several SVM implementations (like libSVM, SVMlight) under a common framework and interfaces to Octave, MATLAB, Python, R , XLSTAT a Microsoft Excel add-in , Waffles is a free-software collection of command-line tools designed for scripting machine learning operations in automated experiments and processes. , Weka is a suite of machine learning software written at the University of Waikato. [edit] Language-oriented , acslX is a software application for modeling and evaluating the performance of continuous systems described by time-dependent, nonlinear differential equations. , ADMB is a software suite for non-linear statistical modeling based on C++ which uses automatic differentiation. , AMPL is a mathematical modeling language for describing and solving high complexity problems for large scale optimization. , APMonitor: APMonitor is a mathematical modeling language for describing and solving representations of physical systems in the form of differential and algebraic equations. , jHepWork is scientific package which uses Jython to call numerical and graphical libraries written in Java , COMSOL Script for numerical computations and interactive partial differential equation solving with the finite element method; uses MATLAB-compatible syntax. Optionally connects to COMSOL Multiphysics. , ELKI a software framework for development of data mining algorithms in Java. , GAUSS, a matrix programming language for mathematics and statistics. , GNU Data Language, a free compiler designed as a drop-in replacement for IDL. , IDL, a commercial interpreted language based on FORTRAN with some vectorization. Widely used in the solar physics, atmospheric sciences and medical communities. The GNU Data Language is a free alternative. , KPP generates Fortran 90, FORTRAN 77, C, or Matlab code for the integration of ordinary differential equations (ODEs) resulting from chemical reaction mechanisms. , Madagascar, an open-source software package for multidimensional data analysis and reproducible computational experiments. [3] , Mathemagix, is an open source (GNU GPL license) general-purpose mathematics software package. , NCAR Command Language is an interpreted language designed specifically for scientific data analysis and visualization. , O-Matrix - a matrix programming language for mathematics, engineering, science, and financial analysis. , OptimJ is a mathematical Java-based modeling language for describing and solving high complexity problems for large scale optimization. , Perl Data Language, also known as PDL, an array extension to Perl ver.5, used for data manipulation, statistics, numerical simulation and visualization. , R is a widely used system with a focus on data manipulation and statistics which implements the S language. Many add-on packages are available (free software, GNU GPL license). , VisSim is a visual block diagram language for simulation of nonlinear dynamic systems and model based embedded development. Its fast ODE engine supports real-time simulation of complex large scale models. The highly efficient fixed point code generator allows targeting of low cost fixed-point embedded processors. , Yorick is an interpreted programming language designed for numerics, graph plotting and simulation. [edit] Historically significant , Expensive Desk Calculator written for the TX-0 and PDP-1 in the late 1950s or early 1960s. , S is an (array-based) programming language with strong numerical support. Comparison of numerical analysis software The following tables provide a comparison of numerical analysis software. Contents [hide] , 1 Applications o 1.1 General o 1.2 Operating system support o 1.3 Language features , 2 Libraries o 2.1 General o 2.2 Operating system support , 3 See also , 4 References , 5 External links Applications General First Latest Developmepublic stable Cost nt Creator License Notes releaseversion(USD) started Automatic differentiati D. Fournier, on makes it 9.1 / New BSD ADMB Free well suited ADMB 2009 License Project to complex minimizatio n problems Numeric computation$1995 s for science (commerciaand DSP 6.5 / l) / $129 1984 1986 Proprietary engineering DADiSP Development 2010 (academic) featuring a / Free spreadsheet (student) like interface. Also a computer algebra R. 9.4 / system Euler Math 1987 1988 Free GPL Grothmann 2010 through Toolbox interface with Maxima interactive $115 (1.x graphics, binaries) / scriptable, Free 1.0.1 / specialized M. Wojdyr 2002 (source GPL Fityk 2011 in curve code and fitting and 0.x peak fitting, binaries) 2D only Codeless interface to external C, C++, and 4.0 / Fortran Samit Basu October Free GPL FreeMat code. 09, 2009 Mostly compatible with MATLAB. mainly used 9.0 / Aptech in 1984 May Not free Proprietary GAUSS Systems econometric2008 s interactive graphics, $550 programmab(commerciale, 2D/3D, 6.03A / l) / $395 WaveMetrics 1986 1988 Proprietary used for IGOR Pro 2008 (academic) science and / $85 engineering, (student) large data sets. $500 mathematics 6.4 / (basic) / , interactive AMS 1998 1999 Proprietary jBEAM 2010 $3950 graphics (profession2D/3D, al) / $10 scriptable, (student) used for science and engineering, very large data sets, desktop or client/server, open Java framework mathematics , data analysis, data mining, interactive 2D/3D Free for graphics, S.Chekanov 3.1 / 2005 2005 Free non-commerJava JHepWork (jwork.org) 2011 cial use scriptable, used for science and engineering, Cross-platfo rm (written in Java) Graphical and textual $1249 2010 / (.m file National (commercia 1985 August Proprietary script) LabVIEW Instruments l) / $79.95 2010 programmin(student) g approaches $1895 Mainly a 14 / (commerciacomputer Maplesoft 1980 1982 Proprietary Maple 2010 l) / $99 algebra (student) system $1195 Mainly a Parametric 14.0 / (commerciacomputer Technology 1985 1986 February Proprietary Mathcad l) / $99 algebra Corporation 12, 2007 (student) system 8.0 / $2495 mainly Wolfram 1986 1988 Novemb(commerciaProprietary computer Mathematica Research er 2010 l) / $145 algebra (student) / system $295 [1(personal) ] R2010b Numerical $2450 / computationthe late (commerciaMathWorks SeptembProprietary , mainly MATLAB 1970s l) / $99 er 3, used by (student) 2010 engineers. aimed as a drop-in Marc 0.9.1 / replacement GNU Data 2004 Free GPL Schellens 2011 for Language IDL/PV-WA VE mostly John W. 3.4.0 / compatible 1988 1993 Free GPL GNU Octave Eaton 2011 with MATLAB interactive $500 graphics, (academic) programmab/ $700 (Pro le, 2D/3D, 8.0 SR4 ver., OriginLab 1991 Proprietary used for Origin / 2008 academic) / science and $50 (Pro engineering, ver. large data student) sets. Used for astrophysics, solar physics, oceanograph y, biophysics, Karl 2.4.7 / Artistic Perl Data late 1990s c. 1997 Free and Glazebrook 2010 License Language simulation. 2D plotting via PGPLOT, PLPlot bindings; 3D via GL. Primarily for statistics, but there are 2.12.2 / R many 1997 1997 February Free GPL R Foundation interfaces to 25, 2011 open-source numerical software Programmab le, includes computer algebra, 2D+3D plotting. 4.7 / William Interfaces to 2005 May Free GPL SAGE Stein lots of 2011 open-source software. Web based interface HTTP or HTTPS Available as a standalone GPL, Artistic John E. 2.2.0 / (slsh) and 1992 Free License (1.x S-Lang Davis 2009 embedded only) interpreter (jed, slrn, ...) Open Scilab 5.3.2 / source. Consortium / CeCILL 1990 1994 12 May, Free Language Scilab Digiteo license 2011 similar to Was:INRIA MATLAB. interactive graphics, 2D/3D render Dipl.-Phys.-I9.0 / engine, used SimplexNumerng. Ralf 1986 Free Proprietary 2011 for science ica Wirtz and engineering, Excel im-/export. $250 / $2500 (Pro, commercial4.1 / interactive Calerga 1998 ) / $1000 Proprietary Sysquake 2008 graphics (Pro, academic) / free (LE) Visual Language for simulation and Model Based Design. Used in $495-$280business, 0 science and (commerciaengineering. l) Performs Visual 7.0a / free view complex 1989 Proprietary VisSim Solutions 2008 only scalar or version matrix based $50-$250/frODE solving ee v3.0 with (academic) parametric optimization . Has 2D and 3D plotting, 3D animation, and state transition built in. Operating system support The operating systems the software can run on natively (without emulation). Mac Windows OS Linux BSD Unix DOS X Yes Yes Yes No No No ADMB Yes No No No Yes No DADiSP Yes No Yes No No No Euler Math Toolbox Yes Yes Yes Yes Yes No FreeMat Yes Yes Yes No Yes No GAUSS Yes Yes No No No No IGOR Pro Yes Yes Yes No No No jBEAM Yes Yes Yes No Yes No LabVIEW Yes Yes Yes No Yes No Maple Yes Yes Yes No Yes No Mathematica Yes Yes Yes No Yes No MATLAB No Yes Yes Yes Yes No GNU Data Language Yes (using Yes Yes Yes Yes Yes GNU Octave HX-Extender) Yes No No No No No Origin Yes Yes Yes Yes Yes Yes Perl Data Language Yes Yes Yes Yes Yes ? R No Yes Yes No Yes No SAGE Yes Yes Yes Yes Yes Yes S-Lang Yes Yes Yes Yes Yes Yes Scilab Yes No No No No No SimplexNumerica Yes Yes Yes No No No Sysquake Yes No No No No No The Unscrambler Yes Yes Yes No Yes No VisSim Language features Colors indicate features available as basic system capabilities official or officially supported extensions and libraries Third-party software components or not supported StandalCentralSymbolione GUI multi-dimenized can call c executaOOP creatiosional extensiocode in can be called computables suppon arrays as n other from other tion creatiort supporprimitive library languageslanguages supportn t data type website support [3]MATLAB, C, C#, [2]? Yes Yes ? ? ? VisualBasic, Maple Fortran [4]Java and C Java, .NET, C++ [7]Excel, [8]Java, .NELabVIEW [9]T, C++, Haskell, [10]FORTRAMathem[5][6]AppleScript, Yes Yes Yes Yes Yes Yes [11]N, atica Racket, CUDA, Visual [12]OpenCL Basic, [13][14]PythonCl [15]ojure [16]MATLAB Through [21]MEX files: C, C++, FORTRwith AN. Also with [23]extensio.NET, MATLA[19][20]compiled extensioYes Yes Yes Yes [24][25]n library java, Excel B [17]java and n [18] ActiveX compone nts. Mathema [22]tica No (work in GNU progresData No No Yes Yes No C, Python Python s but Languag still e incompl ete) only GUI C++, Yes with Octave FORTRA[32][30]with java, Perl, GNU [26][28][29]GiNaC Yes code Yes Yes N, [33]mkoctfilC++ Octave [30]extensiocan be Perl, e [27][31]n used Tlc C, C++, FORTR [36]AN [39]Excel [34][35]No No Yes No Yes Yes MATLAR [40]Python [37]B [38Python ] Libraries General First Latest Cost Languagepublic stable (USD)Creator License Notes release version General purpose numerical analysis C++, C#, Sergey 2.6.0 / library. Uses FreePascal, 2006 Free GPL ALGLIB Bochkanov 06.2010 automatic code VBA generation to support several programming languages. General purpose numerical analysis library. Targets GNU GNU 1.14 / C 1996 Free GPL GNU/Linux, Scientific Project 03.2010 can be built on Library almost any *nix OS with Ansi C compiler. aims .Net/monH. 1.3.14 / ILNumerics.NC# 2007 Free LGPL o, 2D/3D Kutschbach 08.2008 et plottings (beta) Rogue C, Java, 1970 many Not Proprietary General IMSL Wave C#, componenfree purpose Numerical Software Fortran, ts numerical Libraries Python analysis library. General numerical calcualtions, statistics and jwork.org Free for interactive (S.Chekano100% Java 2005 2011 Free non-commerciJHepWork 2D/3D v) al use graphics for data and function presentation General The many purpose NAG Numerical Not C, Fortran 1970s componenProprietary numerical Numerical Algorithms free ts analysis Libraries Group Ltd library. Math and 5.0 / statistical CenterSpace C# 2003 February $995 Proprietary libraries for NMath Software 2011 the .NET Framework Adds numerical programming capabilities to the Python programming language. 0.9.0 / Related to Enthought Python 1995 2011-02-2Free BSD SciPy Numpy, and 7 therefore connected to the previous Numeric and Numarray packages for Python Operating system support The operating systems the software can run on natively (without emulation). Windows Mac OS X Linux BSD Unix DOS Yes No Yes No No No ALGLIB Yes Yes Yes Yes Yes No GNU Scientific Library Yes Yes Yes Yes Yes No ILNumerics.Net Yes Yes Yes Yes Yes No JHepWork Yes No Yes No Yes No IMSL Numerical Libraries Yes Yes Yes No Yes No NAG Numerical Libraries Yes No No No No No NMath Yes Yes Yes Yes Yes Yes SciPy (Python packages)
/
本文档为【计算数学专业概述(英文)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索