En programación informática , un lenguaje de programación científica puede referirse a dos grados del mismo concepto.
En sentido amplio, un lenguaje de programación científica es un lenguaje de programación que se utiliza ampliamente en la ciencia computacional y las matemáticas computacionales . En este sentido, C/C++ y Python pueden considerarse lenguajes de programación científica.
En un sentido más fuerte, un lenguaje de programación científica es uno que está diseñado y optimizado para el uso de fórmulas matemáticas y matrices . [1] Dichos lenguajes se caracterizan no solo por la disponibilidad de bibliotecas que realizan funciones matemáticas o científicas, sino por la sintaxis del lenguaje en sí. [2] Por ejemplo, ni C++ ni Python tienen tipos de matriz incorporados o funciones para aritmética de matrices (suma, multiplicación, etc.); en cambio, esta funcionalidad está disponible a través de bibliotecas estándar. Los lenguajes de programación científica en el sentido más fuerte incluyen ALGOL , APL , Fortran , J , Julia , Maple , MATLAB , Octave y R. [3] [4 ]
Los lenguajes de programación científica no deben confundirse con el lenguaje científico en general, que se refiere vagamente a los estándares más elevados de precisión, corrección y concisión que se esperan de los practicantes del método científico .
Ejemplos
Álgebra lineal
Los lenguajes de programación científica ofrecen facilidades para trabajar con álgebra lineal . Por ejemplo, el siguiente programa de Julia resuelve un sistema de ecuaciones lineales :
A = rand ( 20 , 20 ) # A es una matriz de 20x20 b = rand ( 20 ) # b es un vector de 20 elementos x = A \ b # x es la solución de A*x = b
Trabajar con vectores y matrices grandes es una característica clave de estos lenguajes, ya que el álgebra lineal sienta las bases para la optimización matemática , lo que a su vez permite aplicaciones importantes como el aprendizaje profundo .
Optimización matemática
En un lenguaje de programación científica, podemos calcular los óptimos de funciones con una sintaxis cercana al lenguaje matemático. Por ejemplo, el siguiente código de Julia encuentra el mínimo del polinomio .
usando Optim
P ( x , y ) = x ^ 2 - 3 x * y + 5 y ^ 2 - 7 y + 3
z₀ = [ 0.0 0.0 ] # punto de inicio para el algoritmo de optimización
optimizar ( z -> P ( z ... ), z₀ , Newton (); autodiff = :forward )
En este ejemplo, se utiliza el método de Newton para minimizar. Los lenguajes de programación científica modernos utilizan la diferenciación automática para calcular los gradientes y hessianos de la función dada como entrada; cf. programación diferenciable . Aquí, se ha elegido la diferenciación automática hacia delante para esa tarea. Los lenguajes de programación científica más antiguos, como el venerable Fortran, requerirían que el programador pase, junto a la función a optimizar, una función que calcule el gradiente y una función que calcule el hessiano.
Con un mayor conocimiento de la función que se debe minimizar, se pueden utilizar algoritmos más eficientes. Por ejemplo, la optimización convexa proporciona cálculos más rápidos cuando la función es convexa, la programación cuadrática proporciona cálculos más rápidos cuando la función es como máximo cuadrática en sus variables y la programación lineal cuando la función es como máximo lineal.
Véase también
Referencias
- ^ "Definición de lenguaje científico". Enciclopedia PC Magazine . Ziff Davis . Consultado el 13 de mayo de 2021 .
- ^ "lenguaje científico - Definición de lenguaje científico". YourDictionary . The Computer Language Company Inc . Consultado el 27 de marzo de 2014 .
- ^ Ning, Andrew. "Lenguajes de programación científica". Laboratorio de vuelo, optimización y viento . Universidad Brigham Young . Consultado el 13 de mayo de 2021 .
- ^ Zachary, Joseph. "Introducción a la programación científica: resolución de problemas computacionales con Maple y C". Joseph L. Zachary . Universidad de Utah . Consultado el 13 de mayo de 2021 .