Computación científica
# Computación científica

La computación científica o ciencia computacional es el campo de estudio relacionado con la construcción de modelos matemáticos y técnicas numéricas para resolver problemas científicos y problemas de ingeniería. Típicamente es la aplicación de modelado numérico y otras formas de cálculo de problemas en varias disciplinas científicas.

Este campo es distinto a la informática, y a la teoría y experimentación, que son las formas tradicionales de la ciencia y la ingeniería. El enfoque de la computación científica es para ganar entendimiento, principalmente a través del análisis de modelos matemáticos implementados en computadores.

Científicos e ingenieros desarrollan software, aplicaciones informáticas para modelar sistemas que están siendo estudiados, y correr estos programas con diferentes conjuntos de entradas. Por lo general, estos modelos requieren una gran cantidad de cálculos (usualmente de punto flotante) y son a menudo ejecutados en supercomputadores o plataformas de computación distribuida.

El análisis numérico es un pilar fundamental de técnicas utilizadas en las ciencias computacionales.

## Aplicaciones de computación científica

### Simulaciones numéricas

Las simulaciones numéricas tienen diferentes objetivos dependiendo de la naturaleza de la tarea a ser simulada:

* Reconstruir y comprender los eventos conocidos (e.g. terremotos, maremotos y otros desastres naturales).
* Predecir el futuro o situaciones no observadas (e.g. tiempo atmosférico, comportamiento de partículas subatómicas).

### Modelos apropiados y análisis de datos

* Sintonizar apropiadamente los modelos o resolver ecuaciones para reflejar ciertas observaciones, sujetas a las restricciones del modelo (e.g. exploración geofísica de petróleo, lingüística computacional).
* Usar teoría de grafos para modelar redes, especialmente las conexiones individuales, organizaciones y sitios web.

### Optimización

* Optimizar escenarios conocidos (e.g. técnicas y procesos de fabricación, interfaces de ingeniería).

## Métodos y algoritmos

Los algoritmos y métodos matemáticos usados en computación científica son variados. Los métodos comúnmente aplicados son:

* Análisis numérico.
* Aplicación de series de Taylor como series convergentes y asintóticas.
* Cálculo de derivadas mediante diferenciación automática.
* Cálculo de derivadas mediante diferencias finitas.
* Métodos aproximados de diferencias de alto orden mediante series de Taylor y la extrapolación de Richardson.
* Métodos de integración sobre una malla uniforme: regla del rectángulo, regla del trapecio, regla del punto medio, regla de Simpson.
* Método de Runge-Kutta para resolver ecuaciones diferenciales ordinarias.
* Método de Montecarlo.
* Álgebra lineal numérica.
* Cálculo de los factores LU vía eliminación Gaussiana.
* Factorización de Cholesky.
* Transformada de Fourier discreta y sus aplicaciones.
* Método de Newton.
* Métodos de time-stepping para sistemas dinámicos.

Los lenguajes de programación comúnmente usados para los aspecto más matemáticos de las aplicaciones de la computación científica incluyen a Fortran, MATLAB, Scilab, GNU Octave, COMSOL Multiphysics y PDL. Los aspectos más computacionales son tratados a menudo con C y Fortran.

Los programas de aplicación de la computación científica a menudo modelan cambios en las condiciones del mundo real, tales como el tiempo atmosférico, el flujo de aire alrededor de un avión, el movimiento de las estrellas en una galaxia, un dispositivo explosivo, entre otros. Estos programas deberían crear una 'malla lógica' en la memoria del computador, donde cada ítem corresponda a un área en el espacio y contenga información acerca del espacio relevante para el modelo. Por ejemplo, en modelos para el tiempo atmosférico, cada ítem podría ser un kilómetro cuadrado; con la altitud del suelo, dirección actual del viento, humedad ambiental, temperatura, presión, etc.. El programa debería calcular el probable siguiente estado basado en el estado actual, simulada en medidas de tiempo, resolviendo ecuaciones que describen cómo operan los sistemas; y repetir el proceso para calcular el siguiente estado.

El término científico computacional es usado para describir a alguien experto en computación científica. Esta persona es generalmente un científico, un ingeniero o un matemático aplicado que aplica computación de alto rendimiento en diferentes formas para avanzar en el estado del arte de su respectiva disciplina de la física, química o ingeniería. Científicos computacionales han impactado cada vez más en otras áreas como la economía, biología y medicina.

La computación científica es hoy en día considerada como el tercer modo de ciencia, complementando y añadiendo a la experimentación/observación y teoría.

## Educación

La computación científica es más estudiada por medio de la matemática aplicada o programas de las ciencias de la computación, o dentro de un estándar matemático, ciencias, o programas de ingeniería. En algunas instituciones un especialización en computación científica puede ser obtenida como un "minor" dentro de otro programa (el cual puede estar en muchos niveles). Sin embargo, hay cada vez más muchos bachiller y programas de magíster en computación científica. Algunas universidades también ofrecen doctorados en ciencias computacionales, ingeniería computacional, ciencias computacionales e ingeniería o computación científica.

Hay también programas como el de física computacional, química computacional, economía computacional, entre otros.

## Campos relacionados

* Bioinformática.
* Quimiometría.
* Química computacional.
* Biología computacional.
* Matemática computacional.
* Mecánica computacional.
* Física computacional.
* Ingeniería computacional.
* Computación de alto rendimiento.
* Electromagnetismo computacional.
* Dinámica de fluidos computacional.
* Economía computacional.
* Sistema de Información Geográfica.
* Aprendizaje Automático.
* Reconocimiento de patrones.
