stringtranslate.com

Análisis numérico

Tablilla de arcilla babilónica YBC 7289 (c. 1800-1600 a. C.) con anotaciones. La aproximación de la raíz cuadrada de 2 es de cuatro cifras sexagesimales , que son aproximadamente seis cifras decimales . 1 + 24/60 + 51/60 2 + 10/60 3 = 1,41421296... [1]

El análisis numérico es el estudio de algoritmos que utilizan aproximación numérica (a diferencia de manipulaciones simbólicas ) para los problemas de análisis matemático (a diferencia de las matemáticas discretas ). Es el estudio de métodos numéricos que intentan encontrar soluciones aproximadas a los problemas en lugar de soluciones exactas. El análisis numérico encuentra aplicación en todos los campos de la ingeniería y las ciencias físicas, y en el siglo XXI también en las ciencias biológicas y sociales, la medicina, los negocios e incluso las artes. El crecimiento actual de la potencia informática ha permitido el uso de análisis numéricos más complejos, proporcionando modelos matemáticos detallados y realistas en ciencia e ingeniería. Ejemplos de análisis numérico incluyen: ecuaciones diferenciales ordinarias como las que se encuentran en la mecánica celeste (que predicen los movimientos de planetas, estrellas y galaxias), álgebra lineal numérica en análisis de datos, [2] [3] [4] y ecuaciones diferenciales estocásticas y cadenas de Markov para simulando células vivas en medicina y biología.

Antes de las computadoras modernas, los métodos numéricos a menudo dependían de fórmulas de interpolación manual , utilizando datos de grandes tablas impresas. Desde mediados del siglo XX, las computadoras calculan las funciones requeridas, pero muchas de las mismas fórmulas continúan utilizándose en los algoritmos de software. [5]

El punto de vista numérico se remonta a los primeros escritos matemáticos. Una tablilla de la Colección Babilónica de Yale ( YBC 7289 ), da una aproximación numérica sexagesimal de la raíz cuadrada de 2 , la longitud de la diagonal en un cuadrado unitario .

El análisis numérico continúa esta larga tradición: en lugar de dar respuestas simbólicas exactas traducidas a dígitos y aplicables sólo a mediciones del mundo real, se utilizan soluciones aproximadas dentro de límites de error específicos.

Aplicaciones

El objetivo general del campo del análisis numérico es el diseño y análisis de técnicas para dar soluciones aproximadas pero precisas a una amplia variedad de problemas difíciles, muchos de los cuales no son factibles de resolver simbólicamente:

Historia

El campo del análisis numérico es anterior en muchos siglos a la invención de las computadoras modernas. La interpolación lineal ya se utilizaba hace más de 2000 años. Muchos grandes matemáticos del pasado estaban preocupados por el análisis numérico, [5] como se desprende de los nombres de algoritmos importantes como el método de Newton , el polinomio de interpolación de Lagrange , la eliminación gaussiana o el método de Euler . Los orígenes del análisis numérico moderno a menudo se vinculan a un artículo de 1947 de John von Neumann y Herman Goldstine , [7] [8] pero otros consideran que el análisis numérico moderno se remonta al trabajo de ET Whittaker en 1912. [7]

publicación del NIST

Para facilitar los cálculos a mano, se produjeron libros grandes con fórmulas y tablas de datos como puntos de interpolación y coeficientes de funciones. Usando estas tablas, a menudo calculadas con 16 decimales o más para algunas funciones, se pueden buscar valores para conectarlos a las fórmulas dadas y lograr muy buenas estimaciones numéricas de algunas funciones. El trabajo canónico en este campo es la publicación del NIST editada por Abramowitz y Stegun , un libro de más de 1000 páginas con una gran cantidad de fórmulas y funciones comúnmente utilizadas y sus valores en muchos puntos. Los valores de las funciones ya no son muy útiles cuando se dispone de una computadora, pero la gran lista de fórmulas aún puede resultar muy útil.

La calculadora mecánica también se desarrolló como herramienta para el cálculo manual. Estas calculadoras evolucionaron hasta convertirse en computadoras electrónicas en la década de 1940, y luego se descubrió que estas computadoras también eran útiles para fines administrativos. Pero la invención del ordenador también influyó en el campo del análisis numérico, [5] ya que ahora se podían realizar cálculos más largos y complicados.

El Premio Leslie Fox de Análisis Numérico fue iniciado en 1985 por el Instituto de Matemáticas y sus Aplicaciones .

Conceptos clave

Métodos directos e iterativos.

Los métodos directos calculan la solución a un problema en un número finito de pasos. Estos métodos darían la respuesta precisa si se realizaran con aritmética de precisión infinita . Los ejemplos incluyen la eliminación gaussiana , el método de factorización QR para resolver sistemas de ecuaciones lineales y el método simplex de programación lineal . En la práctica, se utiliza precisión finita y el resultado es una aproximación de la solución verdadera (suponiendo estabilidad ).

A diferencia de los métodos directos, no se espera que los métodos iterativos terminen en un número finito de pasos, incluso si fuera posible una precisión infinita. A partir de una suposición inicial, los métodos iterativos forman aproximaciones sucesivas que convergen a la solución exacta sólo en el límite. Se especifica una prueba de convergencia, que a menudo involucra el residual , para decidir cuándo se ha encontrado (con suerte) una solución suficientemente precisa. Incluso usando aritmética de precisión infinita, estos métodos no alcanzarían la solución dentro de un número finito de pasos (en general). Los ejemplos incluyen el método de Newton, el método de bisección y la iteración de Jacobi . En álgebra matricial computacional, los métodos iterativos generalmente son necesarios para problemas grandes. [9] [10] [11] [12]

Los métodos iterativos son más comunes que los métodos directos en el análisis numérico. Algunos métodos son directos en principio, pero normalmente se utilizan como si no lo fueran, por ejemplo, GMRES y el método del gradiente conjugado . Para estos métodos, el número de pasos necesarios para obtener la solución exacta es tan grande que se acepta una aproximación de la misma manera que para un método iterativo.

Como ejemplo, considere el problema de resolver

3 x 3 + 4 = 28

para la cantidad desconocida x .

Para el método iterativo, aplique el método de bisección a f ( x ) = 3 x 3 − 24. Los valores iniciales son a = 0, b = 3, f ( a ) = −24, f ( b ) = 57.

De esta tabla se puede concluir que la solución está entre 1,875 y 2,0625. El algoritmo podría devolver cualquier número en ese rango con un error inferior a 0,2.

Acondicionamiento

Problema mal condicionado: tome la función f ( x ) = 1/( x  − 1) . Tenga en cuenta que f (1,1) = 10 y f (1,001) = 1000: un cambio en x menor que 0,1 se convierte en un cambio en f ( x ) de casi 1000. Evaluar f ( x ) cerca de x = 1 es una mala idea. problema condicionado.

Problema bien condicionado: por el contrario, evaluar la misma función f ( x ) = 1/( x  − 1) cerca de x = 10 es un problema bien condicionado. Por ejemplo, f (10) = 1/9 ≈ 0,111 y f (11) = 0,1: un cambio modesto en x conduce a un cambio modesto en f ( x ).

Discretización

Además, a veces los problemas continuos deben ser reemplazados por un problema discreto cuya solución se aproxima a la del problema continuo; este proceso se llama ' discretización '. Por ejemplo, la solución de una ecuación diferencial es una función . Esta función debe estar representada por una cantidad finita de datos, por ejemplo por su valor en un número finito de puntos en su dominio, aunque este dominio sea un continuo .

Generación y propagación de errores.

El estudio de los errores forma una parte importante del análisis numérico. Hay varias formas en que se puede introducir un error en la solución del problema.

Redondear

Los errores de redondeo surgen porque es imposible representar todos los números reales exactamente en una máquina con memoria finita (que es lo que son todas las computadoras digitales prácticas ).

Error de truncamiento y discretización

Los errores de truncamiento se cometen cuando se termina un método iterativo o se aproxima un procedimiento matemático y la solución aproximada difiere de la solución exacta. De manera similar, la discretización induce un error de discretización porque la solución del problema discreto no coincide con la solución del problema continuo. En el ejemplo anterior para calcular la solución de , después de diez iteraciones, la raíz calculada es aproximadamente 1,99. Por lo tanto, el error de truncamiento es aproximadamente 0,01.

Una vez que se genera un error, se propaga a través del cálculo. Por ejemplo, la operación + en una computadora es inexacta. Un cálculo de este tipo es aún más inexacto.

Se crea un error de truncamiento cuando se aproxima un procedimiento matemático. Para integrar una función exactamente se debe encontrar una suma infinita de regiones, pero numéricamente sólo se puede encontrar una suma finita de regiones, y de ahí la aproximación de la solución exacta. De manera similar, para derivar una función, el elemento diferencial tiende a cero, pero numéricamente sólo se puede elegir un valor distinto de cero del elemento diferencial.

Estabilidad numérica y problemas bien planteados.

Un algoritmo se llama numéricamente estable si un error, cualquiera que sea su causa, no crece mucho durante el cálculo. [13] Esto sucede si el problema está bien condicionado , lo que significa que la solución cambia solo una pequeña cantidad si los datos del problema se cambian en una pequeña cantidad. [13] Por el contrario, si un problema está "mal condicionado", entonces cualquier pequeño error en los datos se convertirá en un gran error. [13] Tanto el problema original como el algoritmo utilizado para resolverlo pueden estar bien condicionados o mal condicionados, y cualquier combinación es posible. Por tanto, un algoritmo que resuelve un problema bien condicionado puede ser numéricamente estable o numéricamente inestable. Un arte del análisis numérico es encontrar un algoritmo estable para resolver un problema matemático bien planteado.

Áreas de estudio

El campo del análisis numérico incluye muchas subdisciplinas. Algunos de los principales son:

Calcular valores de funciones.

Uno de los problemas más simples es la evaluación de una función en un punto dado. El enfoque más sencillo, de simplemente ingresar el número en la fórmula, a veces no es muy eficiente. Para polinomios, un mejor enfoque es utilizar el esquema de Horner , ya que reduce el número necesario de multiplicaciones y sumas. Generalmente, es importante estimar y controlar los errores de redondeo que surgen del uso de la aritmética de punto flotante .

Interpolación, extrapolación y regresión.

La interpolación resuelve el siguiente problema: dado el valor de alguna función desconocida en varios puntos, ¿qué valor tiene esa función en algún otro punto entre los puntos dados?

La extrapolación es muy similar a la interpolación, excepto que ahora se debe encontrar el valor de la función desconocida en un punto que está fuera de los puntos dados. [14]

La regresión también es similar, pero tiene en cuenta que los datos son imprecisos. Dados algunos puntos y una medición del valor de alguna función en esos puntos (con un error), se puede encontrar la función desconocida. El método de mínimos cuadrados es una forma de lograrlo.

Resolver ecuaciones y sistemas de ecuaciones.

Otro problema fundamental es calcular la solución de alguna ecuación dada. Comúnmente se distinguen dos casos, dependiendo de si la ecuación es lineal o no. Por ejemplo, la ecuación es lineal mientras que no lo es.

Se han puesto muchos esfuerzos en el desarrollo de métodos para resolver sistemas de ecuaciones lineales . Los métodos directos estándar, es decir, los métodos que utilizan alguna descomposición matricial, son la eliminación gaussiana , la descomposición LU , la descomposición de Cholesky para matrices simétricas (o hermitianas ) y definidas positivas , y la descomposición QR para matrices no cuadradas. Los métodos iterativos como el método de Jacobi , el método de Gauss-Seidel , la relajación excesiva sucesiva y el método del gradiente conjugado [15] suelen ser los preferidos para sistemas grandes. Se pueden desarrollar métodos iterativos generales utilizando una división de matrices .

Los algoritmos de búsqueda de raíces se utilizan para resolver ecuaciones no lineales (se llaman así porque la raíz de una función es un argumento para el cual la función produce cero). Si la función es derivable y se conoce la derivada, entonces el método de Newton es una opción popular. [16] [17] La ​​linealización es otra técnica para resolver ecuaciones no lineales.

Resolver problemas de valores propios o de valores singulares

Varios problemas importantes pueden formularse en términos de descomposiciones de valores propios o descomposiciones de valores singulares . Por ejemplo, el algoritmo de compresión de imágenes espectrales [18] se basa en la descomposición de valores singulares. La herramienta correspondiente en estadística se llama análisis de componentes principales .

Mejoramiento

Los problemas de optimización preguntan por el punto en el que se maximiza (o minimiza) una función determinada. A menudo, el punto también tiene que satisfacer algunas limitaciones .

El campo de optimización se divide en varios subcampos, dependiendo de la forma de la función objetivo y la restricción. Por ejemplo, la programación lineal aborda el caso en que tanto la función objetivo como las restricciones son lineales. Un método famoso en programación lineal es el método simplex .

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

Evaluación de integrales

La integración numérica, en algunos casos también conocida como cuadratura numérica , solicita el valor de una integral definida . [19] Los métodos populares utilizan una de las fórmulas de Newton-Cotes (como la regla del punto medio o la regla de Simpson ) o la cuadratura gaussiana . [20] Estos métodos se basan en una estrategia de "divide y vencerás", mediante la cual una integral en un conjunto relativamente grande se divide en integrales en conjuntos más pequeños. En dimensiones superiores, donde estos métodos se vuelven prohibitivamente costosos en términos de esfuerzo computacional, se pueden usar métodos de Monte Carlo o cuasi-Monte Carlo (ver integración de Monte Carlo [21] ), o, en dimensiones modestamente grandes, el método de cuadrículas dispersas .

Ecuaciones diferenciales

El análisis numérico también se ocupa de calcular (de forma aproximada) la solución de ecuaciones diferenciales , tanto ecuaciones diferenciales ordinarias como ecuaciones diferenciales parciales . [22]

Las ecuaciones diferenciales parciales se resuelven discretizando primero la ecuación y llevándola a un subespacio de dimensión finita. [23] Esto se puede hacer mediante un método de elementos finitos , [24] [25] [26] un método de diferencias finitas , [27] o (particularmente en ingeniería) un método de volúmenes finitos . [28] La justificación teórica de estos métodos a menudo implica teoremas del análisis funcional . Esto reduce el problema a la solución de una ecuación algebraica.

Software

Desde finales del siglo XX, la mayoría de los algoritmos se implementan en una variedad de lenguajes de programación. El repositorio de Netlib contiene varias colecciones de rutinas de software para problemas numéricos, principalmente en Fortran y C. Los productos comerciales que implementan muchos algoritmos numéricos diferentes incluyen las bibliotecas IMSL y NAG ; una alternativa de software libre es la Biblioteca Científica GNU .

A lo largo de los años, la Royal Statistical Society publicó numerosos algoritmos en su Estadística Aplicada (el código para estas funciones "AS" se encuentra aquí); ACM de manera similar, en sus Transacciones sobre software matemático (el código "TOMS" está aquí). El Centro de Guerra Naval de Superficie publicó varias veces su Biblioteca de Subrutinas Matemáticas (código aquí).

Existen varias aplicaciones de computación numérica populares, como MATLAB , [29] [30] [31] TK Solver , S-PLUS e IDL [32] , así como alternativas gratuitas y de código abierto como FreeMat , Scilab , [33] [34] GNU Octave (similar a Matlab) e IT++ (una biblioteca de C++). También existen lenguajes de programación como R [35] (similar a S-PLUS), Julia , [36] y Python con bibliotecas como NumPy , SciPy [37] [38] [39] y SymPy . El rendimiento varía ampliamente: si bien las operaciones vectoriales y matriciales suelen ser rápidas, los bucles escalares pueden variar en velocidad en más de un orden de magnitud. [40] [41]

Muchos sistemas de álgebra informática, como Mathematica, también se benefician de la disponibilidad de aritmética de precisión arbitraria que puede proporcionar resultados más precisos. [42] [43] [44] [45]

Además, se puede utilizar cualquier software de hoja de cálculo para resolver problemas sencillos relacionados con el análisis numérico. Excel , por ejemplo, tiene cientos de funciones disponibles , incluso para matrices, que pueden usarse junto con su "solucionador" integrado .

Ver también

Notas

Referencias

Citas

  1. ^ "Fotografía, ilustración y descripción de la tablilla raíz (2) de la colección Babylonian de Yale". Archivado desde el original el 13 de agosto de 2012 . Consultado el 2 de octubre de 2006 .
  2. ^ Demmel, JW (1997). Álgebra lineal numérica aplicada. SIAM . doi :10.1137/1.9781611971446. ISBN 978-1-61197-144-6.
  3. ^ Ciarlet, PG; Miara, B.; Thomas, JM (1989). Introducción al álgebra lineal numérica y optimización . Prensa de la Universidad de Cambridge. ISBN 9780521327886. OCLC  877155729.
  4. ^ Trefethen, Lloyd; BauIII, David (1997). Álgebra lineal numérica. SIAM. ISBN 978-0-89871-361-9.
  5. ^ abc Brezinski, C.; Wuytack, L. (2012). Análisis numérico: Desarrollos históricos en el siglo XX. Elsevier. ISBN 978-0-444-59858-5.
  6. ^ Stephen Blyth. "Una introducción a las finanzas cuantitativas". 2013. página VII.
  7. ^ ab Watson, GA (2010). "La historia y el desarrollo del análisis numérico en Escocia: una perspectiva personal" (PDF) . El nacimiento del análisis numérico . Científico mundial. págs. 161-177. ISBN 9789814469456.
  8. ^ Bultheel, Adhemar ; Enfría, Ronald, eds. (2010). El nacimiento del análisis numérico. vol. 10. Científico mundial. ISBN 978-981-283-625-0.
  9. ^ Saad, Y. (2003). Métodos iterativos para sistemas lineales dispersos. SIAM. ISBN 978-0-89871-534-7.
  10. ^ Hageman, Luisiana; Joven, DM (2012). Métodos iterativos aplicados (2ª ed.). Corporación de mensajería. ISBN 978-0-8284-0312-2.
  11. ^ Traub, JF (1982). Métodos iterativos para la solución de ecuaciones (2ª ed.). Sociedad Matemática Estadounidense. ISBN 978-0-8284-0312-2.
  12. ^ Greenbaum, A. (1997). Métodos iterativos para la resolución de sistemas lineales. SIAM. ISBN 978-0-89871-396-1.
  13. ^ abc Higham 2002
  14. ^ Brezinski, C.; Zaglia, señor (2013). Métodos de extrapolación: teoría y práctica. Elsevier. ISBN 978-0-08-050622-7.
  15. ^ Hestenes, Magnus R.; Stiefel, Eduard (diciembre de 1952). "Métodos de gradientes conjugados para resolver sistemas lineales" (PDF) . Revista de Investigación de la Oficina Nacional de Normas . 49 (6): 409–. doi :10.6028/jres.049.044.
  16. ^ Ezquerro Fernández, JA; Hernández Verón, M.Á. (2017). El método de Newton: una aproximación actualizada a la teoría de Kantorovich. Birkhäuser. ISBN 978-3-319-55976-6.
  17. ^ Deuflhard, Peter (2006). Métodos de Newton para problemas no lineales. Invariancia afín y algoritmos adaptativos. Matemática Computacional. vol. 35 (2ª ed.). Saltador. ISBN 978-3-540-21099-3.
  18. ^ Ogden, CJ; Huff, T. (1997). "La descomposición del valor singular y sus aplicaciones en la compresión de imágenes" (PDF) . Matemáticas 45 . Colegio de las Secuoyas. Archivado desde el original (PDF) el 25 de septiembre de 2006.
  19. ^ Davis, PJ; Rabinowitz, P. (2007). Métodos de integración numérica. Corporación de mensajería. ISBN 978-0-486-45339-2.
  20. ^ Weisstein, Eric W. "Cuadratura gaussiana". MundoMatemático .
  21. ^ Geweke, John (1996). "15. Simulación de Montecarlo e integración numérica". Manual de economía computacional . vol. 1. Elsevier. págs. 731–800. doi :10.1016/S1574-0021(96)01017-9. ISBN 9780444898579.
  22. ^ Iserles, A. (2009). Un primer curso de análisis numérico de ecuaciones diferenciales (2ª ed.). Prensa de la Universidad de Cambridge. ISBN 978-0-521-73490-5.
  23. ^ Ames, WF (2014). Métodos numéricos para ecuaciones diferenciales parciales (3ª ed.). Prensa académica. ISBN 978-0-08-057130-0.
  24. ^ Johnson, C. (2012). Solución numérica de ecuaciones diferenciales parciales por el método de los elementos finitos. Corporación de mensajería. ISBN 978-0-486-46900-3.
  25. ^ Brenner, S.; Scott, R. (2013). La teoría matemática de los métodos de elementos finitos (2ª ed.). Saltador. ISBN 978-1-4757-3658-8.
  26. ^ Strang, G.; Arreglar, GJ (2018) [1973]. Un análisis del método de los elementos finitos (2ª ed.). Prensa de Wellesley-Cambridge. ISBN 9780980232783. OCLC  1145780513.
  27. ^ Strikwerda, JC (2004). Esquemas en diferencias finitas y ecuaciones diferenciales parciales (2ª ed.). SIAM. ISBN 978-0-89871-793-8.
  28. ^ LeVeque, Randall (2002). Métodos de volumen finito para problemas hiperbólicos. Prensa de la Universidad de Cambridge. ISBN 978-1-139-43418-8.
  29. ^ Quarteroni, A.; Saleri, F.; Gervasio, P. (2014). Computación científica con MATLAB y Octave (4ª ed.). Saltador. ISBN 978-3-642-45367-0.
  30. ^ Gander, W.; Hrebicek, J., eds. (2011). Resolución de problemas de informática científica utilizando Maple y Matlab®. Saltador. ISBN 978-3-642-18873-2.
  31. ^ Barnes, B.; Fulford, GR (2011). Modelado matemático con estudios de casos: un enfoque de ecuaciones diferenciales utilizando Maple y MATLAB (2ª ed.). Prensa CRC. ISBN 978-1-4200-8350-7. OCLC  1058138488.
  32. ^ Gumley, LE (2001). Programación IDL práctica. Elsevier. ISBN 978-0-08-051444-4.
  33. ^ Literas, C.; Canciller, JP; Delebecque, F.; Goursat, M.; Nikoukhah, R.; Dirigir, S. (2012). Ingeniería y computación científica con Scilab . Saltador. ISBN 978-1-4612-7204-5.
  34. ^ Gracias, RM; Kothari, AM (2019). Procesamiento de imágenes digitales mediante SCILAB. Saltador. ISBN 978-3-319-89533-8.
  35. ^ Ihaka, R.; Caballero, R. (1996). «R: un lenguaje para análisis de datos y gráficos» (PDF) . Revista de Estadística Computacional y Gráfica . 5 (3): 299–314. doi :10.1080/10618600.1996.10474713. S2CID  60206680.
  36. ^ Bezanson, Jeff; Edelman, Alan; Karpinski, Stefan; Shah, Viral B. (1 de enero de 2017). "Julia: un nuevo enfoque a la computación numérica". Revisión SIAM . 59 (1): 65–98. doi :10.1137/141000671. hdl : 1721.1/110125 . ISSN  0036-1445. S2CID  13026838.
  37. ^ Jones, E., Oliphant, T. y Peterson, P. (2001). SciPy: herramientas científicas de código abierto para Python.
  38. ^ Bressert, E. (2012). SciPy y NumPy: una descripción general para desarrolladores . O'Reilly. ISBN 9781306810395.
  39. ^ Blanco-Silva, FJ (2013). Aprendiendo SciPy para computación numérica y científica . Paquete. ISBN 9781782161639.
  40. ^ Comparación de velocidad de varios paquetes de cálculo numérico Archivado el 5 de octubre de 2006 en Wayback Machine.
  41. ^ Comparación de programas matemáticos para análisis de datos Archivado el 18 de mayo de 2016 en el archivo web portugués Stefan Steinhaus, ScientificWeb.com
  42. ^ Maeder, RE (1997). Programación en matemáticas (3ª ed.). Addison-Wesley. ISBN 9780201854497. OCLC  1311056676.
  43. ^ Wolfram, Stephen (1999). El libro MATHEMATICA®, versión 4. Cambridge University Press . ISBN 9781579550042.
  44. ^ Shaw, peso; Tigg, J. (1993). Matemática aplicada: cómo empezar, cómo hacerlo (PDF) . Addison-Wesley. ISBN 978-0-201-54217-2. OCLC  28149048.
  45. ^ Marasco, A.; Romano, A. (2001). Computación científica con Mathematica: problemas matemáticos para ecuaciones diferenciales ordinarias. Saltador. ISBN 978-0-8176-4205-1.

Fuentes

enlaces externos

Revistas

textos en línea

Material del curso en línea