Análisis numérico

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 23:37 24 oct 2020 por Lojwe (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.

El análisis numérico o cálculo numérico es la rama de las matemáticas encargada de diseñar algoritmos para simular aproximaciones de solución a problemas en análisis matemático. Se distingue del cómputo simbólico en que no manipula expresiones algebraicas, sino números.

El análisis numérico cobra especial importancia con la llegada de los ordenadores. Los ordenadores son útiles para cálculos matemáticos extremadamente complejos, pero en última instancia operan con números binarios y operaciones matemáticas simples.

Desde este punto de vista, el análisis numérico proporcionará todo el andamiaje necesario para llevar a cabo todos aquellos procedimientos matemáticos susceptibles de expresarse algorítmicamente, basándose en algoritmos que permitan su simulación o cálculo en procesos más sencillos empleando números.

Definido el error, junto con el error admisible, pasamos al concepto de estabilidad de los algoritmos. Muchas de las operaciones matemáticas pueden llevarse adelante a través de la generación de una serie de números que a su vez alimentan de nuevo el algoritmo (feedback). Esto proporciona un poder de cálculo y refinamiento importantísimo a la máquina que a medida que va completando un ciclo va llegando a la solución. El problema ocurre en determinar hasta cuándo deberá continuar con el ciclo, o si nos estamos alejando de la solución del problema.

Finalmente, otro concepto paralelo al análisis numérico es el de la representación, tanto de los números como de otros conceptos matemáticos como los vectores, polinomios, etc. Por ejemplo, para la representación en ordenadores de números reales, se emplea el concepto de coma flotante que dista mucho del empleado por la matemática convencional.

En general, estos métodos se aplican cuando se necesita un valor numérico como solución a un problema matemático, y los procedimientos «exactos» o «analíticos» (manipulaciones algebraicas, teoría de ecuaciones diferenciales, métodos de integración, etc.) son incapaces de dar una respuesta. Debido a ello, son procedimientos de uso frecuente por físicos e ingenieros, y cuyo desarrollo se ha visto favorecido por la necesidad de estos de obtener soluciones, aunque la precisión no sea completa. Debe recordarse que la física experimental, por ejemplo, nunca arroja valores exactos sino intervalos que engloban la gran mayoría de resultados experimentales obtenidos, ya que no es habitual que dos medidas del mismo fenómeno arrojen valores exactamente iguales.

Problemas

Los problemas de esta disciplina se pueden dividir en dos grupos fundamentales:

  • Problemas de dimensión infinita: problemas en cuya solución o planteamiento intervienen elementos descritos por una cantidad infinita de números, como integración y derivación numéricas, cálculo de ecuaciones diferenciales, interpolación, etc.

Clasificación atendiendo a su naturaleza o motivación

Asimismo, existe una subclasificación de estos dos grandes apartados en tres categorías de problemas, atendiendo a su naturaleza o motivación para el empleo del cálculo numérico:

  • Problemas de tal complejidad que no poseen solución analítica.
  • Problemas en los cuales existe una solución analítica, pero ésta, por complejidad u otros motivos, no puede explotarse de forma sencilla en la práctica.
  • Problemas para los cuales existen métodos sencillos pero que, para elementos que se emplean en la práctica, requieren una cantidad de cálculos excesiva; mayor que la necesaria para un método numérico.

Áreas de estudio

El análisis numérico se divide en diferentes disciplinas de acuerdo con el problema que resolver.

Cálculo de los valores de una función

Uno de los problemas más sencillos es la evaluación de una función en un punto dado. Para polinomios, uno de los métodos más utilizados es el algoritmo de Horner, ya que reduce el número de operaciones a realizar. En general, es importante estimar y controlar los errores de redondeo que se producen por el uso de la aritmética de punto flotante.

La extrapolación es muy similar a la interpolación, excepto que ahora queremos encontrar el valor de la función desconocida en un punto que no está comprendido entre los puntos dados.

La regresión es también similar, pero tiene en cuenta que los datos son imprecisos. Dados algunos puntos, y una medida del valor de la función en los mismos (con un error debido a la medición), queremos determinar la función desconocida. El método de los mínimos cuadrados es una forma popular de conseguirlo.

Resolución de ecuaciones y sistemas de ecuaciones

Otro problema fundamental es calcular la solución de una ecuación o sistema de ecuaciones dado. Se distinguen dos casos dependiendo de si la ecuación o sistema de ecuaciones es o no lineal. Por ejemplo, la ecuación es lineal mientras que la ecuación de segundo grado no lo es.

Mucho esfuerzo se ha puesto en el desarrollo de métodos para la resolución de sistemas de ecuaciones lineales. Métodos directos, i.e., métodos que utilizan alguna factorización de la matriz son el método de eliminación de Gauss, la descomposición LU, la descomposición de Cholesky para matrices simétricas (o hermíticas) definidas positivas, y la descomposición QR. Métodos iterativos como el método de Jacobi, el método de Gauss-Seidel, el método de las aproximaciones sucesivas y el método del gradiente conjugado se utilizan frecuentemente para grandes sistemas.

En la resolución numérica de ecuaciones no lineales algunos de los métodos más conocidos son los métodos de bisección, de la secante y de la falsa posición. Si la función es además derivable y la derivada se conoce, el método de Newton es muy utilizado. Este método es un método de iteración de punto fijo. La linealización es otra técnica para resolver ecuaciones no lineales.

Las ecuaciones algebraicas polinomiales poseen una gran cantidad de métodos numéricos para enumerar :

  • Método de Gräeffe (o método de Lobachevsky o de Lobachevsky-Dandelin-Gräeffe o del cuadrado de las raíces)
  • Método de Laguerre
  • Método de Bairstow (o método de Lin-Bairstow)
  • Método de Bernoulli
  • Método de Horner
  • Método de Householder
  • Método de Newton-Raphson especializado para polinomios
  • Método de Richmond especializado para polinomios
  • Método modificado de Richmond
  • Método de Newton-Horner
  • Método de Richmond-Horner
  • Método de Birge-Biète
  • Método de Jenkins-Traub

Descomposición espectral y en valores singulares

Bastantes problemas importantes pueden ser expresados en términos de descomposición espectral (el cálculo de los vectores y valores propios de una matriz) o de descomposición en valores singulares. Por ejemplo, el análisis de componentes principales utiliza la descomposición en vectores y valores propios.

Optimización

Los problemas de optimización buscan el punto para el cual una función dada alcanza su máximo o mínimo. A menudo, el punto también satisface cierta restricción.

Ejemplos de, problemas de optimización son la programación lineal en que tanto la función objetivo como las restricciones son lineales. Un método famoso de programación lineal es el método simplex.

El método de los multiplicadores de Lagrange puede usarse para reducir los problemas de optimización con restricciones a problemas sin restricciones.

Evaluación de integrales

La integración numérica, también conocida como cuadratura numérica, busca calcular el valor de una integral definida. Métodos populares utilizan alguna de las fórmulas de Newton-Cotes (como la regla del rectángulo o la regla de Simpson) o de cuadratura gaussiana. Estos métodos se basan en una estrategia de «divide y vencerás», dividiendo el intervalo de integración en subintervalos y calculando la integral como la suma de las integrales en cada subintervalo, pudiéndose mejorar posteriormente el valor de la integral obtenido mediante el método de Romberg. Para el cálculo de integrales múltiples estos métodos requieren demasiado esfuerzo computacional, siendo útil el método de Monte Carlo.

Ecuaciones diferenciales

El análisis numérico también puede calcular soluciones aproximadas de ecuaciones diferenciales, bien ecuaciones diferenciales ordinarias, bien ecuaciones en derivadas parciales. Los métodos utilizados suelen basarse en discretizar la ecuación correspondiente. Es útil ver la derivación numérica.

Para la resolución de ecuaciones diferenciales ordinarias los métodos más utilizados son el método de Euler y los métodos de Runge-Kutta.

Las ecuaciones en derivadas parciales se resuelven primero discretizando la ecuación, llevándola a un subespacio de dimensión finita. Esto puede hacerse mediante un método de los elementos finitos.

Fuentes de error y su impacto

Los algoritmos de los métodos numéricos suelen implementarse por medio de computadoras. Estas poseen algunas propiedades que causan fallas al emplearlas para hallar la solución numérica de problemas matemáticos, entre las que se encuentran las siguientes:[1]

  1. Las computadoras son capaces de almacenar un número finito de dígitos, por lo que no pueden almacenar el conjunto de los números reales en su totalidad para realizar operaciones numéricas con estos. En cambio, cuentan con un subconjunto de los números reales al cual se conoce como números de punto flotante o números de máquina. Al error al que conlleva esta limitante se le llama error de redondeo.
  2. Existen problemas que involucran muchos cálculos para su solución. En ocasiones, las soluciones son sensibles a la precisión de los cálculos intermedios, en cuyo caso se dice que las soluciones pueden haber sido perturbadas por los datos.
  3. A mayor número de operaciones realizadas se tendrá un error de redondeo mayor. La velocidad que proveen las computadoras para el procesamiento ha agilizado significativamente la rapidez con la que se calculan operaciones. Sin embargo, la propagación de errores de redondeo por los cálculos realizados por computadoras puede derivar en la inestabilidad de los resultados arrojados por los algoritmos programados en ellas.

Las fallas en los cálculos intermedios realizados por una computadora para arrojar un resultado final son, con frecuencia, desconocidos para los programadores y muy difíciles de detectar: la suma y el producto de números de punto flotante son operaciones conmutativas, pero no son asociativas y tampoco distributivas. Al no verificar estas dos propiedades de los números reales, el manejo de las operaciones realizadas con números de punto flotante resulta una tarea complicada. Por otra parte, el orden de las operaciones puede incidir en la precisión de los resultados devueltos por la máquina, pues dos expresiones equivalentes en un sentido algebraico pueden dar resultados distintos en el contexto de los números de máquina.

Afortunadamente, existen algunas técnicas para prevenir y atacar el error de redondeo. En[2]​ se discuten algunas de las implicaciones de estas estrategias para las operaciones básicas de suma, resta, multiplicación y división. También en[2]​ se discuten algunos estándares de punto flotante de la IEEE y las conexiones entre el punto flotante y el diseño de sistemas computacionales.

El mejoramiento en la precisión de los números de punto flotante sigue siendo motivo de estudio en nuestros días. En 2015, investigadores de la Universidad de Washington desarrollaron una herramienta computacional a la que llamaron Herbie y que «detecta automáticamente las transformaciones necesarias para que un programa mejore su precisión».[3]Herbie evalúa el error de una expresión de punto flotante e identifica qué operaciones contribuyen de forma más significativa a la acumulación de errores, luego genera alternativas para realizar estas operaciones y hace un comparativo para finalmente determinar la expresión equivalente óptima (aquella que minimiza el error) para corregir el programa.

El interés en asegurar cierto nivel de precisión en los resultados numéricos provistos una computadora se debe a sus posibles repercusiones en la práctica. Por ejemplo, en el ámbito académico se han dado casos de artículos de investigación en los que el error de redondeo ha impedido que los resultados sean reproducibles y, en ocasiones, este ha sido incluso motivo de rechazo para su publicación ([4]​ y[5]​). Este tipo de error también ha permeado la regulación legal financiera de algunos países[3]​ y distorsionado índices del mercado bursátil.[6]

La limitante en la representación de números reales mediante el punto flotante también tiene repercusiones en las gráficas generadas por medio de una computadora. Cuando un número es menor a lo que se conoce como el épsilon de máquina, la computadora es incapaz de representarlo. Esto puede provocar que las gráficas asociadas a valores numéricos menores al épsilon presenten falsos comportamientos y afectar la toma de decisiones basadas en ellas, con consecuencias insospechadas, por ejemplo, al realizar pronósticos, área en la que la precisión juega un papel crucial.[7]

Existen otros tipos de error en el contexto de los métodos numéricos que merecen igual atención y cuidado. Errores de truncamiento y de conversión, entre otros, han dado origen a múltiples catástrofes: la falla del misil Patriot, la explosión del cohete Ariane 5, el hundimiento de la plataforma petrolera Sleipner son solo algunos ejemplos de ello.[8]​ De ahí la importancia de reconocer estas fuentes de error para anticiparse a ellas y, en su caso, detectarlas y corregirlas.

Otros temas de análisis numérico

Referencias

  1. Forsythe, George E. (1 de enero de 1970). «Pitfalls in Computation, or why a Math Book isn't Enough». The American Mathematical Monthly 77 (9): 931-956. doi:10.2307/2318109. Consultado el 2 de marzo de 2016. 
  2. a b Goldberg, David (1 de marzo de 1991). «What Every Computer Scientist Should Know About Floating-point Arithmetic». ACM Comput. Surv. 23 (1): 5-48. ISSN 0360-0300. doi:10.1145/103162.103163. Consultado el 2 de marzo de 2016. 
  3. a b Panchekha, Pavel; Sanchez-Stern, Alex; Wilcox, James R.; Tatlock, Zachary (1 de enero de 2015). «Automatically Improving Accuracy for Floating Point Expressions». Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI 2015 (ACM): 1-11. ISBN 9781450334686. doi:10.1145/2737924.2737959. Consultado el 2 de marzo de 2016. 
  4. Altman, Micah; Gill, Jeff; McDonald, Michael P. (15 de febrero de 2004). Numerical Issues in Statistical Computing for the Social Scientist (en inglés). John Wiley & Sons. ISBN 9780471475743. Consultado el 2 de marzo de 2016. 
  5. Altman, Micah; McDonald, Michael P. (1 de agosto de 2003). «Replication with Attention to Numerical Accuracy». Political Analysis (en inglés) 11 (3): 302-307. ISSN 1047-1987. doi:10.1093/pan/mpg016. Consultado el 2 de marzo de 2016. 
  6. McCullough, B. D.; Vinod, H. D. (1 de enero de 1999). «The Numerical Reliability of Econometric Software». Journal of Economic Literature 37 (2): 633-665. Consultado el 2 de marzo de 2016. 
  7. McCullough, B. D. (2000). «Is it safe to assume that software is accurate?». International Journal of Forecasting 16 (3): 349-357. 
  8. «Computer Arithmetic Tragedies page of Kees Vuik». ta.twi.tudelft.nl. Consultado el 2 de marzo de 2016. 

Enlaces externos

En español

En inglés