Jump to content

Scientific programming language

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 2001:7d0:87c1:d080:4026:dc76:a6a4:3b45 (talk) at 13:32, 16 May 2021 (Mathematical optimization). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In computer programming, a scientific programming language is a programming language optimized for the use of mathematical formulas and matrices..[1] Although these functions can be performed using any language, scientific programming languages provide both a syntax and a standard library that facilitates their use. Such languages include ALGOL, APL, Fortran, J, Julia, Maple, MATLAB and R.[2][3][4][5] Scientific programming languages should not be confused with scientific language in general, which refers loosely to the higher standards in precision, correctness and concision expected from practitioners of the scientific method.

Examples

Linear algebra

Scientific programming languages provide facilities to work with linear algebra. For example, the following Julia program solves a system of linear equations:

A = rand(20, 20)  # A is a 20x20 matrix
b = rand(20)      # b is a 20-element vector
x = A\b           # x is the solution to A*x = b

Working with large vectors and matrices is a key feature of these languages, as linear algebra lays the foundation to mathematical optimization, which in turn enables major applications such as deep learning.

Mathematical optimization

In a scientific programming language, we can compute function optima with a syntax close to mathematical language. For instance, the following Julia code finds the minimum of the polynomial :

using Optim

P(x,y) = x^2 - 3x*y + 5y^2 - 7y + 3

z₀ = [ 0.0
       0.0 ]

optimize( z -> P(z...), z₀;
          autodiff = :forward)

The scientific programming language will automatically compute the gradients of the function given as input (here, automatic forward differentiation is chosen). The use of an initial guess is specific to the algorithm used.

With more knowledge of the function to be minimized, more efficient algorithms can be used. For instance, convex optimization provides faster computations when the function is convex, quadratic programming provides faster computations when the function is at most quadratic in its variables, and linear programming when the function is at most linear.

See also

References

  1. ^ "Definition of scientific language". PC Magazine Encyclopedia. Ziff Davis. Retrieved 13 May 2021.
  2. ^ Ning, Andrew. "Scientific Programming Languages". Flight, Optimization, and Wind Laboratory. Brigham Young University. Retrieved 13 May 2021.
  3. ^ Zachary, Joseph. "Introduction to Scientific Programming: Computational Problem Solving Using Maple and C". Joseph L. Zachary. University of Utah. Retrieved 13 May 2021.
  4. ^ Karakan, Burak (1 May 2020). "Python vs R for Data Science". Towards Data Science. Retrieved 13 May 2021.
  5. ^ "scientific language - Definition of scientific language". YourDictionary. The Computer Language Company Inc. Retrieved 27 March 2014.