Uploaded by Luis Solano

Apuntes MA1006

advertisement
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
Download