Apuntes para el curso Introducción al Análisis Numérico MA-1006 Mario De León Universidad de Costa Rica Escuela de Matemática Marzo 2022 Índice general 1. Introducción a MATLAB 8 1.1. Comandos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2. Forma en la que se presenta la información . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3. Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.4. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4.1. Funciones matemáticas elementales . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4.2. Funciones para cálculos matriciales . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5. Flujos de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.6. Funciones lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.7. Graficación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2. Aritmética de precisión finita 26 2.1. Números punto flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2. Error absoluto, error relativo. Épsilon máquina . . . . . . . . . . . . . . . . . . . . . . 28 2.2.1. Truncamiento y redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.3. Operaciones aritméticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.3.1. Pérdida de significancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3. Solución de ecuaciones no lineales 34 3.1. El método de bisección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.2. Método de Regula Falsi o falsa posición . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3. Método de la secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4. Método de N EWTON –R APHSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.5. Método del punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.5.1. Orden de convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.6.1. Método de bisección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.6.2. Método del punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.6.3. Método de N EWTON –R APHSON . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.6.4. Método de la secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2 ÍNDICE GENERAL I ciclo 2022 3.6.5. Adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4. Factorización de matrices y sistemas lineales 49 4.1. Sustitución hacia atrás y hacia adelante . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.2. Eliminación gaussiana y pivoteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.3. Factorización LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.3.1. Factorización PA = LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.4. Factorización de C HOLESKY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.5. Factorización QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.5.1. Ortogonalización de G RAM -S CHMIDT . . . . . . . . . . . . . . . . . . . . . . . 58 4.5.2. Reflexiones de H OUSEHOLDER . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.6.1. Factorización LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.6.2. Factorización QR con H OUSEHOLDER . . . . . . . . . . . . . . . . . . . . . . . 63 4.6.3. Factorización LU, QR y pivoteos . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5. Métodos iterativos y sistemas lineales 67 5.1. Normas de matrices. Condicionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.2. Método de JACOBI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.3. Método de G AUSS –S EIDEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.3.1. Algunas consideraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.4. Relajación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.4.1. Métodos de Sobrerrelajación SOR . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.5. Método del Gradiente con búsqueda en lı́nea . . . . . . . . . . . . . . . . . . . . . . . 76 5.6. Método del Gradiente Conjugado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.7. Método de N EWTON multivariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.8.1. Normas matriciales. Condicionamiento . . . . . . . . . . . . . . . . . . . . . . 79 5.8.2. Métodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.8.3. Gradiente conjugado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.8.4. Newton multivariable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.8.5. Adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 6. Interpolación polinomial 83 6.1. Interpolación de L AGRANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.2. Método de diferencias divididas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.3. Interpolación de H ERMITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.4. Interpolación por trazadores cúbicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.5. Implementación de los métodos con MATLAB . . . . . . . . . . . . . . . . . . . . . . . 88 6.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 6.6.1. Interpolación de Lagrange. Diferencias divididas. Acotación del error . . . . 93 Mario De León 3 Apuntes MA-1006 ÍNDICE GENERAL I ciclo 2022 6.6.2. Interpolación de Hermite. Acotación del error . . . . . . . . . . . . . . . . . . 94 6.6.3. Interpolación por trazadores cúbicos . . . . . . . . . . . . . . . . . . . . . . . 95 7. Derivación e Integración numérica 7.1. Diferenciación numérica . . . . . . . . . . . . . . . . . . . . . 7.1.1. Diferencias finitas . . . . . . . . . . . . . . . . . . . . . 7.2. Integración numérica . . . . . . . . . . . . . . . . . . . . . . . 7.2.1. La regla del punto medio y la regla del trapecio . . . 7.2.2. La regla de S IMPSON 1/3 . . . . . . . . . . . . . . . . . 7.2.3. Cuadraturas de N EWTON –C OTES . . . . . . . . . . . . 7.2.4. Cuadraturas compuestas . . . . . . . . . . . . . . . . . 7.2.5. Polinomios ortogonales . . . . . . . . . . . . . . . . . 7.2.6. Cuadraturas gaussianas . . . . . . . . . . . . . . . . . 7.2.7. Implementación de Trapecio y Simpson compuestas 7.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1. Cuadraturas de Newton-Cotes simples y compuestas 7.3.2. Coeficientes indeterminados . . . . . . . . . . . . . . 7.3.3. Acotación de errores . . . . . . . . . . . . . . . . . . . 7.3.4. Cuadraturas Gaussianas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8. Solución numérica de ecuaciones diferenciales ordinarias 8.1. Métodos de un paso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2. Métodos de R UNGE –KUTTA . . . . . . . . . . . . . . . . . . . . . . . . 8.3. Fórmulas multipaso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1. Métodos de Adams-Bashfort (AB) y Adams-Moulton (AM) 8.3.2. Predictor-Corrector de cuarto orden (PC4) . . . . . . . . . . 8.4. Implementación de los métodos con MATLAB . . . . . . . . . . . . . 8.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5.1. Funciones tipo Lipschitz. Iteración de Picard . . . . . . . . . 8.5.2. Métodos de un paso. Runge–Kutta. Multipasos . . . . . . . 9. Tareas y exámenes 9.1. Tareas 3 ciclo 2021 . . . 9.1.1. Tarea 1 . . . . . . 9.1.2. Tarea 2 . . . . . . 9.1.3. Tarea 3 . . . . . . 9.2. Exámenes 3 ciclo 2021 . 9.2.1. 1 examen parcial 9.2.2. 2 examen parcial Mario De León . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 96 97 99 99 100 100 101 102 103 105 106 106 107 108 108 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 . 111 . 112 . 114 . 115 . 116 . 117 . 123 . 123 . 124 . . . . . . . 126 . 126 . 126 . 127 . 129 . 130 . 130 . 131 Apuntes MA-1006 ÍNDICE GENERAL I ciclo 2022 A modo de introducción Estas notas fueron elaboradas para el curso de introducción al Análisis Numérico MA–1006, para estudiantes de la carrera de Ingenierı́a Civil, ası́ como estudiantes de Computación de la Universidad de Costa Rica. Más que nada consiste en tópicos de métodos numéricos para la modelación y resolución de problemas en los cuales las “fórmulas exactas” de cursos anteriores o no sirven para resolver el problema planteado o computacionalmente son muy costosos. Entre los temas a tratar están los métodos clásicos para tratar ecuaciones no lineales de la forma f (x) = 0 en donde f satisface ciertas condiciones y se construye una sucesión que converja a una de sus raı́ces dentro de un determinado conjunto de la recta numérica; métodos directos e iterativos para la resolución de ecuaciones lineales tipo Ax = b en donde la matriz A debe cumplir ciertos requisitos; interpolación de funciones por medio de polinomios dado un conjunto de nodos en el plano cartesiano, derivación e integración numérica (en una variable) y finalmente problemas de valores iniciales con ecuaciones diferenciales ordinarias. Si algún error de alguna ı́ndole aparece en el documento no dude en comunicarlo al correo mario.deleon@ucr.ac.cr Mario Alejandro De León Urbina Alajuela, marzo de 2022 Mario De León 5 Apuntes MA-1006 Preámbulo En el colegio a menudo utilizamos calculadoras cientı́ficas para realizar cálculos numéricos y algebraicos. Pero, ¿se ha preguntado usted cómo es que funciona su calculadora, al menos matemáticamente hablando? Usemos la CASIO f x-570ES PLUS para mostrar lo siguiente. Si ponemos 1099 el output que aparece es 1×1099 , pero si ponemos 10100 aparece el mensaje Math ERROR. ¿Será que la calculadora no puede almacenar números de esta magnitud “tan grande”? Ahora, si ponemos 10−99 el output que aparece es 1 × 10−99 , pero si ponemos 10−100 aparece el mensaje Math ERROR. ¿Será que la calculadora no puede almacenar números de esta magnitud “tan pequeña”? Al digitar 1 + 10−9 obtenemos como output 1.000000001. En cambio, si digitamos 1 + 10−10 obtenemos como output 1. ¿No se supone que 1 + ε ≠ 1 si ε > 0? Consideremos la ecuación x2 + 100 000x + 1 = 0. Si usamos el Mode→ 5 → 3 obtenemos que x1 = −1 × 10−5 y x2 = −99999.99999. Las soluciones exactas, calculadas por métodos conocidos son x1 = √ 2 499 999 999 − 50 000 ≈ −0.00001000000000100000000020000000005... √ x2 = − 2 499 999 999 − 50 000 ≈ −99999.99998999999999899999999980000... Es notable que al tener una cantidad determinada de dı́gitos en el output las representaciones de números irracionales en la calculadora “eliminan” dı́gitos de la representación exacta. ¿Qué tan “exactas” son las soluciones calculadas para la ecuación? En esta calculadora no podemos tratar ecuaciones polinomiales de grado mayor o igual que 4 en general, tampoco podemos “resolver” sistemas lineales de 4 × 4 o superiores. A pesar de estas y otras limitaciones, la calculadora cientı́fica es una muy buena herramienta para realizar cálculos aritméticos y algebraicos básicos. Antes del gran avance que han tenido las computadoras, para realizar cálculos se utilizaban sendas tablas o reglas de cálculo, lo cual era tedioso en muchas ocasiones. 6 ÍNDICE GENERAL I ciclo 2022 En MathWorks encontramos una definición de qué es el Análisis Numérico: El Análisis Numérico es una rama de las matemáticas que resuelve problemas continuos mediante la aproximación numérica. Implica diseñar métodos que den soluciones numéricas aproximadas pero precisas, lo cual es útil en los casos en que la solución exacta es imposible o prohibitivamente costosa de calcular. El análisis numérico también implica caracterizar la convergencia, la precisión, la estabilidad y la complejidad computacional de estos métodos. Entonces es importante utilizar un software que permita realizar algoritmos para problemas matemáticos formulados desde distintas áreas del conocimiento. En nuestro caso utilizaremos MATLAB: MATLAB se usa ampliamente para el análisis numérico aplicado en ingenierı́a, finanzas computacionales y biologı́a computacional. Proporciona una gama de métodos numéricos para: Interpolación, extrapolación y regresión Diferenciación e integración Sistemas lineales de ecuaciones Valores propios y valores singulares Ecuaciones diferenciales ordinarias (EDO) Ecuaciones diferenciales parciales (EDP) También puede realizar transformadas rápidas de Fourier, cuadratura, optimización y programación lineal con la familia de productos MATLAB. Además, puede crear e implementar sus propios métodos numéricos utilizando el soporte integrado para operaciones vectoriales y matriciales en el lenguaje MATLAB. Hay muchos textos sobre los antecedentes históricos del Análisis Numérico, recomiendo la lectura de los siguientes enlaces: https://web.njit.edu/~jiang/math614/atkinson1.pdf https://www.britannica.com/science/numerical-analysis/Historical-background https://es.wikipedia.org/wiki/An%C3%A1lisis_num%C3%A9rico Mario De León 7 Apuntes MA-1006 Capı́tulo 1 Introducción a MATLAB Utilizaremos MATLAB para realizar algunas de nuestros cálculos y ejercicios, ası́ como la programación de algunos métodos numéricos. MATLAB (MATrix LABoratory) es un software comercial que se utiliza tanto en la industria como en la academia para simulaciones numéricas, obtención y análisis de datos. El siguiente resumen está basado en Bornemann ([1]) y en Echevarrı́a ([6]). 1.1. Comandos generales Help: help Muestra el texto de ayuda de un comando en la consola o buscador. Coma y semicolon: “,” y “;” separan comandos. Semicolon (;) suprime la impresión del output. Información whos Da información sobre las variables guardadas en la memoria. Medición del tiempo de ejecución: tic lı́nea toc Ejecuta la lı́nea de código y mide el tiempo de ejecución requerido. 8 I ciclo 2022 1.2. FORMA EN LA QUE SE PRESENTA LA INFORMACIÓN Comentarios: % Sirve para escribir % comentarios para lı́neas de código. 1.2. Forma en la que se presenta la información Por defecto, cuando se hace un cálculo en la ventana de comandos aparece el resultado asignando a la variable ans (answer). Los resultados numéricos son mostrados en notación fija decimal con 4 cifras decimales si su valor absoluto está comprendido entre 10−3 y 103 . En caso contrario son mostrados en notación cientı́fica. Se puede modificar este comportamiento mediante el comando format format Cambia el formato de salida a su valor por defecto, short format short El formato por defecto format long muestra 15 dı́gitos format short e formato short, en coma flotante. format long e formato long, en coma flotante. format rat muestra los números como cociente de enteros. 1.3. Matrices MATLAB identifica escalares con matrices de 1 × 1, y vectores columna (fila) de dimensión m con matrices m × 1 (1 × m). Asignación: A= expresión Asigna a la variable A el valor de la expresión. Mario De León 9 Apuntes MA-1006 1.3. MATRICES I ciclo 2022 Operaciones: + , -, * son las operaciones de matrices de adición, resta y multiplicación. ^ es potencia de matrices cuadradas. A/B calcula la solución X del sistema lineal A = XB y A/B calcula la solución X de AX = B. Operaciones componente a componente: .+, .-, .*, ./, .^ son las operaciones componente a componente. Matriz adjunta (transpuesta): A’ es la matriz adjunta de A. Input para matriz: A = [ 1 2 3; 4 5 6 ]; O también A = [ 1 2 3; 4 5 6 ]; asigna la siguiente matriz a la variable A: ⎛1 2 3⎞ ⎝4 5 6⎠ Matriz identidad: eye(m) es la matriz identidad de dimensión m. Matriz nula : zeros(m,n), zeros(m) es la matriz de entradas nulas de dimensión m × n y m × m respectivamente. Matriz de unos: ones(m,n), ones(m) es la matriz de entradas iguales a 1. Mario De León 10 Apuntes MA-1006 1.3. MATRICES I ciclo 2022 Matrices aleatorias: rand(m,n), rand(m), randn(m,n), randn(m) generan matrices con entradas aleatorias. Vectores indexados: j:k, j:s:k son los vectores fila [j, j+1, ..., k-1,k] y [j,j+s, ..., j+m*s] con k−j m= s s { Vectores regularmente espaciados: linspace(a,b,n) Si a y b números reales, n entero, genera un vector fila de longitud n cuyo primer elemento es a y último elemento b, y los elementos están regularmente espaciados. Componentes: A(j,k) es la entrada Ajk de la matriz A. Bloques de matrices (submatrices): A(j1:j2, k1:k2) es la submatriz de A en la cual las fila va de j1 ≤ j2 y las columnas van de k1 ≤ k2. A(j1:j2, :), A(:, k1:k2) son las submatrices construidas desde las filas j1 a j2 y de las columnas k1 a k2 respectivamente. A(j,:), A(:,k) son el vector fila j−ésima y el vector columna k−ésima de la matriz A. Matriz como vector: A(:) transforma la matriz A ∈ Rm×n en un vector v ∈ Rmn . Mario De León 11 Apuntes MA-1006 1.3. MATRICES I ciclo 2022 Matrices triangulares: tril(A), triu(A) extrae la parte triangular inferior y triangular superior de la matriz A. Diagonales de/en una matriz: diag(A,k) extrae como vector columna la diagonal k−ésima de la matriz A. La diagonal principal es k = 0 y se puede usar también diag(A). diag(v,k), diag(v) si v es un vector entonces se genera una matriz de ceros en donde la diagonal k es el vector v. Dimensiones de una matriz: size(A,1) da el número de filas size(A,2) da el número de columnas. size(A) da un vector v = [m, n] donde m es el número de filas y n el número de columnas de A. Dimensión de un vector: length(v) da la dimensión de un vector columna o fila v. Mario De León 12 Apuntes MA-1006 1.4. FUNCIONES I ciclo 2022 1.4. Funciones A veces a las funciones de MATLAB se les llama M-funciones. M-Funciones: function [o 1, o 2, ..., o n] = myfunc(i 1, i 2, ..., i m) donde i 1, i 2, ..., i m representan las variables de inputs y o 1, o 2, ..., o n representan las variables de outputs. La función puede ser guardada en un archivo myfunc.m en el directorio del proyecto. La función se puede llamar en la lı́nea de comando (o en la creación de otras funciones) como: [o 1, o 2, ..., o n] = myfunc(i 1, i 2, ..., i m) Las variables de salida (outputs) podrı́an ignorarse reemplazándolas por ∼, por ejemplo: [∼ , o 2] = myfunc(i 1, i 2, ..., i m) Función anónima: f = @(i 1, i 2, ..., i m) expresión define una función que asigna el valor de la expresión con los inputs i 1, i 2, ..., i m. Al llamarla se ejecuta como o 1 = f(i 1, i 2, ..., i m) 1.4.1. Funciones matemáticas elementales Función sqrt(x) abs(x) conj(z) real(z) imag(z) exp(x) log(x) log10(x) rat(x) fix(x) ceil(x) floor(x) round(x) Mario De León raı́z cuadrada módulo conjugado parte real parte imaginaria exponencial logaritmo natural logaritmo decimal aprox. racional redondeo hacia 0 redondeo hacia +∞ redondeo hacia −∞ redondeo al entero más próx. 13 Función sin(x) cos(x) tan(x) cotg(x) asin(x) acos(x) atan(x) cosh(x) sinh(x) tanh(x) acosh(x) asinh(x) atanh(x) seno (radianes) coseno (radianes) tangente (radianes) cotangente (radianes) arcoseno arcocoseno arcotangente cos hiperbólico seno hiperbólico tang. hiperbólico arccos hiperbólico arcsen hiperbólico arctan hiperbólico Apuntes MA-1006 1.5. FLUJOS DE CONTROL 1.4.2. Funciones para cálculos matriciales sum(v) sum(A) sum(A,1) sum(A,2) prod(v) prod(A) max(v) min(v) norm(v, p) norm(v, Inf) eig(A) 1.5. I ciclo 2022 Función suma de las entradas de v vector suma de las entradas de A matriz suma de los elementos por columnas suma de los elementos por filas producto de las entradas de v vector producto de las entradas de A máximo elemento de v mı́nimo elemento de v norma ∥v∥p vectorial/matricial norma ∥v∥∞ vectorial/matricial espectro de A Flujos de control Condicionales: if expresión instrucciones elseif expresión instrucciones else instrucciones end Las instrucciones son ejecutadas si las partes reales de todas las entradas de la (matriz evaluada) expresión son no-cero; ‘elseif’ y ‘else’ son opcionales y múltiples ‘elseif’ pueden utilizarse. Ciclos for: for Variable = vector instrucciones end ejecuta instrucciones varias veces donde a la variable se le asigna sucesivamente el valor de las componentes del vector. Ciclos while: Mario De León 14 Apuntes MA-1006 1.6. FUNCIONES LÓGICAS I ciclo 2022 while expresión instrucciones end ejecuta instrucciones repetidamente hasta que la parte real de todas las entradas de las (matriz evaluada) expresiones son no-cero. Interrupción de ciclos/procesos: ‘break’ detiene la ejecución de un for o de un while. ‘continue’ salta a la instancia siguiente de un for o de un while. ‘return’ deja la función en curso para retornar control a la función invocada. 1.6. Funciones lógicas Comparaciones: A == B, A ∼= B, A<=B, A >= B, A < B, A > B comparaciones componente a componente de matrices; 1 es para ‘verdadero’ y 0 para ‘falso’. Operaciones lógicas booleanas: a && b, a || b son los operadores lógicos ‘y’ y ‘o’, respectivamente. ∼ expresión, not (expresión) ambas retornan la negación lógica de la expresión. 1.7. Graficación Se muestran algunas funciones elementales de dibujo de MATLAB, cuyo uso permite realizar gráficas de funciones. Plot: Mario De León 15 Apuntes MA-1006 1.7. GRAFICACIÓN I ciclo 2022 plot(x, y) x2 + 2 en el interse puede utilizar junto con linspace. Por ejemplo, al graficar y = x+5 valo [−2, 3]: x = l i n s p a c e (−2, 3 ) ; y = ( x . ˆ 2 + 2 ) . / ( x +5); plot (x , y) plot(x1, y1, x2, y2, x3, y3) Se pueden dibujar dos o más curvas, proporcionando varios pares de vectores (abscisas y ordenadas) para cada una de las funciones en cuestión. Por ejemplo, al graficar y = e−x + x2 − x, y = ex + sen(x2 ): x = l i n s p a c e(−pi , p i ) ; y1 = exp(−x ) + x . ˆ 2 −x ; y2 = exp ( x ) + s i n ( x . ˆ 2 ) ; p l o t ( x , y1 , x , y2 ) Información de gráficas: Mario De León 16 Apuntes MA-1006 1.7. GRAFICACIÓN I ciclo 2022 En la graficación anterior no se distingue cuál gráfica pertenece a cada criterio. Por esto se puede agregar información. Algunas funciones son: • title(‘tı́tulo’): añade tı́tulo a la gráfica. • xlabel(‘eje x’): añade una etiqueta al eje x. • ylabel(‘eje x’): añade una etiqueta al eje y. • legend(‘f’, ‘g’, ...): define etiquetas para las gráficas de las funciones involucradas. • grid: muestra una cuadrı́cula. • text(x, y, ‘texto’): agrega texto en el lugar definido por el punto (x, y). Al usar (‘ ’) se puede utilizar el lenguaje LATEXcon ayuda de ‘interpreter’, y ası́ digitar de forma matemática fórmulas y expresiones. Por ejemplo, al graficar y = e−x + x2 − x, y = ex + sen(x2 ): x = l i n s p a c e(−pi , p i ) ; y1 = exp(−x ) + x . ˆ 2 −x ; y2 = exp ( x ) + s i n ( x . ˆ 2 ) ; p l o t ( x , y1 , x , y2 ) , g r i d % I n f o r m a c i o n de l a g r a f i c a t i t l e ( ’ Gr\ ’ ’ a f i c a de dos f u n c i o n e s ’ , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) x l a b e l ( ’ e j e $x$ ’ , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) y l a b e l ( ’ e j e $y$ ’ , ’ i n t e r p r e t e r ’ , ’ l a t e x ’ ) l = legend ( ’ $y=eˆ{−x}+xˆ2−x$ ’ , ’ $y=e ˆx+\s i n ( x ˆ2) $ ’ ) ; set ( l , ’ i n t e r p r e t e r ’ , ’ latex ’ ) Mario De León 17 Apuntes MA-1006 1.7. GRAFICACIÓN Mario De León I ciclo 2022 18 Apuntes MA-1006 1.8. EJERCICIOS I ciclo 2022 1.8. Ejercicios Se pueden agregar como ejercicios adicionales los de la página 70–72 de E CHEVARR ÍA.1 1. Dado x = 1 encuentre el valor de y definido por 7 2x+1 x3 + 1 x2 − 54 x + π − [ 5 23 1 ] ( 6 ) (x − 2) − 2x x2 − 3x + 2 y=( 1 ) 2 + 5x Escriba en MATLAB un fragmento de código que lleve a cabo dicha evaluación. 2. Introduzca en MATLAB la matriz 2 ⎛1 ⎜1 ⎜2 ⎜1 H=⎜ ⎜3 ⎜1 ⎜ ⎜4 ⎝1 5 1 3 1 4 1 5 1 6 1 7 1 2 1 3 1 4 1 5 1 6 1 4 1 5 1 6 1 7 1 8 1 5⎞ 1⎟ 6⎟ ⎟ 1⎟ 7⎟ ⎟ 1⎟ 8⎟ 1⎠ 9 Utilice format long y format rat, los cuales puede investigar en la ayuda, para visualizar el resultado. 3. Utilice el operador dos puntos de MATLAB para crear los siguientes vectores. a) w = (−5, −4, ..., 8, 9) c) y = (0.1 0.2 ... 9.9 10) b) x = (132, 129, ..., 3, 0) d) z = (0 π 12 ... 4π ) 4. Dado el intervalo I = [1, 5] utilice el operador dos puntos para crear un vector x que contenga n puntos igualmente espaciados de I, donde el primer punto sea 1 y el último sea 5. Luego ejecútelo con el valor de n = 100. 5. Introduzca en MATLAB la matriz ⎛1 2 3 4 ⎞ ⎜ ⎟ A = ⎜5 6 7 8 ⎟ ⎜ ⎟ ⎝9 10 11 12⎠ y realice lo siguiente a dicha matriz: a) Extraiga la fila 2. b) Reemplace la fila 2 por el vector (−1, −2, 0, 1). c) Reemplace la columna 3 por el vector nulo. 1 2 https://personal.us.es/echevarria/documentos/APUNTESMATLAB.pdf Le puede servir saber qué es una matriz de H ILBERT. Mario De León 19 Apuntes MA-1006 1.8. EJERCICIOS I ciclo 2022 d) Extraiga el bloque B definido por 2 ≤ i ≤ 3, 3 ≤ j ≤ 4. e) Reemplace el bloque 2 ≤ i ≤ 3, 3 ≤ j ≤ 4 de A por ⎛−10 −20⎞ . ⎝−30 −40⎠ 6. Considere la matriz ⎛ 4 −1 0 −1 0 0 0 0 0 ⎞ ⎜−1 4 −1 0 −1 0 0 0 0 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0 −1 4 0 0 −1 0 0 0 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜−1 0 0 4 −1 0 −1 0 0 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ M = ⎜ 0 −1 0 −1 4 −1 0 −1 0 ⎟ ⎟ ⎜ ⎟ ⎜ 0 0 −1 0 −1 4 0 0 −1⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0 0 0 −1 0 0 4 −1 0 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 0 0 0 0 −1 0 −1 4 −1⎟ ⎜ ⎟ ⎝ 0 0 0 0 0 −1 0 −1 4 ⎠ Utilice el manejo de bloques para construir dicha matriz en MATLAB. 7. Considere las siguientes matrices: ⎛1 2 7⎞ ⎜ ⎟ ⎜ 2 5 −6⎟ ⎜ ⎟, A ∶= ⎜ ⎟ ⎜ 7 8 −3⎟ ⎜ ⎟ ⎝−6 −3 9 ⎠ ⎛ 14 9 ⎞ ⎜ ⎟ B = ⎜ 9 11 ⎟ ⎜ ⎟ ⎝ 5 2 ⎠ y ⎛ −1 2 ⎜ C=⎜ 8 5 ⎜ ⎝ 7 −6 ⎞ ⎟ ⎟ ⎟ ⎠ Luego, efectúe las siguientes concatenaciones: D = ( At B C ) , E= ⎛ A C⎞ , ⎝Ct B⎠ 8. Escriba un fragmento de código que cree para todo n ∈ N la matriz tridiagonal ⎛ 2 −1 0 ⋯ 0 ⎞ ⎜−1 2 −1 ⋱ ⋮ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ Tn = ⎜ 0 ⋱ ⋱ ⋱ 0 ⎟ ⎟ ⎜ ⎟ ⎜ ⋮ ⋱ −1 2 −1⎟ ⎜ ⎟ ⎝ 0 ⋯ 0 −1 2 ⎠ 9. Sea A matriz de n × n la cual se descompone de la forma A = L + D + U, donde L es la parte estrictamente diagonal inferior, D la diagonal y U la parte estrictamente diagonal superior de A. Escriba las instrucciones de MATLAB que le permitan obtener la matriz de iteración de G AUSS –S EIDEL B = −(L + D)−1 U, Mario De León 20 Apuntes MA-1006 1.8. EJERCICIOS I ciclo 2022 para cualquier matriz A dada. 10. Considere la función f ∶ R − { √ 5 48 2 } → R definida por f (x) = x3 (x + 1) 2x5 − 3 Escriba un fragmento de código que le permita evaluar la función f en múltiples valores de x almacenados en un vector. 11. Usando MATLAB resuelva el sistema ⎧ ⎪ x1 + 4x2 − 5x3 + 7x5 = 7 ⎪ ⎪ ⎪ ⎪ ⎨ 4x1 + 7x2 + 8x3 − x4 − x5 = 17 ⎪ ⎪ ⎪ ⎪ = 6 ⎪ ⎩ x2 + 4x3 + 5x4 − 4x5 12. Dada A matriz real de n × n, implemente en MATLAB la función 1 fA = xt Ax + ∣∣Ax∣∣2 2 ⎛1 ⎜ ⎜−6 t En particular, calcule fA (x) para x = (1, −1, −1, 1) , con A = ⎜ ⎜ ⎜−4 ⎜ ⎝−2 0 −1 2 ⎞ ⎟ 1 8 −15⎟ ⎟ ⎟ 1 6 −10⎟ ⎟ 0 2 −5 ⎠ 13. Cree la siguiente función en un archivo .m en MATLAB: f u n c t i o n [ f x ] = mifun ( x ) % v = mifun ( x ) d e v u e l v e e l v a l o r en x de l a f u n c i o n % f ( x ) = 3 * xˆ2+1 s i x < −1 % f ( x ) = 1−x ˆ2 s i no f x = 3 * xˆ2 + 1 ; i f x >= −1 fx = 1 − x ˆ2; end end Describa dicha función. Luego calcule (mif un(0))3 + √ ∣mif un(−3)∣. 14. Escriba el siguiente código en un nuevo script: n1=input ( ’ E s c r i b e un numero : ’ ) ; n2=input ( ’ E s c r i b e o t r o numero : ’ ) ; mayor=n2 ; i f ( n1 > n2 ) Mario De León 21 Apuntes MA-1006 1.8. EJERCICIOS I ciclo 2022 mayor=n1 ; end f p r i n t f ( ’ E l mayor e s : %6.2 f \n ’ , mayor ) ; Dicho código imprime en la pantalla el mayor número de dos números dados. Modifique el código y el mensaje de salida de tal forma que más bien se imprima el menor número de los dos. 15. Escriba el siguiente código en un nuevo script: n1 = input ( ’ E s c r i b e un numero : n2 = input ( ’ E s c r i b e o t r o numero i f ( n1 < n2 ) f p r i n t f ( ’ % 4 i %4i \n ’ , n1 , else f p r i n t f ( ’ % 4 i %4i \n ’ , n2 , end ’ ); : ’ ); n2 ) n1 ) ¿Qué hace dicho código? 16. Vamos a crear una M–función (función de MATLAB) tal que dados x, y reales distintos se muestre el vector ordenado v = (mı́n{x, y}, máx{x, y}). Cree la función Orden.m de la siguiente manera: f u n c t i o n [ v ] = Orden ( n1 , n2 ) % v = Orden ( n1 , n2 ) e s un v e c t o r que c o n t i e n e l o s d o s % numeros n1 y n2 o r d e n a d o s en orden c r e c i e n t e % i f n1 > n2 v = [ n2 , n1 ] ; else v = [ n1 , n2 ] ; end Pruebe dicha función Orden(n1, n2) con algunas parejas de números. ¿Qué sucede si n1 = n2? 17. Vamos a escribir una M-función que determin cuándo un número natural n es un cuadrado perfecto: f u n c t i o n [ ]=C u a d r a d o P e r f e c t o ( n ) % Dicha f u n c i o n nos d i c e s i n n a t u r a l e s % cuadrado p e r f e c t o o no m = sqrt (n ) ; i f f l o o r (m) == m Mario De León 22 Apuntes MA-1006 1.8. EJERCICIOS I ciclo 2022 disp ( ’ e s cuadrado p e r f e c t o ’ ) ; else disp ( ’ no e s cuadrado p e r f e c t o ’ ) ; end end Use dicha función para determinar si 225, 1000, 196, 289, 12769 son cuadrados perfectos o no. 18. Una matriz tridiagonal es una matriz cuadrada cuyos elementos son solo distintos de cero en la diagonal principal y las diagonales adyacentes por encima y por debajo de esta. En el caso de MATLAB serı́a que las diagonales k = -1, 0, 1 no son nulas. Escriba el siguiente código para crear la función Tridiag.m: f u n c t i o n [ ] = T r i d i a g (A) % La f u n c i o n v e r i f i c a s i A e s o no t r i d i a g o n a l B = diag ( diag (A ) ) + diag ( diag ( ( A , 1 ) , 1 ) + diag ( diag ( ( A, −1) , −1); i f A == B disp ( ’ Es t r i d i a g o n a l ’ ) ; else disp ( ’ no e s t r i d i a g o n a l ’ ) ; end end Compruebe dicha función con las siguientes matrices: ⎛1 ⎜ ⎜3 A=⎜ ⎜ ⎜0 ⎜ ⎝0 4 4 2 0 0 1 3 1 0⎞ ⎟ 0⎟ ⎟, ⎟ 4⎟ ⎟ 3⎠ ⎛1 ⎜ ⎜3 B=⎜ ⎜ ⎜0 ⎜ ⎝−5 4 4 2 0 0 −5⎞ ⎟ 1 0⎟ ⎟ ⎟ 3 4⎟ ⎟ 1 3⎠ 19. Cree una función en MATLAB que identifique cuándo una matriz A es simétrica o no. 20. El Método de H ORNER se usa para evaluar polinomios en una variable de manera eficiente. Dado el polinomio p(x) = a1 xn−1 + a2 xn−2 + a3 xn−3 + ... + an−2 x2 + an−1 x + an con ai ∈ R, la idea es calcular p(x0 ). Se puede reescribir el polinomio como p(x) = x(x(...(x(a1 x + a2 ) + a3 ) + ... + an−2 ) + an−1 ) + an Mario De León 23 Apuntes MA-1006 1.8. EJERCICIOS I ciclo 2022 Entonces el método se puede definir como ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ v1 = a1 v2 = v1 x0 + a2 v3 = v2 x0 + a3 ⋮ vn = vn−1 x0 + an donde vn = p(x0 ). En MATLAB podemos implementarlo de la siguiente manera: f u n c t i o n [ v ] = Horner ( a , x0 ) % La f u n c i o n e v a l u a x0 en e l p o l i n o m i o [ a1 a2 . . . an ] % n=length ( a ) ; v=a ( 1 ) ; f o r k=2:n v=v * x0 + a ( k ) ; end end Use dicha función para evaluar x0 en los siguientes polinomios: a) p(x) = −3x2 + 2x + 100; x0 = 2 b) p(x) = x4 − x3 + 2x − 12; c) p(x) = 0.3x6 − 0.03x3 + 0.21; x0 = −1.5 d) p(x) = x6 − x11 − 8x2 − x9 ; x0 = 0.01 x0 = −1.1 21. Escriba una M-función function [A] = AreaTri(a, b, c) que calcule el área de un triángulo a partir de las longitudes de sus lados: A= √ p(p − a)(p − b)(p − c), con p = a+b+c 2 La función debe emitir mensaje de error en los casos en que no se pueda calcular el área: a) Si alguna de las longitudes recibidas es menor o igual a cero; b) Si el radicando es negativo. 22. Escriba una M-función function [y] = Traza(A) que calcule la traza de una matriz cuadrada A. Debe emitir mensaje de error cuando la matriz no es cuadrada. Recuerde que la traza de A ∈ Rn×n es igual a tr(A) = a11 + a22 + ... + ann . 23. Escriba una M-función en MATLAB para la siguiente función: ⎧ ⎪ ⎪ log ∣x2 + 2x − 3∣, si x < 1 f (x) = ⎨ 1 2 ⎪ ⎪ ⎩ 2 tan(3x − 2), si x ≥ 1 Mario De León 24 Apuntes MA-1006 1.8. EJERCICIOS I ciclo 2022 24. Escriba una M-función function Donde(x,a,b) que reciba como argumentos de entrada x ∈ R y los extremos de un intervalo [a, b], y escriba en la pantalla un mensaje indicando si x < a, x ∈ [a, b] o x > b. 25. Escriba una M-función function [vmax] = Mayor(v) que reciba como argumento un vector v y devuelva el máximo entre los valores absolutos de todas sus componentes. 26. Escriba una M-función function [amax] = MayorM(A) que reciba como argumento una matriz A y devuelva el máximo entre los valores absolutos de todas sus componentes. 27. Escriba una rutina con while para aproximar el valor numérico del épsilon máquina de MATLAB y que imprima los mensajes eps = valor obtenido y 1 + eps = 1. Mario De León 25 Apuntes MA-1006 Capı́tulo 2 Aritmética de precisión finita 2.1. Números punto flotante Una computadora tiene únicamente un número finito de bits. Esto requiere representaciones aproximadas de los números reales. Definición 1 (Representación punto flotante) Sea β ≥ 2 una base (usualmente par), t la precisión (número de dı́gitos en base β). Un número punto flotante se representa en esta base como Número punto flotante ξ = ±d1 .d2 ...dt × β e = ±m × β e en donde dk ∈ {0, 1, ..., β − 1} son los dı́gitos significativos, m mantisa y tiene t dı́gitos; e ∈ Z es el exponente. Si d1 ≠ 0 el número se dice normalizado. Un número punto flotante normalizado tal que d1 = 0 implica entonces que d2 = d3 = ... = dt = 0 Note que dicho número es igual a ±(d1 + d2 β −1 + d3 β −2 + ... + dt β −(t−1) ) × β e , 0 ≤ di < β Si el exponente de dos números punto flotante es el mismo, se dice que tienen la misma magnitud. Los exponentes máximo y mı́nimo se denotan como emax y emin , respectivamente, y se tiene que (usualmente) emin < 0 < emax . Entonces hay emax − emin + 1 posibles exponentes. El +1 es para el exponente cero. De manera alternativa podemos representar ξ de manera única en la forma ξ = ±m × β e+1−t , m ∈ {β t−1 , β t−1 + 1, ..., β t − 1} ⊂ N, 26 e∈Z 2.1. NÚMEROS PUNTO FLOTANTE I ciclo 2022 Definición 2 Sean β, t ∈ N, 0 ≤ di < β para i > 1, d1 ≠ 0 y L = emin , U = emax . Se define el conjunto de números reales de precisión finita1 como Conjunto de números reales de precisión finita t F(β, t, L, U ) ∶= {0} ∪ {ξ ∈ R∗ ∶ ξ = ±β e × ∑ di β 1−i } i=1 Teorema 3 La cantidad de elementos en F(β, t, L, U ) es exactamente card F(β, t, L, U ) = 2(β − 1)β t−1 (U − L + 1) + 1 También, xmin = β L =, xmax = (1 − β −t ) ⋅ β U +1 . Hay dos razones por las cuales un número real x no puede ser representado exactamente como un número punto flotante. La primera se ilustra con el número en base diez 0.1, el cual tiene una representación decimal finita, pero en binario su representación es (0.00011)2 , luego dicho número en binario se encuentra estrictamente entre dos números punto flotante y a la vez no es ninguno de ellos. La segunda razón es que el número x ∈ R podrı́a ser muy grande en valor absoluto y se escape del rango. A esto se le conoce como overflow (sobredesbordamiento) o underflow (subdesbordamiento) respectivamente. Por defecto, las computadoras “atrapan” esos casos limı́trofes asignando los valores ±∞ y cero sin previo aviso. La IEEE 754 reconoce los siguientes sı́mbolos: ±∞, i.e. como el valor de ±1/0; NaN not a number, i.e. como el resultado de 0/0 o ∞ − ∞. Esencialmente cada computadora desde 1985 implementa el estandard IEEE 754, el cual ofrece dos formatos binarios para la hardware arithmethic (por defecto MATLAB usa doble precisión, pero también permite el uso de precisión simple). La idea es representar un número asignando los bits de la siguiente manera: signo exponente mantisa Precisión simple: utiliza 32 bits (4 bytes) distribuidos ası́: 1 bit para el signo, 8 bits para el exponente y 23 bits para la mantisa. Tiene una precisión de 24 dı́gitos binarios. El exponente toma valores en [−126, 127] con sesgo 127. ± 1 a1 a2 a3 . . . a 8 b1 b2 b3 . . . b23 O machine numbers set. Mario De León 27 Apuntes MA-1006 2.2. ERROR ABSOLUTO, ERROR RELATIVO. ÉPSILON MÁQUINA Si a1 a2 a3 . . . a8 es luego el valor representado es (00000000)2 = (0)10 ± (0.b1 b2 . . . b23 )2 × 2−126 (00000001)2 = (1)10 (00000010)2 = (2)10 ⋮ (01111111)2 = (127)10 (10000000)2 = (128)10 ⋮ (11111101)2 = (253)10 (11111110)2 = (254)10 ± (1.b1 b2 . . . b23 )2 × 2−126 ± (1.b1 b2 . . . b23 )2 × 2−125 ⋮ ± (1.b1 b2 . . . b23 )2 × 20 ± (1.b1 b2 . . . b23 )2 × 21 ⋮ ± (1.b1 b2 . . . b23 )2 × 2126 ± (1.b1 b2 . . . b23 )2 × 2127 (11111111)2 = (255)10 ±∞ si b1 = b2 = . . . = b23 = 0, NaN en otro caso I ciclo 2022 El valor de e que se guarda en los bits a1 , a2 , ..., a8 corresponde a e+127, y el épsilon máquina es εm = 2−23 . Precisión doble: utiliza 64 bits (8 bytes) distribuidos ası́: 1 bit para el signo, 11 bits para el exponente y 52 bits para la mantisa. Tiene una precisión de 53 dı́gitos binarios. El exponente toma valores en [−1022, 1023] con sesgo 1023. ± a1 a2 a3 . . . a11 b1 b2 b3 . . . b52 Si a1 a2 a3 . . . a11 es luego el valor representado es (00000000000)2 = (0)10 ± (0.b1 b2 . . . b52 )2 × 2−1022 (00000000001)2 = (1)10 (00000000010)2 = (2)10 ± (1.b1 b2 . . . b52 )2 × 2−1022 ± (1.b1 b2 . . . b52 )2 × 2−1021 ⋮ (01111111111)2 = (1023)10 (10000000000)2 = (1024)10 ⋮ (11111111101)2 = (2045)10 (11111111110)2 = (2046)10 ⋮ ± (1.b1 b2 . . . b52 )2 × 20 ± (1.b1 b2 . . . b52 )2 × 21 ⋮ ± (1.b1 b2 . . . b52 )2 × 21022 ± (1.b1 b2 . . . b52 )2 × 21023 (11111111111)2 = (2047)10 ±∞ si b1 = b2 = . . . = b52 = 0, NaN en otro caso El valor de e que se guarda en los bits a1 , a2 , a3 , ..., a11 corresponde a e1023 . Además, la precisión es p = 53 y el épsilon máquina es εm = 2−52 2.2. Error absoluto, error relativo. Épsilon máquina Supongamos que se está utilizando el sistema de precisión doble de la IEEE. Sea F como el conjunto de números en punto flotante del sistema de precisión doble. Considere la función fl ∶ R → F, donde a cada número real ξ se le asigna el correspondiente número en punto flotante Mario De León 28 Apuntes MA-1006 I ciclo 2022 2.2. ERROR ABSOLUTO, ERROR RELATIVO. ÉPSILON MÁQUINA fl(ξ), utilizando redondeo al valor más cercano. Es decir, si ξ− ⩽ ξ < ξ+ , donde ξ− , ξ+ ∈ F son dos números en punto flotante consecutivos, se define fl(ξ) ∶= ξ− si ∣ξ − ξ− ∣ ⩽ ∣ξ − ξ+ ∣, o fl(ξ) ∶= ξ+ en caso contrario. Teorema 4 Sea x ∈ R un número que puede ser representado de manera normal en un sistema de punto flotante con precisión t. Entonces, existe δ ∈ R tal que fl(x) = x(1 + δ) donde ∣δ∣ < εm /2 Definición 5 Sea x∗ = fl(x) Se define el error absoluto ε como x∗ = x + ε, y el error relativo δ como x∗ = x(1 + δ) ε Entonces ε = xδ, o, si x ≠ 0, δ = . x En la aritmética punto flotante, el error relativo es muy apropiado porque cada número es representado con una precisión relativa similar. Cuando x = 0 o x es muy cercano a cero, es mejor considerar el error absoluto. Los errores al representar x por fl(x) también suelen representarse ası́: Error absoluto ε = ∣x − fl(x)∣ Error relativo δ= ∣x − fl(x)∣ , ∣x∣ x≠0 Para una base β se tiene que el error relativo, al aproximar x por algún valor, con precisión t, está acotado de la siguiente manera: ε 1/2 × β e−t+1 ∣δ∣ = ∣ ∣ < = 1/2 × β −t+1 x 1 × βe En el caso de β = 10, base 10, se tiene la siguiente definición: Definición 6 Se dice que fl(x) aproxima a x con p dı́gitos significativos si p es el mayor entero no 1 negativo para cual se cumple que δ < × 101−p = 5 × 10−p 2 Mario De León 29 Apuntes MA-1006 2.2. ERROR ABSOLUTO, ERROR RELATIVO. ÉPSILON MÁQUINA I ciclo 2022 Se observa que basta tomar s { ∣x − fl(x)∣ p = − log10 ( ) + log10 (5) ∣x∣ debido a lo siguiente: δ < 5 × 10−p log10 (δ) < log10 (5) − p p < log10 (5) − log10 (δ) Definición 7 El número εm más pequeño tal que fl(1 + εm ) > 1 se denomina épsilon máquina o macheps. El épsilon máquina es la diferencia entre 1 y el número siguiente x > 1 con x ∈ F que se puede almacenar de forma exacta. 2.2.1. Truncamiento y redondeo Definición 8 (Truncamiento) Sea x = ±(d1 .d2 ...dt dt+1 ...)β × β e entonces podemos aproximar x por truncamiento hasta el dı́gito t como flT (x) = ±(d1 .d2 ...dt )β × β e . Definición 9 (Redondeo) Sea x = ±(d1 .d2 ...dt dt+1 ...)β × β e entonces podemos aproximar x por redondeo hasta el dı́gito t como ⎧ ⎪ si dt+1 < β2 , ⎪ ±(d1 .d2 ...dt ))β × β e flR (x) = ⎨ e ⎪ si dt+1 ≥ β2 ⎪ ⎩ ±(d1 .d2 ...(dt + 1))β × β La operación de redondeo fl ∶ R → F mapea ξ ∈ R al número máquina más cercano fl(ξ) = ˆ ξ ∈ F. Dicha operación posee las siguientes propiedades: Monotonı́a: ξ ≤ η ⇒ fl(ξ) ≤ fl(η); Idempotencia: fl(ξ) = ξ para ξ ∈ F. Teorema 10 (Cota superior para el error relativo) Sea x real en el rango y fl(x) su representación punto flotante. Entonces se cumple que ⎧ ⎪ ∣x − fl(x)∣ ⎪ β 1−t (truncamiento) ≤ µ = ⎨ 1 1−t ⎪ ∣x∣ (redondeo) ⎪ ⎩ 2β Mario De León 30 Apuntes MA-1006 2.3. OPERACIONES ARITMÉTICAS I ciclo 2022 2.3. Operaciones aritméticas La IEEE 754 define que las operaciones aritméticas y la operación raı́z cuadrada son calculadas para números máquina por un redondeo correcto para el resultado exacto que se persigue: ˆ, entonces para x, y ∈ F se tiene que si se denota la realización de una operación como ⋆ por ⋆ √ [⋆ ∈ {+, −, ⋅, ÷, ⋅}] xˆ ⋆y = fl(x ⋆ y) Esto ası́, se tiene el modelo estándar para los números máquina y sus operaciones: √ Para x, y ∈ F, ⋆ ∈ {+, −, ⋅, ÷, ⋅} en donde ∣ε∣ ≤ εm , tal que xˆ ⋆y = (x ⋆ y)(1 + ε) ˆ de la operación ⋆. para la realización-máquina ⋆ La idea es evitar overflow o underflow. Ası́, las operaciones aritméticas en precisión finita se representan: Suma: x ⊕ y ∶= fl(fl(x) + fl(y)) Resta: x ⊖ y ∶= fl(fl(x) − fl(y)) Producto: x ⊙ y ∶= fl(fl(x) ⋅ fl(y)) División: x ⊘ y ∶= fl(fl(x) ÷ fl(y)) La suma y el producto son conmutativas pero no asociativas. Tampoco se cumple la ley distributiva. 2.3.1. Pérdida de significancia Hay que evitar en la medida de lo posible la cancelación, debido a que puede darse la cancelación catastrófica, en la cual, los dı́gitos más significativos se cancelan y el dı́gito menos significativo permanece. Esto ocurre cuando dos números muy similares de igual signo son restados entre sı́ (o dos con signos opuestos son sumados). Los cálculos recursivos acumulan y magnifican el error. Considere x1 ⊕ x2 = fl(x1 ) + fl(x2 ) = x1 (1 + δ1 ) + x2 (1 + δ2 ) = x1 + x2 + (x1 δ1 + x2 δ2 ) = x1 + x2 + (ε1 + ε2 ) Se nota cómo el error depende de los errores absolutos ε1 y ε2 . En el peor de los casos podrı́a ser que ambos errores absolutos tengan el mismo signo, i.e., el error absoluto en x1 ⊕ x2 no es peor que ∣ε1 ∣ + ∣ε2 ∣. Usando el hecho de que fl(−x2 ) = −x2 − ε2 se tiene que el error absoluto de fl(x1 ) − fl(x2 ) Mario De León 31 Apuntes MA-1006 2.4. EJERCICIOS I ciclo 2022 no es peor que ∣ε1 ∣ + ∣ε2 ∣. Luego, el error relativo es ∣ε1 ∣ + ∣ε2 ∣ x1 − x2 Por ejemplo, consideremos la ecuación cuadrática ax2 + bx + c = 0 de la cual sabemos que x= −b ± √ b2 − 4ac 2a Un problema surge si b2 es mucho mayor que ∣4ac∣ pues el numerador se “parece” a 0 y las raı́ces por tanto también “se parecen” a 0. Incluso si la diferencia de magnitudes no es muy grande, una raı́z se mantiene todavı́a muy pequeña. Sin pérdida de generalidad asumamos que b > 0 y la raı́z menor está dada por √ −b + b2 − 4ac x= 2a El problema puede ser tratado racionalizando: x= −b + √ √ b2 − 4ac −b − b2 − 4ac −2c √ √ ⋅ = 2a −b − b2 − 4ac b + b2 − 4ac Por ejemplo, tomando a = 1, b = 100000, c = 1 y una precisión de 2 × 10−10 , la fórmula original da x = −1.525878906 × 10−5 para la raı́z menor mientras que con la fórmula modificada da x = −1.000000000 × 10−5 la cual es la mejor que permite dicha precisión. 2.4. Ejercicios 1. Observe el video Representación de Información Digital - Cambio de base 2 2. Compruebe que ( 11 2 )10 = (1.011)2 × 2 . 3. Observe el video Representación de Información Digital - Números reales en coma flotante IEEE 754 4. Sea ξ = (257.0625)10 . Transforme ξ a su representación binaria y luego a su representación en el sistema de precisión simple según el standard de la IEEE. Haga lo mismo pero representándo ξ en precisión doble. 5. Escriba explı́citamente todos los elementos del conjunto F(2, 4, −2, 2). Luego dibújelos en la recta numérica. Calcule la cantidad total de elementos de este F. 6. Calcule el error absoluto y relativo de las aproximaciones de ξ (busque representaciones ˆ con al menos 10 dı́gitos) mediante ξ. Mario De León 32 Apuntes MA-1006 2.4. EJERCICIOS I ciclo 2022 a) ξ = π, b) ξ = π, ξˆ = 3, 1416 22 ξˆ = 7 c) ξ = e, d) ξ = e, ξˆ = 2.8182 65 ξˆ = 24 ¿Cuántos dı́gitos significativos2 hay en la representación del inciso b). 7. Determine las fórmulas explı́citas de xmin y xmax , es decir: el mayor y el menor número (en valor absoluto) del conjunto F(β, t, L, U ). 8. Considere x = 0.134, y = 0.00345. Normalice dichos números en su representación punto flotante en base β = 10, aplicando redondeo con precisión t = 3, y calcule x ⊕ y. Compare ∣(x + y) − (x ⊕ y)∣ con x + y calculando el error relativo . ∣x + y∣ √ 9. La función f (x) = x2 + 1 − 1 presenta cancelación catastrófica para x ≈ 0. Evalúela en x = 0.01 con aritmética exacta, y luego utilice redondeo con tres cifras (t = 3). ¿Cómo puede ajustarse la fórmula para evitar cancelación catastrófica? 10. Al resolver la ecuación cuadrática ax2 + bx + c = 0 se pueden presentar serios problemas de cancelación catastrófica si una de las raı́ces es muy pequeña en comparación con la otra. A fin de evitar este problema en lugar de usar la fórmula general clásica se usan las fórmulas3 √ ⎡ ⎤ b 2 c ⎥⎥ −b ⎢⎢ −b x1 = signo ( ) ⎢∣ ∣ + ( ) − ⎥ ; 2a ⎢ 2a 2a a⎥ ⎣ ⎦ x2 = c/a x1 Utilice los dos métodos para resolver la ecuación x2 − 105 x + 1 = 0 usando truncamiento con 7 cifras. 11. Considere el sistema de ecuaciones lineales ⎧ ⎪ ⎪ 1.2x + 2.4y = 3.5 ⎨ ⎪ ⎪ ⎩ 0.1x + 1.25y = 0.01 Calcule la solución exacta usando la regla de C RAMER. Luego haga lo mismo pero usando redondeo a 3 cifras. Determine el error relativo para cada componente del vector solución. 12. Considere el vector x = (1, 0.01, 0.01, ..., 0.01)t ∈ R10 +1 . Calcule la norma euclı́dea en aritmética exacta. Luego calcule fl(∣∣x∣∣2 ) usando F(10, 2, −3, 3). ¿Cuántos dı́gitos significativos tiene la aproximación calculada de la norma? 4 13. Observe el video ¡Hay números subnormales! ¿Lo sabı́as? 2 3 ¿Qué significa ue una aproximación ξˆ tenga p dı́gitos significativos con respecto al valor exacto ξ? signo(x) = 1 si x ≥ 0 es no negativo, y signo(x) = −1 si x < 0. Mario De León 33 Apuntes MA-1006 Capı́tulo 3 Solución de ecuaciones no lineales Ecuaciones de la forma f (x) = 0 en la cual f es una función “suave” apropiada f ∶ R → R, se quiere encontrar una raı́z de dicha función. Cualquier ecuación no lineal puede expresarse en dicha forma. Para ello estudiaremos algunos métodos iterativos: dado un valor inicial x0 se construye una sucesión de números reales {xn }∞ n=0 = {x0 , x1 , x2 , ...}, y la idea es que si la ecuación y el método son adecuados se esperará que lı́m xn = ξ, es decir, que haya convergencia de la n→+∞ sucesión hacia un punto ξ. 3.1. El método de bisección Dados [a, b] y f (a) ⋅ f (b) < 0 con f continua en dicho intervalo, por el teorema del valor intermedio (TVI) f debe tener al menos un cero. El método de bisección puede ser utilizado para encontrar dicho cero. Este método es robusto, esto es, se garantiza que converge hacia el cero y posiblemente lo haga a una velocidad de convergencia muy lenta. También es conocido como el método de búsqueda binario. Calculamos el punto medio m = a+b 2 en cada paso, ası́ como f (m). Si f (m) = 0 se termina el proceso. Si no, se tienen dos casos: si f (a)f (m) < 0 se toma m ← b, de lo contrario si f (m)f (b) < 0 se toma m ← a. El algoritmo acaba cuando b − a es suficientemente pequeño. En otras palabras, el método se detiene cuando ∣bn+1 − an+1 ∣ < tol, donde tol es la tolerancia especificada para el método de bisección. También puede usarse como criterio de parada ∣f (m)∣ < tol. En cualquiera de los casos es menester revisar el comprotamiento de la función y elegir el criterio de parada más conveniente. Teorema 11 Suponiendo que f es continua en [a, b] y f (a)f (b) < 0, el método de bisección genera una sucesión {xn } que aproxima ξ a un un cero de f , tal que ∣xn − ξ∣ ≤ lo cual implica que xn = ξ + O ( b−a 2n 1 1 ), donde O ( n ) es la velocidad de convergencia del método. n 2 2 34 3.1. EL MÉTODO DE BISECCIÓN I ciclo 2022 Algorithm 1 Método de bisección Require: f continua, intervalo inicial I0 ← [a, b] con f (a)f (b) < 0 Ensure: Aproximación ck de una raı́z c de f en I0 k ← 0; while la iteración no haya convergido do ck ← (ak + bk )/2; if ck es una raı́z then Retorne ck ; end if if f (ck )f (bk ) < 0 then ak+1 ← ck , bk+1 ← bk ; else ak+1 ← ak , bk+1 ← ck ; end if k ← k + 1; end while A continuación un posible algoritmo implementado en MATLAB, para el cual hay que definir la función f en un archivo previo (digamos f.m, o también utilizando funciones anónimas): MATLAB – Método de bisección function [x , k] = b i s e c c i o n ( f , a , b , tol , iterMax ) k = −1; err = t o l + 1; v = 1; w = f ( a ); while v ˜ = 0 && k < i t e r M a x && e r r >= t o l x = (a + b) / 2; v = f ( x ); e r r = abs ( b − a ) ; if w * v > 0 a = x; w = v; else b = x; end k = k + 1; end end Este algoritmo devuelve x la cual es una aproximación a la raı́z y k es la cantidad de iteraciones llevadas a cabo. Mario De León 35 Apuntes MA-1006 3.2. MÉTODO DE REGULA FALSI O FALSA POSICIÓN I ciclo 2022 Observación: En la iteración de bisección se tiene que ∣ek ∣ = ∣xk − ξ∣ ≤ 2−k (b − a), además se considera ∣ek ∣ < tol como condición de parada, entonces despejando k se obtiene que b−a b−a b−a < tol ⇒ < 2k ⇒ log2 ( )<k k 2 tol tol ası́, si se desea utilizar una tolerancia tol, entonces el valor mı́nimo de iterMax para la iteración de bisección puede ser considerado de la forma s { b−a iterMax = log2 ( ) +1 tol 3.2. Método de Regula Falsi o falsa posición El método de bisección siempre escoge el punto medio de cada intervalo en cuestión. Ahora vamos a considerar una modificación del mismo. Se puede considerar el segmento de recta entre (a, f (a)) y (b, f (b)), el cual está dado por x−a x−b f (a) + f (b) a−b b−a Figura 3.1: Regula falsi. Tomado de FAUL f (b)a − f (a)b , se hace la prueba de signos y en cada paso el intervalo f (b) − f (a) que contiene la raı́z es actualizado. En el cálculo de m no hay peligro de pérdida de significancia debido a que f (a) y f (b) tienen signos opuestos. De esto se tiene que m = Este método es llamado regula falsi o regla de falsa posición pues se toma una “falsa” raı́z –un sustituto pues. En primera instancia este método parece superior en cuanto a convergencia1 al de bisección al tratar de aproximar un cero de la ecuación. Asintóticamente uno de los puntos extremos de cada intervalo deberá converger a la raı́z, mientras que el otro permanecerá siempre fijo. Ası́ que solo uno de los extremos es actualizado en cada paso del método. El valor de m es un promedio ponderado de los valores de la función. El método puede ser modificado 2 para ajustar 1 2 Aunque no siempre es el caso. Esta variante se conoce como algoritmo de Illionois. Mario De León 36 Apuntes MA-1006 3.3. MÉTODO DE LA SECANTE I ciclo 2022 los pesos de los valores de la función en el caso en el cual el mismo punto final es repetido en un paso: 1 f (b)a − f (a)b f (b)a − 21 f (a)b m = 21 o m= f (b) − 12 f (a) 2 f (b) − f (a) Estos ajustes garantizan convergencia superlineal. Concretamente, el método de falsa posición es una variante del método de la secante combinado con el de bisección, donde en lugar de calcular la pendiente con los puntos (xk , f (xk )) y (xk−1 , f (xk−1 )) se eligen los puntos (xk , f (xk )) y (xτ , f (xτ )) siendo τ = 0, 1, ..., k − 1 el ı́ndice xk − xk−1 ∣. menor que cumple f (xk ) ⋅ f (xτ ) < 0. El error relativo es ∣ek ∣ = ∣ xk 3.3. Método de la secante El problema que podrı́a presentarse en el método de la falsa posición es que los intervalos de búsqueda pueden no decrecer en longitud. El problema se evita al considerar los puntos en sucesión estricta en el sentido de que el valor más “viejo” se descarta, y solo se usan los dos valores más recientes al calcular el nuevo valor. Esto conduce al método de la secante. Tomamos al inicio x0 = a, x1 = b, luego f (xn )xn−1 − f (xn−1 )xn f (xn ) − f (xn−1 ) xn − xn−1 f (xn ) = xn − f (xn ) − f (xn−1 ) xn+1 = Figura 3.2: Método de la secante. Tomado de G UTI ÉRREZ et al. El resultado siguiente nos da garantı́a de la convergencia del método de la secante cuando se satisfacen las condiciones pedidas. A continuación un posible algoritmo en MATLAB, para el cual hay que definir la función f en un archivo previo (digamos f.m) o como función anónima: Mario De León 37 Apuntes MA-1006 3.3. MÉTODO DE LA SECANTE I ciclo 2022 Algorithm 2 Método de la Secante Require: f continua, valores iniciales c0 , c1 (cercanos a la raı́z) Ensure: Aproximación ck de la raı́z c de f for k ← 1, 2, ... do ck − ck−1 ck+1 ← ck − f (ck ); f (ck ) − f (ck−1 ) end for MATLAB – Método de la Secante f u n c t i o n [ x , k ] = s e c a n t e ( f , x0 , x1 , t o l , i t e r M a x ) k = 0; e r r = t o l +1; while k < i t e r M a x && e r r >= t o l q = f ( x1 ) − f ( x0 ) ; i f q==0 disp ( ’ P e n d i e n t e i n d e f i n i d a ’ ) end t = x1 ; x1 = x1−f ( x1 ) * ( x1−x0 ) / q ; e r r = abs ( x0−x1 ) / abs ( x1 ) ; x0 = t ; k = k+1; end x = x1 ; end Este algoritmo devuelve x la cual es una aproximación a la raı́z y k es la cantidad de iteraciones llevadas a cabo. xk − xk−1 El error relativo en este método es ∣ek ∣ = ∣ ∣ y es el que se acota si se da una tolerancia xk especı́fica. Mario De León 38 Apuntes MA-1006 3.4. MÉTODO DE NEWTON–RAPHSON I ciclo 2022 3.4. Método de N EWTON –R APHSON En el método de la secante, tomando el lı́mite teorético xn−1 → xn “aparece” la derivada f ′ (xn ) en xn . Esta fórmula es conocida como método de Newton o método de Newton-Raphson: xn+1 = xn − f (xn ) f ′ (xn ) Figura 3.3: Método de Newton. Tomado de FAUL El método falla si cualquier punto de iteración es estacionario, i.e., un punto en donde la primer derivada se anula. El método puede divergir u oscilar, como se ve en las siguientes gráficas. Figura 3.4: Divergencia. Figura 3.5: Oscilación. Teorema 12 Si f ∈ C 2 ([a, b]) y además se satisface que 1) f (a) ⋅ f (b) < 0; 2) f ′ (x) ≠ 0 para todo x ∈ [a, b]; Mario De León 39 Apuntes MA-1006 3.4. MÉTODO DE NEWTON–RAPHSON I ciclo 2022 3) f ′′ (x) ≥ 0 o f ′′ (x) ≤ 0, para todo x ∈ [a, b]; 4) ∣ f (a) f (b) ∣ ≤ b − a y ∣ ′ ∣ ≤ b − a. ′ f (a) f (b) Entonces el método de Newton convergerá a la única solución ξ de f (x) = 0 para cualquier x0 ∈ [a, b]. Algorithm 3 Método de Newton-Rhapson Require: f continua y derivable, valor inicial c0 (cercano a la raı́z c de f ) Ensure: Aproximación ck de la raı́z c de f for k ← 1, 2, ... do f (ck−1 ) ; ck ← ck−1 − ′ f (ck−1 ) end for A continuación un posible algoritmo en MATLAB, para el cual hay que definir la función f en un archivo previo (digamos f.m) y su derivada (digamos df.m): MATLAB – Método de Newton–Rhapson f u n c t i o n [ x , k ] = NewRaph( f , df , x0 , t o l , i t e r M a x ) k = 0; x = x0 ; e r r = t o l +1; while k < i t e r M a x && e r r >= t o l q = df ( x ) ; i f q==0 disp ( ’ Se anula l a d e r i v a d a ’ ) end x = x−f ( x ) / q ; e r r = abs ( x0−x ) / abs ( x ) ; x0 = x ; k = k+1; end end Este algoritmo devuelve x la cual es una aproximación a la raı́z y k es la cantidad de iteraciones llevadas a cabo. Con respecto a la condición de parada del método de Newton-Raphson, se puede considerar xk − xk−1 el error absoluto o el relativo de una aproximación, es decir ∣ek ∣ = ∣xk − xk−1 ∣ o ∣ek ∣ = ∣ ∣. xk Sin embargo, como se ve en el código de MATLAB previo se elige el error relativo. Mario De León 40 Apuntes MA-1006 3.5. MÉTODO DEL PUNTO FIJO I ciclo 2022 3.5. Método del punto fijo En este apartado se estudia una función ϕ en un intervalo [a, b] que satisface ciertas condiciones, entre ellas la contractividad, para dar paso a una iteración que utiliza la misma función dada partiendo de un valor inicial x0 . Figura 3.6: Iteración del punto fijo. Tomado de G UTI ÉRREZ et alii. Definición 13 (Punto fijo) Dada ϕ una función definida en D ⊆ R. Se dice que ξ ∈ D es punto fijo de ϕ si y solo si ϕ(ξ) = ξ. Teorema 14 (Brower) Supongamos que ϕ es una función definida y continua sobre [a, b] y además ϕ([a, b]) ⊆ [a, b]. Entonces existe ξ ∈ [a, b] tal que ξ = ϕ(ξ). Definición 15 (Iteración de punto fijo) Sea ϕ definida y continua sobre [a, b] y que además ϕ([a, b]) ⊆ [a, b]. Dado un valor inicial x0 ∈ [a, b] se define la sucesión xk+1 ∶= ϕ(xk ), para k = 0, 1, 2, ... la cual es llamada iteración simple o método de aproximaciones sucesivas. Definición 16 Sea ϕ definida y continua sobre [a, b]. Se dice que ϕ es una contracción sobre [a, b] si existe L positiva tal que 0 < L < 1 y además ∣ϕ(x) − ϕ(y)∣ ≤ L∣x − y∣, Mario De León 41 ∀x, y ∈ [a, b] Apuntes MA-1006 3.5. MÉTODO DEL PUNTO FIJO I ciclo 2022 Teorema 17 Supongamos que para xn+1 = ϕ(xn ) se tiene que ∣ϕ(x) − ϕ(y)∣ ≤ L∣x − y∣ para todo x, y ∈ I = [x0 − δ, x0 + δ] para alguna constante real L. Esto significa que ϕ es L IPSCHITZ continua en I. Más aún, supongamos que 0 < L < 1 y que ∣x0 − ϕ(x0 )∣ < (1 − L)δ, entonces 1. Todas las iteraciones están en I; 2. La sucesión converge; 3. La solución es única. Teorema 18 Suponga que ϕ es una función real, definida y diferenciable sobre [a, b]. Entonces si ∣ϕ′ (x)∣ ≤ L para todo x ∈ [a, b] con 0 < L < 1 entonces ϕ es una contracción sobre [a, b]. Aunque el teorema que usaremos y que se enuncia tradicionalmente es el siguiente. Teorema 19 Sea ϕ definida y continua sobre [a, b] y que además ϕ([a, b]) ⊆ [a, b] y siendo ϕ una contracción sobre [a, b]. Entonces ϕ tiene un único punto fijo ξ ∈ [a, b]. Además la iteración simple xk+1 = ϕ(xk ) converge a ξ para cualquier valor x0 ∈ [a, b]. Algorithm 4 Método de punto fijo Require: f continua sobre [a, b], valor inicial c0 ∈ [a, b] Ensure: ck aproximación al punto fijo de f en [a, b] for k ← 1, 2, ... do ck ← f (ck−1 ); end for A continuación un posible algoritmo en MATLAB, para el cual hay que definir la función f en un archivo previo (digamos f.m): MATLAB – Método del punto fijo f u n c t i o n [ x , k ] = p u n t o f i j o ( f , x0 , t o l , i t e r M a x ) k = 0; x = x0 ; e r r = t o l +1; while k < i t e r M a x && e r r > t o l x = f (x ); e r r = abs ( x−x0 ) / abs ( x ) ; x0 = x ; k = k+1; end end Mario De León 42 Apuntes MA-1006 3.5. MÉTODO DEL PUNTO FIJO I ciclo 2022 Este algoritmo devuelve x la cual es una aproximación a la raı́z y k es la cantidad de iteraciones llevadas a cabo. Para efectos de los ejercicios tomaremos el error relativo, que es el que compararemos con la ∣xk+1 − xk ∣ tolerancia dada: ∣ek ∣ = ∣xk+1 ∣ Una cota teórica para el número máximo de iteraciones necesarias que se requieren para que el método del punto fijo alcance una aproximación con exactitud de tol > 0 viene dada por { ln(tol(1 − L)) − ln ∣x1 − x0 ∣ +1 iterMax = ln(L) s Quepa agregar que esta cota no es óptima. Mario De León 43 Apuntes MA-1006 3.5. MÉTODO DEL PUNTO FIJO 3.5.1. I ciclo 2022 Orden de convergencia Definición 20 Considere una sucesión {xk }∞ lı́m xk = ξ, con xk ≠ ξ para todo k. Suponga k=0 tal que k→∞ que ∣xk+1 − ξ∣ lı́m =µ≥0 k→∞ ∣xk − ξ∣ Entonces se dice que xk converge a ξ sublinealmente, si µ = 1; superlinealmente, si µ = 0; linealmente, si µ ∈]0, 1[, y ρ ∶= − log µ se define como la razón de convergencia asintótica. En el caso de convergencia superlineal, se dice que xk converge a ξ con orden q > 1 si ∣xk+1 − ξ∣ k→∞ ∣xk − ξ∣q lı́m existe. Orden de convergencia bisección Para este caso el error ek ∶= ∣xk − ξ∣ no decrece de forma monótona en general, pero la convergencia es lineal porque ek+1 1 ∼ ek 2 Orden de convergencia punto fijo Si f es derivable y satisface las hipótesis adecuadas para convergencia de punto fijo, el método converge al menos linealmente, pues ∣xk+1 − ξ∣ ∣f (xk ) − f (ξ)∣ = lı́m = ∣f ′ (ξ)∣ < 1 k→∞ ∣xk − ξ∣ k→∞ ∣xk − ξ∣ lı́m Si f ′ (ξ) = 0 entonces la convergencia es superlineal. Orden de convergencia secante Suponiendo que f tiene segunda derivada continua, sea ξ tal que f (ξ) = 0 y f ′ (ξ) ≠ 0. Si x0 es lo suficientemente cercano a ξ, entonces la sucesión {xn }∞ n=0√generada por el método 1+ 5 de la secante converge a ξ con un orden de convergencia q = ≈ 1.618. 2 Orden de convergencia Newton La convergencia del método de Newton es cuadrática. Mario De León 44 Apuntes MA-1006 3.6. EJERCICIOS I ciclo 2022 3.6. 3.6.1. Ejercicios Método de bisección 1. Justifique por qué 2x cos(2x) − (x − 2)2 = 0 posee al menos un cero en [2, 3] y otro en [3, 4]. 2. Encuentre la tercera iteración por el método de bisección de la función f (x) = sen(x) − cos(1 + x2 ) − 1 en el intervalo [1.8, 2]. [No olvide que se trabaja en radianes] 3. Considere la ecuación x = 2−x . Proporcione un intervalo que contenga la solución de dicha ecuación. Además determine el número de iteraciones necesarias para alcanzar una tolerancia de 10−5 . 4. Aplique la iteración de bisección a la ecuación sen x = 34 en el intervalo [0.8, 0.9] y trate de determinar el cero actual con una tolerancia de 10−3 . [No olvide que se trabaja en radianes] √ 5. Encuentre una aproximación de 3 con un error menor a 10−4 , utilizando el método de bisección. [Sugerencia: utilice un polinomio adecuado] 3.6.2. Método del punto fijo 1. Utilice la iteración de punto fijo para determinar una aproximación de una solución de x4 − 3x2 = 3 en el intervalo [1, 2], utilizando x0 = 1 y una tolerancia de 10−2 . 2. Considere la ecuación 8e 5 −2x = 5. Compruebe que ϕ(x) = 4e 5 − 52 satisface las condiciones del teorema del punto fijo en [0, 2]. Use x0 = 1 y obtenga una aproximación de la solución de la ecuación con una tolerancia de 10−2 . −x −x 3. Considere la ecuación x2 + 10 cos x = 0 la cual posee dos raı́ces aproximadas que son 3.1619 y 1.9688. Determine la o las funciones auxiliares ϕ(x) y un intervalo adecuado para que pueda utilizar las hipótesis del teorema del punto fijo de B ROWER. Con lo anterior, ¿cuántas iteraciones se necesitan para obtener una aproximación con una tolerancia de 10−4 . 4. Considere la ecuación ϕ(x) = 2x − ln(1 + ex ) = 0. Usando que x = ln(1 + ex ) − x muestre que ϕ satisface las hipótesis del teorema del punto fijo en el intervalo [0, 2]. Usando x0 = 1 obtenga una aproximación de la solución de la ecuación con dos dı́gitos significativos. Mario De León 45 Apuntes MA-1006 3.6. EJERCICIOS 3.6.3. I ciclo 2022 Método de N EWTON –R APHSON 1. Use el método de Newton para calcular una aproximación de la solución de x6 = x + 1 en [1, 2] con un error relativo de 10−4 2. Realice 3 iteraciones de Newton para resolver la ecuación x2 = 2 y verifique que √ 1 1 1 − 2≈1+ − 2 12 108 3. Aplique el método de Newton para calcular el cero de f (x) = x3 − 3x2 2−x + 3x4−x − 8−x en [0, 1]. 1 x2 cos 2x 4. Use el método de Newton para aproximar una solución de 0 = + − x sen x − con 2 4 2 π la aproximación inicial x0 = 2 y con un error relativo menor a 10−5 . 5. Muestre que f (x) = x2 − x − 2 tiene una raı́z única en [1, 3] a la cual converge la sucesión del método de Newton para todo x0 ∈ [1, 3]. 3.6.4. Método de la secante 1. Aplique el método de la secante iniciando con x0 = 1, x1 = 2, f (x0 ) = 2 y f (x1 ) = 1.5. ¿Cuál es el valor de x2 ? 2. Realice 4 iteraciones utilizando el método de la secante a f (x) = x − 2 cos x con x0 = 1, x1 = 1.5 como condiciones iniciales. 3. Utilice el método de la secante para aproximar un cero de f (x) = ex − x2 utilizando 8 iteraciones y considerando que x0 = 1 y x1 = 3. 4. Considere la ecuación log(2) + log(11 − x2 ) = 2 log(5 − x). Use el método de la secante para aproximar las dos soluciones usando las aproximaciones iniciales (x0 , x1 ) = (0, 1) y (x0 , x1 ) = (2.5, 3.5). Calcule la solución exacta de la ecuación y determine el error absoluto y el error relativo de cada aproximación. 3.6.5. Adicionales 3 ) = x. Justifique la 1. Aproxime la solución en [−1, 0] de la ecuación (x3 + 0.1) sen ( x2 +0.06 elección del método usado, indicando las ventajas que tiene sobre otros métodos para esta ecuación particular. 2. Un proyectil es lanzado con una velocidad inicial v0 y con una inclinación α en un túnel √ de altura h, obtiene su máximo alcance cuando α es tal que sen(α) = 2gh , donde g ≈ 9.8 v02 2 m/s corresponde a la aceleración gravitatoria terrestre. Calcule el valor de α usando el método de Newton, cuando v0 = 10 m/s y h = 1 m. Mario De León 46 Apuntes MA-1006 3.6. EJERCICIOS I ciclo 2022 −kt mg (1 − e m ), en donde k k es el coeficiente de arrastre. Vamos a trabajar el caso v = 40 m/s, m = 68.1 kg, t = 10 s y g = 9.8 m/s2 . 3. La velocidad de descenso de un paracaidista está dada por v = a) Determine una función adecuada f (k) a partir de la fórmula anterior, tal que f (k) = 0. Grafique dicha función. b) Postule un intervalo adecuado para utilizar el método de bisección y aproxime el coeficiente de arrastre a partir de f (k) = 0 con una tolerancia de 5 × 10−3 = 0.5 %. 4. La función f (x) = x3 − x2 − 4x + 5 tiene exactamente 3 puntos fijos. Uno de ellos es x = 1. a) Calcule de manera exacta los otros dos puntos fijos. 9 11 , 10 ]. Justifique si la sucesión por iteración de punto fijo b) Considere el intervalo I = [ 10 converge o no a x0 cercano a x = 1. x 5. Considere la función f (x) = −1 − 2x + ∫ et dt. Vamos a calcular una aproximación de 0 uno de sus puntos crı́ticos, que de hecho es un mı́nimo local. (Nota: Use truncamiento a 6 dı́gitos después del punto decimal: si tiene N.1234567... con N entero, entonces lo escribe como N.123456) 2 a) Muestre que la ecuación f ′ (x) = 0 posee una raı́z en el intervalo I = [0, 1]. 2 b) Verifique si la función ϕ(x) = x+ln x+1 satisface todas las condiciones del teorema de existencia y unicidad del punto fijo en el intervalo I. ¿Por qué no sirve tomar ϕ(x) = lnx2 ? c) Ahora utilice el método de iteración de punto fijo con x0 = 0 para determinar una aproximación con 11 iteraciones (k = 10) de la raı́z de la ecuación f ′ (x) = 0 en I. [Sugerencia: use MATLAB] d) Determine el valor de f (x10 ) para la aproximación encontrada con el método del punto x 2 x3 x 5 fijo. Para ello puede usar el hecho de que ∫ et dt ≈ x + + cuando x ≈ 0. ¿Cuál es 3 10 0 el error relativo con respecto a la raı́z exacta de f ′ (x) = 0? x 6. Considere el polinomio (63x4 − 70x2 + 15), el cual tiene un cero en [0.6, 1] dado por 8 √ √ 1 ξ = 21 245 + 14 70 ≈ 0.9061798459. Determine la cantidad de iteraciones máximas que se necesitan para aproximar este cero por el método de bisección con una tolerancia de 10−10 . Luego utilice MATLAB para aproximar este cero. 7. Dada la ecuación x sen(x) + x2 = 1, utilice el método de la secante para aproximar un cero con tolerancia 10−3 tal que x0 = 0.1 y x1 = 0.9. 8. Muestre que la ecuación ex = 2x2 tiene una raı́z negativa. Use el método de Newton con un valor apropiado de x0 y determine una aproximación de la raı́z negativa con una precisión de 10−5 Mario De León 47 Apuntes MA-1006 3.6. EJERCICIOS I ciclo 2022 9. Aplique el método de Newton para determinar una aproximación de una raı́z de f (x) = x2 cos x − 6x ln x − 25 con x0 = 23 como condición inicial. 10. Considere la función f (x) = ex − sen(x) − 4 en [1, 2]. Determine a) Una función ϕ(x) que satisfaga las condiciones del teorema del punto fijo. b) Deduzca la cota teórica para el número máximo de iteraciones necesarias que se requieren para que el método del punto fijo alcance una aproximación con exactitud de tol> 0: s { ln(tol(1 − L)) − ln ∣x1 − x0 ∣ iterMax = +1 ln(L) Utilizando los datos del problema dado, calcule dicha cota con la aproximación inicial x0 = 1, usando tol = 10−3 . c) Aplique el método del punto fijo y determine una aproximación para la solución de f (x) = 0, con una exactitud de 10−3 en el intervalo [1, 2] y con la aproximación inicial x0 = 1. También calcule el error relativo en cada iteración. d) ¿La cantidad de iteraciones llevadas es igual a iterMax? Compruebe esto con MATLAB. Mario De León 48 Apuntes MA-1006 Capı́tulo 4 Factorización de matrices y sistemas lineales Un sistema lineal no homogéneo es de la forma Ax = b donde A ∈ Rn×n y x, b ∈ Rn con b ≠ 0. Dicho sistema tiene solución única si y solo si A no es singular y entonces x = A−1 b 4.1. Sustitución hacia atrás y hacia adelante La solución del sistema es “evidente” si A es triangular superior o inferior. Si algún elemento en la diagonal de estas últimas matrices es cero entonces A es singular. Consideremos primero una matriz triangular superior A para el sistema Ax = b: ⎛a11 a12 ⎜0 a 22 ⎜ ⎜ ⎜ ⋮ ⋮ ⎜ ⎜ ⎜0 0 ⎜ ⎝0 0 Por la última lı́nea, xn = ⋯ a1,n−1 a1n ⎞ ⎛ x1 ⎞ ⎛ b1 ⎞ ⎜ ⎟ ⎜ ⎟ ⋯ a2,n−1 a2n ⎟ ⎟ ⎜ x 2 ⎟ ⎜ b2 ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⋱ ⋮ ⋮ ⎟ ⎟⎜ ⋮ ⎟ = ⎜ ⋮ ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⋯ an−1,n−1 an−1,n ⎟ ⎟ ⎜xn−1 ⎟ ⎜bn−1 ⎟ ⋯ 0 ann ⎠ ⎝ xn ⎠ ⎝ bn ⎠ bn . La (n − 1)−ésima ecuación es ann an−1,n−1 xn−1 + an−1,n xn = bn−1 ⇒ an−1,n−1 xn−1 = bn−1 − an−1,n xn ⇒ xn−1 = 1 an−1,n−1 (bn−1 − an−1,n ⋅ 49 bn ) ann 4.1. SUSTITUCIÓN HACIA ATRÁS Y HACIA ADELANTE I ciclo 2022 Algoritmos de sustitución En general, xi = n 1 (bi − ∑ aij xj ) con i = n, n − 1, ..., 2, 1. aii j=i+1 lo cual se conoce como algoritmo de sustitución hacia atrás. En el caso en el que la matriz A es triangular superior el algoritmo de sustitución hacia adelante es i−1 1 xi = (bi − ∑ aij xj ) con i = 1, 2, ..., n − 1, n. aii j=1 A continuación los scripts para las sutituciones expuestas. Sustitución hacia adelante f u n c t i o n [ x ] = Forward (A , b ) % R e s u e l v e e l s i s t e m a t r i a n g u l a r i n f e r i o r Ax=b % Inputs : Matriz a Triangular I n f e r i o r , b v e c t o r c o n s t a n t e s % Output : x s o l u c i o n [ n ,m]= s i z e (A ) ; % D i m e n s i o n e s de A i f n ˜= m % Comprobar que A s e a cuadrada e r r o r ( ’ La m a t r i z no e s cuadrada ’ ) ; end i f s i z e ( b , 1 ) ˜= n e r r o r ( ’ e l v e c t o r de c o n s t a n t e s no t i e n e dimension adecuada ’ ) ; end x = zeros ( n , 1 ) ; % x inicial x(1)=b ( 1 ) /A ( 1 , 1 ) ; f o r k=2:n t = 0; f o r j =1:k−1 t = t + A( k , j ) * x ( j ) ; end x ( k ) = ( b ( k ) − t ) /A( k , k ) ; end end Mario De León 50 Apuntes MA-1006 4.2. ELIMINACIÓN GAUSSIANA Y PIVOTEO I ciclo 2022 Sustitución hacia atrás f u n c t i o n [ x ] = Backward (A , b ) % R e s u e l v e e l s i s t e m a t r i a n g u l a r s u p e r i o r Ax=b % Inputs : Matriz a Triangular Superior , b v e c t o r c o n s t a n t e s % Output : x s o l u c i o n [ n ,m]= s i z e (A ) ; % D i m e n s i o n e s de A i f n ˜= m % Comprobar que A s e a cuadrada e r r o r ( ’ La m a t r i z no e s cuadrada ’ ) ; end i f s i z e ( b , 1 ) ˜= n e r r o r ( ’ e l v e c t o r de c o n s t a n t e s no t i e n e dimension adecuada ’ ) ; end x = zeros ( n , 1 ) ; % x inicial x ( n)=b ( n ) /A( n , n ) ; f o r k=n−1:−1:1 t = 0; f o r j=k+1:n t= t + A( k , j ) * x ( j ) ; end x ( k ) = ( b ( k ) − t ) /A( k , k ) ; end end 4.2. Eliminación gaussiana y pivoteo Dado el sistema Ax = b, la solución x no cambiará si cualquiera de las siguientes operaciones se aplican a la ecuación k−ésima: α ⋅ Eqk , α ≠ 0; α ⋅ Eqi + Eqk ; Eqk ←→ Eqj Dichas operaciones usualmente se efectúan para llevar la matriz a una triangular superior (o inferior) y esto es conocido como eliminación gaussiana. En realidad dichas operaciones no son más que multiplicar la matriz ampliada (A∣b) por una matriz de permutación elemental. Definición 21 (Matriz elemental) Una matriz elemental cuadrada de orden n × n es una permutación de la matriz identidad In las cuales son: Mario De León 51 Apuntes MA-1006 4.2. ELIMINACIÓN GAUSSIANA Y PIVOTEO I ciclo 2022 Intercambio de la fila i−ésima por la fila j−ésima: Ti,j ⎛1 ⎞ ⎟ ⎜ ⋱ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ 0 1 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ =⎜ ⋱ ⎟ ⎜ ⎟ ⎜ ⎟ 1 0 ⎜ ⎟ ⎜ ⎟ ⎜ ⋱ ⎟ ⎜ ⎟ ⎝ 1⎠ ⎛1 ⎞ ⎟ ⎜ ⋱ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ 1 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ Multiplicación de la fila i−ésima por el escalar α ≠ 0: Di (α) = ⎜ α ⎟ ⎜ ⎟ ⎜ ⎟ 1 ⎜ ⎟ ⎜ ⎟ ⎜ ⋱ ⎟ ⎜ ⎟ ⎝ 1⎠ ⎛1 ⎞ ⎜ ⋱ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ 1 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ Suma de α veces la fila i más la fila j: Lij (α) = ⎜ ⋱ ⎟ ⎜ ⎟ ⎜ ⎟ α 1 ⎜ ⎟ ⎜ ⎟ ⎜ ⋱ ⎟ ⎜ ⎟ ⎝ 1⎠ Si la matriz A es invertible y Ei son matrices elementales entonces un resultado nos dice que E1 E2 ⋯Ek A = I. La estrategia usual es la del pivoteo y dependiendo de cómo se elija se puede evitar acumular errores en los cálculos. En el pivoteo la entrada pivote debe ser distinta de cero. El pivoteo puede ser visto como un acomodo de filas (o columnas) en una matriz. El intercambio de filas es equivalente a multiplicar A por una matriz de permutación. En la práctica las entradas de la matriz raramente son movidas pues esto tiene un costo muy alto en tiempo. Por esto los algoritmos deben evitar las permutaciones. El pivoteo aumenta el costo computacional general de un algoritmo. Sin embargo, a veces el pivoteo es necesario para que el algoritmo elegido funcione del todo, e incluso otras veces puede incrementar la estabilidad numérica. Un pivoteo exitoso requiere la comparación del tamaño relativo de un coeficiente con respecto a otros coeficientes en una misma ecuación. Esto se calcula dividiendo cada coeficiente entre el valor absoluto más grande en la fila. Esto se conoce como pivoteo escalado. Tenemos dos tipos de este pivoteo: Mario De León 52 Apuntes MA-1006 4.3. FACTORIZACIÓN LU I ciclo 2022 Pivoteos Pivoteo parcial: consiste en intercambiar filas de manera que n ∣akk ∣ = máx{∣ajk ∣}, j=k para k = 1, 2, ..., n − 1 al hacer ceros por debajo de la diagonal. Se toma como pivote el mayor valor absoluto de los elementos de la columna por debajo de la diagonal antes de empezar a hacer estos valores cero. Pivoteo total: consiste en intercambiar filas y columnas de la matriz de forma que ∣akk ∣ = máx{∣aij ∣ ∶ k ≤ j y k ≤ i}, para k = 1, 2, ..., n − 1, es decir, se toma como pivote al coeficiente de mayor valor absoluto dentro del arreglo [k, n] × [k, n]. El pivoteo parcial es el más comúnmente utilizado debido a que su costo computacional no es tan alto. 4.3. Factorización LU La idea es utilizar eliminación gaussiana sin pivoteo. Para el sistema Ax = b vamos a factorizar la matriz A = LU , donde ⎛ l11 0 ⋯ 0⎞ ⎜ ⎟ ⎜ ⋮ ⋱ ⋱ ⋮ ⎟ ⎜ ⎟, L=⎜ ⎟ ⎜ln−1,1 ⋯ ln−1,n−1 0 ⎟ ⎜ ⎟ ⎝ ln1 ⋯ ⋯ lnn ⎠ ⎛u11 ⋯ ⋯ u1n ⎞ ⎟ ⎜ ⎜ 0 u22 ⋱ u2n ⎟ ⎜ ⎟ U =⎜ ⎟ ⎜ ⋮ ⎟ ⋱ ⋱ ⋮ ⎜ ⎟ ⎝ 0 ⋯ 0 unn ⎠ Entonce L(U x) = b ⇔ Ly = b ∧ U x = y, los cuales se pueden resolver por sustitución hacia adelante y hacia atrás respectivamente. Otras aplicaciones de la factorización LU son Cálculo del determinante: n n k=1 k=1 det A = det L ⋅ det U = ∏ lkk ⋅ ∏ ukk Prueba de no singularidad: A = LU no es singular si y solo si los elementos de las diagonales de L y U son distintos de cero. Cálculo de inversa: A−1 = U −1 L−1 Mario De León 53 Apuntes MA-1006 4.3. FACTORIZACIÓN LU I ciclo 2022 Algoritmo para calcular la factorización LU Denotemos las columnas de L como `1 , `2 , ..., `n y las filas de U como ut1 , ut2 , ..., utn . Luego A = LU = (`1 ⎛ ut1 ⎞ n ⎜ ⎟ ⎟ = ∑ `k utk . . . `n ) ⎜ ⎜ ⋮ ⎟ k=1 ⎝utn ⎠ Asumamos que A no es singular y que admite la factorización LU . Entonces los elementos de la diagonal de L son no nulos. Como `k utk se mantiene igual si `k es reemplazado por α`k y uk es reemplazado por α−1 uk , con α ≠ 0, entonces podemos asumir que todos los elementos de la diagonal de L son iguales a 1. Como las primeras k − 1 componentes de `k y uk son ceros, cada matriz `k utk tiene ceros en las primeras k − 1 filas y columnas. Se sigue que ut1 es la primera fila de A y `1 es la primera columna de A dividida por a11 , pues l11 = 1. Teniendo `1 y u1 formamos la matriz A1 = A − `1 ut1 n = ∑ `k utk k=2 La primer fila y columna de A1 es de ceros y se sigue que ut2 es la segunda fila de A1 , mientras que `2 es la segunda columna de A1 escalada de tal forma que l22 = 1. Para generalizar el algortimo de la factorización LU sea A0 ∶= A, para todo k = 1, ..., n sea utk la k−ésima fila de Ak−1 y `k la k−ésima columna de Ak−1 escalada de tal forma que lkk = 1. Entonces Ak ∶= Ak−1 − `k utk Todos los elementos de las primeras k filas y columnas de Ak son ceros. Entonces se pueden usar para almacenar de la matriz original A para acumular L y U . La acumulación total LU requiere O(n3 ) operaciones. LU de forma práctica Realizamos eliminación gaussiana sin intercambio de filas ni reescalamiento, es decir, solo operaciones de la forma αk fj + fi . La idea es obtener la matriz triangular superior U por este método, y las entradas de la matriz triangular inferior unitaria L (unitaria porque Lii = 1 para todo i), en la cual Lij = −αk para la operación αk fj + fi , y el resto de entradas son ceros. Definición 22 Suponga que A es una matriz n × n de entradas reales, con n ≥ 2. Sea 1 ≤ k ≤ n. La submatriz principal de orden k de A es definida como la matriz A(k) de dimensiones k × k que tiene por entrada los elementos aij de A con 1 ≤ i, j ≤ k. Teorema 23 (Existencia de la factorización LU) Sea A matriz n × n de entradas reales. Si toda Mario De León 54 Apuntes MA-1006 4.3. FACTORIZACIÓN LU I ciclo 2022 submatriz principal A(k) con 1 ≤ k ≤ n − 1 es no singular, entonces existen L triangular inferior unitaria y U triangular superior tales que A = LU . Teorema 24 (Unicidad de la factorización LU) Si A es no singular y además A = LU como antes, entonces la factorización es única. La factorización LU es análoga a la eliminación gaussiana al resolver Ax = b. La diferencia consiste en que LU no considera b hasta el final. Observación: Existen casos en donde la factorización LU de la matriz A no existe, pero sı́ la de P A = LU , en donde P es producto de matrices elementales de permutaciones. Factorización LU f u n c t i o n [ L , U]=FactLU (A) % C a l c u l a l a f a c t o r i z a c i o n LU de l a m a t r i z cuadrada A % L = matriz t r i a n g u l a r i n f e r i o r unitaria , U = matriz t r i a n g u l a r s u p e r i o r [ n ,m]= s i z e (A ) ; i f n˜=m e r r o r ( ’ l a m a t r i z no e s cuadrada ’ ) ; end L=eye ( n ) ; U=A ; f o r k=1:n−1 f o r j=k+1:n i f abs (U( k , k))>1e−12 L ( j , k)=U( j , k ) /U( k , k ) ; end U( j , : ) =U( j ,:) − L ( j , k ) * U( k , : ) ; end end end Resolver sistema con factorización LU f u n c t i o n [ L , U, x]=LUx (A , b ) [ L , U]=FactLU (A ) ; x=Backward (U, Forward ( L , b ) ) ; end Mario De León 55 Apuntes MA-1006 4.4. FACTORIZACIÓN DE CHOLESKY 4.3.1. I ciclo 2022 Factorización PA = LU Existen casos en donde no es posible obtener la factorización LU , digamos por ejemplo, cuando la entrada a11 = 0, y esto se debe a que no utilizamos algún método de pivoteo en la eliminación gaussiana. La idea ahora es utilizar pivoteo parcial. Teorema 25 Toda matriz A ∈ Rn×n tiene una factorización P A = LU donde P es una matriz de permutaciones de fila, L es una matriz unitaria triangular inferior donde todas sus entradas están acotadas por 1 y U es una matriz triangular superior. Algorithm 5 Eliminación gaussiana con pivoteo parcial Require: Matriz A ∈ Rn×n Ensure: P, L, U tales que P A = LU U ← A, L ← I, P ← I for k ← 1 ∶ m − 1 do Seleccione i ≥ k tal que ∣Ui,k ∣ es máximo; Uk,k∶m ←→ Ui,k∶m ; Lk,1∶k−1 ←→ Li,1∶k−1 ; Pk,∶ ←→ Pi,∶ ; for j ← k + 1 ∶ m do Lj,k ← Uj,k /Uk,k ; Uj,k∶m ← Uj,k∶m − Lj,k Uk,k∶m ; end for end for Se puede utilizar pivoteo total y ası́ obtener lo que se conoce como factorización P AQ = LU , donde Q representa los cambios de columna que se realizan en cada paso. Aunque en la práctica se recurre al pivoteo parcial debido a los costos computacionales del pivoteo total. 4.4. Factorización de C HOLESKY Matriz simétrica real A ∈ Rn×n es una matriz simétrica si A = At . Queremos expresar A = LDLt donde L es triangular inferior con 1’s en su diagonal y D es una matriz diagonal. Podemos escribir dicha factorización como sigue: A = ( `1 ⎛D11 ⎞ ⎛ `t1 ⎞ ⎜ ⎟⎜ ⎟ n ⎜ ⎟⎜ ⎟ D22 ⎜ ⎟ ⎜ ⎟ = ∑ Dkk `k `t ) ... `n ⎜ ⎟⎜ ⎟ k ⎜ ⎟ ⎜ ⋮ ⎟ k=1 ⋱ ⎜ ⎟⎜ ⎟ ⎝ Dnn ⎠ ⎝`tn ⎠ Nuevamente, `k denota la k−ésima columna de L. Mario De León 56 Apuntes MA-1006 4.5. FACTORIZACIÓN QR I ciclo 2022 Este algoritmo explota la simetrı́a de la matriz A y requiere aproximadamente la mitad de las entradas de la matriz. Similar a la factorización LU , sea A0 = A y para k = 1, ..., n se tiene que `k es la k−ésima columna de Ak−1 , escalada de tal manera que Lkk = 1. Sea Dkk = (Ak−1 )kk y se calcula Ak = Ak−1 − Dkk `k `tk Matriz definida positiva A ∈ Rn×n es definida positiva si xt Ax > 0 para todo x ≠ 0. Teorema 26 Sea A ∈ Rn×n simétrica. A es definida positiva si y solo si A = LDLt existe, donde los elementos de la diagonal de D son todos positivos. 1 1 Definición 27 Defina D 2 como la matriz diagonal donde (D 2 )kk = una matriz definida positiva A se tiene que 1 1 1 √ 1 1 Dkk . Luego D 2 ⋅D 2 = D. Para 1 A = (LD 2 )(D 2 Lt ) = (LD 2 )(LD 2 )t 1 Tomando L̃ ∶= LD 2 ⇒ A = L̃L̃t . Factorización de Cholesky Si consideramos la factorización LU de una matriz simétrica A, se espera obtener una factorización en donde U = Lt . De esta manera se considera la posibilidad de escribir A = LLt = Rt R donde L es triangular inferior y R = Lt . En este caso no se espera que las entradas de la diagonal de L sean iguales a 1. Dicha descomposición se denomina factorización de Cholesky. Teorema 28 Toda matriz A ∈ Rn×n simétrica y definida positiva tiene una factorización de Cholesky A = LLt = Rt R. 4.5. Factorización QR Supongamos que A ∈ Rm×n , con m ≥ n. Si se consideran las n columnas de A, denotadas por aj ∈ Rm , 1 ≤ j ≤ n, se puede obtener una base ortogonal de vectores unitarios qj ∈ Rm , 1 ≤ j ≤ n, tales que ⟨a1 , ..., ak ⟩ = ⟨q1 , ..., qk ⟩ para k = 1, ..., n Mario De León 57 Apuntes MA-1006 4.5. FACTORIZACIÓN QR I ciclo 2022 Si A tiene rango completo (i.e. sus columnas son linealmente independientes), se tienen las siguientes ecuaciones a1 = r11 q1 a2 = r12 q1 + r22 q2 a3 = r13 q1 + r23 q2 + r33 q3 ⋮ an = r1n q1 + r2n q2 + r3n q3 + ... + rnn qn Como los vectores qj son ortogonales, se tiene que rij = qti aj (i ≠ j), j−1 ∥rjj ∥ = ∥aj − ∑ rij qi ∥ i=1 2 Luego, ⎛ a1 a2 ⋯ an ⎞ ⎛ q1 q2 ⋯ qn ⎞ ⎛r11 r12 ⋯ r1n ⎞ ⎟ ⎟ ⎜ ⎟⎜ ⎜ ⎟ ⎜ ⎟⎜ ⎜ r22 ⋯ r2n ⎟ ⎟ ⎟=⎜ ⎟⎜ ⎜ ⎟ ⎟ ⎜ ⎟⎜ ⎜ ⎟ ⎟ ⎜ ⎟⎜ ⎜ ⋱ ⋮ ⎟ ⎟ ⎜ ⎟⎜ ⎜ ⎠ ⎝ ⎠⎝ ⎝ rnn ⎠ es decir, A = Q̂R̂, donde Q̂ ∈ Rm×n satisface que Q̂t Q̂ = In y R̂ ∈ Rn×n es triangular superior. Esta descomposición se denomina factorización QR reducida. Si A no tiene rango completo, entonces algún ak ∈ ⟨a1 , ..., ak−1 ⟩, con lo que rkk = 0. En dicho caso qk no está bien definido, pero basta con seleccionarlo de tal manera que sea ortogonal a ⟨q1 , ..., qk−1 ⟩. Ası́ también se puede escribir A = Q̂R̂. Si se extiende {q1 , ..., qn } a una base de Rm y se denota por Q a la matriz unitaria cuyas columnas son {q1 , ..., qm }, se puede escribir la factorización QR completa de A dada por A = QR, donde Q ∈ Rm×m unitaria y R ∈ Rm×n triangular superior (la cual se obtiene al agregar m − n filas nulas al final de R̂). Teorema 29 Toda matriz A ∈ Rm×n , m ≥ n, admite una descomposición reducida Q̂R̂, donde Q̂ ∈ Rm×n , Q̂t Q̂ = In y R̂ es triangular superior. Además admite una factorización completa A = QR, con Q ∈ Rm×m unitaria y R ∈ Rm×n triangular superior. 4.5.1. Ortogonalización de G RAM -S CHMIDT Este es un método de ortogonalización triangular, en el cual se multiplica a la derecha de A por matrices triangulares superiores para obtener Q̂. Las ecuaciones anteriores se pueden Mario De León 58 Apuntes MA-1006 4.5. FACTORIZACIÓN QR I ciclo 2022 reescribir como 1 a1 r11 1 = (a2 − r12 q1 ) r22 1 (a3 − r13 q1 − r23 q2 ) = r33 ⋮ n−1 1 = (an − ∑ rin qi ) rnn i=1 q1 = q2 q3 qn el cual es conocido como el proceso de ortogonalización de Gram-Schmidt. El algoritmo Algorithm 6 Ortogonalización de Gram-Schmidt (inestable) Require: Matriz A ∈ Rm×n Ensure: Matriz unitaria Q y triangular superior R tales que A = QR for i ← 1 ∶ n do vj ← aj ; for i ← 1 ∶ j − 1 do rij ← qti aj ; vj ← vj − rij qi ; end for rjj ← ∥vj ∥2 ; qj ← vj /rjj ; end for previo es inestable debido a errores de redondeo. En caso de que A tenga rango completo se pueden definir las matrices triangulares superiores r 1 13 − rr11 ⋯ − rr1n ⎛ r11 − r12 ⎞ 11 11 ⎜ ⎟ 1 ⎜ ⎟ ⎜ ⎟ ⎟ R1 = ⎜ 1 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⋱ ⎜ ⎟ ⎝ 1 ⎠ ⋯ ⎛1 ⎜ ⎜ ⎜ R2 = ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎛1 ⎜ 1 ⎜ ⎜ Rn = ⎜ 1 ⎜ ⎜ ⎜ ⋱ ⎜ ⎝ 1 rnn 1 r22 23 − rr22 ⋯ 1 ⋱ ⎞ ⎟ − rr2n ⎟ 22 ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ 1 ⎠ ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ Al calcular AR1 R2 ⋯Rn = Q̂ ∈ Rm×n cuyas columnas son los vectores qi . De esta manera, si se define R̂ = (R1 ⋯Rn )−1 se tiene que A = Q̂R̂ que es la factorización reducida QR de A. Lema 30 El número de operaciones en aritmética de punto flotante (flops) para calcular la factorización QR de una matriz A ∈ Rm×n dada por los algoritmos previos es de orden O(2mn2 ). Mario De León 59 Apuntes MA-1006 4.5. FACTORIZACIÓN QR I ciclo 2022 Algorithm 7 Ortogonalización de Gram-Schmidt (estable) Require: Matriz A ∈ Rm×n Ensure: Matriz unitaria Q y triangular superior R tales que A = QR V ←A for i ← 1 ∶ n do rii ← ∥vi ∥2 ; qi ← vi /rii ; for i ← i + 1 ∶ n do rij ← qti vj ; vj ← vj − rij qi ; end for end for 4.5.2. Reflexiones de H OUSEHOLDER Ahora se van a definir matrices ortogonales Q1 , ..., Qn tales que Qn ⋯ Q1 A = R̂ Entonces se define Q̂ ∶= (Qn ⋯ Q1 )t . De esta manera se obtiene A = Q̂R̂. Dicho proceso se denomina trianglarización ortogonal. A continuación se describe el método de Householder. Definición 31 Sea u ∈ Rn no nulo. La matriz n × n de la forma Hn = In − 2 uut ∥u∥2 se denomina reflexión de Householder. Una reflexión de Householder describe una reflexión sobre un hiperplano el cual es ortogou nal al vector y que además contiene al origen. La matriz de Householder es simétrica y ∥u∥ ortogonal, pues t 2uut 2uut 4uut 4u(ut u)ut (I − ) (I − ) = I − + =I ∥u∥2 ∥u∥2 ∥u∥2 ∥u∥4 Con cada multiplicación de la matriz de Householder con una matriz A de dimensiones n × m lo que se desea es introducir ceros debajo de la diagonal en una columna entera. Para comenzar se construye una reflexión la cual transforma la primer columna no nula x ∈ Rn de A en un múltiplo del vector unitario e1 . Se busca elegr u ∈ Rn tal que las últimas n − 1 entradas de (I − 2uut 2ut x ) x = x − u ∥u∥2 ∥u∥2 (⋆) se anulen. Para u se hace u = x + signo(x1 ) ⋅ ∥x∥ ⋅ e1 Mario De León 60 Apuntes MA-1006 4.5. FACTORIZACIÓN QR I ciclo 2022 Usualmente se escoge el signo de acuerdo al signo de x1 para evitar que ∥u∥ sea demasiado pequeño. Ahora se calculan matrices de Householder Ĥk cuya dimensión cada vez va decreciendo. Supongamos que las primeras k − 1 columnas han sido tansformadas tales que tengamos ceros debajo de la diagonal. Necesitamos escoger la siguiente reflexión de Householder para transformar la k−ésima columna tal que las primeras k − 1 columnas permanezcan en dicha forma. Entonces las primeras k − 1 entradas de u son ceros. Con esta escogencia las primeras k − 1 filas y columnas de la matriz uut son ceros y la submatriz (k − 1) × (k − 1) de la matriz de reflexión de Householder es la identidad Ik : ⎛Ik 0 ⎞ ∈ Rn×n Hk = ⎝ 0 Ĥk ⎠ √ Sea uk = xk ± ∑ni=k x2i y ui = xi para i = k + 1, ..., n. Esto introduce ceros debajo de la diagonal en la k−ésima columna. El resultado final despues de aplicar el algoritmo a todas las columnas de A en orden es una matriz triangular superior R = Hn Hn−1 ⋯H2 H1 A, y Q = H1 H2 ⋯Hn−1 Hn . Algorithm 8 Triangularización de Householder Require: Matriz A ∈ Rm×n Ensure: Matriz unitaria Q y triangular superior R tales que A = QR for i ← 1 ∶ n do x ← Aj∶m,j ; vj ← x + sign(x1 )e1 ; vj ← vj /∥vj ∥2 ; Aj∶m,j∶n ← Aj∶m,j∶n − 2vj (vjt Aj∶m,j∶m ); end for Lema 32 El algoritmo previo requiere un orden de 2mn2 − 32 n3 flops. En MATLAB la factorización QR se puede realizar poniendo [Q,R]=qr(A). Igualmente, podemos utilizar el siguiente script: Factorización QR con Householder f u n c t i o n [Q, R]=QRHouse (A) [m,˜]= s i z e (A ) ; R=A ; % Comienza con R = A Q=eye (m) ; % Q i n i c i a como l a i d e n t i d a d f o r k=1:m−1 x=zeros (m, 1 ) ; x ( k :m,1)=R( k :m, k ) ; Mario De León 61 Apuntes MA-1006 4.6. EJERCICIOS I ciclo 2022 g=sign ( x ( k ) ) * norm( x ) ; v=x ; v ( k)=x ( k)+g ; s=norm( v ) ; i f s ˜=0, w=v / s ; u=2*R ’ * w; R=R−w* u ’ ; % P r o d u c t o HR Q=Q−2*Q*w*w ’ ; % P r o d u c t o QR end end Resolver sistema con factorización QR f u n c t i o n [Q, R , x]=QRx(A , b ) [Q, R]=QRHouse (A ) ; x=Backward (R , Q’ * b ) ; end 4.6. 4.6.1. Ejercicios Factorización LU 1. Encuentre la factorización LU de las siguiente matrices: ⎛ 2 4 0 −2⎞ ⎟ ⎜ ⎜ 1 −4 2 1 ⎟ ⎜ ⎟ A1 = ⎜ ⎟ ⎜ 2 1 −6 −8⎟ ⎜ ⎟ ⎝−4 −8 2 0 ⎠ ⎛2 −1 2 4⎞ ⎜ ⎟ ⎜1 1 4 3⎟ ⎜ ⎟ A2 = ⎜ ⎟ ⎜1 1 −1 0⎟ ⎜ ⎟ ⎝2 −1 2 3⎠ Utilizando la factorizaciones obtenidas, resuelva los sistemas Ax = b, donde b = (−4, 6, −10, 20)t 2. Realice la descomposición LU de la matriz ⎛ 1 2 −3 4 −2 ⎞ ⎜ 4 11 −10 19 −7 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ 4 2 −13 8 −5 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜−1 4 −2 12 −14⎟ ⎜ ⎟ ⎝ 3 12 13 26 13 ⎠ ¿Es única dicha factorización? Si la respuesta es afirmativa, resuelva el sistema Ax = b, con b = (1, 0, 1, 0, 2)t . Mario De León 62 Apuntes MA-1006 4.6. EJERCICIOS I ciclo 2022 3. Considere el sistema lineal Ax = b en donde ⎛1 1 −1 3 ⎞ ⎜ ⎟ ⎜0 −1 −1 −5 ⎟ ⎜ ⎟, A=⎜ ⎟ ⎜0 0 3 13 ⎟ ⎜ ⎟ ⎝0 0 0 −13⎠ ⎛ −4 ⎞ ⎜ ⎟ ⎜ −7 ⎟ ⎜ ⎟ b=⎜ ⎟ ⎜ 13 ⎟ ⎜ ⎟ ⎝−13⎠ Realice sustitución hacia atrás a mano y compruebe su respuesta poniendo en la ventana de comandos x = Backward(A,b) 4. Considere el sistema lineal Ax = b en donde ⎛1 ⎜ A = ⎜ −7 ⎜3 ⎝2 0 1 −8 3 0⎞ ⎟ , 0⎟ ⎟ 1⎠ ⎛0⎞ ⎜ ⎟ b = ⎜−9⎟ ⎜ ⎟ ⎝−6⎠ Realice sustitución hacia adelante a mano y compruebe su respuesta poniendo en la ventana de comandos x = Forward(A,b) 5. Utilice [L,U]=FactLU(A) para determinar la factorización LU de ⎛ 1 2 −3 4 −2 ⎞ ⎜ 4 11 −10 19 −7 ⎟ ⎟ ⎜ ⎜ ⎟ ⎜ A = ⎜ 4 2 −13 8 −5 ⎟ ⎟ ⎜ ⎟ ⎜−1 4 −2 12 −14⎟ ⎜ ⎟ ⎝ 3 12 13 26 13 ⎠ 6. Resuelva el sistema lineal utilizando factorización LU : ⎧ ⎪ −15x1 − 6x2 + 9x3 = 0 ⎪ ⎪ ⎪ ⎪ ⎨ 35x1 − 4x2 − 12x3 = −9 ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ −30x1 + 36x2 − 16x3 = −6 Utilice [L,U,x]=LUx(A,b) y compare con sus respuestas. 4.6.2. Factorización QR con H OUSEHOLDER ⎛1 2⎞ ⎜ ⎟ 1. Dado el vector u = (1, 1, 1)t y A = ⎜3 4⎟ calcule HA y AH, donde H es la matriz de ⎜ ⎟ ⎝5 6⎠ Householder con respecto a u. Mario De León 63 Apuntes MA-1006 4.6. EJERCICIOS 2. Considere la matriz I ciclo 2022 ⎛8 −2 4 ⎞ ⎜ ⎟ A = ⎜4 23 2 ⎟ ⎜ ⎟ ⎝8 22 −23⎠ a) Aplicando matrices de transformación de Householder sobre A, encuentre las matrices Q ortogonal y R triangular superior, tales que A = QR. b) Muestre que la matriz Q obtenida en a) es ortogonal. c) Utilizando1 la factorización obtenida en a), resuelva el problema Ax = b, con b = (1, 2, 3)t . 2uut 3. Sea H = In − t una matriz de Householder. Pruebe que (i) Hu = −u, y (ii) Hv = v si uu vt u = 0 4. Digite en la ventana de comandos lo siguiente: A=[8 −2 4 ; 4 23 2 ; 8 22 −23]; format r a t [Q, R]=qr (A) ¿Coincide dicha factorización con la que realizó en el ejercicio 2.a) de Householder? 5. Guı́ese con el script de [L,U,x]=LUx(A,b) para crear function [Q,R,x]=QRHx(A,b) que resuelva el sistema Ax = b por medio de la factorización QR de Householder, cuyos inputs sean una matriz cuadrada A y un vector b. Compruebe su funcionamiento con el ejercicio 2.c) de Householder. 4.6.3. Factorización LU, QR y pivoteos 1. Considere la matriz ⎛−2 −4 −1⎞ ⎜ ⎟ A = ⎜−1 1 −5⎟ ⎜ ⎟ ⎝−2 −1 −1⎠ a) Aplicando matrices de transformación de Householder sobre A, encuentre las matrices Q ortogonal y R triangular superior, tales que A = QR. No redondee ni trunque los resultados, utilice valores exactos. b) Utilizando la factorización del inciso a), resuelva el sistema Ax = b con b = (3, −21, −6)t . 1 Cambié el vector b porque sino no funcionaba. Mario De León 64 Apuntes MA-1006 4.6. EJERCICIOS I ciclo 2022 2. Elabore una M-función que tenga como input una matriz cuadrada A y que tenga como output un vector v que tenga como entradas vk = det(A(k) ), es decir, un vector que almacene los determinantes de las submatrices principales de A, incluyendo a la matriz A. 3. Utilice pivoteo parcial y pivoteo total redondeando a dos decimales, para resolver el sistema lineal ⎧ ⎪ 23.12x1 + 7.86x2 − 8.15x3 = 15.26 ⎪ ⎪ ⎪ ⎪ ⎨ 12.01x1 + 2.67x2 − 56.43x3 = 9.34 ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ −32.12x1 + 10.00x2 − 4.32x3 = −42.12 Sabiendo que que la solución exacta es x = (1, −1, 0)t , calcule el valor relativo de cada solución obtenida con la norma ∥ ⋅ ∥∞ 4. Determine la factorización LU para resolver el sistema ⎛1 3 0 0 ⎞ ⎛x1 ⎞ ⎛2⎞ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜1 −5 1 0 ⎟ ⎜x2 ⎟ ⎜0⎟ ⎜ ⎟⎜ ⎟ = ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜0 2 6 −2⎟ ⎜x3 ⎟ ⎜2⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎝0 0 1 −3⎠ ⎝x4 ⎠ ⎝2⎠ Ahora veremos el caso general. Una matriz tridiagonal tiene la siguiente forma: ⎛a1 c1 ⎞ ⎜b a c ⎟ ⎜ 2 2 2 ⎟ ⎜ ⎟ ⎜ ⎟ ⋱ ⋱ ⋱ ⎜ ⎟ ⎜ ⎟ ⎟ A=⎜ ⋱ ⋱ ⋱ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⋱ ⋱ ⋱ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ b a c n−1 n−1 n−1 ⎟ ⎜ ⎝ bn an ⎠ Todos los elementos son nulos excepto las diagonales k = −1, 0, 1. Tales matrices pueden encontrarse en la solución de problemas de valores en la frontera para ecuaciones diferenciales ordinarias, las cuales son diagonal dominantes, es decir, ∣ak ∣ ≥ ∣bk ∣ + ∣ck ∣. Se tiene entonces que ⎛1 ⎞ ⎛α1 c1 ⎞ ⎜β 1 ⎟⎜ ⎟ α2 c2 ⎜ 2 ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⋱ ⋱ ⋱ ⋱ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎟ ⎜ ⎟ A = LU = ⎜ ⋱ ⋱ ⋱ ⋱ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⋱ ⋱ ⋱ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ βn−1 1 αn−1 cn−1 ⎟ ⎜ ⎟⎜ ⎟ ⎝ ⎠ ⎝ βn 1 αn ⎠ Mario De León 65 Apuntes MA-1006 4.6. EJERCICIOS I ciclo 2022 en donde α1 = a1 , bk βk = , (k = 2, 3, ..., n) αk−1 αk = ak − βk ck−1 , (k = 2, 3, ..., n) ⎧ ⎪ ⎪ Ly = v Al resolver Ax = v será equivalente a resolver ⎨ ⎪ ⎪ ⎩ Ux = y En este caso, Ly = v implica ⎧ ⎪ ⎪ y1 = v1 , ⎨ ⎪ ⎪ ⎩ yk = vk − βk yk−1 , (k = 2, 3, ..., n) y finalmente, Ux = y implica yn ⎧ , xn = ⎪ ⎪ ⎪ αn ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ yk − xk+1 ck ⎪ ⎪ xk = , ⎪ ⎪ ⎩ α k (k = 2, 3, ..., n) Utilice la información anterior para calcular las matrices L y U y a su vez calcular los vectores y y x, y compare con su solución del sistema del inicio. Mario De León 66 Apuntes MA-1006 Capı́tulo 5 Métodos iterativos y sistemas lineales Dado el sistema Ax = b con A ∈ Rn×n y x, b ∈ Rn . Resolverlo por factorización es con frecuencia muy costoso para n grande. Por esto vamos a expresar el sistema en la siguiente forma: (A − B)x = −Bx + b donde B se escoge de tal forma que A−B sea no singular y el sistema (A−B)x = y sea fácilmente resuelto para cualquier y. Un esquema iterativo simple comienza con un estimado de la solución x(0) ∈ Rn , el cual puede ser arbitrario, y generar la sucesión x(k) , k = 1, 2, ..., resolviendo (A − B)x(k+1) = −Bx(k) + b (⋆) Esta técnica es conocida como splitting. Si la sucesión converge a un lı́mite, lı́m x(k) = x̂, entonk→∞ ces al tomar lı́mites en (⋆) se tiene que (A − B)x̂ = −B x̂ + b Por tanto x̂ es una solución de (⋆). ¿Cuáles son las condiciones necesarias y suficientes para la convergencia? Supongamos que A es no singular y por lo tanto el sistema tiene una única solución x∗ . Como x∗ es solución de Ax = b también satisface (A − b)x∗ = −Bx∗ + b. Sustrayendo esto último de (⋆) se tiene (A − b)(x(k+1) − x∗ ) = −B(x(k) − x∗ ) Denotemos e(k) ∶= x(k) −x∗ , el cual es el error en la k−ésima iteración. Como A−B es no singular, podemos escribir e(k+1) = −(A − B)−1 Be(k) La matriz H ∶= −(A − B)−1 B es conocida como matriz de iteración. En la práctica H no se calcula. Se analizan sus propiedades teoréticamente en order de determinar cuando se tiene convergencia o no. 67 5.1. NORMAS DE MATRICES. CONDICIONAMIENTO I ciclo 2022 Definición 33 (Radio espectral) Sean λ1 , ..., λn valores propios de una matriz H. Entonces su radio espectral ρ(H) se define como ρ(H) ∶= máx (∣λi ∣) i=1,...,n Recordemos que aunque H sea real sus valores propios pueden ser complejos. Teorema 34 lı́m x(k) = x∗ k→∞ 5.1. para todo x(0) si y solo si ρ(H) < 1. Normas de matrices. Condicionamiento Definición 35 (Norma matricial) Se dice que una función ∣∣∣ ⋅ ∣∣∣ ∶ Rm×n → R es una norma matricial si satisface las siguientes propiedades: 1. ∣∣∣A∣∣∣ ≥ 0 para todo A. También ∣∣∣A∣∣∣ = 0 ⇔ A = 0; 2. ∣∣∣λA∣∣∣ = ∣λ∣ ⋅ ∣∣∣A∣∣∣ para todo λ ∈ R; 3. ∣∣∣A + B∣∣∣ ≤ ∣∣∣A∣∣∣ + ∣∣∣B∣∣∣. La norma es consistente si ∣∣∣AB∣∣∣ ≤ ∣∣∣A∣∣∣ ∣∣∣B∣∣∣ suponiendo bien definido AB. Definición 36 (Norma de Frobenius) Sea A ∈ Rm×n una matriz. Entonces la norma de Frobenius se define como n m ∣∣∣A∣∣∣F ∶= (∑ ∑ ∣aij ∣2 ) 1 2 j=1 i=1 Se puede probar que la norma de F ROBENIUS es consistente. Además se cumple que ∣∣∣In ∣∣∣F = √ n; ∣∣∣A∣∣∣2F = tr(AT A) Teorema 37 Sea ∣∣∣ ⋅ ∣∣∣ una norma matricial en Rn×n . Entonces para todo A ∈ Rm×n se tiene que ∣∣∣Ak ∣∣∣ ≤ ∣∣∣A∣∣∣k , para todo k natural; ρ(A) ≤ ∣∣∣A∣∣∣. Teorema 38 Sea ∥ ⋅ ∥ una norma vectorial en Rn . La función ∣∣∣ ⋅ ∣∣∣ ∶ Rn×n → R, ∥Ax∥ = máx ∥Ax∥ −{0} ∥x∥ ∥x∥=1 ∣∣∣A∣∣∣ ∶= máx n x∈R es una norma matricial consistente, la cual es inducida por la norma vectorial dada. Mario De León 68 Apuntes MA-1006 5.2. MÉTODO DE JACOBI I ciclo 2022 Además se verifica que ∥Ax∥ ≤ ∣∣∣A∣∣∣ ⋅ ∥x∥, para todo x ∈ Rn ; ∣∣∣In ∣∣∣ = 1. Algunas normas matriciales son: n n ∣∣∣A∣∣∣∞ = máx ∑ ∣aij ∣ i=1 n j=1 n ∣∣∣A∣∣∣1 = máx ∑ ∣aij ∣ j=1 i=1 n √ ∣∣∣A∣∣∣2 = máx λi , donde los valores propios son los de la matriz AT A. i=1 ∣∣∣A∣∣∣ = máxi,j ∣aij ∣ Ð→ no es consistente. Definición 39 (Número de condicionamiento) El número de condicionamiento de una matriz A no singular se define como κ(A) ∶= ∣∣∣A∣∣∣ ⋅ ∣∣∣A−1 ∣∣∣ con ∣∣∣ ⋅ ∣∣∣ consistente. Se dice que la matriz A está mal condicionada si κ(A) ≫ 1. En caso contrario se dice que está bien condicionada. El sistema Ax = b está mal condicionado si A es mal condicionada, y está bien condicionado si A es bien condicionada. Los métodos a continuación son de splitting y pueden ser usados cuando A no tenga ningún cero en la diagonal, y se expresa A = L + D + U donde D es la matriz diagonal cuya diagonal es la diagonal principal de A, y L, U son matrices triangular inferior y superior respectivamente. 5.2. Método de JACOBI Se escoge A − B = D la parte diagonal de A, o en otras palabras, B = L + U . La iteración está dada por Dx(k+1) = −(L + U )x(k) + b esto es, Método iterativo de Jacobi x(k+1) = D−1 [b − (L + U )x(k) ] Mario De León 69 Apuntes MA-1006 5.2. MÉTODO DE JACOBI I ciclo 2022 La iteración de JACOBI es en realidad una iteración de punto fijo, en la cual se despejan los términos de la diagonal de A: ⎧ 1 ⎪ ⎪ (b1 − a12 x2 − a13 x3 − ... − a1n xn ) x = 1 ⎪ ⎪ a11 ⎪ ⎪ ⎪ ⎨ ⋮ ⋮ ⎪ ⎪ ⎪ 1 ⎪ ⎪ xn = (bn − an1 x1 − an2 x2 − ... − an−1,n−1 xn−1 ) ⎪ ⎪ ann ⎩ Es decir, ⎞ ⎛ n ⎟ ⎜ 1 (k+1) ⎜bi − ∑ aij x(k) ⎟ , xi = ⎜ j ⎟ aii ⎜ ⎟ j=1 ⎠ ⎝ j≠i Como criterio de parada se tiene que para i = 1, 2, ..., n ∥b − Ax(k) ∥ < tol, donde se escoge ∥ ⋅ ∥ a convenir. ∥b∥ Método de Jacobi f u n c t i o n [ x , k ] = J a c o b i (A , b , x0 , t o l , i t e r m a x ) [ n ,m]= s i z e (A ) ; [ ˜ , s]= s i z e ( b ) ; [ ˜ , r]= s i z e ( x0 ) ; i f n˜=m| | s ˜=1|| r˜=1 disp ( ” La m a t r i z A debe s e r cuadrada y t a n t o b como x0 deben s e r v e c t o r e s columna ” ) return end x = x0 ; k = 0; t o l = t o l * norm( b , I n f ) ; e r r = t o l +1; while k < i t e r m a x && e r r > t o l for i = 1:n suma = 0 ; for j = 1:n i f i ˜= j suma = suma + A( i , j ) * x0 ( j ) ; end end x ( i ) = ( b ( i ) − suma ) /A( i , i ) ; end e r r = norm( b − A * x , I n f ) ; Mario De León 70 Apuntes MA-1006 5.3. MÉTODO DE GAUSS–SEIDEL I ciclo 2022 k=k+1; x0=x ; end k = k−1; end 5.3. Método de G AUSS –S EIDEL En este método se tienen dos formas: Gauss–Seidel hacia adelante: Se toma A − B = L + D, la parte tringular inferior de la matriz A, con lo cual B = U . Entonces la sucesión x(k) con k = 1, ..., es generada por (L + D)x(k+1) = −U x(k) + b es decir, Método iterativo de Gauss-Seidel hacia adelante x(k+1) = (L + D)−1 [b − U x(k) ] La iteración de Gauss–Seidel hacia adelante se expresa en el sistema como ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ a11 x1 = b1 − a12 x2 − ... − a1n xn (k+1) (k+1) (k) (k) a21 x1 + a22 x2 = b2 − a23 x3 − ... − a2n xn ⋮ ⋮ (k+1) (k+1) (k+1) an1 x1 + an2 x2 + ... + ann xn = bn (k+1) (k) (k) Es decir, (k+1) xi i−1 n ⎞ 1 ⎛ (k+1) (k) ⎜ bi − ∑aij xj − ∑ aij xj ⎟ , = aii ⎝ ⎠ j=1 para i = 1, 2, ..., n j=i+1 Gauss–Seidel hacia atrás: Se toma A − B = D + U , la parte tringular superior de la matriz A, con lo cual B = L. Entonces la sucesión x(k) con k = 1, ..., es generada por (D + U )x(k+1) = −Lx(k) + b es decir, Método iterativo de Gauss-Seidel hacia atrás x(k+1) = (D + U )−1 [b − Lx(k) ] Mario De León 71 Apuntes MA-1006 5.3. MÉTODO DE GAUSS–SEIDEL I ciclo 2022 Las componentes se calculan con (k+1) xi n i−1 ⎞ 1 ⎛ (k) ⎟, ⎜bi − ∑aij xj − ∑ aij x(k+1) = j aii ⎝ ⎠ j=1 para i = n, n − 1, ..., 2, 1 j=i+1 Gauss–Seidel hacia adelante f u n c t i o n [ x , k ] = g a u s s s e i d e l F (A , b , x0 , t o l , i t e r m a x ) [ n ,m] = s i z e (A ) ; [˜ , s ] = size (b ); [ ˜ , r ] = s i z e ( x0 ) ; i f m˜=n | | s ˜=1|| r˜=1 disp ( ’ La m a t r i z debe s e r cuadrada y l o s v e c t o r e s b y x0 columna ’ ) return end x = x0 ; k = 0; t o l = t o l * norm( b , I n f ) ; e r r = t o l +1; while k<i t e r m a x && e r r >t o l for i = 1:n suma1=0; suma2=0; f o r j = 1 : i −1 suma1 = suma1 + A( i , j ) * x ( j ) ; end f o r j = i +1:n suma2 = suma2 +A( i , j ) * x0 ( j ) ; end x ( i ) = ( b ( i )−suma1−suma2 ) /A( i , i ) ; end k=k+1; e r r = norm( b − A * x , I n f ) ; x0=x ; end k=k−1; end Mario De León 72 Apuntes MA-1006 5.3. MÉTODO DE GAUSS–SEIDEL I ciclo 2022 Gauss–Seidel hacia atrás f u n c t i o n [ x , k ] = g a u s s s e i d e l B (A , b , x0 , t o l , i t e r m a x ) [ n ,m] = s i z e (A ) ; [˜ , s ] = size (b ); [ ˜ , r ] = s i z e ( x0 ) ; i f m˜=n | | s ˜=1|| r˜=1 disp ( ’ La m a t r i z debe s e r cuadrada y l o s v e c t o r e s b y x0 columna ’ ) return end x = x0 ; k = 0; t o l = t o l * norm( b , I n f ) ; e r r = t o l +1; while k<i t e r m a x && e r r >t o l f o r i = n: −1:1 suma1=0; suma2=0; f o r j = 1 : i −1 suma1 = suma1 + A( i , j ) * x0 ( j ) ; end f o r j = i +1:n suma2 = suma2 +A( i , j ) * x ( j ) ; end x ( i ) = ( b ( i )−suma1−suma2 ) /A( i , i ) ; end k=k+1; e r r = norm( b − A * x , I n f ) ; x0=x ; end k=k−1; end Mario De León 73 Apuntes MA-1006 5.4. RELAJACIÓN 5.3.1. I ciclo 2022 Algunas consideraciones La sucesión x(k) converge si el radio espectral de las matrices de iteración HJ = −D−1 (L + U ) (Jacobi), HGSF = −(L + D)−1 U (Gauss-Seidel hacia adelante) es menor que 1. Matriz estrictamente diagonal dominante Definición 40 Una matriz A es denominada estrictamente diagonal dominante por filas si n ∣aii ∣ > ∑ ∣aij ∣, i = 1, ..., n. j=1 j≠1 Teorema 41 (Householder–John) Si A y B son matrices reales tales que A y A − B − B T son simétricas y definidas positivas, entonces el radio espectral de H = −(A − B)−1 B es estrictamente menor que 1. Teorema 42 (Gerschgorin) Todos los valores propior de una matriz de n × n, A, están contenidos en la unión de los discos de G ERSCHGORIN Γi , i = 1, ..., n, definidos en C como n Γi ∶= {z ∈ C ∶ ∣z − aii ∣ ≤ ∑ ∣aij ∣} j=1 j≠i Se sigue de este teorema que las matrices estrictamente diagonal dominantes son no singulares puesto que ninguno de los discos de Gerschgorin contienen a cero. Teorema 43 Si A es estrictamente diagonal dominante, entonces las sucesiones que salen de los métodos de Jacobi y Gauss-Seidel convergen. Corolario 44 1) Si A es simétrica y definida positiva, entonces el método de Gauss-Seidel converge. 2) Si tanto A como 2D − A son simétricas y definidas positivas, entonces el método de Jacobi converge. 5.4. Relajación La eficiencia de los métodos splitting puede ser mejorado por relajación. Ası́ que antes de iterar (A − B)x(k+1) = −Bx(k) + b primero calculamos (A − B)x̃(k+1) = −Bx(k) + b como un valor intermedio y sea x(k+1) = ω x̃(k+1) + (1 − ω)x(k) , k = 0, 1, ... en donde ω ∈ R es llamado parámetro de relajación. De hecho ω = 1 corresponde al método original sin relajación. El parámetro es escogido tal que el radio espectral del método relajado es Mario De León 74 Apuntes MA-1006 5.4. RELAJACIÓN I ciclo 2022 pequeño. A radio espectral más pequeño más rápido converge la iteración. Sea c = (A − B)−1 b, la matriz de la iteración relajada Hω se puede deducir de x(k+1) = ω x̃(k+1) + (1 − ω)x(k) = ωHx(k) + (1 − ω)x(k) + ωc como Hω = ωH + (1 − ω)I Se sigue que los valores propios de Hω y H están relacionados de la forma λω = ωλ + (1 − ω)λ. La mejor escogencia de ω se puede obtener minimizando máx{∣ωλi + (1 − ω)∣, i = 1, ..., n} donde λ1 , ..., λn son los valores propios de H. Sin embargo, los valores propios de H con frecuencia son desconocidos, pero a veces se tiene información (por ejemplo, derivado del teorema de Gerschgorin), la cual hace posible la escogencia de un buen –pero no siempre óptimo– ω. 5.4.1. Métodos de Sobrerrelajación SOR Estos consisten en utilizar relajación en los métodos de Gauss-Seidel. SOR hacia adelante La iteración ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ x(0) , ω ∈ R − {0} dados, para k = 0, 1, 2, ..., hacer: i−1 n 1 (k+1) (k+1) (k) (bi − ∑ aij xj x̂i − ∑ aij xj ) = aii j=1 j=i+1 (k+1) (k) (k+1) xi = (1 − ω)xi + ωx̂i , ∀i = 1, 2, ..., n se conoce como iteración de sobrerrelajación hacia adelante. SOR hacia atrás La iteración ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ x(0) , ω ∈ R − {0} dados, para k = 0, 1, 2, ..., hacer: i−1 n 1 (k) (k+1) (k+1) x̂i = (bi − ∑ aij xj − ∑ aij xj ) aii j=1 j=i+1 (k+1) (k) (k+1) xi = (1 − ω)xi + ωx̂i , ∀i = n, n − 1, ..., 1 se conoce como iteración de sobrerrelajación hacia atrás. Para el método de Jacobi se puede definir el método de relajación como x(k+1) = (1 − ω)x(k) + ωx̂(k+1) Mario De León 75 Apuntes MA-1006 5.5. MÉTODO DEL GRADIENTE CON BÚSQUEDA EN LÍNEA I ciclo 2022 con x̂(k+1) = x(k) + D−1 (b − Ax(k) ) Teorema 45 (Ostrowski-Reich) Si A ∈ Rn×n es simétrica definida positiva y ω ∈]0, 2[, entonces la iteración de SOR converge hacia la solución de Ax = b para todo b ∈ Rn y para todo x(0) ∈ Rn . Definición 46 (Matriz consistentemente ordenada) Sea A ∈ Rn×n tal que A = D +L+U y aii ≠ 0 para todo i. Se dice que A es consistentemente ordenada si los valores propios de la matriz J (α) ∶= αD−1 (L + 1 U) , α α ∈ C − {0} son independientes de α, es decir, si se cumple que σ[J (α)] = σ[J (1)] para todo α ∈ C − {0}. ωopt para matrices consistentemente ordenadas Consideremos el sistema lineal Ax = b para el cual se desea aproximar la solución por el método de SOR. Entonces es necesario definir un valor de ω, donde para matrices consistentemente ordenadas se tiene un valor óptimo, definido como ωopt ∶= 1+ √ 2 1 − [ρ(I − D−1 A)]2 en donde D = diag(diag(A)) 5.5. Método del Gradiente con búsqueda en lı́nea Consideremos A simétrica definida positiva y el sistema Ax = b. La forma cuadrática 1 F (x) = xt Ax − xt b, 2 x ∈ Rn es una función multivariable, la cual puede expresarse como F (x1 , ..., xn ) = n 1 n n a x x − ∑ ∑ ij i j ∑ bi xi 2 j=1 i=1 i=1 Para calcular los extremos de dicha función se hace ∇F (x) = 0. Usando la simetrı́a de A se tiene que n d F = ∑ akj xj − bk dxk j=1 es decir, ∇F (x) = Ax − b = 0. Entonces encontrar extremos de F es equivalente a resolver Ax = b. En este caso el extremo es un mı́nimo puesto que A es definida positiva. Mario De León 76 Apuntes MA-1006 I ciclo 2022 5.5. MÉTODO DEL GRADIENTE CON BÚSQUEDA EN LÍNEA Sea ξ la solución. El mı́nimo de F no cambia si se agrega la constante 21 ξ t Aξ. Usando que b = Aξ vemos que es equivalente a minimizar 1 1 1 t x Ax − xt Aξ + ξ t Aξ = (ξ − x)t A(ξ − x) 2 2 2 √ La última expresión puede denotarse como ∥x∥A ∶= xt Ax lo cual está bien definido pues A es definida positiva. Entonces lo que se está minimizando es ∥ξ − x∥A . Cada iteración construye una aproximación x(k) la cual está cercana a ξ en la norma definida por A. Como esto es equivalente a minimizar F , la sucesión construida deberá satisfacer la condición F (x(k+1) ) < F (x(k) ) Esto es, el valor de F en la nueva iteración deberá ser menor que el valor previo, puesto que se está buscando el mı́nimo. Precisamente los métodos de JACOBI y de G AUSS –S EIDEL hacen esto. Generalmente los métodos de descenso tienen la siguiente forma: 1. Iniciar con cualquier vector inicial x(0) ∈ Rn . 2. Para cualquier k = 0, 1, 2, ..., el cálculo para si la norma del gradiente ∥Ax(k) −b∥ = ∥∇F (x(k) )∥ es aceptablemente pequeño. 3. De lo contrario una dirección de búsqueda d(k) se determina de tal manera que se satisfaga la condición de descenso d [ F (x(k) + ωd(k) )] < 0 dω ω=0 En otras palabras, si se camina en la dirección de búsqueda, los valores de F se hacen más pequeños. 4. El valor ω (k) > 0 el cual minimiza F (x(k) + ωd(k) ) es calculado y la nueva aproximación es x(k+1) = x(k) + ω (k) d(k) Regresar luego al paso 2. Después de unos cálculos al usar la definición de F y al hacer g (k) = Ax(k) − b (el cual denota el gradiente ∇F (x(k) ), diferenciando con respecto a ω e igualando a cero se tiene que ω (k) = − Mario De León (d(k) )t g (k) (d(k) )t Ad(k) 77 Apuntes MA-1006 5.6. MÉTODO DEL GRADIENTE CONJUGADO 5.6. I ciclo 2022 Método del Gradiente Conjugado Hemos visto que la postitividad definida de A puede ser utilizada para definir una norma. Esto puede extenderse para obtener un concepto similar al de ortogonalidad. Definición 47 Los vectores u y v son conjugados con respecto a una matriz definida positiva A si son no nulos y satisfacen que ut Av = 0. Se dice entonces que u y v son A−ortogonales. Se usa la notación ⟨u, v⟩A ∶= ut Av = ⟨u, Av⟩ = ⟨Au, v⟩ Teorema 48 Sea {d0 , ..., dn−1 } una base A−ortogonal y x0 ∈ Rn cualquiera. Entonces la sucesión x(k+1) = x(k) + ωk d(k) con ωk = ⟨d(k) , r (k) ⟩ , ⟨Ad(k) , d(k) ⟩ r (k) = b − Ax(k) determina la solución ξ del sistema lineal Ax = b en a lo sumo n pasos. Lema 49 Sea A una matriz simétrica definida positiva y sea x(0) ∈ Rn . Si existe un polinomio p(t) de grado k tal que p(0) = 1 y ∣p(λ)∣ ≤ r para todo valor propio λ de A, entonces el vector x(k) del método del gradiente conjugado satisface que ∥x(k) − ξ∥A ≤ r∥x(0) − ξ∥A donde ξ es la solución de Ax = b. 5.7. Método de N EWTON multivariable Conseideremos g ∶ D ⊂ Rn → Rn , función continua en varias variables, donde D es un cerrado de Rn . En concreto, ⎛ g1 (x) ⎞ ⎛ x1 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ g2 (x) ⎟ ⎜ x2 ⎟ ⎟ ⎜ ⎟ g(x) = ⎜ x=⎜ ⎟, ⎜ ⎟ ⎜ ⋮ ⎟ ⎜ ⋮ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝gn (x)⎠ ⎝ xn ⎠ Vamos a buscar puntos fijos de g. Dado x(0) ∈ D, sea la sucesión x(k+1) = g(x(k) ), k = 0, 1, ... La existencia de un único punto fijo en D se garantiza si g es una contracción, es decir, si existe L ∈]0, 1[ tal que ∥g(x) − g(y)∥∞ ≤ L∥x − y∥∞ , para todo x, y ∈ D Mario De León 78 Apuntes MA-1006 5.8. EJERCICIOS I ciclo 2022 Se pueden obtener estimados locales si se conoce la norma del jacobiano Jg (x) ∈ Rn×n , Jg (x) ∶= ( ∂gi (x) ) ∂xj 1≤i,j≤n Teorema 50 Suponga que g es continua en un cerrado D ⊂ Rn y sea ξ ∈ D un punto fijo de g. Suponga que las primeras derivadas parciales son continuas en un vecindario abierto N (ξ) ⊂ D con ∥Jg (ξ)∥∞ < 1 Entonces existe ε > 0 tal que g (B ε (ξ)) ⊂ B ε (ξ). Además la sucesión x(k+1) = g(x(k) ) converge a ξ para todo x(0) ∈ B ε (ξ). Iteración de Newton Considere la iteración x(k+1) = x(k) − (Jg (x(k) ) g(x(k) ), −1 k = 0, 1, ... se denomina método de Newton en Rn . Como consejo, para no tener que calcular la inversa del jacobiano se resuelve en cada iteración el sistema lineal con incógnita y: Jg (x(k) )y = g(x(k) ) Como criterio de parada puede utilizarse ∥x(k+1) − x(k) ∥∞ < tol. 5.8. 5.8.1. Ejercicios Normas matriciales. Condicionamiento 1. Calcule ∥A∥F , ∥A∥1 , ∥A∥∞ para las matrices ⎛ 2 −1 0 ⎞ ⎜ ⎟ A1 = ⎜−1 2 −1⎟ , ⎜ ⎟ ⎝ 0 −1 2 ⎠ ⎛ 4 −1 7 2 ⎞ ⎜ ⎟ ⎜−1 4 0 1 ⎟ ⎜ ⎟, A2 = ⎜ ⎟ ⎜−7 0 4 −5⎟ ⎜ ⎟ ⎝2 0 2 2⎠ ⎛ 1 2 −3 4 −2 ⎞ ⎜ 4 11 −10 19 −7 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ A3 = ⎜ 4 2 −13 8 −5 ⎟ ⎟ ⎜ ⎟ ⎜−1 4 −2 12 −14⎟ ⎜ ⎟ ⎝ 3 12 13 26 13 ⎠ 2. Implemente M-funciones en MATLAB que calculen ∥A∥1 ∶= máx ( ∑ ∣aij ∣) , j=1∶n Mario De León i=1∶m 79 ∣∣A∣∣∞ ∶= máx ( ∑ ∣aij ∣) i=1∶m j=1∶n Apuntes MA-1006 5.8. EJERCICIOS I ciclo 2022 ⎛ 1 2 −3 4 −2 ⎞ ⎜ 4 11 −10 19 −7 ⎟ ⎜ ⎟ ⎜ ⎟ ⎟ Utilice la matriz A = ⎜ ⎜ 4 2 −13 8 −5 ⎟ y compare sus resultados con norm(A,1) y ⎜ ⎟ ⎜−1 4 −2 12 −14⎟ ⎜ ⎟ ⎝ 3 12 13 26 13 ⎠ norm(A, ’inf’), las cuales son funciones para las normas matriciales en MATLAB. 3. Recordemos que el número de condicionamiento de una matriz A ∈ Rn×n es κ(A) ∶= ∥A∥ ⋅ ∥A−1 ∥ Considere el sistema ⎧ ⎪ ⎪ 7x + 10y = 1 ⎨ 7 ⎪ ⎪ ⎩ 5x + 7y = 10 Utilice ∥ ⋅ ∥1 matricial para calcular κ(A) y verifique que el sistema está mal condicionado. 4. Sea A ∈ Rn×n y σ(A) = {λk }k=1∶n el conjunto de valores propios de la matriz At A, entonces se tiene que √ ∥A∥2 = máx λk k=1∶n ⎛3 −2 3 ⎞ ⎜ ⎟ Considere la matriz A = ⎜1 6 −3⎟. Determine σ(A), ρ(A), ∥A∥2 . ⎜ ⎟ ⎝1 2 1 ⎠ 5.8.2. Métodos iterativos 1. Utilizando los métodos de Jacobi, Gauss-Seidel hacia adelante y hacia atrás, aproxime la solución de los siguientes sistemas con tol = 10−3 , con norma vectorial-∞ para acotar el error relativo y utilizando x(0) como el vector nulo. ⎧ ⎪ 3x1 − x2 + x3 = 1 ⎪ ⎪ ⎪ ⎪ a) ⎨ 3x1 + 62 + 2x3 = 0 ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ 3x1 + 3x2 + 7x3 = 4 ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ b) ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ 4x1 + x2 − x3 + x4 x1 + 4x2 − x3 − x4 −x1 − x2 + 5x3 + x4 x1 − x2 + x3 + 3x4 = −2 = −1 = 0 = 1 2. Calcule ωopt de la iteración SOR para la matriz del sistema ⎛ 2 −1 0 0 ⎞ ⎛x1 ⎞ ⎛2⎞ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜−1 2 −1 0 ⎟ ⎜x2 ⎟ ⎜0⎟ ⎜ ⎟⎜ ⎟ = ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ 0 −1 2 −1⎟ ⎜x3 ⎟ ⎜2⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎝ 0 0 −1 2 ⎠ ⎝x4 ⎠ ⎝2⎠ Mario De León 80 Apuntes MA-1006 5.8. EJERCICIOS I ciclo 2022 Tomando x(0) = (0, 0, 0, 0)t calcule x(2) utilizando el método de sobrerrelajación hacia adelante. 5.8.3. Gradiente conjugado 1. Escriba un programa GradientC para el método del gradiente conjugado. Luego utilı́celo para aproximar la solución del sistema Ax = b donde ⎛5 ⎜4 ⎜ 1 ⎜ ⎜3 A= 12 ⎜ ⎜ ⎜2 ⎜ ⎝1 2. Considere el sistema 4 5 4 3 2 3 4 5 4 3 2 3 4 5 4 1⎞ 2⎟ ⎟ ⎟ 3⎟ ⎟, ⎟ 4⎟ ⎟ 5⎠ ⎛1⎞ ⎜2⎟ ⎜ ⎟ ⎜ ⎟ ⎟ b=⎜ ⎜3⎟ ⎜ ⎟ ⎜4⎟ ⎜ ⎟ ⎝5⎠ ⎧ ⎪ ⎪ 2x − y = −7 ⎨ ⎪ ⎪ ⎩ −x + 2y = 14 Compruebe que con el método del gradiente conjugado se converge a la solución exacta en no más de 2 iteraciones. 5.8.4. Newton multivariable 1. Considere el sistema no lineal ⎧ ⎪ ⎪ x2 − 10x + y 2 + 8 = 0 ⎨ 2 ⎪ ⎪ ⎩ xy + x − 10y + 8 = 0 Calcule 5 iteraciones (k = 4) del método de Newton usando x(0) = (3, −2)t . Estime el error absoluto con la norma ∥ ⋅ ∥∞ . 2. Utilice la iteración de Newton para aproximar la solución del sistema ⎧ ⎪ x2 + y 2 + z 2 = 1 ⎪ ⎪ ⎪ ⎪ 2 ⎨ 2x + y 2 − 4z = 0 ⎪ ⎪ ⎪ 2 2 ⎪ ⎪ ⎩ 3x − 4y + z = 0 t usando x(0) = ( 21 , 21 , 21 ) . Mario De León 81 Apuntes MA-1006 5.8. EJERCICIOS 5.8.5. I ciclo 2022 Adicionales 1. Modifique el script de MATLAB visto en clase de SOR hacia adelante para obtener el método de SOR hacia atrás. 2. Sea Ax = b y sean D = diag(diag(A)), L = tril(A)-diag(diag(A)), U = triu(A)-diag(diag(A)) Se tiene que los métodos de iteración en su versión matricial son los siguientes: JACOBI : x(k+1) = D−1 (b − (L + U)x(k) ) GS HACIA ADELANTE : GS HACIA ATR ÁS : SOR x(k+1) = (L + D)−1 (b − Ux(k) ) x(k+1) = (D + U)−1 (b − Lx(k) ) HACIA ADELANTE : x(k+1) = (L + ω1 D) −1 ) D − U) x(k) ) (b + (( 1−ω ω Para ver que estas versiones son equivalentes a las vistas en clase, compruebelo con el casos 3 × 3, es decir, con ⎛a11 a12 a13 ⎞ ⎜ ⎟ A = ⎜a21 a22 a23 ⎟ , b = (b1 , b2 , b3 )t ⎜ ⎟ ⎝a31 a32 a33 ⎠ 3. En MATLAB se puede calcular el número de condicionamiento de una matriz A con cond(A,p), donde p es la p−norma matricial. Compruebe el cálculo que obtuvo en el ejercicio 4.1.3. Además calcule el número de condicionamiento de H = hilb(n) con n = 10, 100, 1000, 10000 en las normas p = 1, 2 e ’inf’. Comente los resultados. 4. Se tiene que para cualquier matriz A ∈ Rn×n no singular se cumple que el número de condicionamiento en la 2−norma √ λn κ2 (A) = λ1 donde λ1 es el menor valor propio y λn es el mayor valor propio de la matriz At A. Utilice este resultado para calcular κ2 (A) con ⎛3 −2 3 ⎞ ⎜ ⎟ A = ⎜1 6 −3⎟ ⎜ ⎟ ⎝1 2 1 ⎠ Mario De León 82 Apuntes MA-1006 Capı́tulo 6 Interpolación polinomial La interpolación describe el problema de encontrar una curva (llamada interpolante) que contiene a todos los puntos (x0 , y0 ), ..., (xn , yn ) los cuales son llamados nodos. Existen muchas formas de interpolación. La teorı́a de interpolación es uan base importante para la integración numérica conocida como cuadratura. Sea Pn [x] el espacio lineal de todos los polinomios de grado a lo sumo n. Cada p ∈ Pn [x] está definido únicamente por n + 1 coeficientes. Esto nos da n + 1 grados de libertad, mientras que interpolando con x0 , ..., xn dados nos da n + 1 condiciones. Teorema 51 Sean n + 1 puntos (x0 , y0 ), ..., (xn , yn ) donde xi ≠ xj si i ≠ j. Entonces existe un único polinomio p ∈ Pn [x] tal que pn (xk ) = fk para k = 0, 1, ..., n. n Al tener el polinomio pn (x) = ∑ ak xk los coeficientes ak se determinan resolviendo el sistema (n + 1) × (n + 1) k=0 ⋯ xn0 ⎞ ⎛ a0 ⎞ ⎛ y0 ⎞ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⋯ xn1 ⎟ ⎟ ⎜ a1 ⎟ = ⎜ y1 ⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⋱ ⋮ ⎟ ⎟⎜ ⋮ ⎟ ⎜ ⋮ ⎟ ⋯ xnn ⎠ ⎝an ⎠ ⎝yn ⎠ ⎛1 x0 x20 ⎜ ⎜1 x1 x21 ⎜ ⎜ ⎜⋮ ⋮ ⋮ ⎜ ⎝1 xn x2n en donde la matriz de coeficientes es conocida como matriz de Vandermonde la cual es no singular cuando xi ≠ xj si i ≠ j. 6.1. Interpolación de L AGRANGE Definición 52 (Polinomios cardinales de Lagrange) Los polinomios cardinales de L AGRANGE están dados por n Lk (x) ∶= ∏ i=0 i≠k x − xi , x k − xi x∈R Cada polinomio cardinal de Lagrange pertenece a Pn [x]. Se puede comprobar que Lk (xj ) = 0 para j ≠ k y que Lk (xk ) = 1. 83 6.2. MÉTODO DE DIFERENCIAS DIVIDIDAS I ciclo 2022 Polinomio interpolador de Lagrange Definición 53 El polinomio interpolante está dado por n n n p(x) = ∑ yk Lk (x) = ∑yk ∏ k=0 k=0 i=0 i≠k x − xi xk − xi Lema 54 El polinomio interpolante es único. Teorema 55 (Error de interpolación) Dada f ∈ C n+1 ([a, b]) y f (xi ) = yi , donde x0 , ..., xn son distintos por pares. Sea p ∈ Pn [x] el polinomio interpolante. Entonces para cada x ∈ [a, b] existe ξ ∈ [a, b] tal que n 1 f (x) − p(x) = f (n+1) (ξ) ∏(x − xi ) (n + 1)! i=0 Además, Cota del error Lagrange ∣f (x) − p(x)∣ ≤ máx ∣f (n+1) (ζ)∣ ⋅ ζ∈[a,b] 6.2. n 1 ∏ ∣x − xi ∣ (n + 1)! i=0 Método de diferencias divididas Otra forma para describir el polinomio interpolante fue presentado por N EWTON. Para ello se necesitan los siguientes conceptos. Definición 56 (Diferencias divididas) Dados x0 , ..., xn ∈ [a, b] distintos dos a dos, sea p ∈ Pn [x] polinomio interpolador de f ∈ C n ([a, b]) en dichos puntos. El coeficiente de xn en p es denominado diferencia dividida de grado n y denotado como f [x0 , x1 , ..., xn ]. De la fórmula de Lagrange se tiene que n n f [x0 , x1 , ..., xn ] = ∑ f (xk )∏ k=0 i=0 i≠k 1 xk − xi Teorema 57 Sean x0 , x1 , ..., xk+1 distintos dos a dos, donde k ≥ 0. Entonces f [x0 , x1 , ..., xk , xk+1 ] = f [x1 , ..., xk+1 ] − f [x0 , ..., xk ] xk+1 − x0 Esta fórmula recursiva da una vı́a rápida para calcular las diferencias divididas. Esto requiere O(n2 ) operaciones y calcula los números f [x0 , ..., xi ] para i = 0, ..., n. Mario De León 84 Apuntes MA-1006 6.3. INTERPOLACIÓN DE HERMITE I ciclo 2022 Figura 6.1: Tabla de diferencias divididas. Tomado de FAUL En general, la m−ésima diferencia dividida se expresa como ⎧ ⎪ f [xi ] = f (xi ) ⎪ ⎪ ⎨ f [xi+1 , xi+2 , ..., xi+m ] − f [xi , xi+1 , ..., xi+m−1 ] ⎪ f [xi , xi+1 , ..., xi+m ] = ⎪ ⎪ xi+m − xi ⎩ Fórmula de interpolación de Newton Teorema 58 Sean x0 , x1 , ..., xn distintos dos a dos. El polinomio que pertenece a Pn [x], n−2 n−1 i=0 i=0 pn (x) ∶= f [x0 ] + f [x0 , x1 ](x − x0 ) + ... + f [x0 , ..., xn−1 ] ∏ (x − xi ) + f [x0 , ..., xn ] ∏ (x − xi ) satisface pn (xi ) = f (xi ) para i = 0, 1, ..., n. 6.3. Interpolación de H ERMITE En este método se interpolan tanto las imágenes de una función como las imágenes de su derivada. Definición 59 Sea {x0 , x1 , ..., xn } ⊂ [a, b] un conjunto soporte de puntos distintos dos a dos. Sean yi , zi números reales con i ∈ {1, ..., n}. El polinomio p2n+1 ∈ P2n+1 definido por Polinomio interpolador de Hermite n h2n+1 (x) ∶= ∑[Hi (x)yi + Ki (x)zi ] i=0 donde Mario De León ⎧ ⎪ ⎪ 1, si i = k Hk (xi ) = ⎨ ⎪ ⎪ ⎩ 0 si i ≠ k 85 y Hk′ (xi ) = 0, Apuntes MA-1006 6.4. INTERPOLACIÓN POR TRAZADORES CÚBICOS Kk (xi ) = 0 y Kk′ (xi ) I ciclo 2022 ⎧ ⎪ ⎪ 1, si i = k =⎨ ⎪ ⎪ ⎩ 0 si i ≠ k es denominado polinomio de interpolación de Hermite de grado 2n+1 para el conjunto {(xk , yk , zk ) ∶ k = 0, 1, ..., n}. De manera explı́cita se sabe que Hi (x) ∶= [Li (x)]2 (1 − 2L′i (xi )(x − xi )), Ki (x) ∶= [Li (x)]2 (x − xi ) donde Li (x) es el prolinomio de Lagrange. Teorema 60 Sea f ∈ C 2n+2 ([a, b]). Sea h2n+1 ∈ P2n+1 el polinomio de interpolación de Hermite de f en los n + 1 nodos distintos x0 , ..., xn ∈ [a, b]. Entonces para todo x ∈ [a, b] existe ξ ∈]a, b[ tal que n f (2n+2) (ξ) f (x) = h2n+1 (x) + ∏(x − xj )2 (2n + 2)! j=0 También se cumple que Cota del error Hermite ∣f (x) − h2n+1 (x)∣ ≤ 6.4. máx ∣f (2n+2) (ζ)∣ ζ∈[a,b] (2n + 2)! n ∏(x − xj )2 j=0 Interpolación por trazadores cúbicos Definición 61 Sea f ∈ C([a, b]). Un trazador interpolante de grado k para f con soporte S = {x0 , ..., xn } es una función S(x) formada por polinomios a trozos con grado a lo sumo k, la cual tiene las siguientes condiciones: 1. El polinomio de grado menor o igual que k, si (x) = S(x) ∣[xi ,xi+1 ] 2. Para todo i = 0, ..., n, S(xi ) = f (xi ). 3. si (xi+1 ) = si+1 (xi+1 ) para i = 0, 1, ..., n − 2 y j = 0, 1, ..., k − 1. (j) (j) Si k = 1 los trazadores son lineales, si k = 2 los trazadores son cuadráticos. Si k = 3 los trazadores se denominan cúbicos. Mario De León 86 Apuntes MA-1006 6.4. INTERPOLACIÓN POR TRAZADORES CÚBICOS I ciclo 2022 Trazadores cúbicos Sean los nodos (xi , yi ) con S = {x0 , ..., xn }. El trazador cúbico n−1 S(x) = ∑ χ[xi ,xi+1 ] (x) ⋅ si (x) i=0 con si (x) a lo más cúbico, cumple las siguientes condiciones: 1. S(xi ) = yi para i = 0, 1, ..., n; 2. si (xi+1 ) = si+1 (xi+1 ) para i = 0, 1, ..., n − 2; 3. s′i (xi+1 ) = s′i+1 (xi+1 ) para i = 0, 1, ..., n − 2; 4. s′′i (xi+1 ) = s′′i+1 (xi+1 ) para i = 0, 1, ..., n − 2. Estas condiciones dan un total de 4n − 2 ecuaciones y se cuenta con 4n incógnitas al tener presente que si (x) = ai (x − xi )3 + bi (x − xi )2 + ci (x − xi ) + yi A las condiciones anteriores se le agraga una de las siguientes, para completar la cantidad de ecuaciones: Frontera libre o natural: S ′′ (x0 ) = S ′′ (xn ) = 0. Frontera sujeta: S ′ (x0 ) = z0 , S ′ (xn ) = zn . Haciendo hi ∶= xi+1 − xi para i = 0, 1, ..., n − 1, Mi ∶= S ′′ (xi ) para i = 0, 1, ..., n y luego de varios cálculos se obtiene que ai = Mi+1 − Mi , 6hi bi = Mi , 2 ci = yi+1 − yi hi − (Mi+1 + 2Mi ) hi 6 para i = 0, 1, ..., n − 1. Dado que s′i (xi+1 ) = s′i+1 (xi+1 ) para i = 0, 1, ..., n − 2 se puede comprobar que hi Mi + 2(hi + hi+1 )Mi+1 + hi+1 Mi+2 = ui donde ui = 6 ( yi+2 − yi+1 yi+1 − yi − ) hi+1 hi y se obtiene un sistema lineal de n−1 ecuaciones con n+1 incógnitas. Las dos ecuaciones restantes dependen de la condición de frontera que se elija. Si se tiene frontera libre o natural entonces M0 = Mn = 0, con lo cual se obtiene el sistema Mario De León 87 Apuntes MA-1006 6.5. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 tridiagonal simétrico con n − 1 ecuaciones y n − 1 incógnitas h1 ⎛2(h0 + h1 ) ⎞ ⎛ M1 ⎞ ⎛ u1 ⎞ ⎜ ⎟⎜ M ⎟ ⎜ u ⎟ h1 2(h1 + h2 ) h2 ⎜ ⎟⎜ 2 ⎟ ⎜ 2 ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⋮ ⎟ = ⎜ ⋮ ⎟ ⋱ ⋱ ⋱ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ hn−3 2(hn−3 + hn−2 ) hn−2 ⎜ ⎟ ⎜Mn−2 ⎟ ⎜un−2 ⎟ ⎝ hn−2 2(hn−2 + hn−1 )⎠ ⎝Mn−1 ⎠ ⎝un−1 ⎠ Si se tiene frontera sujeta entonces S ′ (x0 ) = z0 , S ′ (xn ) = zn , de donde se tiene que 2h0 M0 + h0 M1 = v, con v = 6( hn−1 Mn−1 + 2hn−1 Mn = w y1 − y0 − z0 ) , h0 w = 6 (zn − yn − yn−1 ) hn−1 con lo cual se obtiene el sistema tridiagonal simétrico con n+1 ecuaciones y n+1 incógnitas h0 ⎛2h0 ⎞ ⎛ M0 ⎞ ⎛ v ⎞ ⎜ h 2(h + h ) h ⎟⎜ M ⎟ ⎜ u ⎟ 0 1 1 ⎜ 0 ⎟⎜ 1 ⎟ ⎜ 0 ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⋮ ⎟ = ⎜ ⋮ ⎟ ⋱ ⋱ ⋱ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ hn−2 2(hn−2 + hn−1 ) hn−1 ⎟ ⎜Mn−1 ⎟ ⎜un−2 ⎟ ⎜ ⎟ ⎝ hn−1 2hn−1 ⎠ ⎝ Mn ⎠ ⎝ w ⎠ 6.5. Implementación de los métodos con MATLAB Polinomio cardinal Lk (x) de Lagrange f u n c t i o n [ c]=Lk ( k , x ) n p t s=length ( x ) ; c =1; f o r i =[1:( k −1) , ( k+1): n p t s ] % i \ neq k den = x ( k ) − x ( i ) ; c = conv ( c , [1/ den , − x ( i ) / den ] ) ; end end Mario De León 88 Apuntes MA-1006 6.5. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 Polinomio interpolador de Lagrange function [ c ] = i n t e r l a g r a n g e (x , y ) n p t s=length ( x ) ; c =0; f o r k=1: n p t s c = c + Lk ( k , x ) * y ( k ) ; end end Evaluar derivada % Metodo de Horner para e v a l u a r l a d e r i v a d a % de un p o l i n o m i o function [p] = EvaluarDerivada ( c , x ) n = length ( c ) ; p = ( n−1) * c ( 1 ) ; f o r k = 2 : n−1 p = ( n−k ) * c ( k ) + p * x ; end end Polinomios cardinales de Hermite f u n c t i o n [Hk , Kk ] = HkKk( k , x ) % D e t e r m i n a r e l c o r r e s p o n d i e n t e p o l i n o m i o de L a g r a n g e Lx = Lk ( k , x ) ; % E v a l u a r l a d e r i v a d a xk dLx = E v a l u a r D e r i v a d a ( Lx , x ( k ) ) ; % C a l c u l a r Lk ˆ2 Lx2 = conv ( Lx , Lx ) ; % D e t e r m i n a r e l p o l i n o m i o Hk q = [−2* dLx , 1 + 2 * dLx * x ( k ) ] ; Hk = conv ( Lx2 , q ) ; % D e t e r i m a r e l p o l i n o m i o Kk q = [ 1 , −x ( k ) ] ; Kk = conv ( Lx2 , q ) ; end Mario De León 89 Apuntes MA-1006 6.5. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 Polinomio interpolador de Hermite function [ c ] = InterpoladorHermite (x , y , z ) n P t s = length ( x ) ; c = 0; for k = 1 : nPts % C a l c u l a r p o l i n o m i o s de H e r m i t e [Hk , Kk ] = HkKk( k , x ) ; % Acumular a l p o l i n o m i o i n t e r p o l a d o r c = c + Hk * y ( k ) + Kk * z ( k ) ; end end Polinomio interpolador de Lagrange con Diferencias Divididas function [ c ] = D i f e r e n c i a s D i v i d i d a s (x , y ) n P t s = length ( x ) ; % C a n t i d a d de p u n t o s % C a l c u l a r l o s c o e f i c i e n t e s almacenados % en v e c t o r a . a = y ; % L i s t a de c o e f i c i e n t e s de l a s D . D . for k = 2 : nPts r = a ( k −1); for i = k : nPts s = a( i ); a ( i ) = ( s−r ) / ( x ( i ) − x ( i−k +1)); r = s; end end % Calcular l o s c o e f i c i e n t e s del polinomio % i n t e r p o l a d o r en e l v e c t o r c prod = 1 ; % Almacena l o s p r o d u c t o s acumulados c = a (1); for i = 2 : nPts % A c t u a l i z a r p r o d u c t o de p o l i n o m i o s prod = conv ( prod , [ 1 , −x ( i −1)]); % Actualizar coeficientes c = [ 0 , c ] + a ( i ) * prod ; end end Mario De León 90 Apuntes MA-1006 6.5. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 Trazador cúbico natural function [ c o e f i c i e n t e s ] = trazadorCubicoNatural (x , y ) % V e r f i c a r que l o s v e c t o r e s s i e m p r e s e a n columna i f s i z e ( x , 1) == 1 % E l v e c t o r e s f i l a x = x’; end i f s i z e ( y , 1) == 1 % E l v e c t o r e s f i l a y = y ’; end %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− n P t s = length ( x ) ; % C a n t i d a d de p u n t o s % C a l c u l a r l o s v a l o r e s de h h = zeros ( nPts −1, 1 ) ; f o r i = 1 : nPts −1 h ( i ) = x ( i +1) − x ( i ) ; end % Calcular el vector u u = zeros ( nPts −2, 1 ) ; f o r i = 1 : nPts −2 u ( i ) = 6 * ( ( y ( i +2)−y ( i +1))/h ( i +1) − ( y ( i +1)−y ( i ) ) / h ( i ) ) ; end % Calcular la matriz del trazador natural A = zeros ( nPts −2, nPts −2); f o r i = 1 : nPts −2 A( i , i ) = 2 * ( h ( i ) + h ( i +1) ) ; end A = A + diag ( h ( 2 : nPts −2),−1) + diag ( h ( 2 : nPts −2) ,1); % C a l c u l a r l o s momentos M = A \ u; M = [ 0 ; M; 0 ] ; % A g r e g a r l o s momentos de l o s e x t r e m o s % Calcular los c o e f i c i e n t e s del trazador a = zeros ( nPts −1, 1 ) ; b = zeros ( nPts −1, 1 ) ; c = zeros ( nPts −1, 1 ) ; f o r i = 1 : nPts −1 a ( i ) = ( M( i +1)−M( i ) ) / ( 6 * h ( i ) ) ; b ( i ) = M( i ) / 2 ; c ( i ) = ( y ( i +1)−y ( i ) ) / h ( i ) − ( h ( i ) / 6 ) * ( M( i +1) + 2 *M( i ) ) ; end Mario De León 91 Apuntes MA-1006 6.5. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 % Agrupar l o s c o e f i c i e n t e s en una m a t r i z c o e f i c i e n t e s = [ a , b , c , y ( 1 : end −1)]; end Trazador cúbico con frontera sujeta f u n c t i o n [ c o e f i c i e n t e s ] = t r a z a d o r C u b i c o S u j e t o ( x , y , z0 , zn ) % V e r f i c a r que l o s v e c t o r e s s i e m p r e s e a n columna i f s i z e ( x , 1) == 1 % E l v e c t o r e s f i l a x = x’; end i f s i z e ( y , 1) == 1 % E l v e c t o r e s f i l a y = y ’; end %−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− n P t s = length ( x ) ; % C a n t i d a d de p u n t o s % C a l c u l a r l o s v a l o r e s de h h = zeros ( nPts −1, 1 ) ; f o r i = 1 : nPts −1 h ( i ) = x ( i +1) − x ( i ) ; end % Calcular el vector u u = zeros ( nPts −2, 1 ) ; f o r i = 1 : nPts −2 u ( i ) = 6 * ( ( y ( i +2)−y ( i +1))/h ( i +1) − ( y ( i +1)−y ( i ) ) / h ( i ) ) ; end % Agregar v y w al v e c t o r u u = [ 6 * ( ( y(2)−y ( 1 ) ) / h ( 1 ) − z0 ) ; % v u; 6 * ( zn − ( y ( n P t s)−y ( nPts −1))/h ( nPts −1) ) ] ; % w % Calcular la matriz del trazador natural A = zeros ( nPts −2, nPts −2); f o r i = 1 : nPts −2 A( i , i ) = 2 * ( h ( i ) + h ( i +1) ) ; end A = A + diag ( h ( 2 : nPts −2),−1) + diag ( h ( 2 : nPts −2) ,1); % Extneder la matriz a la del trazador s u j e t o f 1 = [2 * h ( 1 ) , h ( 1 ) , zeros ( 1 , nPts −2)]; f 2 = [ zeros ( 1 , nPts −2) , h ( nPts −1) , 2 * h ( nPts −1)]; c1 = [ h ( 1 ) ; zeros ( nPts −3, 1 ) ] ; c2 = [ zeros ( nPts −3, 1 ) ; h ( nPts −1)]; Mario De León 92 Apuntes MA-1006 6.6. EJERCICIOS I ciclo 2022 A = [ f 1 ; [ c1 , A , c2 ] ; f 2 ] ; % C a l c u l a r l o s momentos M = A \ u; % Calcular los c o e f i c i e n t e s del trazador a = zeros ( nPts −1, 1 ) ; b = zeros ( nPts −1, 1 ) ; c = zeros ( nPts −1, 1 ) ; f o r i = 1 : nPts −1 a ( i ) = ( M( i +1)−M( i ) ) / ( 6 * h ( i ) ) ; b ( i ) = M( i ) / 2 ; c ( i ) = ( y ( i +1)−y ( i ) ) / h ( i ) − ( h ( i ) / 6 ) * ( M( i +1) + 2 *M( i ) ) ; end % Agrupar l o s c o e f i c i e n t e s en una m a t r i z c o e f i c i e n t e s = [ a , b , c , y ( 1 : end −1)]; end 6.6. Ejercicios 6.6.1. Interpolación de Lagrange. Diferencias divididas. Acotación del error 1. Encuentre el polinomio de interpolación de Lagrange que aproxima la función f (x) = 2x cos(πx) en el intervalo [2, 4], utilizando el conjunto soporte S = {2, 3, 4}. 2. Considere los nodos (x0 , y0 ), (x1 , y1 ), (x2 , y2 ), con xi ≠ xj , para todo i ≠ j, y sea p2 (x) = a2 x2 + a1 x + a0 Tomando las condiciones p2 (xk ) = yk para k ∈ 0, 1, 2, a) Plantee el sistema en donde las incógnitas son a0 , a1 , a2 , de forma matricial, con la matriz de Vandermonde correspondiente. b) Muestre que la matriz de Vandermonde del inciso a) es invertible, y calcule las incógnitas ak en función de xk e yk . c) Calcule los polinomios Lk (x) y luego el polinomio de interpolación de Lagrange. Simplifique al máximo y compare los coeficientes del polinomio de interpolación de Lagrange con los coeficientes ak calculados en b). d) Calcule el polinomio interpolador de Newton, exprese explı́citamente las diferencias divididas en función de xk e yk . Luego simplifique dicho polinomio y compare con el inciso b) y el c). 3. Una función f (x) se aproxima por medio del polinomio interpolador p(x). Use la siguiente tabla para determinar el polinomio de Lagrange por diferencias divididas: Mario De León 93 Apuntes MA-1006 6.6. EJERCICIOS I ciclo 2022 x f (x) 1.6 3 2 8 2.5 14 3.2 15 4 8 4.5 2 Además determine una aproximación de f (3). 4. Considere la ecuación f (x) = 2 sen(x) − 2x2 + 1 = 0. Utilice los nodos (f (1), 1) (f (2), 2) (f (3), 3) (f (4), 4) para determinar el polinomio interpolador de Lagrange p(y). Estime el valor de f −1 (0), sabiendo que f es invertible en [1, 4]. Con base en lo anterior, ¿cuál es un valor aproximado de la solución de f (x) = 0 en el intervalo [1, 4]? (−1)k determine el polinomio interpolador x0 x 1 ⋯ x k p(x) utilizando x0 = 1, x1 = 2, x2 = 31 , x3 = 15 , x4 = 18 . 5. Sea f (x) = x1 . Sabiendo que f [x0 , x1 , ..., xk ] = 6. Sea f (x) = ex en el intervalo [1, 2]. Determine el polinomio de interpolación de Lagrange con los puntos del conjunto S = {1, 1.5, 2}. Luego encuentre una cota para el error al aproximar f por p en dicho intervalo. 6.6.2. Interpolación de Hermite. Acotación del error 1. Construya el polinomio de interpolación de Hermite que cumpla que h3 (0) = 0, h3 (1) = 1, h′3 (0) = 1 y h′3 (1) = 0. 2. Sea f (x) = ex en el intervalo [1, 2]. Determine el polinomio de interpolación de Hermite h con los puntos del conjunto S = {1, 1.5, 2}. Luego encuentre una cota para el error al aproximar f por h en dicho intervalo. 3. Calcule, con detalles, el polinomio de interpolación h(x) de Hermite para f (x) = x5 usando x0 = 0, x1 = a > 0. Determine el valor exacto de ξ ∈]0, a[ que satisface la igualdad f (x) − h(x) = f (4) (ξ) [π2 (x)]2 24 √ 4. Sea f (x) = x. Utilice el polinomio de interpolación de Hermite en los puntos {1, 4, 9} para √ aproximar el valor de 3. Calcule el error relativo de dicha aproximación. Mario De León 94 Apuntes MA-1006 6.6. EJERCICIOS I ciclo 2022 5. Sea f ∈ C 6 ([−1, 1]) y h ∈ P5 [x] el polinomio interpolador de Hermite con h(xi ) = f (xi ) y h′ (xi ) = f ′ (xi ), para xi ∈ {−1, 0, 1}. Muestre que 1 16 7 1 ′ 1 ′ 7 ∫−1 h(t) dt = 15 f (−1) + 15 f (0) + 15 f (1) + 15 f (−1) − 15 f (1) 1 Use este resultado para aproximar el valor de ∫ 6.6.3. −1 sen(x2 ) dx. Interpolación por trazadores cúbicos 1. Considere los nodos (0, 0), (1, 1), (2, 2). a) Determine el trazador cúbico con frontera natural. Grafı́quelo con MATLAB como función a trozos. b) Determine el trazador cúbico con frontera sujeta tal que S ′ (0) = S ′ (2) = 1. Grafı́quelo con MATLAB como función a trozos. c) ¿Qué puede concluir de los dos incisos anteriores? 2. Un trazador cúbico natural S en [0, 2] está definido por ⎧ ⎪ 1 + 2x − x3 , si x ∈ [0, 1[ ⎪ S(x) = ⎨ 3 2 ⎪ ⎪ ⎩ a(x − 1) + b(x − 1) + c(x − 1) + 2, si x ∈ [1, 2] Calcule los valores de a, b, c. 1 3. Sea f (x) = (3x − 2)ex y el conjunto soporte S = {−3, −3 2 , 4 , 1}. a) Determine el trazador cúbico con frontera natural. b) Determine el trazador cúbico con frontera sujeta tal que S ′ (−3) = −1 2 , S ′ (1) = 10. c) Grafı́que con MATLAB f y los trazadores determinados en los incisos previos, ası́ como los nodos asociados al conjunto soporte. Mario De León 95 Apuntes MA-1006 Capı́tulo 7 Derivación e Integración numérica 7.1. Diferenciación numérica La diferenciación numérica es un problema mal condicionado en el sentido en que pequeñas perturbaciones del input puede dar significativas diferencias en el output. Pero es importante destacar que hay problemas que que requieren aproximaciones de la derivada. Entonces se introduce el concepto de discretización del error, el cual es el error que ocurre cuando una función continua es aproximada por un conjunto discreto de valores. Esto es usualmente conocido como truncamiento local del error. Es distinto de redondear el error, el cual es el error inherente natural que surge al trabajar con la representación punto flotante. Dada una función f ∶ R → R, la derivada se define como f (x + h) − f (x) h→0 h f ′ (x) = lı́m Luego f ′ (x) puede ser estimado escogiendo h pequeño, f ′ (x) ≈ f (x + h) − f (x) h Dicha aproximación es generalmente llamada una diferencia cociente. La cuestión importante aquı́ es cómo escoger h. Supongamos que f puede ser derivada al menos tres veces, y usando TAYLOR, h2 f (x + h) = f (x) + hf ′ (x) + f ′′ (x) + O(h3 ) 2 con lo cual, f (x + h) − f (x) h ′′ f ′ (x) = − f (x) + O(h2 ) h 2 h Ası́, el valor absoluto del error discretizado es aproximadamente ∣f ′′ (x)∣. 2 96 7.1. DIFERENCIACIÓN NUMÉRICA I ciclo 2022 7.1.1. Diferencias finitas En general, diferencias finitas son expresiones matemáticas de la forma f (x + b) − f (x + a). Si una diferencia finita se divide por b − a entonces se obtiene una diferencia cociente. Tenemos los siguientes operadores con diferencias finitas: Operadores de diferencias finitas Operador esquema hacia adelante: ∆+ f (x) = f (x + h) − f (x) Operador esquema hacia atrás: ∆− f (x) = f (x) − f (x − h) Operador esquema central: δf (x) = f (x + h2 ) − f (x − h2 ) Adicionalmente podemos definir: Operador shift: Ef (x) = f (x + h) Operador promediante: µ0 f (x) = 21 (f (x + h2 ) − f (x − h2 )) Operador diferencial: Df (x) = d dx f (x) = f ′ (x) Todos los operadores conmutan y pueden ser expresados en términos de los otros: ∆+ = E − I ∆− = I − E −1 1 δ = E2 −E 2 1 1 −1 µ0 = (E 2 + E 2 ) 2 −1 Más importante, de la expansión de Taylor se tiene que E = ehD y entonces 1 1 hD ∆+ = (e − I) = D + O(h) h h 1 1 ∆− = (I − e−hD ) = D + O(h) h h Se sigue de lo anterior que los operadores de esquema hacia adelante y hacia atrás aproximan el operador diferencial, o en otras palabras, la primera derivada con un error de O(h). Se puede mostrar que la combinación del operador esquema central y el operador promediante dan una mejor aproximación de la primera derivada. De hecho, se puede lograr mayor Mario De León 97 Apuntes MA-1006 7.1. DIFERENCIACIÓN NUMÉRICA I ciclo 2022 precisión haciendo lo siguiente: 1 1 (∆+ + ∆− ) = (ehD − I + I − e−hD ) = D + O(h2 ) 2h 2h Derivadas de orden superior pueden ser aproximadas aplicando los operadores diferencia muchas veces. Por ejemplo, la derivada de orden n esquemas hacia adelante, atrás y central están dados por n n ∆n+ f (x) = ∑(−1)i ( )f (x + (n − i)h) i i=0 n n ∆n− f (x) = ∑(−1)i ( )f (x − ih) i i=0 n n n δ n f (x) = ∑(−1)i ( )f (x + ( − i) h) 2 i i=0 Combinación de diferencias de orden superior pueden ser usadas para construir mejores aproximaciones. Por ejemplo, 1 1 −1 (∆+ − ∆2+ )f (x) = (f (x + 2h) − 4f (x + h) + 3f (x)) h 2 2h el cual puede escribirse como −1 2 −1 2hD (E − 4E + 3I) = (e − 4ehD + 3I) = D + O(h2 ) 2h 2h Mario De León 98 Apuntes MA-1006 7.2. INTEGRACIÓN NUMÉRICA I ciclo 2022 7.2. Integración numérica Vamos a considerar la evaluación numérica de las integrales de la forma b I = ∫ f (x) dx a Cuadratura Una regla de cuadratura aproxima dicha integral por n I ≈ Qn (f ) = ∑ wi f (xi ) i=1 Los puntos xi , i = 1, ..., n son llamados las abscisas escogidas tal que a ≤ x1 < ... < xn ≤ b. Los coeficientes wi son denominados los pesos. Las reglas de cuadratura son derivadas al integrar polinomios interpoladores de la función evaluada en las abcisas. Usualmente solo pesos positivos son permitidos puesto que sumar o restar términos se determina por el signo de la función en ese punto. Además esto evita pérdida de significancia. 7.2.1. La regla del punto medio y la regla del trapecio La regla más simple surge de interpolar una función por una constante, la cual es un polinomio de grado cero, y es razonable que dicha constante tome el valor del punto medio en el intervalo [a, b]. Esto es conocido como regla del punto medio. La fórmula es Regla del punto medio I ≈ (b − a)f ( a+b ) 2 El punto medio es la única abcisa y su peso es igual a b − a. Teorema 62 La regla del punto medio tiene el siguiente término de error a+b 1 ′′ 3 ∫a f (x) dx = (b − a)f ( 2 ) + 24 f (ξ)(b − a) b en donde ξ es algún punto en el intervalo [a, b]. Alternativamente, podemos integrar el polinomio lineal cuyos nodos son (a, f (a)) y (b, f (b)). Esta es la regla del trapecio descrita por la fórmula Regla del trapecio I≈ Mario De León b−a [f (a) + f (b)] 2 99 Apuntes MA-1006 7.2. INTEGRACIÓN NUMÉRICA I ciclo 2022 Teorema 63 La regla del trapecio tiene el siguiente término de error b ∫a f (x) dx = b−a 1 [f (a) + f (b)] − f ′′ (ξ)(b − a)3 2 12 en donde ξ es algún punto en el intervalo [a, b]. 7.2.2. La regla de S IMPSON 1/3 El término del error puede reducirse significativamente si se integra un polinomio cuadrático, que posea nodos en los puntos extremos y punto medio del intervalo. Esto se conoce como regla de S IMPSON y la fórmula es Regla de Simpson 1/3 I≈ b−a a+b [f (a) + 4f ( ) + f (b)] 6 2 Teorema 64 La regla de Simpson tiene el siguiente término de error b ∫a f (x) dx = b−a a+b 1 b−a 5 [f (a) + 4f ( ) + f (b)] − f (4) (ξ) ( ) 6 2 90 2 en donde ξ es algún punto en el intervalo [a, b]. 7.2.3. Cuadraturas de N EWTON –C OTES La idea de aproximar f usando polinomio interpolante en abcisas igualmente espaciadas se puede extender a n puntos. Dichas reglas con llamadas de N EWTON –C OTES. Se distinguen dos tipos de reglas de Newton–Cotes: tipo cerrado, las cuales usan valores de la función en los puntos lı́mite del intervalo; y los de tipo abierto, los cuales no usan los valores de la función en los puntos lı́mite del intervalo. Las reglas cerradas son (b − a)/2 [f (a) + f (b)] Trapecio (b − a)/6 [f (a) + 4f ((a + b)/2) + f (b)] Simpson Simpson Boole 3 8 (b − a)/8[f (a) + 3f ((2a + b)/3) + 3f ((a + 2b)/3) + f (b)] (b − a)/90[7f (a) + 32f ((3a + b)/4) + 12f ((a + b)/2) +32f ((a + 3b)/4) + 7f (b)] y sus términos de error son Trapecio −(b − a)3 /12 f ′′ (ξ) Simpson −(b − a)5 /2880 f (4) (ξ) Simpson Boole Mario De León 3 8 −(b − a)5 /6480f (4) (ξ) −(b − a)7 /1935360f (6) (ξ) 100 Apuntes MA-1006 7.2. INTEGRACIÓN NUMÉRICA I ciclo 2022 Las reglas abiertas son Punto medio (b − a)/2 [f (a) + f (b)] sin nombre (b − a)/2[f ((2a + b)/3) + f ((a + 2b)/3)] Milne (b − a)/3[2f ((3a + b)/4) − f ((a + b)/2) + 2f ((a + 3b)/4)] y sus términos de error son Punto medio (b − a)3 /24 f ′′ (ξ) sin nombre (b − a)3 /36f ′′ (ξ) Milne 7(b − a)5 /23040f (4) (ξ) Reglas de orden superior de Newton–Cotes son raramente utilizadas, por dos razones. Primeramente, para n grandes algunos de los pesos son negativos, lo cual da inestabilidad numérica. Segundo, métodos basados en polinomios de orden alto con puntos equiespaciados tienen las mismas desventajas de los polinomios de interpolación de grados altos: ocurre el fenómeno de R UNGE. 7.2.4. Cuadraturas compuestas Las reglas compuestas también son conocidas como reglas repetidas, iteradas o extendidas. La idea es separar la integral dada en integrales “más pequeñas” (usualmente el intervalo es equiespaciado) aplicando (usualmente) la misma regla de cuadratura en cada subintervalo y finalmente se suman los resultados. b−a , entonces las reglas Sea N la cantidad de subintervalos equiespaciados tales que h = N compuestas clásicas son las siguientes, con sus respectivos errores: Punto medio compuesto: b ∫a N f (x) dx ≈ h ∑ f (a + (i − 21 )h) i=1 N 1 1 ′′ f (ξi )h3 ≤ máx ∣f ′′ (ξ)∣N h3 = O(h2 ) ξ∈[a,b] 24 24 i=1 ∣E∣ = ∑ en donde cada ξi ∈ [a + (i − 1)h, a + ih]. Trapecio compuesto: N −1 b h h ∫a f (x) dx ≈ 2 f (a) + h ∑ f (a + ih) + 2 f (b) i=1 N 1 ′′ 1 f (ξi )h3 ≤ máx ∣f ′′ (ξ)∣N h3 = O(h2 ) ξ∈[a,b] 12 12 i=1 ∣E∣ = ∑ en donde cada ξi ∈ [a + (i − 1)h, a + ih]. Mario De León 101 Apuntes MA-1006 7.2. INTEGRACIÓN NUMÉRICA I ciclo 2022 Simpson 1/3 compuesto: N −1 N b h 1 ∫a f (x) dx ≈ 6 [f (a) + 2 ∑ f (a + ih) + 4 ∑ f (a + (i − 2 )h) + f (b)] i=1 i=1 ∣E∣ ≤ 1 máx ∣f (4) (ξ)∣h4 = O(h4 ) 180 ξ∈[a,b] en donde cada ξi ∈ [a + (i − 1)h, a + ih]. 7.2.5. Polinomios ortogonales Sea w ∶]a, b[→ R+ función continua e integrable, la cual se denomina función peso. Dadas dos funciones f, g se define b ⟨f, g⟩w ∶= ∫ f (x)g(x)w(x) a Lo anterior es un producto interno definido en el espacio de funciones integrables con respecto al peso w, e induce una norma ∥f ∥ = ⟨f, f ⟩w 1/2 Definición 65 Sea {ϕj }∞ j=0 un conjunto de polinomios, donde cada ϕj tiene exactamente grado j. Dicho conjunto se denomina sistema de polinomios ortogonales si ⟨ϕj , ϕk ⟩w = 0 si y solo si j ≠ k. Se muestran algunas funciones de peso para obtener polinomios ortogonales. Considere α, β > −1. Nombre Legendre Jacobi Chebyshev (primer tipo) Chebyshev (segundo tipo) Laguerre Hermite Notación Pn (α,β) Pn Tn Un Ln Hn Intervalo [−1, 1] ] − 1, 1[ ] − 1, 1[ [−1, 1] [0, +∞[ R Función Peso w(x) ≡ 1 w(x) = (1 − x)α (1 + x)β w(x) = (1 − x2 )−1/2 w(x) = (1 − x2 )1/2 w(x) = e−x 2 w(x) = e−x Cuadro 7.1: Funciones de pesos y polinomios ortogonales. De forma general, dado cualquier peso w es posible obtener un sistema de polinomios ortogonales con respecto a w. La forma usual es utilizar el proceso de ortogonalización de GramMario De León 102 Apuntes MA-1006 7.2. INTEGRACIÓN NUMÉRICA I ciclo 2022 Schmidt sobre la base de polinomios canónica {xj }∞ j=0 : ϕ0 (x) = 1 ϕ1 (x) = x − ⋮ ⋮ ⟨x, ϕ0 ⟩w ϕ0 ⟨ϕ0 , ϕ0 ⟩w k ϕk+1 (x) = x k+1 −∑ j=0 ⟨xk+1 , ϕj ⟩w ϕj ⟨ϕj , ϕj ⟩w Teorema 66 Sea el sistema de polinomios ortogonales {ϕj }∞ j=0 en el intervalo ]a, b[ con función de peso w(x). Entonces ϕj con j ≥ 1 tiene exactamente j ceros reales y distintos, los cuales se encuentran en ]a, b[. 7.2.6. Cuadraturas gaussianas Como las abscisas equidistantes causan problemas en las reglas de cuadratura, el paso siguiente es escoger las abscisas x0 , ...xn tal que la fórmula será precisa para el polinomio con el mayor grado posible (que es n + 1). Dicha regla es conocida como cuadratura gaussiana o cuadratura de Gauss–Christoffel. Las cuadraturas gaussianas basadas en polinomios ortogonales se describen de la siguiente manera. Sean x0 , ..., xn raı́ces del n+1−ésimo polinomio ortogonal pn+1 . Sea Li el i−ésimo polinomio cardinal de Lagrange para dichos puntos. Entonces los pesos de la cuadratura son calculados como b Wi = ∫ Li (x)w(x) dx a y entonces se tiene que n b ∫a f (x)w(x) dx ≈ G (f ) ∶= ∑ Wi f (xi ) i=1 Teorema 67 La aproximación previa es exacta para polinomios de grado a lo sumo 2n + 1. Los pesos de la cuadratura gaussiana son positivos: consideremos L2k (x), el cual es un polinomio de grado 2n, y como la fórmula de cuadratura es exacta hasta ese orden se tiene que 0<∫ b a n L2k (x)w(x) dx = ∑ Wi L2k (xi ) = Wk i=0 Cuadraturas de Gauss-Legendre La cuadratura gaussiana más común es cuando ]a, b[=] − 1, 1[ y w(x) ≡ 1. Los polinomios ortogonales son los llamados polinomios de Legendre. Para construir la regla de cuadratura, se deben determinar los ceros del n + 1−ésimo polinomio ortogonal de Legendre y calcular los pesos asociados. Mario De León 103 Apuntes MA-1006 7.2. INTEGRACIÓN NUMÉRICA I ciclo 2022 Por ejemplo, cuando n = 1 el polinomio ortogonal de Legendre es x2 − 13 , cuyas raı́ces son ± √13 . √ Los polinomios cardinales de Lagarange asociados son (± 3x + 1)/2 y al integrarlos en [−1, 1] son iguales a 1. Por tanto, la cuadratura de Gauss-Legendre de dos puntos está dada por 1 1 −1 ∫−1 f (x) dx ≈ f ( √ ) + f ( √ ) 3 3 la cual es correcta para polinomios hasta grado 3. La siguiente tabla muestra los casos n ≤ 4: n 2n + 1 1 2 3 5 3 7 4 9 Abscisas √ ±1/ 3 √0 ± 3/5 √ √ ± (3 − 2 6/5)/7 √ √ ± (3 + 2 6/5)/7 √ 0 √ ± 31 (5 − 2 10/7) √ √ ± 31 (5 + 2 10/7) Pesos 1 8/9 5/9 √ (18 + 30)/36 √ (18 − 30)/36 128/225 √ (322 + 13 70)/900 √ (322 − 13 70)/900 Cuadro 7.2: Abscisas y pesos para cuadraturas de Gauss-Legendre con n ≤ 5. Teorema 68 Si f ∈ C 2n+2 ([a, b]) y la integral es aproximada por una regla de cuadratura gaussiana, entonces n b f (2n+2) (ξ) b 2 ∫a f (x)w(x) dx − ∑ wi f (xi ) = (2n + 2)! ∫a [πn+1 (x)] w(x) dx i=1 para algún ξ ∈]a, b[, donde πn+1 (x) ∶= (x − x0 )⋯(x − xn ) ∈ Pn+1 [x]. Teorema 69 Sea f una función continua en [a, b] y w una función positiva, continua e integrable en ]a, b[. Entonces lı́m G (f ) = ∫ n→∞ Mario De León b a f (x)w(x) dx 104 Apuntes MA-1006 7.2. INTEGRACIÓN NUMÉRICA I ciclo 2022 7.2.7. Implementación de Trapecio y Simpson compuestas No definiremos f en un script aparte, sino que usaremos funciones anónimas: nombre funcion = @(argumentos) expresion funcion Por ejemplo: f= @( x ) exp(−x ˆ2) Método del Trapecio Compuesto f u n c t i o n [ c ] = trapecioCompuesto ( f , a , b , n ) % aproximar i n t e g r a l e s usando t r a p e c i o compuesto % Entradas : f −−−− f u n c i o n a i n t e g r a r % [ a , b ] −−−− i n t e r v a l o de i n t e g r a c i o n % n −−−− c a n t i d a d de nodos de i n t e r p o l a c i o n % Salida : c −−−− v a l o r de l a i n t e g r a l d e f i n i d a aproximado h = ( b−a ) / n ; s = 0; f o r i = 1 : n−1 s = s + f ( a+i * h ) ; end c = ( h / 2 ) * ( f ( a ) + 2* s + f ( b ) ) ; end Método de Simpson compuesto f u n c t i o n [ c ] = ReglaCompuestaSimpson ( f , a , b , n ) % E s t e programa aproxima i n t e g r a l e s u t i l i z a n d o l a r e g l a compuesta de % Simpson . % Entradas : f −−−− f u n c i o n a i n t e g r a r % [ a , b]−−−− i n t e r v a l o de i n t e g r a c i o n % n −−−− c a n t i d a d de nodos de i n t e r p o l a c i o n % Salida : c −−−− v a l o r de l a i n t e g r a l d e f i n i d a aproximado h = ( b−a ) / n ; s = 0; s1 = 0 ; Mario De León 105 Apuntes MA-1006 7.3. EJERCICIOS I ciclo 2022 f o r j =1:(n/2)−1 s = s + f ( a+2* j * h ) ; end f o r j =1:(n /2) s1 = s1 + f ( a+(2* j −1)* h ) ; end c = ( h / 3 ) * ( f ( a)+2* s+4* s1+f ( b ) ) ; end 7.3. Ejercicios 7.3.1. Cuadraturas de Newton-Cotes simples y compuestas 1. Utilice la regla del trapecio y la de Simpson para aproximar I =∫ 0 π 2 dx 1 + cos x 4 2. Calcule una aproximación para la integral ∫ ex dx con base en la regla 0 a) del trapecio compuesta, con 4 subintervalos. b) de Simpson compuesta, con 4 subintervalos. 3. Considere la integral π I = ∫ cos(x2 ) dx ≈ 0.5656935142... 0 a) Utilice las reglas del trapecio y de Simpson para aproximar I. Determine cotas para los errores respectivos al aproximar la integral. b) Utilice las versiones compuestas de ambas reglas con 4 subintervalos. c) ¿Cuántos subintervalos (el valor de m visto en clase) se requieren en cada regla para obtener aproximaciones con una tolerancia de 10−3 ? 4. Sea f ∈ C 2 (R). Considere la regla de cuadratura conocida como cuadratura del rectángulo: b a+b ∫a f (t) dt ≈ (b − a) ⋅ f ( 2 ) a) Considere f (x) = 2x + 1 en el intervalo I = [0, 3]. utilice la regla de cuadratura anterior 3 para calcular una aproximación de A = ∫ f (t) dt. Realice un dibujo preciso de la 0 gráfica de f y represente geométricamente las áreas calculadas. Mario De León 106 Apuntes MA-1006 7.3. EJERCICIOS I ciclo 2022 b) Particione el intervalo I en 6 subintervalos de la misma longitud y utilice la cuadratura dada en cada subintervalo (esto es: usar la versión compuesta de la cuadratura) para obtener una aproximación del área bajo la curva de f (x). Represente gráficamente la situación. c) Calcule el valor exacto de A y compare con la aproximación obtenida en el inciso b). 5. La regla de Simpson 3/8 compuesta es la siguiente: I≈ en donde h = m−1 m−1 m−2 3h [f (x0 ) + 3 ∑ f (x3i+1 ) + 3 ∑ f (x3i+2 ) + 2 ∑ f (x3i+3 ) + f (x3m )] 8 i=0 i=0 i=0 b−a −x2 x2 . Considere f (x) = e− 2 = exp ( ). 3m 2 1 a) Calcule la aproximación de ∫ f (x) dx por medio de esta regla compuesta, usando −1 m = 3. b) Para comprobar sus cálculos modifique el código del script ReglaCompuestaSimpson, creando uno nuevo para la regla compuesta de Simpson 3/8. 7.3.2. Coeficientes indeterminados 1. Considere una cuadratura en [−1, 1] tal que 1 ∫−1 f (x) dx ≈ w0 f (−α) + w1 f (α) con α ∈]0, 1[. Teniendo en cuenta que dicha cuadratura es exacta para polinomios de grado menor o igual que 3, determine α, w0 y w1 . ¿Es posible encontrar valores para esos parámetros tal que la cuadratura sea exacta para polinomios de grado 4? 2. Dado el intervalo [a, b] y el conjunto soporte S = {a, a+b 2 , b}, se tiene la siguiente regla de cuadratura: b a+b ∫ f (x) dx ≈ w0 f (a) + w1 f ( 2 ) + w2 f (b) a Determine el valor de w0 , w1 , w2 sabiendo que la regla de cuadratura es exacta para polinomios de grado menor o igual que 2. Esta es la regla de Simpson 1/3. Compruebe que también dicha regla de cuadratura es exacta para polinomios de grado 3. 3. La regla de Simpson 3/8 está dada por b I = ∫ f (x) dx ≈ a b−a 2a + b a + 2b [f (a) + 3f ( ) + 3f ( ) + f (b)] 8 3 3 Deduzca dicha fórmula sabiendo que dicha regla es exacta para polinomios de grado menor Mario De León 107 Apuntes MA-1006 7.3. EJERCICIOS I ciclo 2022 o igual que 3, y calculando los valores de los pesos I ≈ w0 f (a) + w1 f ( 2a + b a + 2b ) + w2 f ( ) + w3 f (b) 3 3 4. Determine los pesos w0 y w1 y los puntos x0 y x1 tales que la aproximación 1 ∫0 f (x) dx ≈ w0 f (x0 ) + w1 f (x1 ) sea exacta para polinomios hasta grado 3 7.3.3. Acotación de errores 1 2 1. Determine una cota del error al aproximar ∫ e−x dx con las reglas del trapecio y Simpson 0 simples. 2. Considere la integral π I =∫ 0 cos(x2 ) dx ≈ 0.5656935142... Determine cotas para los errores del trapecio y Simpson simples al aproximar la integral. 7.3.4. Cuadraturas Gaussianas 1. Observe el siguiente video: https://youtu.be/PWApmpx7wds 2. Considere la cuadratura gaussiana 1 ∫−1 f (x) ≈ W0 f (x0 ) + W1 f (x1 ) la cual es exacta para polinomios de grado menor o igual que 3. Determine los valores de W0 , W1 , x0 y x1 . Utilice dicha cuadratura y un cambio de variable apropiado para aproximar el valor de la integral 2 2 −x ∫−2 e dx 3. Considere la base {1, x, x2 , x3 } de P3 [x]. a) Utilice el proceso de ortogonalización de Gram-Schmidt (producto interior con w(x) = 1 en el intervalo ]−1, 1[) para calcular el conjunto ortogonal {ϕ0 , ϕ1 , ϕ2 , ϕ3 } base de P3 [x]. b) Determine los ceros de ϕ3 (x) y establezca la fórmula de cuadratura gaussiana 1 ∫−1 f (x) dx ≈ W0 f (x0 ) + W1 f (x1 ) + W2 f (x2 ) en donde x0 , x1 , x2 son las raı́ces de ϕ3 (x). Mario De León 108 Apuntes MA-1006 7.3. EJERCICIOS I ciclo 2022 c) Utilice la cuadratura del inciso b) para aproximar la integral 1 x ∫−1 e cos(x) dx Calcule el valor exacto de la integral (sin usar aproximaciones, recuerde que se usa integración por partes). Compare la aproximación con el valor exacto (use error relativo). 4. Investigue cómo implementar en MATLAB cuadraturas gaussianas. Mario De León 109 Apuntes MA-1006 Capı́tulo 8 Solución numérica de ecuaciones diferenciales ordinarias Deseamos aproximar la solución exacta de la ecuación diferencial ordinaria ∂y = y′ = f (t, y), ∂t t≥0 en donde y ∈ Rn y la función f ∶ R × Rn → Rn es suficientemente “buena”. La ecuación es acompañada por la condición inicial y(0) = y0 . La siguiente definición es central en el análisis de ODEs. Definición 70 (Función Lipschitz continua) f es Lipschitz continua si existe una cota L ≥ 0 tal que ∥f (t, v) − f (t, w)∥ ≤ L∥v − w∥, t ∈ [t0 , T ], v, w ∈ Rn . La continuidad en sentido de Lipschitz significa que las pendientes de todas las rectas secantes a la función entre todos los puntos posibles v y w están acotadas por una constante positiva. Luego, una función Lipschitz continua está limitada en cuánto y qué tan rápido puede cambiar. En la teorı́a de ecuaciones diferenciales, la Lipschitz continuidad es una condición central en el Teorema de Picard–Lindelöf, el cual garantiza la existencia y unicidad de una solución para un problema de valor inicial. Para nuestro análisis de soluciones numéricas podemos asumir que f es analı́tica y que siempre podremos tener localmente su serie de Taylor. Queremos calcular yn+1 ≈ y(tn+1 ), n = 0, 1, ..., desde y0 , y1 , ..., yn , donde tk = t0 + ih y el paso h > 0 es pequeño. Teorema 71 (Teorema de Picard) Sea f una función real definida y continua en R = [t0 − a, t0 + a] × [y0 − b, y0 + b], sea ∣f (t, y)∣ ≤ M para todo (t, y) ∈ R. Suponga que f es Lipschitz continua en y con constante L. Entonces el problema ⎧ ⎪ ⎪ y ′ (t) = f (t, y(t)) ⎨ ⎪ ⎪ ⎩ y(t0 ) = y0 110 8.1. MÉTODOS DE UN PASO I ciclo 2022 tiene solución única en I = [t0 − mı́n{a, Mb }, t0 + mı́n{a, Mb }] Al tener y ′ (t) = f (t, y(t)) ⇒ ∫ t t0 y ′ (u) du = y(t) − y(t0 ) = ∫ ⇒ y(t) = y0 + ∫ t t0 t t0 f (u, y(u)) du f (u, y(u)) du Iteración de Picard Viendo esto último como problema de punto fijo se puede establecer que yk+1 (t) = y0 + ∫ t t0 f (x, yk (x)) dx la cual es conocida como la iteración de Picard, en donde y0 (t) = y0 . Ahora, tomando t0 ≤ t ≤ T y particionando el intervalo [t0 , T ] tal que t0 < t1 < ... < tn−1 < tn = T , T − t0 en donde ti = t0 + ih y h = , para i = 0, 1, ..., n. Aplicando integración con respecto a t en n [tk , tk+1 ] se tiene que y(tk+1 ) = y(tk ) + ∫ tk+1 tk f (t, y(t)) dt Haciendo y(tk ) ≈ yk se tiene que y(tk+1 ) = yk + ∫ tk+1 tk f (t, y(t)) dt, k = 0, 1, ..., n − 1. Entonces se obtiene el conjunto de puntos {(tk , yk )}nk=0 y con estos se puede usar interpolación para aproximar la solución. 8.1. Métodos de un paso Estos consisten en calcular yk+1 a partir de yk . Considerando que ⎧ ⎪ ⎪ ⎪ y(t0 ) = y0 tk+1 ⎨ ⎪ y = y + f (t, y(t)) dt ⎪ k+1 k ∫t ⎪ ⎩ k algunos de estos métodos son los siguientes. 1. Método de Euler hacia adelante: Tomando f (t, y(t)) ≈ f (tk , yk ) en [tk , tk+1 ], se tiene que yk+1 = yk + (tk+1 − tk )f (tk , yk ) Haciendo h = tk+1 − tk , el método de Euler hacia adelante es yk+1 = yk + h ⋅ f (tk , yk ) Mario De León 111 Apuntes MA-1006 8.2. MÉTODOS DE RUNGE–KUTTA I ciclo 2022 2. Método de Euler hacia atrás: Similar al anterior pero haciendo f (t, y(t)) ≈ f (tk+1 , yk+1 ) en [tk , tk+1 ], el método es yk+1 = yk + h ⋅ f (tk+1 , yk+1 ) El método de Euler hacia adelante es explı́cito, pues solo se van sustituyendo los valores de tk , yk en la fórmula, mientras que el método de Euler hacia atrás es implı́cito y se resuelve con algún método de ecuación no lineal. 3. Método del trapecio implicito: o también conocido como método de C RANK–N ICOLSON y se basa en la regla del trapecio para aproximar integrales: h [f (tk , yk ) + f (tk+1 , yk+1 )] 2 el cual también es un método implı́cito. yk+1 = yk + 4. Método del trapecio explı́cito de H EUN: consiste en combinar el método explı́cito de Euler hacia adelante y el del trapecio implı́cito:1 yk+1 = yk + 8.2. h [f (tk , yk ) + f (tk+1 , yk + hf (tk , yk ))] 2 =ŷk+1 Métodos de R UNGE –KUTTA El orden de precisión del método de E ULER es uno, por ello se necesitan métodos que mejoren la aproximación de dicho método. Entre estos se consideran los métodos de R UNGE –KUTTA los cuales evalúan puntos intermedios entre (tk , yk ) y (tk+1 , yk+1 ). El método de Runge–Kutta (RK) de orden s tiene la siguiente expresión: s yn+1 = yn + h ∑ bi ki i=1 donde h = tn+1 − tn . Los coeficientes ki son términos de aproximación intermedios, evaluados de forma local en f s ki = f (tn + hci , yn + ∑ aij kj ) , i = 1, ..., s j=1 con aij , bi , ci coeficientes propios del esquema numérico elegido dependiendo de la regla de cuadratura usada. Los esquemas de Runge–Kutta pueden ser explı́citos o implı́citos, en dependencia de las constantes aij del esquema. Si la matriz (aij ) es triangular inferior con aij = 0 para todo j = i, ...s, los esquemas son explı́citos. 1 Esto se conoce en general como predictor–corrector, en donde el método explı́cito predice y el implı́cito corrige. Mario De León 112 Apuntes MA-1006 8.2. MÉTODOS DE RUNGE–KUTTA I ciclo 2022 Para efectos nuestros, consideremos la familia de métodos ⎧ ⎪ k1 = f (tk , yk ) ⎪ ⎪ ⎪ ⎪ ⎨ k2 = f (tk + αh, yk + βhk1 ) ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ yk+1 = yk + h(ak1 + bk2 ) en donde k1 , k2 son pasos intermedios, α, β, a, b son parámetros a determinar explı́citamente. Para mejorar el método de Euler se hace el siguiente esquema: ⎧ ⎪ k1 = f (tk , yk ) ⎪ ⎪ ⎪ ⎪ ⎨ k2 = f (tk + αh, yk + αhk1 ) ⎪ ⎪ ⎪ h ⎪ ⎪ ⎩ yk+1 = yk + 2α ((2α − 1)k1 + k2 ) Si en este esquema previo se escoge α = 1 se obtiene el método del trapecio explı́cito: ⎧ ⎪ k1 = f (tk , yk ) ⎪ ⎪ ⎪ ⎪ ⎨ k2 = f (tk + h, yk + hk1 ) = f (tk+1 , yk + hk1 ) ⎪ ⎪ ⎪ h ⎪ ⎪ ⎩ yk+1 = yk + 2 (k1 + k2 ) h Ô⇒ yk+1 = yk + [f (tk , yk ) + f (tk+1 , yk + hf (tk , yk )] 2 Ahora, si α = 12 se obtiene lo que se conoce como el método de Euler modificado, método del punto medio o también método RK2: ⎧ ⎪ k1 = f (tk , yk ) ⎪ ⎪ ⎪ ⎪ ⎨ k2 = f (tk + h2 , yk + h2 k1 ) ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ yk+1 = yk + hk2 h h Ô⇒ yk+1 = yk + hf (tk + , yk + f (tk , yk )) 2 2 Otros métodos usuales de Runge–Kutta son: Método RK3 (Runge–Kutta de tercer orden): ⎧ ⎪ k1 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ k2 ⎨ ⎪ k3 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ yk+1 Mario De León = = = = f (tk , yk ) f (tk + h2 , yk + h2 k1 ) f (tk + h, yk + h(2k2 − k1 )) yk + h6 (k1 + 4k2 + k3 ) 113 Apuntes MA-1006 8.3. FÓRMULAS MULTIPASO I ciclo 2022 Método RK4 (Runge–Kutta de cuarto orden): ⎧ ⎪ k1 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ k2 ⎪ ⎪ ⎪ ⎪ ⎪ k 3 ⎨ ⎪ ⎪ ⎪ k4 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ yk+1 ⎪ ⎪ ⎩ = = = = f (tk , yk ) f (tk + h2 , yk + h2 k1 ) f (tk + h2 , yk + h2 k2 ) f (tk + h, yk + hk3 ) h = yk + (k1 + 2k2 + 2k3 + k4 ) 6 Los coeficientes de los h’s en la primera entrada y los de las h’s de las ki ’s en la segunda entrada se tabulan en lo que se conoce como tablas de B UTCHER. A continuación las tablas de Butcher de RK3 y de RK4, respectivamente: 0 0 1 2 1 2 1 −1 2 1 6 8.3. 2 3 1 2 1 2 1 2 0 1 2 1 0 0 1 1 6 1 6 1 3 1 3 1 6 Fórmulas multipaso Los métodos de m pasos expresan yk+1 en términos de yk−j con j = 0, 1, ..., m − 1, para m ≥ 2, en donde el cálculo también podrı́a ser implı́cito. Los métodos de Runge–Kutta son esquemas de un paso, los cuales incrementan el orden de precisión del método de Euler, mediante evaluaciones de puntos intermedios. En los métodos multipasos se realizan evaluaciones de f en puntos previos. Consideremos los métodos multipasos lineales para aproximar la solución al problema de valor inicial de Cauchy mediante m pasos, lo cual se expresa como m m j=0 j=0 ∑ αk+1−j ⋅ yk+1−j = h ∑ βk+1−j ⋅ f (tk+1−j , yk+1−j ) en donde los α’s y β’s son reales. Tiene que darse que αk+1 ≠ 0 para que el esquema esté bien definido, además αk−m+1 y βk−m+1 no son ambos nulos para que ası́ el esquema sea de m pasos. Si βk+1 = 0 el esquema es explı́cito. Mario De León 114 Apuntes MA-1006 8.3. FÓRMULAS MULTIPASO I ciclo 2022 8.3.1. Métodos de Adams-Bashfort (AB) y Adams-Moulton (AM) Considerando la iteración genérica ⎧ ⎪ ⎪ ⎪ y0 dado, t k+1 ⎨ ⎪ f (t, y(t)) dt yk+1 = yk + ∫ ⎪ ⎪ tk ⎩ Se utiliza alguna cuadratura de Newton–Cotes para calcular una aproximación de la integral. La función g(t) ∶= f (t, y(t)) se interpola usando polinomio interpolador de Lagrange. Asúmase que fk ∶= f (tk , yk ) con k = 0, 1, ..., n. Entonces, si al interpolar se utilizan los nodos (tk−(m−1) , fk−(m−1) ) (tk−(m−2) , fk−(m−2) ) ⋮ (tk−2 , fk−2 ) (tk−1 , fk−1 ) (tk , fk ) el esquema es explı́cito y se denomina método de Adams–Bashforth de m−pasos. Si se agrega el nodo (tk+1 , fk+1 ): (tk−(m−1) , fk−(m−1) ) (tk−(m−2) , fk−(m−2) ) ⋮ (tk−2 , fk−2 ) (tk−1 , fk−1 ) (tk , fk ) (tk+1 , fk+1 ) el esquema es implı́cito y se denomina método de Adams–Moulton de m−pasos. Figura 8.1: Métodos multipasos (2,3 y 4) de Adams–Bashfort (AB) y de Adams–Moulton (AM). De la diapositiva de S EQUEIRA. Mario De León 115 Apuntes MA-1006 8.3. FÓRMULAS MULTIPASO 8.3.2. I ciclo 2022 Predictor-Corrector de cuarto orden (PC4) El esquema explı́cito de cuarto orden es el siguiente: ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ Mario De León y0 dado, y1 , y2 , y3 ← RK4 h (55fk − 59fk−1 + 37fk−2 − 9fk−3 ← AB4 ŷk+1 = yk + 24 h yk+1 = yk + 24 [9f (tk+1 , ŷk+1 ) + 19fk − 5fk−1 + fk−2 ] ← AM3 116 Apuntes MA-1006 I ciclo 2022 8.4. 8.4. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB Implementación de los métodos con MATLAB Euler hacia adelante f u n c t i o n [M] = F o r w a r d E u l e r ( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % E n t r a d a s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− v a l o r i n i c i a l % N −−−− numero de s u b i n t e r v a l o s % Salidas : M −−−− m a t r i z con a p r o x i m a c i o n e s en l o s p u n t o s t i h = ( b−a ) /N; M( 1 , 1 ) = a ; M( 1 , 2 ) = y0 ; f o r i =1:N M( i +1 ,1) = a+i * h ; M( i +1 ,2) = M( i ,2)+ h * f (M( i , 1 ) , M( i , 2 ) ) ; end end Método RK2 f u n c t i o n [M] = metodoRK2 ( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % E n t r a d a s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− c o n d i c i o n i n i c i a l % N −−−− numero de s u b i n t e r v a l o s % Salidas : M −−−− m a t r i z con a p r o x i m a c i o n e s en l o s p u n t o s t i h = ( b−a ) /N; M( 1 , 1 ) = a ; M( 1 , 2 ) = y0 ; f o r i =1:N M( i +1 ,1) = a+i * h ; Mario De León 117 Apuntes MA-1006 8.4. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 M( i +1 ,2) = M( i ,2)+ h * f (M( i ,1)+h /2 , M( i ,2)+h/2 * f (M( i , 1 ) , M( i , 2 ) ) ) ; end end Método RK3 f u n c t i o n [M]= metodoRK3 ( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % I n p u t s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− v a l o r i n i c i a l % N −−−− numero de s u b i n t e r v a l o s % Output : M −−−− m a t r i z con a p r o x i m a c i o n e s y i en l o s p u n t o s t i h = ( b−a ) /N; M( 1 , 1 ) = a ; M( 1 , 2 ) = y0 ; f o r i =1:N M( i +1 ,1) = a+i * h ; k1 = h * f (M( i , 1 ) , M( i , 2 ) ) ; k2 = h * f (M( i , 1 ) + h /2 , M( i , 2 ) + k1 / 2 ) ; k3 = h * f (M( i +1 ,1) , M( i , 2 ) + 2 * k2−k1 ) ; M( i +1 ,2) = M( i ,2)+ ( 1 / 6 ) * ( k1+4*k2+k3 ) ; end end Método RK4 f u n c t i o n [M]= metodoRK4 ( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % I n p u t s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− v a l o r i n i c i a l % N −−−− numero de s u b i n t e r v a l o s % Output : M −−−− m a t r i z con a p r o x i m a c i o n e s y i en l o s p u n t o s t i Mario De León 118 Apuntes MA-1006 8.4. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 h = ( b−a ) /N; M( 1 , 1 ) = a ; M( 1 , 2 ) = y0 ; f o r i =1:N M( i +1 ,1) = a+i * h ; k1 = h * f (M( i , 1 ) , M( i , 2 ) ) ; k2 = h * f (M( i , 1 ) + h /2 , M( i , 2 ) + k1 / 2 ) ; k3 = h * f (M( i , 1 ) + h /2 , M( i , 2 ) + k2 / 2 ) ; k4 = h * f (M( i +1 ,1) , M( i , 2 ) + k3 ) ; M( i +1 ,2) = M( i ,2)+ ( 1 / 6 ) * ( k1+2*k2+2*k3+k4 ) ; end end Método AB2 f u n c t i o n [M] = AB2( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % usando e l metodo de Adams−B a s h f o r d de 2 p a s o s , u t i l i z a n d o % e l metodo de RK4 para aproximar l a s c o n d i c i o n e s i n i c i a l e s % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % E n t r a d a s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− c o n d i c i o n i n i c i a l % N −−−− numero de s u b i n t e r v a l o s % Salidas : M −−−− m a t r i z con a p r o x i m a c i o n e s en l o s p u n t o s t i h = ( b−a ) /N; R = metodoRK4 ( f , a , b , y0 , N) ; % s e puede cambiar por RK2 o RK3 M( 1 , 1 ) = a ; M( 2 , 1 ) = a+h ; M( 1 , 2 ) = y0 ; M( 2 , 2 ) = R ( 2 , 2 ) ; f o r i = 2 :N M( i +1 ,1) = a+i * h ; M( i +1 ,2) = M( i ,2)+ ( h /2) * (3 * f (M( i , 1 ) , M( i ,2)) − f (M( i −1 ,1) , M( i − 1 ,2 ) )) ; end end Mario De León 119 Apuntes MA-1006 8.4. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 Método AB3 f u n c t i o n [M] = AB3( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % usando e l metodo de Adams−B a s h f o r d de 3 p a s o s , u t i l i z a n d o % e l metodo de RK para aproximar l a s c o n d i c i o n e s i n i c i a l e s % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % E n t r a d a s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− c o n d i c i o n i n i c i a l % N −−−− numero de s u b i n t e r v a l o s % Salidas : M −−−− m a t r i z con a p r o x i m a c i o n e s en l o s p u n t o s t i h = ( b−a ) /N; R = metodoRK3 ( f , a , b , y0 , N) ; % s e puede cambiar por o t r o RK M( 1 , 1 ) = a ; M( 1 , 2 ) = y0 ; M( 2 , 1 ) = a+h ; M( 2 , 2 ) = R ( 2 , 2 ) ; M( 3 , 1 ) = a+2*h ; M( 3 , 2 ) = R ( 3 , 2 ) ; f o r i = 3 :N M( i +1 ,1) = a+i * h ; M( i +1 ,2) = M( i ,2)+ ( h /12) * ( 23 * f (M( i , 1 ) , M( i , 2 ) ) . . . −16* f (M( i −1 ,1) , M( i −1,2))+5 * f (M( i −2 ,1) , M( i − 2 , 2 ) )) ; end end Método AB4 f u n c t i o n [M] = AB4( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % usando e l metodo de Adams−B a s h f o r d de 4 p a s o s , u t i l i z a n d o % e l metodo de RK4 para aproximar l a s c o n d i c i o n e s i n i c i a l e s % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % E n t r a d a s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− c o n d i c i o n i n i c i a l Mario De León 120 Apuntes MA-1006 8.4. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 % N −−−− numero de s u b i n t e r v a l o s % Salidas : M −−−− m a t r i z con a p r o x i m a c i o n e s en l o s p u n t o s t i h = ( b−a ) /N; R = metodoRK4 ( f , a , b , y0 , N) ; M( 1 , 1 ) M( 2 , 1 ) M( 3 , 1 ) M( 4 , 1 ) = = = = a; a+h ; a+2*h ; a+3*h ; M( 1 , 2 ) M( 2 , 2 ) M( 3 , 2 ) M( 4 , 2 ) = = = = y0 ; R(2 ,2); R(3 ,2); R(4 ,2); f o r i = 4 :N M( i +1 ,1) = a+i * h ; M( i +1 ,2) = M( i ,2)+ ( h /24) * ( 55 * f (M( i , 1 ) , M( i , 2 ) ) . . . −59* f (M( i −1 ,1) , M( i −1,2))+37 * f (M( i −2 ,1) , M( i − 2 , 2 ) ) . . . −9* f (M( i −3 ,1) , M( i −3 ,2)) ) ; end end Método AM2 f u n c t i o n [M] = AM2( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % usando e l metodo de Adams−Moulton de 2 p a s o s , u t i l i z a n d o % e l metodo de RK4 para aproximar l a s c o n d i c i o n e s i n i c i a l e s % para p r e d e c i r w ( i +1) en cada i t e r a c i o n s e usa RK4 % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % E n t r a d a s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− c o n d i c i o n i n i c i a l % N −−−− numero de s u b i n t e r v a l o s % Salidas : M −−−− m a t r i z con a p r o x i m a c i o n e s en l o s p u n t o s t i h = ( b−a ) /N; R = metodoRK4 ( f , a , b , y0 , N) ; M( 1 , 1 ) = a ; M( 2 , 1 ) = a+h ; M( 1 , 2 ) = y0 ; M( 2 , 2 ) = R ( 2 , 2 ) ; f o r i = 2 :N M( i +1 ,1) = a+i * h ; Mario De León 121 Apuntes MA-1006 8.4. IMPLEMENTACIÓN DE LOS MÉTODOS CON MATLAB I ciclo 2022 M( i +1 ,2) = M( i ,2)+ ( h /12) * ( 5 * f (M( i +1 ,1) , R( i + 1 , 2 ) ) . . . +8* f (M( i , 1 ) , M( i ,2)) − f (M( i −1 ,1) , M( i −1 ,2)) ) ; end end Método AM3 f u n c t i o n [M] = AM3( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % usando e l metodo de Adams−Moulton de 3 p a s o s , u t i l i z a n d o % e l metodo de RK4 para aproximar l a s c o n d i c i o n e s i n i c i a l e s % para p r e d e c i r w ( i +1) en cada i t e r a c i o n s e usa RK4 % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % E n t r a d a s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− c o n d i c i o n i n i c i a l % N −−−− numero de s u b i n t e r v a l o s % Salidas : M −−−− m a t r i z con a p r o x i m a c i o n e s en l o s p u n t o s t i h = ( b−a ) /N; R = metodoRK4 ( f , a , b , y0 , N) ; M( 1 , 1 ) = a ; M( 1 , 2 ) = y0 ; M( 2 , 1 ) = a+h ; M( 2 , 2 ) = R ( 2 , 2 ) ; M( 3 , 1 ) = a+2*h ; M( 3 , 2 ) = R ( 3 , 2 ) ; f o r i = 3 :N M( i +1 ,1) = a+i * h ; M( i +1 ,2) = M( i ,2)+ ( h /24) * ( 9 * f (M( i +1 ,1) , R( i + 1 , 2 ) ) . . . +19* f (M( i , 1 ) , M( i ,2)) −5 * f (M( i −1 ,1) , M( i − 1 , 2 ) ) . . . + f (M( i −2 ,1) , M( i −2 ,2)) ) ; end end Método AM4 f u n c t i o n [M] = AM4( f , a , b , y0 , N) % e s t e metodo aproxima l a s o l u c i o n a l a e c u a c i o n d i f e r e n c i a l % usando e l metodo de Adams−Moulton de 4 p a s o s , u t i l i z a n d o Mario De León 122 Apuntes MA-1006 8.5. EJERCICIOS I ciclo 2022 % e l metodo de RK4 para aproximar l a s c o n d i c i o n e s i n i c i a l e s % para p r e d e c i r w ( i +1) en cada i t e r a c i o n s e usa RK4 % y ’ = f ( t , y ) , a<= t <= b con c o n d i c i o n i n i c i a l y ( a ) = y0 % E n t r a d a s : f ( t , y ) −−− f u n c i o n % [ a , b ] −−− i n t e r v a l o % y0 −−−− c o n d i c i o n i n i c i a l % N −−−− numero de s u b i n t e r v a l o s % Salidas : M −−−− m a t r i z con a p r o x i m a c i o n e s en l o s p u n t o s t i h = ( b−a ) /N; R = metodoRK4 ( f , a , b , y0 , N) ; M( 1 , 1 ) M( 2 , 1 ) M( 3 , 1 ) M( 4 , 1 ) = = = = a; a+h ; a+2*h ; a+3*h ; M( 1 , 2 ) M( 2 , 2 ) M( 3 , 2 ) M( 4 , 2 ) = = = = y0 ; R(2 ,2); R(3 ,2); R(4 ,2); f o r i = 4 :N M( i +1 ,1) = a+i * h ; M( i +1 ,2) = M( i ,2)+ ( h /720) * ( 251 * f (M( i +1 ,1) , R( i + 1 , 2 ) ) . . . +646* f (M( i , 1 ) , M( i ,2)) −264 * f (M( i −1 ,1) , M( i − 1 , 2 ) ) . . . +106* f (M( i −2 ,1) , M( i −2,2))−19 * f (M( i −3 ,1) , M( i −3 ,2)) ) ; end end 8.5. 8.5.1. Ejercicios Funciones tipo Lipschitz. Iteración de Picard 1. Muestre que la función f (t, y) = y + e−y + e−t es Lipschitz continua en la variable y en el conjunto D = {(t, y) ∈ R2 ∶ 0 ≤ t ≤ 1, 0 ≤ y ≤ +∞} 2. Verifique que la función f (t, y) = e−t arctan(y) satisface la condición de Lipschitz en la segunda variable para t ∈ [1, +∞[. Encuentre la constante de Lipschitz. 2 3. Considere el problema y ′ (t) = nty, y(0) = 1 La iteración de Picard está dada por ⎧ ⎪ ⎪ ⎪ ϕ0 (t) = y0 t ⎨ ⎪ ϕ = y + ⎪ k+1 0 ∫t f (x, ϕk (x)) dx ⎪ ⎩ 0 Mario De León 123 Apuntes MA-1006 8.5. EJERCICIOS I ciclo 2022 Muestre que nj ⋅ t2j j j=0 2 ⋅ j! k ϕk (t) = ∑ y concluya que y(t) = lı́m ϕk (t) = ent 2 /2 k→+∞ 8.5.2. Métodos de un paso. Runge–Kutta. Multipasos 1. Aplique el método de Euler hacia adelante para ⎧ ⎪ ⎪ y ′ = cos(2t) + sen(2t), ⎨ ⎪ 1 ⎪ ⎩ y(0) = en el intervalo [0, 1] utilizando 5 puntos. Determine el error relativo de cada aproximación. Mejore la aproximación aplicando el método predictor–corrector de Heun. Determine el error relativo de cada aproximación con este último método. 1 2. Aproxime ∫ e−x dx utilizando el método RK3, con h = 0.25 0 2 3. Considere el problema de Cauchy: t ⎧ ⎪ ⎪ ⎪ y ′ − 3 ∫ e−2(t−x) y(x) dx = 4e−2t , para t ∈ [0, 1] ⎨ 0 ⎪ ⎪ y(0) = 4 ⎪ ⎩ t a) Use la regla del trapecio para aproximar la integral ∫ e−2(t−w) y(w) dw. 0 b) Reescriba el problema con base en la información del inciso a) y utilice el método RK4 con paso h = 0.25 para determinar una aproximación de y(0.75). c) Resuelva el problema de manera exacta (use transformada de Laplace) y compare el valor exacto y(0.75) con el valor aproximado del inciso b). 4. Muestre que el método de Adams-Bashfort de tres pasos corresponde a yk+1 = yk + h [23fk − 16fk−1 + 5fk−2 ] 12 5. Encuentre una aproximación para y(1), donde ⎧ ⎪ y ′ = −5y + 5t2 + 2t, ⎪ ⎨ 1 ⎪ ⎪ ⎩ y(0) = 2 . utilizando el método PC4 con paso h = 0.2 Mario De León 124 Apuntes MA-1006 8.5. EJERCICIOS I ciclo 2022 6. Elabore un script en donde se utilice el método de predictor-corrector con el método de Euler hacia atrás y el método de Euler hacia adelante, es decir ⎧ ⎪ y0 dado, ⎪ ⎪ ⎪ ⎪ ⎨ ŷk+1 = yk + hf (tk , yk ), ⎪ ⎪ ⎪ ⎪ = yk + hf (tk+1 , ŷk+1 ) ⎪ ⎩ yk+1 7. Implemente el método PC4 en MATLAB y compruebe los cálculos que realizó en el ejercicio 7.2.5. 8. Aplique el método de predictor–corrector de Heun hacia adelante para ⎧ ⎪ ⎪ y ′ = cos(2t) + sen(2t), ⎨ ⎪ 1 ⎪ ⎩ y(0) = en el intervalo [0, 1] utilizando 5 puntos. Grafique todo junto: los nodos y la gráfica de la función exacta en MATLAB, ası́ como el polinomio interpolador de Lagrange que contiene los nodos (tk , yk ) del método de Heun. (Este es parte del problema 7.2.1.) 9. Considere el siguiente problema de valor inicial: ⎧ ⎪ y ′ = arctan(y) − tet , ⎪ ⎨ ⎪ ⎪ ⎩ y(−1.2) = 2 para − 1.2 ≤ t ≤ 1.2 Aplique el método PC4 para aproximar la solución del problema de valor inicial con h = 0.4 Mario De León 125 Apuntes MA-1006 Capı́tulo 9 Tareas y exámenes 9.1. 9.1.1. Tareas 3 ciclo 2021 Tarea 1 Precisión Finita 1) Sea ξ = (N )10 , con N =“suma de números de carnet (sin la letra inicial) de cada integrante del subgrupo”. Transforme ξ a su representación binaria y luego a su representación en el sistema de precisión simple según el standard de la IEEE. Haga lo mismo pero representándo ξ en precisión doble. Fundamentos de MATLAB 1) Sea n =“número de subgrupo asignado” Considere el intervalo I = ]−5 − n1 , 5 + n1 [ y la función definida sobre I: ⎧ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ g(x) = ⎨ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ n, x2 + 2x + 3, 2 ne−x , nx − 9, si x < −2, si − 2 ≤ x ≤ 1, si 1 < x < 4, si 4 ≤ x Trace la gráfica de dicha función utilizando MATLAB. Además debe contener información como el tı́tulo de la gráfica “Gráfica de una función f a trozos”, etiqueta: x para el eje horizontal, y para el eje vertical y los criterios (fórmulas) de las funciones de cada trozo. 2) Escriba una M-función function [A] = AreaTriangulo(a, b, c) que calcule el área de un triángulo a partir de las longitudes de sus lados: A= √ p(p − a)(p − b)(p − c), con p = a+b+c 2 La función debe emitir mensaje de error en los casos en que no se pueda calcular el área: 126 9.1. TAREAS 3 CICLO 2021 I ciclo 2022 a) Si alguna de las longitudes recibidas es menor o igual a cero; b) Si no se satisface la desigualdad triangular. Ecuaciones no lineales √ √ √ 1) Sea ξ = 2 + 2 + 2 + ⋯. Plantee una función ϕ para utilizar el método del punto fijo. Postule un intervalo adecuado y pruebe que ϕ es contractiva. Aproxime la raı́z con una tolerancia de 10−3 . Muestre que ξ = 2 (ası́ que no utilice x0 = 2). ¿Cuál es el error relativo de la aproximación obtenida con respecto a la raı́z de x − ϕ(x) = 0? 2) Sea {xn }∞ n=0 tal que xn → ξ. Se define la sucesión x̂n = xn − (xn+1 − xn )2 xn+2 − 2xn+1 + xn Se sabe que x̂n → ξ más rápido. a) Muestre1 que la ecuación cos x = x3 . tiene una raı́z en el intervalo [0, 1]. Utilice el método de Newton-Rhapson para definir la sucesión {xn }, iniciando con x0 = 12 . Calcule x6 . b) Dé la forma explı́cita de la sucesión x̂n , usando la sucesión de Newton-Rhapson del inciso a). Calcule x̂6 y construya una tabla comparando los valores de las aproximaciones calculadas con {xn } y {x̂n }. 9.1.2. Tarea 2 Métodos iterativos 1) Calcule ωopt de la iteración SOR para la matriz del sistema ⎛ 2 −1 0 0 ⎞ ⎛x1 ⎞ ⎛2⎞ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜−1 2 −1 0 ⎟ ⎜x2 ⎟ ⎜0⎟ ⎜ ⎟⎜ ⎟ = ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ 0 −1 2 −1⎟ ⎜x3 ⎟ ⎜2⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎝ 0 0 −1 2 ⎠ ⎝x4 ⎠ ⎝2⎠ Tomando x(0) = (0, 0, 0, 0)t calcule x(2) utilizando el método de sobrerrelajación hacia adelante. 2) Sea Ax = b y sean D = diag(diag(A)), L = tril(A)-diag(diag(A)), U = triu(A)-diag(diag(A)) Se tiene que los métodos de iteración en su versión matricial son los siguientes: JACOBI : x(k+1) = D−1 (b − (L + U)x(k) ) 1 Recuerde que se trabaja en radianes. Mario De León 127 Apuntes MA-1006 9.1. TAREAS 3 CICLO 2021 GS HACIA ADELANTE : GS HACIA ATR ÁS : I ciclo 2022 x(k+1) = (L + D)−1 (b − Ux(k) ) x(k+1) = (D + U)−1 (b − Lx(k) ) Para ver que estas versiones son equivalentes a las vistas en clase, compruebelo con el casos 3 × 3, es decir, con ⎛a11 a12 a13 ⎞ ⎜ ⎟ A = ⎜a21 a22 a23 ⎟ , b = (b1 , b2 , b3 )t ⎜ ⎟ ⎝a31 a32 a33 ⎠ Interpolación 1) Sea f (x) = ex en el intervalo I = [1, 2]. a) Determine el polinomio de interpolación de Lagrange p2 (x) y el polinomio de interpolación de Hermite h5 (x) con los puntos del conjunto S = {1, 1.5, 2}. b) Encuentre una cota para el error al aproximar f por p y por h en I. c) Grafique con MATLAB todo junto: la función f , los polinomios de interpolación del inciso a), ası́ como los nodos (pares ordenados). Puede ayudarse viendo el siguiente ejemplo: Ejemplo % Funcion f=@( x ) (2ˆ x ) * cos ( p i * x ) ; % Nodos X=[2 3 4 ] ; Y=[ f (X ( 1 ) ) f (X ( 2 ) ) f (X ( 3 ) ) ] ; % P o l i n o m i o i n t e r p o l a d o r de L a g r a n g e c2= i n t e r l a g r a n g e (X , Y) x =1:0.01:5; x1=[2 3 4 ] ; y1=[ f (X ( 1 ) ) f (X ( 2 ) ) f (X ( 3 ) ) ] ; y =2.ˆ( x ) . * cos ( p i * x ) ; p l o t ( x1 , y1 , ’ bo ’ , x , y , ’ r ’ , x , p o l y v a l ( c2 , x ) , ’ g ’ , ’ L i n e w i d t h ’ , 0 . 5 ) g r i d on t i t l e ( ’ G r a f i c a s de $f$ y $p {2}$ ’ , . . . ’ Interpreter ’ , ’ latex ’ ) % Formulas en LaTex x l a b e l ( ’ $x$ ’ , ’ I n t e r p r e t e r ’ , ’ l a t e x ’ ) y l a b e l ( ’ $y$ ’ , ’ I n t e r p r e t e r ’ , ’ l a t e x ’ ) l g=legend ( ’ Nodos ’ , ’ $ f ( x)=2ˆ{x }\ c o s (\ p i x ) $ ’ , ’ $p 2 ( x)=18xˆ2−102x+136$ ’ , . . . Mario De León 128 Apuntes MA-1006 9.1. TAREAS 3 CICLO 2021 I ciclo 2022 ’ Location ’ , ’ north ’ ) ; s e t ( lg , ’ I n t e r p r e t e r ’ , ’ l a t e x ’ ) 2) Sea f ∈ C 6 ([−1, 1]) y h ∈ P5 [x] el polinomio interpolador de Hermite con h(xi ) = f (xi ) y h′ (xi ) = f ′ (xi ), para xi ∈ {−1, 0, 1}. Muestre que 1 16 7 1 ′ 1 ′ 7 ∫−1 h(t) dt = 15 f (−1) + 15 f (0) + 15 f (1) + 15 f (−1) − 15 f (1) 1 Use este resultado para aproximar el valor de ∫ 9.1.3. −1 sen(x2 ) dx. Tarea 3 Cuadraturas 1) Sea f integrable en [−1, 1]. Considere la regla de cuadratura de dos puntos de Gauss-Legendre, la cual está dada por √ √ 1 − 3 3 ∫−1 f (t) dt ≈ f ( 3 ) + f ( 3 ) b a) Deduzca la fórmula compuesta de la cuadratura anterior, para aproximar ∫ f (t) dt, con a 4 subintervalos equiespaciados. Implemente dicha cuadratura en MATLAB. π b) Calcule una aproximación de ∫ cos(t2 ) dt usando la regla compuesta del inciso a) ası́ 0 como la regla compuesta del Trapecio, con 4 subintervalos equiespaciados. ¿Cuál de las 2 aproximaciones se acerca más al valor de la integral exacta? Mario De León 129 Apuntes MA-1006 9.2. EXÁMENES 3 CICLO 2021 I ciclo 2022 2) Construya los polinomios ortogonales de grado 0, 1, 2 en el intervalo ]0, 1[ para w(x) = 1 − ln(x). Determine la cuadratura Gaussiana para ∫ f (x)w(x) dx en este caso (donde se asu0 me que hay condiciones sobre f para que la integral exista. Note que la integral es impropia de segunda especie). Ecuaciones diferenciales ordinarias 1) Considere el siguiente problema de valor inicial, donde m =“número de subgrupo”: ⎧ ⎪ ⎪ y ′ (t) = 2mt + 2, ⎨ ⎪ ⎪ ⎩ y(0) = 1 0≤t≤1 Muestre que el método del trapecio implı́cito da los valores exactos de y(tk ), con tk = kh, donde h = n1 con n ∈ N>0 y k = 1, 2, ..., n. 2) Considere el problema de valor inicial ⎧ ⎪ y ′ = 1 + (t − y)2 , ⎪ ⎨ ⎪ ⎪ ⎩ y(2) = 1 2 ≤ t ≤ 3, a) Determine la función solución exacta y(t) del problema. Calcule y(3). b) Utilice h = 0.25 para aproximar el valor de y(3) usando los métodos de: Euler hacia adelante, Heun, RK2, RK3 y RK4. Compare con el valor exacto calculando el error relativo de cada aproximación. c) Utilice h = 0.25 y el método de Adams-Bashfort (AB3) para aproximar y(3). Compare con las aproximaciones del inciso b). 9.2. 9.2.1. Exámenes 3 ciclo 2021 1 examen parcial 1-) (12 puntos) Sea √ g(x) = n + sen(x) a estudiada en el intervalo I = [0, 2]. a) Determine el conjunto total de valores reales del parámetro a para los cuales la función g sea contractiva en I y además g(I) ⊂ I. Calcule explı́citamente el valor de la constante de contracción L en función del parámetro a. b) Elabore un script en donde los inputs sean: g, a, x0 , tol, y los outputs sean: el iterMax téorico de punto fijo, la aproximación x y la cantidad de iteraciones llevadas a cabo con la Mario De León 130 Apuntes MA-1006 9.2. EXÁMENES 3 CICLO 2021 I ciclo 2022 tolerancia impuesta. Elija un valor cualquiera de a dentro del conjunto que determinaron en el inciso a) y pruebe el script mostrando los resultados. c) Si tol = 0.02, ¿cuál es el error relativo al aproximar la raı́z de la ecuación x = g(x), con el valor de a que eligió en el inciso b)? 2 2-) (14 puntos) Considere el sistema cuadrado Ax = b, con A tridiagonal tal que A = 2*eye(N+3) - diag(diag(ones(N+2)),1) - diag(diag(ones(N+2)),-1) b = [n*ones(N, 1); N*ones(3,1)] a) Muestre que la factorización A = LU con L triangular inferior unitaria y U triangular superior es única. Luego resuelva el sistema original planteando los sistemas triangulares Ly = b, Ux = y. b) Determine una factorización A = QR con el método de reflexiones de Householder en donde Q es ortogonal y R es triangular superior. Muestre el cálculo de cada matriz Hk de Householder en cada paso. Resuelva el sistema original utilizando dicha factorización. 3-) (12 puntos) Un proyectil es lanzado con una velocidad inicial v0 y con una inclinación √ , α en un túnel de altura h, obtiene su máximo alcance cuando α es tal que sen(α) = 2gh v02 2 donde g ≈ 9.8 m/s corresponde a la aceleración gravitatoria terrestre. a) Elabore un script de método de Newton-Rhapson tal que [ x, k , T] = NewRapT(f, df, x0, tol, iterMax) en el cual se muestre en una tabla T los valores de cada xk de la sucesión, ası́ como su evaluación f (xk ) y el paso k−ésimo. b) Aproxime el valor de α con una tolerancia de tol = 10−3 usando el método de NewtonRhapson, cuando v0 = 10 (1 + N4n−1 ) m/s y h = 1 m. Muestre los cálculos previos con el script del inciso a). 9.2.2. 2 examen parcial 1) (10 puntos) Construya 3 M-funciones x jac = JacobiM(A,b,x0, k) x gsf = GaussSeidelFM(A,b,x0, k) y x gsb = GaussSeidelBM(A,b,x0, k) 2 Este inciso es solo para los subgrupos de 3 personas. Mario De León 131 Apuntes MA-1006 9.2. EXÁMENES 3 CICLO 2021 I ciclo 2022 que utilicen unicamente la forma matricial vista en la Tarea 2 y que reciban como inputs la matriz A, el vector b y la cantidad k que cuenta las iteraciones (por ejemplo: k = 0 debe dar x0 ). Compruebe sus aproximaciones con el sistema ⎛ 2 −1 0 0 ⎞ ⎛x1 ⎞ ⎛2⎞ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜−1 2 −1 0 ⎟ ⎜x2 ⎟ ⎜0⎟ ⎜ ⎟⎜ ⎟ = ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ 0 −1 2 −1⎟ ⎜x3 ⎟ ⎜2⎟ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎝ 0 0 −1 2 ⎠ ⎝x4 ⎠ ⎝2⎠ tomando x(0) = (0, 0, 0, 0)t para calcular la aproximación x(2) . 2) (10 puntos) Sea f (x) = esen(x) en el intervalo [0, 10]. Utilice 11 y 21 nodos equiespaciados para calcular los polinomios de interpolación de Lagrange p10 y p20 . Además grafique f, p10 y p20 en un mismo dibujo. Para ello utilice la M-función interlagrange vista en clase, ası́ como la función linspace(a,b,k) y polyval. 3) (10 puntos) Sea f integrable en [−1, 1]. Considere la regla de cuadratura de dos puntos de Gauss-Legendre, la cual está dada por 1 ∫−1 √ √ 3 − 3 )+f ( ) f (t) dt ≈ f ( 3 3 π Utilice la versión compuesta en MATLAB para calcular una aproximación de ∫ cos(t2 ) dt con 0 kπ 10 el conjunto soporte S = {tk }k=0 con tk = . 10 4) (10 puntos) Utilizando los scripts de Euler hacia adelante, Heun (trapecio explı́cito), RK2, RK3, RK4, AB2, AB3, AB4 y PC4, realice un script en donde los inputs sean (f,a,b,y0,h) y el output sea una única tabla que contenga por columnas i, ti y cada una de las aproximaciones yi de cada método. Compruebe su script con el problema de valor inicial y h = 0.1: ⎧ ⎪ y ′ = 1 + (t − y)2 , ⎪ ⎨ ⎪ ⎪ ⎩ y(2) = 1 Mario De León 132 2 ≤ t ≤ 3, Apuntes MA-1006 Bibliografı́a [1] Bornemann, F. Numerical Linear Algebra. A concise introduction with MATLAB and Julia, Springer, Munich, 2018. [2] Burden, R., Faires, D. Análisis numérico. Cengage Learning, Novena Edición, México, 2011. [3] Calvo, J. G. MA-0501 Análisis Numérico I. Notas del curso. Universidad de Costa Rica, 2020. [4] Chapra, S., Canale, R. Métodos numéricos para ingenieros. McGraw–Hill, Sétima Edición, México, 2014. [5] Chavarrı́a, J. Métodos numéricos. Editorial Tecnológica de Costa Rica, Cartago, 2014. [6] Echevarrı́a, R. Apuntes de MATLAB orientados a métodos numéricos elementales. Departamento de Ecuaciones Diferenciales y Análisis Numérico, Universidad de Sevilla, 2020. [7] Faul, A. C. A Concise Introduction to Numerical Analysis. CRC Press, Florida, 2016. [8] Gutiérrez, J.; Olmos, M.; Casillas, J. Análisis Numérico. McGraw-Hill, México, 2010. [9] Karris, S. Numerical Analysis Using MATLAB and Excel. Orchard Publications, Third Edition, California, 2007. [10] Kincaid, D., Cheney, W. Numerical Analysis. Mathematics of Scientific Computing. AMS, Rhode Island, 2002. [11] Sastry, S. Introductory methods of Numerical Analysis, PHI Privated Limited, Nueva Delhi, 2006. [12] Sequeira F. Segura E., Salas O., Introducción a MATLAB. Editorial Universidad de Costa Rica, 2020. [13] Süli, E.; Mayers, D.F., An Introduction to Numerical Analysis, Cambridge University Press, 2006. 133