Scientific programming language
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₀, Newton();
autodiff = :forward)
In this example, Newton's method for minimizing is used. Modern scientific programming languages will use automatic differentiation to compute the gradients and Hessians of the function given as input; cf. differentiable programming. Here, automatic forward differentiation has been chosen for that task. The algorithm requires a starting point .
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
- ^ "Definition of scientific language". PC Magazine Encyclopedia. Ziff Davis. Retrieved 13 May 2021.
- ^ Ning, Andrew. "Scientific Programming Languages". Flight, Optimization, and Wind Laboratory. Brigham Young University. Retrieved 13 May 2021.
- ^ Zachary, Joseph. "Introduction to Scientific Programming: Computational Problem Solving Using Maple and C". Joseph L. Zachary. University of Utah. Retrieved 13 May 2021.
- ^ Karakan, Burak (1 May 2020). "Python vs R for Data Science". Towards Data Science. Retrieved 13 May 2021.
- ^ "scientific language - Definition of scientific language". YourDictionary. The Computer Language Company Inc. Retrieved 27 March 2014.