lunes, 6 de abril de 2020

[Curso] Análisis Numérico I

Curso desarrollado en el primer y segundo semestre de los años 2020/2021 de la materia Análisis Numérico I de la Facultad de Ciencias Astronómicas y Geofísicas de la Universidad Nacional de La Plata.


Unidad 0: Ingredientes de la computación científica


Dentro de todas las ramas de la ciencia encontramos problemas matemáticos que son derivados de un fenómeno físico sobre el cual se han realizado algunas suposiciones para simplificarlo y así poder representarlo matemáticamente. Muy a menudo tales problemas matemáticos resultan difíciles o imposibles de resolverlos explícitamente. El análisis numérico trata de diseñar métodos para aproximar, de una manera eficiente, las soluciones de tales problemas. Un cierto conjunto de problemas se repiten una y otra vez sobre muchos campos de la ciencia, así que métodos numéricos para ellos son conocidos desde hace ya tiempo. En este curso discutiremos tales métodos básicos.

En un marco más general, el análisis numérico es parte de la denominada computación científica, donde la resolución del problema físico planteado es obtenido simulando los procesos físicos que intervienen con ayuda de la computadora. En esta unidad discutiremos brevemente como el planeamiento y desarrollo de una simulación numérica involucra una serie de etapas en las que intervienen diversas disciplinas, y como cada aproximación realizada constituye un fuente de error que influirá, en mayor o menor medida, al resultado final.

Dado que la computadora constituye una herramienta básica para la implementación de los métodos numéricos, en esta unidad discutiremos también varios aspectos relacionados con la misma. En particular, la elección y uso de un lenguaje de programación apropiado para el cálculo numérico. a saber Fortran 95/2003.


Unidad 1: Errores


En los usos prácticos de la matemática, a menudo uno está satisfecho, o no le queda otro remedio, que utilizar valores aproximados para las cantidades involucradas en un problema. A su vez, el uso de dispositivos de cálculo finitos como las calculadoras y computadoras, incapaces de dar una representación exacta de los números, introduce un nuevo error en los cálculos. Es imprescindible por esto, poder determinar la exactitud posible de un resultado numérico, esto es, estimar su error.

En la primera parte de la unidad discutiremos el concepto general de error y cómo se propaga al realizar cálculos, para así poder estimar el mismo, ya sea a partir de aproximaciones dadas, o bien, preparar una medición para mantener el error bajo cierto valor preasignado.


En la segunda parte discutiremos el error de redondeo inherente en todo cálculo computacional, proveniente del hecho de que una computadora opera con una representación aproximada de los números reale con cierto número finito de dígitos.


Unidad 2: Resolución de ecuaciones no lineales


En general, las raíces de una ecuación no lineal f (x) = 0 no pueden ser obtenidas por fórmulas explícitas cerradas, con lo que no es posible obtenerlas en forma exacta. De este modo, para resolver la ecuación nos vemos obligados a obtener soluciones aproximadas a través de algún método numérico.

En esta unidad implementaremos, en un módulo Fortran, los métodos numéricos usuales, como bisección, Newton, secante y punto fijo, junto a un método de propósito general.


Unidad 3: Resolución de sistemas de ecuaciones lineales


La resolución de muchos problemas de la física conducen a sistemas de n ecuaciones lineales con n incógnitas, donde el orden n del sistema es muy grande. De aquí que resulte de vital importancia considerar métodos numéricos que permitan resolver tales sistemas en forma computacionalmente eficiente y, a la vez, sean numéricamente precisos.

Los métodos numéricos para resolver sistemas de ecuaciones lineales se dividen en dos tipos: directos e iterativos Los métodos directos son aquellos que, en ausencia de errores de redondeo (u otros errores), obtendrían la solución exacta en un número finito de pasos. Sin embargo, puesto que en la práctica, todo cómputo es realizado con aritmética de precisión finita, los métodos directos conducen, realmente, a una solución aproximada. De hecho los errores que provienen del redondeo, inestabilidad y pérdida de cifras significativas puede conducir a resultados pobres en exactitud. Una gran parte del análisis numérico tiene que ver con el por qué y el cómo del surgimiento de tales errores y con la búqueda de métodos para minimizarlos. El método fundamental para las soluciones directas es el método de eliminación gaussiana, aplicable a cualquier matriz, y sus variantes aplicables a ciertas matrices con estructuras particulares.

En la primera práctica de esta unidad haremos uso intensivo de dichos métodos a través de su implementación computacional dada por el paquete de rutinas LAPACK95, una interface de LAPACK que aprovecha las características de las versiones más modernas de Fortran (asignación dinámica de memoria. argumentos opcionales, interfaces explícitas). LAPACK (Lineal Algebra Package) es una colección de rutinas para la resolución de sistemas de ecuaciones lineales, factorización matricial, problema de autovalores y otros problemas enmarcados en el álgebra lineal numérica y que se han convertido en estándares de facto, puesto que contienen la implementación más acabada de los algoritmos.


Los métodos iterativos son aquellos que, partiendo de una aproximación inicial, aplicando un algoritmo convenientemente escogido, conducen a aproximaciones que, esperamos, sean cada vez más próximas a la solución del sistema. La ventaja de este tipo de métodos, respecto a la eliminación gaussiana, son la simplicidad de las operaciones realizadas y su eficiencia resulta muy clara para el caso particular (aunque muy común en la práctica) de matrices ralas, esto es, matrices con muy pocos elementos no nulos.

En la segunda práctica de esta unidad consideraremos los dos métodos iterativos básicos: el método de Jacobi y el método de Gauss-Seidel y veremos como el primer método puede ser adaptado muy fácilmente para el caso de matrices ralas.


Muchos problemas de interés físico conducen al cálculo, o por lo menos a la estimación, de los autovalores de una matriz asociada  con un sistema lineal de ecuaciones. Aunque sabemos que los autovalores son las raíces de un polinomio característico, los métodos numéricos para la determinación de los autovalores no parten de aquí, sino por la factorización QR de la matriz.

En la tercer práctica de esta unidad consideraremos dos métodos para la determinación de autovalores: el método de  potencia, que permite computar un autovalor dominante, y el método QR, que nos dará todos los autovalores de la matriz.


Unidad 4: Interpolación y sistemas lineales sobredeterminados


Con mucha frecuencia, en problemas de todas las ramas de la ciencia, se dispone de una tabla de datos que describe la relación de cierta magnitud y en función de otra x. El problema consiste en obtener la magnitud y para un valor x que no se encuentra en los datos. En las siguientes dos prácticas consideraremos dos maneras de atacar el problema.

En la primera práctica de esta unidad veremos una forma de resolver el problema planteado a través de la construcción de una función f* que pase exactamente por los puntos de la tabla de datos para, entonces, aproximar y por f*(x), procedimiento conocido como interpolación. Y entre todos los conjuntos de funciones a escoger, consideremos la interpolación por polinomios, puesto que éstos constituyen una de las clases más útiles y bien conocidas de funciones reales de variable real.


En la segunda práctica de esta unidad, considerando que los valores medidos de y están afectados de error, la función f* ha determinar será aquella que minimice, en algún sentido a precisar, tales errores. Midiendo la magnitud del error a través de la norma euclideana y expresando  la función f* en forma lineal a través de un conjunto de parámetros desconocidos a determinar, llegamos al problema discreto lineal de mínimos cuadrados.


Unidad 5: Diferenciación e integración numérica


En esta práctica consideraremos el problema numérico de determinar aproximaciones a dos conceptos que involucran un paso al límite: la derivada de una función en un punto, y la integral definida de una función sobre un intervalo finito.


Unidad 6: Ecuaciones diferenciales ordinarias


La solución analítica de un problema de valor inicial para una ecuación diferencial ordinaria de primer orden consiste en una fórmula cerrada que permite computar el valor de la función solución en cualquier punto de la variable independiente. En la práctica, sin embargo, aún cuando tal solución exista, no podemos dar tal expresión analítica, y por lo tanto debemos recurrir a una solución numérica. Una solución numérica para el problema de valor inicial es una tabla de valores que aproximan la solución sobre un conjunto discreto de puntos de la variable independiente. Tal solución numérica es generada moviéndonos paso a paso sobre este conjunto discreto de puntos con algún método numérico que aproxime el comportamiento de la ecuación diferencial. En esta práctica discutiremos los métodos básicos y conceptos involucrados.


Bibliografía y lecturas suplementarias


  • Michael T. Heath. Scientific computing: an introductory survey. Second edition.Society for Industrial and Applied Mathematics. 2018. DOI: https://doi.org/10.1137/1.9781611975581
  • L. F. Shampine, Rebecca Chan Allen, S. Pruess. Fundamentals of Numerical Computing. John Wiley & Sons, Inc. 1997.
  • A. C. Faul. A Concise Introduction to Numerical Analysis. CRC Press. 2016.

No hay comentarios.:

Publicar un comentario