You are on page 1of 158

ANÁLISIS NUMÉRICO I

Universidad Juárez Autónoma de Tabasco


División Académica de Ciencias Básicas
Maestría en Ciencias en Matemáticas Aplicadas

Justino Alavez Ramírez1


y
Jesús López Estrada2

Última actualización: 23 de noviembre de 2010

1
División Académica de Ciencias Básicas – UJAT
2
Facultad de Ciencias – UNAM
Presentación

La computación científica es una disciplina de las matemáticas aplicadas que involucra


-prácticamente- a todos las áreas de la matemática, a varias ramas de la computación y a
la modelación matemática, la cual desempeña un papel relevante en el desarrollo científico
y tecnológico de todo país. Y es la modelación matemática el medio que permite a esta dis-
ciplina vincular a la matemática con las ciencias y las tecnologías. Pero resulta que en las
aplicaciones tienen lugar problemas matemáticos prácticos que involucran varios áreas de las
matemáticas básicas, cuya solución -aún cuando se sepa que existe y es única- muy rara vez se
puede obtener explícitamente (es decir, se puede expresar analíticamente); así, no queda otra
alternativa que calcular -de manera eficiente, en tiempo y precisión- una solución numérica
aproximada de tal solución mediante la ayuda de una computadora digital. Es aquí, precisa-
mente, en donde interviene la parte medular de la computación científica, el análisis numérico.
Esto es, el conjunto de herramientas matemáticas e instrumentos de cálculo -computadora y
software- que permiten resolver numéricamente de manera eficaz problemas matemáticos.

Por otro lado, la presente nota es el resultado de los apuntes presentados en los cursos de
Análisis Numérico I que se imparte en la Facultad de Ciencias de la Universidad Nacional
Autónoma de México, y de Análisis Numérico I que se imparte en la Maestría en Ciencias
en Matemáticas Aplicadas, en la División Académica de Ciencias Básicas de la Universidad
Juárez Autónoma de Tabasco. La versión preliminar se presentó en el semestre Febrero -
Junio de 2008, y desde entonces se ha venido corrigiendo y ampliándose cada semestre que
se imparte el curso.

Quedaremos agradecidos con el lector por su comprensión al poner a su disposición unas


notas aún en desarrollo, y por sus valiosos comentarios y sugerencias.

Justino Alavez Ramírez


justino.alavez@basicas.ujat.mx

Jesús López Estrada


jele@lya.fciencias.unam.mx

ii
Índice general

Presentación ii

1. Introducción a la computación científica y el análisis numérico 1


1.1. Repaso de FORTRAN 77 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. El compilador WATFOR-87 . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2. Prácticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. Modelos matemáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3. Fuentes de aproximación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4. Error absoluto y error relativo . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5. Propagación del error de los datos y error computacional . . . . . . . . . . . 16
1.6. Nociones de análisis de error prospectivo y retrospectivo . . . . . . . . . . . 18
1.7. Nociones de sensibilidad numérica y número de condición . . . . . . . . . . . 19
1.8. Nociones de estabilidad y exactitud . . . . . . . . . . . . . . . . . . . . . . . 23
1.9. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2. Aritmética de punto flotante 25


2.1. Representación de números reales en bases arbitrarias . . . . . . . . . . . . . 25
2.2. Sistemas de punto flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.1. Números subnormales . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3. Redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4. Operaciones básicas de punto flotante . . . . . . . . . . . . . . . . . . . . . . 34
2.5. Cancelación numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.1. Ecuación de segundo grado . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6. Sumas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.6.1. Análisis de estabilidad numérica . . . . . . . . . . . . . . . . . . . . . 36
2.6.2. Algunas aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6.3. Análisis de estabilidad numérica en el cálculo de ex . . . . . . . . . . 42
2.7. Análisis de primer orden de la sensibilidad numérica . . . . . . . . . . . . . . 43
2.7.1. Símbolos de Landau . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7.2. Análisis de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

iii
iv ÍNDICE GENERAL

3. Sistemas lineales de ecuaciones algebraicas 61


3.1. Normas vectoriales y matriciales . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.1. Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.2. Normas matriciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2. Número de condición de una matriz . . . . . . . . . . . . . . . . . . . . . . . 64
3.2.1. Análisis de sensibilidad de sistemas lineales de ecuaciones algebraicas 64
3.2.2. Residuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.3. Regla de Cramer y métodos de eliminación Gaussiana . . . . . . . . . . . . . 68
3.3.1. Regla de Cramer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.3.2. Método de eliminación Gaussiana sin pivote . . . . . . . . . . . . . . 69
3.3.3. Algoritmo de eliminación Gaussiana con pivote (parcial) . . . . . . . 71
3.4. Factorización LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.5. Factorización de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

4. Ceros de funciones 91
4.1. Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.2. Método de bisección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.3. Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.4. Método de la secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.5. Método de interpolación cuadrática inversa . . . . . . . . . . . . . . . . . . . 103
4.6. Sistemas de ecuaciones no lineales . . . . . . . . . . . . . . . . . . . . . . . . 103
4.6.1. Existencia y unicidad . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.6.2. Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.6.3. Convergencia local del método de Newton . . . . . . . . . . . . . . . 107
4.7. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

5. Interpolación polinomial y splines cúbico 111


5.1. Interpolación global uniformemente espaciada . . . . . . . . . . . . . . . . . 111
5.1.1. Existencia, unicidad y condicionamiento . . . . . . . . . . . . . . . . 111
5.1.2. Interpolación polinomial global . . . . . . . . . . . . . . . . . . . . . 112
5.1.3. Función de Runge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2. Interpolación global sobre puntos de Tchebyshev . . . . . . . . . . . . . . . . 120
5.3. Interpolación polinomial por pedazos . . . . . . . . . . . . . . . . . . . . . . 122
5.4. Interpolación por splines cúbico . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.4.1. Cálculo del spline cúbico interpolante . . . . . . . . . . . . . . . . . . 123
5.5. Teoremas de Faber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
5.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
ÍNDICE GENERAL v

6. Integración y diferenciación numérica 136


6.1. Integración numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.1.1. Comportamiento numérico . . . . . . . . . . . . . . . . . . . . . . . . 136
6.1.2. Fórmulas de cuadratura numérica . . . . . . . . . . . . . . . . . . . . 138
6.1.3. Error de aproximación . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.1.4. Estabilidad numérica del método de cuadratura . . . . . . . . . . . . 143
6.1.5. Fórmulas de cuadratura compuesta . . . . . . . . . . . . . . . . . . . 143
6.1.6. Fórmulas adaptivas recurrentes . . . . . . . . . . . . . . . . . . . . . 145
6.2. Diferenciación numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.2.1. Comportamiento numérico . . . . . . . . . . . . . . . . . . . . . . . . 145
6.2.2. Fórmulas de diferencias finitas . . . . . . . . . . . . . . . . . . . . . . 145
6.2.3. Aplicaciones a problemas de valores iniciales . . . . . . . . . . . . . . 146
6.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Referencias 151
vi ÍNDICE GENERAL
Capítulo 1

Introducción a la computación científica


y el análisis numérico

1.1. Repaso de FORTRAN 77


1.1.1. El compilador WATFOR-87
El compilador WATFOR-87 (WATerloo FORtran 77) con editor integrado es un com-
pilador muy cómodo para el programador principiante en lenguaje FORTRAN ESTRUC-
TURADO (FORTRAN 77). Permite realizar fácilmente tres tareas rutinarias: editar, com-
pilar y ejecutar programas. Por ejemplo, desde el mismo WATFOR se edita y compila, o
bien, se edita compila y ejecuta, siendo la compilación (PASS ONE, PASS TWO en MSFOR)
transparente al usuario. Más aún, el comando LINK para ligar un programa principal con
una biblioteca de programas (los cuáles, para WATFOR, no se requiere tener en .obj) resulta
también transparente al usuario.
Para capturar un programa en FORTRAN 77 se recomienda usar el editor Edit.com, y
se deberá seguir las siguientes reglas para que el programa pueda ser compilado y ejecutado
en el compilador WATFOR87.exe.

1. Las columnas del 1 al 5 se reservan para etiquetas o niveles de las declaraciones. Las
etiquetas deben ser enteros positivos. Si la columna 1 contiene un asterisco (*) o la
letra mayúscula C, el contenido de la línea se toma como un comentario.
2. La columna 6 se usa para indicar la continuación de una declaración. Se puede usar
cualquier caracter salvo el cero en la columna 6 de la siguiente línea para indicar la
continuación. Cuando se requiere escribir una declaración o fórmula muy larga, puede
haber varias continuaciones de línea.
3. Las columnas del 7 al 72 se usan para escribir las declaraciones de FORTRAN 77.
Cualquier declaración más allá de la columna 72 es ignorado. Ver figura 1.1.

1
2 1.1. Repaso de FORTRAN 77

Columnas 6 Columnas 7 − 72
1−5

Declaraciones de FORTRAN 77
Caracter para continuación de línea
Etiquetas o niveles

Figura 1.1: Características de un programa en FORTRAN 77 para ser compilado y ejecutado en el


compilador WATFOR-87.

Todas las declaraciones en FORTRAN 77 deben escribirse en MAYÚSCULAS. Para más


información, puede consultar a Etter (1992) [7] o a Page (2003) [20].
Ejemplo 1.1.1. El primer programa saluda al usuario, pregunta su nombre y le da las gracias
hablándole por su nombre.
Para capturar el programa usa el editor Edit.com que está en el directorio de WAT-
FOR87. Cuando termine la captura se recomienda guardar su programa, por ejemplo, en el
directorio:

C:\WATFOR87\TRABAJO\

con un nombre apropiado y con extensión .FOR, por ejemplo: MINOMBRE.FOR (el nombre
debe contener máximo 8 caracteres).

C PROGRAMA MINOMBRE.FOR
C
C2345678...
CHARACTER NOMBRE*20
C
WRITE(*,*)’HOLA’
PAUSE
WRITE(*,*)’DAME TU NOMBRE ENTRE APOSTROFE: ’
READ(*,*)NOMBRE
PAUSE
WRITE(6,10)NOMBRE
10 FORMAT(/,10X,’GRACIAS’,1X,A)
END

Para compilar y ejecutar su programa MINOMBRE.FOR en WATFOR87, siga los si-


guientes cuatro pasos:
1. Introducción a la computación científica y el análisis numérico 3

1. Ejecute WATFOR87.exe

2. Especifica el directorio donde está guardado su programa MINOMBRE.FOR, en este


caso es:
SYS CHDIR C:\WATFOR87\TRABAJO\
Con esto, se trabajará únicamente con el directorio TRABAJO durante la sesión. Si
quiere cambiar de directorio, deberá especificarlo como antes. Si guardó su programa
en el directorio WATFOR87, no necesita especificar el directorio.

3. Edite su programa MINOMBRE.FOR como:

EDIT MINOMBRE.FOR

Enseguida aparecerá el listado de su programa en la pantalla.

4. Compile y ejecute su programa como:

RUN MINOMBRE.FOR

Si todo está bien, el cual casi nunca ocurre la primera vez que se ejecuta un programa,
enseguida aparecerán los resultados del programa en la pantalla. Por ejemplo, una salida
es:
HOLA
DAME TU NOMBRE ENTRE APOSTROFE:
GRACIAS JUSTINO ALAVEZ

Si su programa MINOMBRE.FOR tuvo errores, aparecerá en la pantalla una lista de todos


los posibles errores (desde luego, no habrá ningún resultado hasta que el programa esté libre
de errores). Presione la tecla ENTER, para regresar al listado de su programa. Para corregir
los errores en el programa, presiona la tecla F9 para ingresar la zona del programa y hacer
las correcciones pertinentes. Una vez hechas las correcciones, deberá guardar su programa.
Para ello, de nuevo presione la tecla F9 para regresar a la ventanilla de comandos, y desde
ahí guardará su programa como:

PUT MINOMBRE.FOR

Una vez guardado el programa, deberá correrlo de nuevo como en el Paso 4.


Es posible que la lista de errores generados en su programa halla sido muy grande, y le
sea difícil retenerlo en su memoria para las correcciones. Se recomienda generar un listado de
su programa junto con los errores para que sea más fácil analizarlo y corregirlo. Para generar
dicho listado, haga lo siguiente desde la ventanilla de comandos:
4 1.1. Repaso de FORTRAN 77

RUN/LIST/NOXTYPE MINOMBRE.FOR

Dale todos los datos en el orden en que deben ir. Finalmente aparecerá nada en la pantalla,
pero se generó y se guardó automáticamente un programa con el mismo nombre pero con
extensión .LST en el directorio TRABAJO. Puede editarlo como cualquier otro archivo de
texto, o bien desde la ventanilla de comandos como:

EDIT MINOMBRE.LST

Con esto tendrá un lista completo del programa y los errores si las hubo, o bien, un
listado completo y los resultados del programa si no hubo errores. Para abandonar el listado
y regresar al programa MINOMBRE.FOR, escriba desde la ventanilla de comandos la palabra:
BYE y luego presione la tecla ENTER. Después de hacer las correcciones en su programa,
deberá guardarlo para poder ejecutarlo de nuevo.
Puede cambiar el color de fondo de la pantalla durante la sesión de WATFOR87, pre-
sionando las teclas SHIFT y F4 simultáneamente, hasta encontrar un color que le agrade.
Lo anterior va acompañado con cambios de color para las fuentes, que se realiza al presionar
simultáneamente las teclas SHIFT y F3.
Para otros tipos de ayuda, escriba desde la ventanilla de comandos la palabra: HELP y
enseguida presione la tecla ENTER.

1.1.2. Prácticas
Objetivo. Aprender a programar las instrucciones básicas de FORTRAN 77 mediante la
solución de problemas simples de aplicaciones numéricas.

Para realizar las actividades descomprimir el compilador WATFOR87.zip e instalarlo en


su equipo de cómputo, y configurarlo como se indica en el TutorialWatfor87.pdf .

Práctica 1. Escribe un programa que lea e imprima los números a, b, c, d, e y f , e imprima


también el área del triángulo con vértices (a, b), (c, d) y (e, f ). Piensa todas tus variables y
cálculos en precisión doble.
Sugerencia. Las declaraciones de tipo de variables en FORTRAN 77 son:

INTEGER {Lista de variables} REAL {Lista de variables}


DOUBLE PRECISION {Lista de variables} COMPLEX {Lista de variables}
LOGICAL {Lista de variables} CHARACTER {Lista de variables}

Las llaves { } no se escriben, únicamente las variables.


Las primeras líneas ejecutables del programa pueden ser:
DOUBLE PRECISION A,B,C,D,E,F,AREA
WRITE(*,*) ’DAME EL VERTICE (A,B) DEL TRIANGULO:’
1. Introducción a la computación científica y el análisis numérico 5

READ(*,*) A,B
WRITE(*,*) A,B
Las instrucciones WRITE y READ están en formato estándar. El primer asterisco indica
un identificador de unidad (UNIT en inglés), y puede ser también cualquier número entero
positivo que se refiera a una unidad de entrada/salida válido. El segundo asterisco indica un
identificador de formato (FMT), y también puede ser un número entero positivo donde se
especifique dicho formato en el programa. Más información en Page (2003) [20] página 105.
La estructura general que debe tener todo programa de cómputo es el siguiente:
{Documentación del programa}
{Entrada de datos}
{Procesamiento de los datos por algún algoritmo numérico}
{Salida de resultados}

En la documentación del programa hay que especificar el objetivo del programa, el signifi-
cado de cada una de las variables involucradas, y en lo posible las referencias bibliográficas. Es
importante tener en cuenta que antes de la entrada de datos del problema, hay que declarar
todas las variables que se van a utilizar. El programa completo de la práctica 1 es el siguiente:

C PROGRAMA EJER1− 1.FOR


C CALCULA EL AREA DEL TRIANGULO CON VERTICES:
C (A,B), (C,D) y (E,F)
C USANDO LA FORMULA:
C | A B 1 |
C AREA = 1/2 * ABS | C D 1 |
C | E F 1 |
C ENTRADA: COORDENADAS DE LOS VERTICES DEL TRIANGULO.
C SALIDA: LOS VERTICES Y EL AREA DEL TRIANGULO.
C
C2345678...
DOUBLE PRECISION A,B,C,D,E,F,AREA
WRITE(*,*) ’DAME EL VERTICE (A,B) DEL TRIANGULO:’
READ(*,*) A,B
WRITE(*,*) A,B
WRITE(*,*) ’DAME EL VERTICE (C,D) DEL TRIANGULO:’
READ(*,*) C,D
WRITE(*,*) C,D
WRITE(*,*) ’DAME EL VERTICE (E,F) DEL TRIANGULO:’
READ(*,*) E,F
WRITE(*,*) E,F
C
6 1.1. Repaso de FORTRAN 77

AREA=DABS(0.5D0*(A*(D-F)-C*(B-F)+E*(B-D)))
C
C SALIDA DE RESULTADOS
C
WRITE(6,10) AREA
10 FORMAT(1X,’ EL AREA DEL TRIANGULO ES:’,2X,D23.16,2X,
+’ UNIDADES CUADRADAS’)
END

Práctica 2. Escribe un programa en precisión simple que lea e imprima un número real x,
e imprima el valor de:
 3
 x − 2x2 + 3x − 5, si 0≤x≤1
f (x) = x3 + x2 − 7x + 6, si 1<x≤2
 3
x − x + 8, si x < 0 ó x > 2
Sugerencia. Para realizar esta actividad necesita de algunos de los operadores lógicos:
.LT. < .GT. > .AND. y
.LE. ≤ .GE. ≥ .OR. o (uno o ambos)
.EQ. = .NE. =
6 .NOT. no
y de la construcción de IF. Existen varias forma de construir el IF en FORTRAN 77, la más
simple es:
IF ({Expresión lógica}) {Instrucción ejecutable}
Si se requieren varias instrucciones ejecutables la construcción es:

IF ({Expresión lógica}) THEN


{Bloque de instrucciones}
ENDIF

o la construcción de la combinación IF-THEN-ELSE:

IF ({Expresión lógica}) THEN


{Primer bloque de instrucciones}
ELSE
{Segundo bloque de instrucciones}
ENDIF

La construcción más general del IF es:

IF ({Expresión lógica}) THEN


1. Introducción a la computación científica y el análisis numérico 7

{Primer bloque de instrucciones}


ELSEIF ({Expresión lógica}) THEN
{Segundo bloque de instrucciones}
..
.
ELSEIF ({Expresión lógica}) THEN
{Penúltimo bloque de instrucciones}
ELSE ({Expresión lógica})
{Ultimo bloque de instrucciones}
ENDIF

Práctica 3. Considera dos funciones arbitrarias f y g de R en R dadas como programas


“function” en FORTRAN 77. Escribe una función h(f, g, x) que regrese el valor h(x) =
(f ◦ g)(x). Imprima x, g(x) y h(x).
Sugerencia. Una función externa (External functions or function subprograms) en FOR-
TRAN 77 tiene la estructura:
{Tipo} FUNCTION {Nombre} ({Lista de variables})
{Declaraciones de tipos de variables}
{Bloque de instrucciones}
RETURN
END

El tipo es opcional aunque se puede especificar como: REAL, DOUBLE PRECISION,


CHARACTER*(*), entre otros. Más información en Coleman and Van Loan (1988) [2] y
Page (2003) [20].
Un programa completo de la práctica 3 puede ser de la siguiente forma:

C EJEMPLO DE COMPOSICION DE FUNCIONES REALES


C
C2345678...
REAL H, A, X
WRITE(*,*)’DAME UN NUMERO REAL ARBITRARIO:’
READ(*,*)X
A = G(X)
H = F(A)
WRITE(6,10)X,A,H
10 FORMAT(//,6X,’**************************************’,/,
+ 8X,’ EL VALOR DE X ES:’,7X,F10.5,/,
+ 8X,’ EL VALOR DE G(X) ES:’,4X,E14.7,/,
+ 8X,’ EL VALOR DE F(G(X)) ES:’,1X,D23.16,/,
+ 6X,’**************************************’)
8 1.1. Repaso de FORTRAN 77

C
C FORMATOS RECOMENDABLES DE ESCRITURA
C
C SIMPLE PRECISION: E14.7
C DOBLE PRECISION: D23.16
C ESTANDAR: F10.5
C
STOP
END
C
C ****************************************************
C
REAL FUNCTION G(X)
REAL X
G = X**2 - 34.0*X + 8.0
RETURN
END
C
C ****************************************************
C
REAL FUNCTION F(Y)
REAL Y
F = SQRT(ABS(Y))
RETURN
END

Práctica 4. Escribe una rutina MONTH (LENGTH, START) que lea el número de días en
un mes en LENGTH y el día de comienzo del mes (1= Domingo, . . ., 7= Sábado) en START
e imprima el calendario del mes. Por ejemplo, MONTH (30, 5) imprimirá:

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

Sugerencia. Consulta el programa Calendar.for que viene incluido en WATFOR87. Tam-


bién puede consultar a Coleman and Van Loan (1988) [2] o a Page (2003) [20].

Práctica 5. Supóngase que A ∈ Rn×n y que x ∈ Rn×1 son dados. Diseña un algoritmo
1. Introducción a la computación científica y el análisis numérico 9

eficiente para calcular: !


n X
X n
S = xT Ax = aij xi xj
i=1 j=1

y prográmalo en precisión simple.


Sugerencia. Para esta actividad se requiere del uso de arreglos para escribir la matriz A
y el vector x. El formato es muy simple, por ejemplo:

REAL A(100, 200)

indica que A es una matriz de tamaño 100 × 200 de tipo REAL, es decir con entradas en pre-
cisión simple. También puede ser de tipo INTEGER o DOUBLE PRECISION, entre otros. Se
puede usar la instrucción PARAMETER para asignar una variable simbólica a la dimensión
de los arreglos. Por ejemplo, las primeras líneas ejecutables del programa pueden ser:
INTEGER N
PARAMETER (N=3)
REAL A(N,N), X(N)

La instrucción DATA se usa para inicializar variables y arreglos de dimensiones pequeñas.


Por ejemplo, un fragmento del programa puede ser:
DATA A(1,1)/4.2/, A(2,1)/-3.2/, A(3,1)/2.0/
DATA A(1,2)/-4.2/, A(2,2)/-5.2/, A(3,2)/10.0/
DATA A(1,3)/14.2/, A(2,3)/-15.2/, A(3,3)/-10.0/
DATA X/-2.1, 5.4, 7.8/
donde se están escribiendo las entradas de una matriz A de tamaño 3 × 3 y las entradas de
un vector X de dimensión 3.
Para el cálculo de S se requiere de una iteración, que se puede hacer mediante la instruc-
ción DO cuyo formato es:
DO {Etiqueta} {Variable entera}={Inicio},{Fin}, {Paso}
{Bloque de instrucciones}
{Etiqueta} CONTINUE

Un programa completo de la práctica 5 puede ser de la siguiente forma:

C PROGRAMA EJER1− 5.FOR


C CALCULA S=X’ AX
C X VECTOR DE DIMENSION N
C A MATRIZ DE DIMENSION N×N
C
C2345678...
10 1.1. Repaso de FORTRAN 77

INTEGER N
PARAMETER (N=3)
REAL A(N,N),X(N),S,B
INTEGER I,J
C
C DATA A/10000*1.0/, X/100*2.0/ C
DATA A(1,1)/4.2/, A(2,1)/-3.2/, A(3,1)/2.0/
+ A(1,2)/-4.2/, A(2,2)/-5.2/, A(3,2)/10.0/
+ A(1,3)/14.2/, A(2,3)/-15.2/, A(3,3)/-10.0/
DATA X/-2.1, 5.4, 7.8/
C
S=0.0
DO 10 J=1,N
B=0.0
DO 20 I=1,N
B=B+A(I,J)*X(I)
20 CONTINUE
S=S+B*X(J)
10 CONTINUE
C
C SALIDA DE RESULTADOS
C
WRITE(6,30) S,N
30 FORMAT(6X,’*******************************************’,/
+ 6X,’R E S U L T A D O S :’,//
+ 6X,’ EL PRODUCTO XT*A*X ES:’,2X,E14.7,//
+ 6X,’LA DIMENSION DEL VECTOR X ES:’,2X,I3,/
+ 6X,’*******************************************’)
END

Práctica 6. Escribe una función en FORTRAN 77 en precisión simple que resuelva la


ecuación general de segundo grado:
ax2 + bx + c = 0
para a, b y c ∈ R dados, a 6= 0, en base a la fórmula que aprendiste en la secundaria. Usa tu
función para calcular las raíces de las ecuaciones siguientes:
A). x2 + x − 6 = 0, C). x2 + x + 1 = 0,

B). x2 − 105 x + 1 = 0, D). x2 − 4x + 3.99999 = 0.


Imprima los datos y resultados que obtuviste en cada ecuación.
1. Introducción a la computación científica y el análisis numérico 11

¿Son correctos tus resultados? Comenta.

1.2. Modelos matemáticos


La modelación matemática es el proceso de reformular problemas científicos (de ingeniería,
física, biología, ecología, medicina, entre otros) en problemas matemáticos (modelos
matemáticos). Los modelos matemáticos generalmente se expresan por medio de ecuaciones
de algún tipo, por ejemplo: polinomiales, sistemas lineales de ecuaciones algebraicas, EDO’s,
EDP’s, EDA’s, entre muchos otros. Por ejemplo, en ecología el sistema de EDO’s1 :

)
x = αx − βxy
 (1.1)
y = γxy − δy
con α > 0, β > 0, γ > 0 y δ > 0, estudia la dinámica de dos poblaciones que interactúan
entre sí a través de predador-presa. Donde x(t) denota la población de presas en el tiempo t,
y y(t) denota la población de predadores en el tiempo t.
Es importantes notar que es posible probar que el problema de Cauchy determinado por el
sistema (1.1) y las condiciones iniciales x(t0 ) = x0 y y(t0 ) = y0 , tiene solución, la solución es
única y depende continuamente de los datos del problema formados por t0 , x0 , y0 , α, β, γ y δ.
Sin embargo, dado que el sistema de EDO’s (1.1) es no lineal, no es posible hallar expresiones
analíticas para x(t) y y(t).
Los problemas matemáticos se pueden distinguir por:
A). No tener solución.
B). Existe solución pero no es única.
C). Existe solución y es única.
Sin embargo, aunque un problema matemático tiene solución única, la solución puede no
depender continuamente de los datos del problema.
Sea P un problema matemático que tiene solución para cada conjunto admisible de datos.
Si se denota por X = {x ∈ Rn : x es un conjunto de datos admisibles del problema P }, y por
Y = {y ∈ Rm : y es solución del problema P }, entonces tiene sentido el operador:
F : X −→ Y
x 7−→ F (x) = y .
Definición 1.2.1. La solución de un problema matemático se dice que depende contin-
uamente de un conjunto de datos x0 del problema si el operador F es continuo en
x0 , es decir dado ε > 0 arbitrario, existe un δ > 0 tal que kx − x0 k < δ implica que
kF (x) − F (x0 )k < ε.
1
Formuladas por primera vez en 1925 y son conocidas como las ecuaciones de Lotka-Volterra.
12 1.2. Modelos matemáticos

Se dice que la solución depende continuamente de los datos del problema, si


depende continuamente de cada conjunto de datos x0 admisibles del problema.
Definición 1.2.2. Un problema matemático se dice bien planteado (en el sentido de
Hadamard2 ), si satisface las siguientes condiciones:
A). Existe solución para cada conjunto admisible de datos.

B). Para cada conjunto admisible de datos la solución es única.

C). La solución depende continuamente con respecto de los datos.


En términos del operador F , la existencia se traduce en decir que F −1 (Y ) = X, y la
unicidad se traduce en decir que F −1 es inyectivo.
Definición 1.2.3. Un problema matemático se dice mal planteado si no es bien planteado,
es decir si no cumple alguna de las condiciones de Hadamard.
Los problemas bien planteados son los que se pueden “resolver razonablemente bien” con
la ayuda de una computadora. Sobre todo cuando la solución del problema no se puede
hallar en forma analítica, como el problema de valores iniciales determinado por el sistema
de EDO’s (1.1). Para ello, se necesita:
A). Desarrollar métodos (algoritmos) para resolver las ecuaciones numéricamente.

B). Implantar los métodos en un software numérico (programación).

C). Ejecutar el software (o programa) en una computadora para simular numéricamente el


proceso físico o de interés.

D). Representar los resultados numéricos obtenidos en alguna forma comprehensible tales
como visualización gráfica.

E). Interpretar y validar los resultados numéricos obtenidos (confrontarlos con la realidad),
repetir parte o todo el proceso numérico si es necesario.
Durante el curso se abordará el estudios de métodos numéricos conocidos, y se implantarán
algunos haciendo programas domésticos en FORTRAN o en MATLAB, y la implantación de
otros usando rutinas profesionales también de FORTRAN y MATLAB.
Para que un problema matemático se pueda resolver con la ayuda de una computadora a
través de métodos numéricos, es necesario transformarlo a su vez en un problema computa-
cional. El proceso de transformación se llama discretización del problema matemático. Una
esquematización del proceso se muestra en la figura 1.2.
Para discretizar un problema matemático se sigue algunas de las estrategias siguientes:
2
Jacques Salomon Hadamard, matemático francés, 1865-1963.
1. Introducción a la computación científica y el análisis numérico 13

Modelación Problemas
matemática bien planteados
Problemas Problemas Problemas
científicos matemáticos computacionales
Discretización

Métodos Software
numéricos numérico

Software
Interpretación Visualización numérico
Soluciones
y gráfica numéricas
validación

Figura 1.2: Esquematización del proceso de solución numérica de un problema científico.

A). Reemplazar espacios de dimensión infinita a espacios de dimensión finita.

B). Reemplazar procesos infinitos a procesos finitos (por ejemplo, una integral o una serie
infinita en una suma finita).

C). Reemplazar ecuaciones diferenciales (ordinarias o parciales) en ecuaciones algebraicas.

D). Reemplazar problemas no lineales en problemas lineales.

E). Reemplazar sistema de orden alto en sistemas de orden bajo.

F). Reemplazar funciones complicadas en funciones simples (como polinomios).

G). Reemplazar matrices generales en matrices que tienen formas simples (como triangular
superior).

1.3. Fuentes de aproximación


Se distinguen al menos cinco fuentes de aproximación que pueden generar errores que
afectan los resultados de un problema científico.
1. De modelación. Durante el proceso de modelación es posible que se omitan o se simpli-
fican algunas consideraciones importantes del problema bajo estudio (por ejemplo, fricción,
viscosidad, resistencia del aire, entre otros). En el caso del modelo predador-presa (1.1), se
14 1.3. Fuentes de aproximación

obtuvo bajo el supuesto de que las presas disponen de una cantidad ilimitada de alimentos,
y que interactúan con los predadores en un hábitat cerrado, entre otros.
2. De mediciones empíricas. Ocurren cuando hay necesidad de obtener datos en un lab-
oratorio o en el campo experimental, pues todos los instrumentos de medición hasta ahora
inventados son de precisión finita (errores sistemáticos). La exactitud de los datos puede estar
fuertemente limitado por el tamaño de la muestra, o las lecturas pueden estar sujetos a ruidos
aleatorios (errores accidentales). Por ejemplo, cuando hay necesidad de medir la temperatura
durante una determinada hora del día durante un mes, o cuando hay necesidad de obtener
el censo de población de un país.
3. De cálculos previos. Ocurren cuando los datos de entrada del problema fueron resultados
de cálculos aritméticos previos cuyos resultados fueron únicamente aproximados.
Estos tres tipos de fuentes de aproximación ocurren entre el problema científico y su
planteamiento al problema matemático, por lo que en general, los errores que generan quedan
fuera de control del analista numérico. Las otras dos fuentes de aproximación ocurren entre el
problema matemático y la solución del problema computacional. Los errores que se generan
en estas dos últimas fuentes pueden ser controlados por el analista numérico.
4. De discretización (aproximación o truncamiento). Ocurren cuando el problema
matemático es transformado en un problema computacional, pues algunas características
del modelo matemático pueden ser omitidos o simplificados. Por ejemplo, cuando una suma
infinita
X∞ XN
an es “reemplazado00 por la suma finita an ,
n=1 n=1
o cuando una
Z b N
X
f (x)dx es “reemplazado00 por una suma finita de la forma ωn f (xn ) .
a n=1

5. De redondeo. Ocurren al realizar una “infinidad” de operaciones aritméticas (manual-


mente, con una calculadora o computadora), para resolver problemas computacionales. Pues
de nuevo todos los instrumentos de cálculo hasta ahora inventados son de precisión finita,
por lo que tienen que aproximar los resultados de las operaciones aritméticas realizadas.
Ejemplo 1.3.1. (Aproximaciones). Calcular la cantidad de m2 que ocupa el piso del salón.
Solución. Por observación directa se puede suponer que el salón es rectangular (aproximación
por modelación), por lo que su área será
A = base × altura .
Hay que medir la base y la altura en metros (mediciones empíricas). La exactitud de los
datos dependerá del tipo de instrumento a usar (errores sistemáticos), y del lecturista de la
1. Introducción a la computación científica y el análisis numérico 15

medida (errores accidentales). Dado que el salón es bastante largo, si sólo se dispone de una
regla o cinta métrica de 3 metros, se necesitará medir la longitud del salón por tramos; por
lo que tanto la base como la altura pueden ser el resultado de cálculos previos.
Suponiendo que la base = 4.35 m y la altura = 9.18 m, entonces
A = 4.35 m × 9.18 m = 39.9330 m2 ∼
= 40 m2 .
Esto último se llama aproximación por redondeo y ocurren prácticamente en todas las
operaciones aritméticas que se realizan. 2

El estudio del efecto que producen las aproximaciones sobre los resultados de un problema
científico o matemático, se llama análisis de error.

1.4. Error absoluto y error relativo


Para hacer el análisis de error en la solución de un problema matemático, es necesario
saber qué tan cerca se está del resultado deseado. Para ello, se introducen los conceptos de
error absoluto y error relativo.
Definición 1.4.1. Sea x el valor verdadero y x
b un valor aproximado de una cierta cantidad.
Se define el error absoluto de x
b con respecto de x como
∆x = x
b− x,
y el error relativo de x
b con respecto de x por
x
b−x
Erel = , si x 6= 0 .
x
Cuando x y x b son vectores o matrices, el error absoluto tiene sentido para ellos, pero no
tiene sentido su error relativo, por lo que se define la magnitud del error relativo como
kb
x − xk
, si x 6= 0 ,
kxk
donde k · k es algún tipo de norma. Por el momento, se limitará con x en una dimensión.
Dos interpretaciones importantes del error relativo son:
A). En términos de porcentajes, se tiene que
|b
x − x|
E= × 100, si x 6= 0 ,
|x|

es el porcentaje de error con que x


b se aproxima a x. Generalmente, se dice que “ x
b se
ha calculado con un E % de error”.
16 1.5. Propagación del error de los datos y error computacional

B). Cuando
|b
x − x| ∼ −p
= 10 , x 6= 0 ,
|x|

significa que x
b coincide con x hasta p dígitos significativos aproximadamente.

Dado que x 6= 0 se puede representar de manera única (salvo excepciones) como

x = (±0.d1 d2 · · · dt · · · ) × 10e ,

donde di son dígitos enteros, 1 ≤ d1 ≤ 9 , 0 ≤ di ≤ 9 , i ≥ 2 y e entero. Los dígitos d1 , d2 , . . . ,


se llaman dígitos significativos de x.

Ejemplo 1.4.1. Calcula el error absoluto y relativo de la aproximación x


b = 3.1415789 de π.

Solución. El error absoluto de la aproximación es

∆x = 3.1415789 − 3.14159265 · · · = −0.00001375 · · · = −0.1375 · · · × 10 −4 .

La magnitud del error relativo es

|∆x| 0.1375 · · · × 10−4 ∼


= = 0.437 · · · × 10−5 ∼
= 10−5 ,
|x| 3.14159265 · · ·

lo que confirma que x


b coincide con π hasta 5 dígitos significativos.
Además,
|∆x|
E= × 100 ∼
= 0.437 · · · × 10−3 % de error ,
|x|
lo que muestra la buena exactitud de x
b como aproximación de π.

1.5. Propagación del error de los datos y error computa-


cional
Algunos errores que ocurren en la solución de un problema científico pueden ser debido
a las aproximaciones de los datos de entrada del problema, mientras que otros pueden ser
atribuidos a procesos computacionales subsecuentes. Aunque esta distinción no siempre es
claro (por ejemplo, aproximaciones por redondeo afectan tanto a los datos de entrada co-
mo resultados computacionales subsecuentes), es sin embargo importante entender todos los
efectos posibles de las aproximaciones en el cálculo numérico.
1. Introducción a la computación científica y el análisis numérico 17

Por simplicidad se considerarán únicamente problemas en una dimensión. Un problema


típico en una dimensión se puede modelar como el cálculo del valor de una función

f : R −→ R , (1.2)

donde x ∈ R son los datos verdaderos del problema y f (x) la solución verdadera deseada.
Dado que hay errores en los datos verdaderos x, se trabajará con datos aproximados x b, y
dado que también hay necesidad de discretizar el problema f como un problema computa-
cional fb, entonces en lugar del problema (1.2), se estaría resolviendo un problema aproximado
(vecino):
fb : R −→ R
b 7−→ fb(b
x x) .
Dado que también tiene sentido en resolver el problema f con los datos aproximados x
b,
tiene lugar la figura 1.3.

f -
x • • f (x)
1 • f (b
x)
f 
 
x
b •  fb - • fb(b
x)
b
Figura 1.3: Diagrama del problema f y f.

El error total en el proceso se puede descomponer como:

fb(b
x) − f (x) = [fb(b
x) − f (b
x)] + [f (b
x) − f (x)] ,

donde fb(b x) se llama el error computacional, y f (b


x) − f (b x) − f (x) se le llama propagación
b
del error de los datos, y es independiente de f .
Ejemplo 1.5.1. Estimar el error total, el error computacional y la propagación del error de
los datos al aproximar el problema matemático

f (x) = cos x ,

por el problema computacional


x2
fb(x) = 1 − ,
2
para x = π/8 y x
b = 3/8.
Solución.
"  2 #
1 3 π 
Error total = 1 − − cos ∼
= 0.9297 − 0.9239 = 0.0058 .
2 8 8
18 1.6. Nociones de análisis de error prospectivo y retrospectivo

Por otro lado, el error computacional es


"  2 #  
1 3 3 ∼
fb(b
x) − f (b
x) = 1 − − cos = 0.9297 − 0.9305 = −0.0008 ,
2 8 8
y la propagación del error de los datos es
  π
3 ∼
f (b
x) − f (x) = cos − cos = 0.9305 − 0.9239 = 0.0066 .
8 8


1.6. Nociones de análisis de error prospectivo y retro-


spectivo
Sea el problema matemático (original):
f : R −→ R
x 7−→ y = f (x) .
Al resolver este problema en la práctica para un x ∈ R dado, se obtiene una solución
aproximada yb. El error absoluto respecto a la solución verdadera y dado por:
∆y = yb − y ,
se le llama error prospectivo (progresivo o hacia delante). El estudio del error prospec-
tivo (o del error prospectivo relativo) se llama Análisis de error prospectivo.
Un desarrollo alternativo es considerar la solución aproximada yb del problema original
como la solución exacta de un problema modificado. Surge de manera natural la pregunta:
¿Qué tanto se debe modificar el problema original,
para que la solución exacta del problema modificado sea yb ?
En relación al dato verdadero x del problema original, significa encontrar una aproxi-
mación x
b de x tal que
f (b
x) = yb .
La cantidad
∆x = x
b− x,
se llama error retrospectivo (regresivo o hacia atrás). El estudio del error retrospectivo
(o del error retrospectivo relativo) se llama Análisis de error retrospectivo.
Desde el punto de vista del error retrospectivo, una solución aproximada de un problema
es “bueno” si es la solución exacta de un problema vecino (es decir, el error retrospectivo
relativo es suficientemente pequeño).
La relación entre error prospectivo y retrospectivo se esquematiza en el figura 1.4.
1. Introducción a la computación científica y el análisis numérico 19

f -
x • • y = f (x)
Q
6 Q 6
Q
Q
Q fb
Error retrospectivo QQ Error prospectivo
Q
Q
Q
Q
? f Q
s
Q ?
x
b • - • y
b= fb(x) = f (b
x)

Figura 1.4: Relación entre el error prospectivo y retrospectivo.


Ejemplo 1.6.1. Hacer el análisis del error retrospectivo y prospectivo del problema y = 2
si yb = 1.4 es una solución aproximada.

Solución. Para el análisis del error retrospectivo, se trata de encontrar x
b tal que yb = xb.

yb 2 = x
b =⇒ b = (1.4)2 = 1.96
x

∆x = xb − x = 1.96 − 2 = −0.04
|∆x|
× 100 = 0.02 × 100 = 2 % ,
|x|
por lo que la solución yb es razonablemente bueno.
Para el análisis de error prospectivo, se tiene:

∆y = yb − y = 1.4 − 1.4142 · · · = −0.0142 · · ·


|∆y|
× 100 ∼
= 1.00505 · · · ∼
= 1 % de error.
|y|


1.7. Nociones de sensibilidad numérica y número de condi-


ción
Sea f : R −→ R un problema matemático con datos verdaderos x y datos aproximados
b, y una aproximación fb de f . Del diagrama de la figura 1.3, se tiene que
x

fb(b
x) − f (x) = [fb(b
x) − f (b
x)] + [f (b
x) − f (x)]
| {z } | {z }
“Error computacional” “Propagación del error de los datos”

La propagación del error de los datos depende únicamente de x b, y es independiente del


b
método f que se usa para resolver el problema. Estudiar este error se llama hacer análisis de
20 1.7. Nociones de sensibilidad numérica y número de condición

sensibilidad del problema. El error computacional depende de x b y de fb, es decir, depende


del error de los datos de entrada y del método o algoritmo fb que se usa para resolver el
problema. Estudiar este error se llama hacer análisis de estabilidad del método.

Definición 1.7.1. Se define el número de condición del problema matemático como:



f (b
x ) − f (x) yb − y ∆y

f (x) y y
κ= ≡ ≡
xb − x x
b − x ∆x , x 6= 0, y 6= 0 .

x x x

Así que
∆y
= κ ∆x , x 6= 0, y 6= 0 , (1.3)
y x
por lo que el número de condición es un factor de amplificación de la magnitud del error
prospectivo relativo respecto de la magnitud del error retrospectivo relativo.

Definición 1.7.2. Un problema matemático se dice bien condicionado (insensible o


bien comportado numéricamente), si cambios relativos pequeños en los datos de entrada
del problema causan cambios relativos pequeños en la solución del problema.

Así que un problema bien condicionado debe tener su número de condición razonablemente
“pequeño”.

Definición 1.7.3. Un problema matemático se dice mal condicionado (sensible o mal


comportado numéricamente), si cambios relativos pequeños en los datos de entrada del
problema causan cambios relativos muy grandes en la solución del problema.

En este caso, el número de condición del problema puede ser arbitrariamente grande.
En la práctica, no siempre es posible obtener la igualdad en (1.3), por lo que es suficiente
con tener una estimación de la forma:

∆y ∆x

y / κ x , x 6= 0, y 6= 0 .

Ejemplo 1.7.1. Análisis de sensibilidad del problema de evaluar una función diferenciable
f : R −→ R.

Solución. Sea x 6= 0 un dato verdadero y x


b una aproximación de x.

∆x = x
b−x =⇒ x
b = x + ∆x

f (b
x) − f (x) = f (x + ∆x) − f (x) ∼
= f 0 (x)∆x .
T.V.M.
1. Introducción a la computación científica y el análisis numérico 21

Por lo tanto
f (b
x ) − f (x)

f (x) xf 0 (x)
κ= ∼
= , f (x) 6= 0 ,
xb − x f (x)

x
depende de x, f y f 0 .

Dos casos particulares:



A). Si f (x) = x , x > 0 , entonces
x

1 x 1
2 x
f 0 (x) = √ y κ∼
= √ = = , x > 0,
2 x x 2x 2

por lo que el problema de calcular raíces cuadradas es bien condicionado.


B). Si f (x) = ln x , x > 0 , entonces
1 1
f 0 (x) = y κ∼
= , x > 0,
x | ln x|

por lo que el problema de calcular logaritmos es bien condicionado para x grande y para x
“cercano” a 0, pero mal condicionado “cerca” de 1. Por ejemplo, para x = 1.0001 y x
b = 1.0002 :
∆x ∼ −4
b − x = 10−4
∆x = x y = 10 ,
x
y
y = ln(1.0001) = 9.9995 × 10−5 y yb = ln(1.0002) = 1.9998 × 10−4
∆y ∼
∆y = yb − y = 9.9985 × 10−5 y = 1.
y
Por lo que
∆y ∼ 4 ∆x
κ∼
= 104 y = 10
y x
El número de condición es muy grande, por lo que el error relativo de la solución se
amplifica diez mil veces el error relativo del dato de entrada.

Ejemplo 1.7.2. Análisis de sensibilidad del problema de calcular raíces reales de funciones
continuamente diferenciables f : R −→ R.
Problema matemático: hallar α ∈ R tal que f (α) = 0 .
22 1.7. Nociones de sensibilidad numérica y número de condición

Solución. Si f 0 (α) 6= 0 (raíz simple), entonces f es localmente invertible en α, por lo que


existe la función inversa de f .
Si g ≡ f −1 , entonces f (α) = 0 ⇐⇒ α = f −1 (0) = g(0).
Aplicando el análisis de sensibilidad al problema de evaluar la función diferenciable g en
y = 0, se tiene que:
1
y ) − g(y) = g(y + ∆y) − g(y) ∼
g(b = g 0 (y)∆y = ∆y , y = f (x) .
T.V.M. f 0 (x)
Dado que interesa el caso y = 0, entonces
1
y) − g(0) ∼
g(b = ∆y y ∆y = yb − 0 = yb .
f 0 (α)
Como el error relativo no está definido para y = 0, se trabajará con el número de condición
absoluto:
|g(b
y ) − g(0)| ∼ 1
κabs = = 0 , f 0 (α) 6= 0 .
|b
y − 0| |f (α)|
Conclusión 1.7.1. El problema de hallar una raíz α de una función continuamente difer-
enciable f : R −→ R es:
A). Mal condicionado (muy sensible numéricamente) si f 0 (α) es arbitrariamente pequeño.
Geométricamente corresponde el caso en que la recta tangente a la gráfica de y = f (x)
es casi horizontal en (α, 0), como se muestra en la figura 1.5.

Y
y = f (x)

0 (α, 0) X

Figura 1.5: Geometría de raíces de multiplicidad impar y muy mal condicionados.

En particular, el problema de hallar raíces de multiplicidad > 1 (f 0 (α) = 0) es muy mal


condicionado.
El comportamiento geométrico de raíces de multiplicidad impar “cerca” de (α, 0) se
muestra en la figura 1.5, y el comportamiento geométrico de raíces de multiplicidad par
“cerca” de (α, 0) se muestra en la figura 1.6.
1. Introducción a la computación científica y el análisis numérico 23

y = f (x)

0 (α, 0) X

Figura 1.6: Geometría de raíces de multiplicidad par y muy mal condicionados.

B). Bien condicionado (insensible numéricamente) si f 0 (α) es razonablemente grande.

1.8. Nociones de estabilidad y exactitud


Definición 1.8.1. Un algoritmo (método) numérico es numéricamente estable si los re-
sultados que produce es relativamente insensible a perturbaciones debido a las aproximaciones
hechas durante el proceso de cálculo.

Desde el punto de vista del análisis del error retrospectivo, un algoritmo es numéricamente
estable si los resultados que produce es la solución exacta de un problema vecino (correc-
tamente formulado), es decir, que las perturbaciones que ocurren durante el cálculo afectan
menos que pequeños errores de los datos de entrada del problema dado.
Sea y la solución verdadera de un problema matemático f y yb una solución aproximada
obtenida por un método fb.

Definición 1.8.2. Se dice que yb es exacta como solución del problema matemático f si la
magnitud del error prospectivo |b
y − y| es “suficientemente pequeño”.

Puesto que

b
|b
y − y| ≤ f (b
x) − f (b
x) + |f (b
x) − f (x)|
| {z } | {z }
“Sensibilidad del problema matemático”
“Estabilidad numérica del método”

Entonces

A). Métodos numéricamente estables no necesariamente producen resultados exactos del


problema original.
24 1.9. Ejercicios

B). Métodos numéricamente estables aplicados a problemas bien condicionados producen


resultados exactos del problema.

C). Métodos numéricamente estables aplicados a problemas mal condicionados pueden pro-
ducir resultados inexactos del problema.

D). Métodos numéricamente inestables aplicados a problemas bien condicionados pueden


producir resultados inexactos del problema.

1.9. Ejercicios
1. Discuta si es falso o verdadero las afirmaciones 1.1 al 1.6 de la página 39 de Heath
(2002) [12].

2. Contesta brevemente las preguntas 1.12 al 1.17 de la página 40 de Heath (2002) [12].

3. Resuelva los ejercicios 1.2 al 1.6 de la página 42 de Heath (2002) [12].


Capítulo 2

Aritmética de punto flotante

2.1. Representación de números reales en bases arbitrarias


Un estudio sobre el desarrollo histórico del sistema de los números reales muestra que el
sistema decimal no ha sido el único que se ha utilizado, sino que se han usado otros sistemas
como el de base 20 y 60 entre otros. Actualmente las computadoras usan sistemas de base 2,
8 y 16, entre otros.
Ejemplo 2.1.1. Representar el número decimal periódico x = 123.456 en el sistema binario.
En efecto, se descompone x en dos partes x0 = 123 y x1 = 0.456, donde x0 ∈ Z+ y x1 ∈ R+
con x1 < 1. Para convertir x0 a binario se aplica el algoritmo de la división consecutivamente,
y para convertir x1 a binario se multiplica consecutivamente por 2, como se indica en la tabla
2.1:
Parte entera Parte fraccionaria
x0 = 2(61) + 1 2 · x1 = x2 + x−1 , x2 = 0.912, x−1 =0
61 = 2(30) + 1 2 · x2 = x3 + x−2 , x3 = 0.825, x−2 =1
30 = 2(15) + 0 2 · x3 = x4 + x−3 , x4 = 0.651, x−3 =1
15 = 2(7) + 1 2 · x4 = x5 + x−4 , x5 = 0.303, x−4 =1
7 = 2(3) + 1 2 · x5 = x6 + x−5 , x6 = 0.606, x−5 =0
3 = 2(1) + 1 2 · x6 = x7 + x−6 , x7 = 0.213, x−6 =1
.. .. ..
1 = 2(0) + 1 . . .
Tabla 2.1: Conversión de número decimal a binario.

La parte entera binaria se lee de abajo hacia arriba, y la parte fraccionaria de arriba hacia
abajo, por lo que el resultado es x = 1111011.011101 · · · , que se puede representar en forma
normalizado como:
x = (0.1111011011101 · · · ) × 27 .

25
26 2.1. Representación de números reales en bases arbitrarias

Teorema 2.1.1. Si β ≥ 2 es un entero y x ∈ R, x 6= 0, entonces x se representa en la forma


β−cimal estandarizada:

!
X
x=± x−ν β −ν × β e ≡ ± (0.x−1 x−2 · · · ) × β e , (2.1)
ν=1

con e ∈ Z y x−ν ∈ {0, 1, . . . , β − 1}. Más aún, existe una única representación de tipo (2.1)
con x−1 6= 0 y con la propiedad de que para cualquier n ∈ N, existe un ν ≥ n tal que
x−ν 6= β − 1 . (2.2)
Demostración. Una prueba se da en Hämmerlin and Hoffmann (1991) [11], y es el siguiente:
Para la existencia de la representación, sea x ∈ R, x 6= 0. Entonces el signo de x queda
únicamente determinado si x > 0 o x < 0, y el número entero e := min{k ∈ Z : |x| < β k }.
Sea
x1 := β −e |x| ,
y se aplica a x1 el método de la parte fraccionaria del ejemplo 2.1.1, con β en lugar de 2.
La definición de e implica que β e−1 ≤ |x| < β e y que 0 < x1 < 1. Generalizando el método
del ejemplo 2.1.1, se considera la regla
β · xν = xν+1 + x−ν , ν ∈ N,
donde x−ν es el entero más grande que no excede a β · xν . Así se producen dos sucesiones de
números {xν }ν∈N y {x−ν }ν∈N con las propiedades
0 ≤ xν < 1 ,
x−ν ∈ {0, 1, · · · , β − 1} , ν ∈ N.
La primera propiedad es claro para ν = 1, pues por definición 0 < x1 < 1. Se supone
cierto para ν > 1 y se probará para ν + 1. Puesto que β · xν = xν+1 + x−ν , donde x−ν es
el entero más grande que no excede a β · xν , es decir x−ν ≤ β · xν < x−ν + 1, entonces
0 ≤ β · xν − x−ν < 1, lo que implica que 0 ≤ xν+1 < 1.
Se probará la segunda propiedad. Para ν = 1, se tiene que 0 < x1 < 1 implica 0 <
β · x1 < β, y si β · x1 = x2 + x−1 , entonces 0 ≤ β · x1 − x2 = x−1 < β − x2 ≤ β. Por
lo que x−1 tiene la propiedad deseada. Se supone que x−ν tiene la propiedad deseada para
ν > 1 y se probará para ν + 1. Como β · xν+1 = xν+2 + x−(ν+1) , donde 0 ≤ xν+1 < 1,
0 ≤ xν+2 < 1 y x−(ν+1) es el mayor entero que no excede a β · xν+1 . Así que 0 ≤ β · xν+1 < β y
0 ≤ β · xν+1 − xν+2 = x−(ν+1) < β − xν+2 ≤ β, lo que muestra que x−(ν+1) tiene la propiedad
deseada.
El argumento inductivo anterior muestra que para cualquier n ∈ N, x1 se puede expandir
como n
X
x1 = x−ν β −ν + β −n xn+1 , (2.3)
ν=1
2. Aritmética de punto flotante 27

con x−ν ∈ {0, 1, · · · , β − 1} y 0 ≤ xn+1 < 1.


Así que para cualquier n ∈ N
n
X
0 ≤ x1 − x−ν β −ν < β −n .
ν=1

Pasando al límite cuando n → ∞, se tiene la representación



X
x1 = x−ν β −ν ,
ν=1

de donde resulta la representación (2.1).


La elección del entero e implica que x−1 6= 0, pues en caso contrario, 0 < β · x1 = x2 < 1,
lo que implica que 0 < x1 < β −1 , que a su vez implica que 0 < β −e |x| < β −1 , de donde
0 < |x| < β e−1 que contradice la elección de e.
Para probar la propiedad (2.2), se supone que no se satisface, es decir, que existe un n ∈ N
tal que x−ν = β − 1 para todo ν ≥ n + 1. Así que
n
X ∞
X
−ν
x1 = x−ν β + (β − 1) β −ν ,
ν=1 ν=n+1

donde
∞ ∞
" #  
X X 1 β β −n
−ν −n−1 −ν −n−1 −n−1
β =β β =β 1 =β = ,
ν=n+1 ν=0
1− β
β−1 β−1

por lo que
n
X
x1 = x−ν β −ν + β −n .
ν=1

Comparando esta última igualdad con la fórmula (2.3), se tiene que xn+1 = 1 que con-
tradice con el hecho de que 0 ≤ xn+1 < 1. Esta contradicción muestra que la propiedad (2.2)
se debe cumplir.
Para probar la unicidad de la representación (2.1), se supone que x1 tiene dos expansiones

X ∞
X
−ν
x1 = x−ν β y y1 = y−ν β −ν .
ν=1 ν=1

P
Sea z−ν := y−ν − x−ν para todo ν ∈ N. Es claro que ∞ ν=1 z−ν β
−ν
= 0, y hay que probar
que z−ν = 0 para todo ν ∈ N. Suponga por el contrario que existe un primer índice n − 1 tal
28 2.2. Sistemas de punto flotante

que z−(n−1) 6= 0. Es claro que se puede suponer que z−(n−1) ≥ 1. Puesto que

X ∞
X ∞
X 
−ν −ν −ν 

z−(n−1) β −(n−1) = (−z−ν )β ≤ |z−ν |β ≤ (β − 1)β 

ν=n ν=n ν=n

" # (2.4)

X 1 

= (β − 1) β −ν = (β − 1)β −n 1 = β −(n−1) , 


ν=n
1− β

entonces z−(n−1) ≤ 1, y por el supuesto anterior se debe tener que z−(n−1) = 1. Esto significa
que la desigualdad en (2.4) realmente debe ser una igualdad, por lo que

z−ν = −β + 1 , para todo ν ≥ n .

La única posibilidad para que se cumpla la igualdad anterior es que y−ν = 0 y x−ν = β −1,
para todo ν ≥ n. Pero esto contradice con el supuesto de que x1 satisface la propiedad (2.2),
por lo que z−ν = 0 para todo ν ∈ N. Así que las dos expansiones deben ser lo mismo.
Las bases más usados son β = 2 (binario), 8 (octal), 10 (decimal) y 16 (hexadecimal)
donde los dígitos en este último caso son 0, 1, · · · , 9, A, B, C, D, E y F.
Note que si e ≥ 1, entonces (2.1) se escribe simplemente en la forma β−cimal:

x = ± x−1 x−2 · · · x−e . x−e−1 x−e−2 · · · .


| {z } | {z }
parte entera parte β−cimal

2.2. Sistemas de punto flotante


El sistema de punto flotante (S.P.F.) se define por:
 

e d1 ∈ {1, 2, . . . , β − 1}, L ≤ e ≤ U
fl(β, t, L, U ) = ±0.d1 d2 · · · dt × β ∪ {±0. 00 · · · 0}} ,
| {z
di ∈ {0, 1, . . . , β − 1}, i = 2 : t
t ceros

donde β es un número entero ≥ 2 que se llama base del sistema, t también es un número
entero > 0 que se le llama precisión del sistema, y [L, U ] es el rango del exponente e con
L entero negativo y U entero positivo. Algunos ejemplos típicos que se encuentran en la
literatura se muestran en la tabla 2.2. Los elementos del S.P.F. se llaman números punto
flotante.
Observación 2.2.1. Si x = ±0.d1 d2 · · · dt × β e ∈ fl(β, t, L, U ), d1 6= 0, y m = 0.d1 d2 · · · dt ,
entonces
β −1 ≤ m < 1 ,
por lo que se dice que los números punto flotante distintos de cero tienen formato normali-
zado. Al número m se le llama mantisa de x.
2. Aritmética de punto flotante 29

Sistema β t L U
IEEE SP 2 24 −126 127
IEEE DP 2 53 −1 022 1 023
Cray 2 48 −16 383 16 384
HP calculator 10 12 −499 499
IBM mainframe 16 6 −64 63
Tabla 2.2: Parámetros típicos de sistemas de punto flotante.

Existe una forma alternativa para normalizar los números punto flotante, pero aquí se
sigue la notación de Buchanan and Turner (1992) [1], Hämmerlin and Hoffmann (1991) [11],
y Stoer and Bulirsch (1993) [24].
En un sistema binario, d1 es siempre 1 y no hay necesidad de almacenarlo, por lo que se
gana un bit extra de precisión para un campo de ancho dado (así el número 1 se le considera
un bit escondido). El sistema IEEE1 SP (formato simple) es un sistema binario de 32 bits
(ancho de campo): 1 bit para el signo, 8 bits para el exponente e y 23 bits para la mantisa m
(equivalente a 7 dígitos decimales significativos). El bit del signo es 0 para números positivos y
1 para los negativos. El sistema IEEE DP (formato doble) es un sistema binario de 64 bits: 1
bit para el signo, 11 bits para el exponente e y 52 bits para la mantisa m (equivalente entre 15
y 16 dígitos decimales significativos). Los microprocesadores Intel realizan su aritmética con
un formato extendido en hardware de 80 bits: 1 bit para el signo, 15 bits para el exponente
y 64 bits para la mantisa m (equivalente entre 19 y 20 dígitos decimales significativos), en
este caso d1 no está oculto (Overton, 2002 [19]).
Se presentan a continuación dos programas que imprimen resultados en formato simple y
doble precisión.
C IMPRESION DE RESULTADOS EN PRECISION SIMPLE
C
C2345678...
REAL NUMERO, RAIZC
NUMERO = 145
RAIZC = -SQRT(NUMERO)
WRITE(6,10)RAIZC
10 FORMAT(/,8X,’ EL RESULTADO DE LA RAIZ ES:’,1X,E13.7)
END
Al ejecutar el programa imprime el resultado (nótese el formato):
EL RESULTADO DE LA RAIZ ES: -.1204159E+02

C IMPRESION DE RESULTADOS EN PRECISION DOBLE


1
The Institute of Electrical and Electronics Engineers, Inc., 345 East 47th Street, New York, New York
10017.
30 2.2. Sistemas de punto flotante

C
C2345678...
DOUBLE PRECISION NUMERO, RAIZC
NUMERO = .145D+3
RAIZC = -DSQRT(NUMERO)
WRITE(6,10)RAIZC
10 FORMAT(/,8X,’ EL RESULTADO DE LA RAIZ ES:’,1X,D21.15)
END
El resultado de la ejecución ahora es:
EL RESULTADO DE LA RAIZ ES: -.120415945787923D+02
Observa la diferencia entre los dos programas y las impresiones correspondientes.

2.2.1. Números subnormales


Dos números importantes en el sistema fl(β, t, L, U ) son

xmin = β L−1 y xmax = 1 − β −t β U ,

el número positivo más chico y más grande respectivamente.


En efecto:
 
U β−1 β−1 β−1
xmax = 0.(β − 1)(β − 1) · · · (β − 1) × β = + +···+ × βU
β β2 βt
 
1 1 1 β−1
= + 2 + · · · + t (β − 1) × β U = (β t−1 + β t−2 + · · · + β + 1) t
× βU
β β β β
1 − βt β − 1
= × β U = (1 − β −t ) β U . 
1 − β βt

Dado que en el sistema binario:

xmin = 1. 00 · · · 0} ×2L−1 ,
| {z
t−1 ceros

y se guarda su mantisa solamente los t − 1 ceros (el 1 está oculto), se aprovechan los espacios
que ocupan dichos ceros para almacenar otros números más pequeños de la forma:

±0.d1 d2 · · · dt−1 × 2L−1 , di ∈ {0, 1}, i = 1 : t − 1 ,

que se les llama números subnormales. Estos números no están normalizados y por consi-
guiente son menos precisos.
2. Aritmética de punto flotante 31

2.3. Redondeo
Definición 2.3.1. Un número real x 6= 0 está en el intervalo normalizado del S.P.F. si:

xmin ≤ |x| ≤ xmax .

Los números ±0, ±∞ y los números subnormales no están en el intervalo normalizado


de un sistema binario de punto flotante, pero todos son números punto flotante válidos. En
adelante, se considerarán todos ellos como números punto flotante.
Definición 2.3.2. Sea x ∈ R, x 6= 0. Se define x− como el número punto flotante más
cercano a x que es menor o igual a x, y x+ como el número punto flotante más cercano a x
que es mayor o igual a x. Si el número más cercano es el 0, se establece el signo del 0 igual
al de x (Overton, 2002 [19]).
Teorema 2.3.1. Sea β ≥ 2 un entero par, t ∈ Z+ y x ∈ R, x > 0 representado por

x = (0.d1 d2 · · · dt−1 dt dt+1 · · · ) × β e ,

d1 ∈ {1, 2, . . . , β − 1}, di ∈ {0, 1, . . . , β − 1}, i ≥ 2, y di 6= 0 para algún i ≥ t + 1.


Si x está en el intervalo normalizado del S.P.F., entonces
!
x− = 0.d1 d2 · · · dt−1 dt × β e y x+ = 0.d1 d2 · · · dt−1 dt + 0. 00 · · · 0} 1
| {z × βe .
t−1 ceros

Más aún:
x+ − x− = β e−t .
Demostración. Dado que
 
d   
 1 d2 dt dt+1  e dt+1
x =  + 2 + · · · + t + t+1 + · · ·  × β = x− + + · · · × β e < x+ ,
β β β β  β t+1
| {z }
mantisa de x−

entonces
1
x+ = x − + × β e = x− + β e−t .
βt

En este caso se dice que x− se obtiene por truncamiento, pues simplemente se descartan
los dígitos di , i ≥ t + 1.

Casos especiales
32 2.3. Redondeo

A). Si x > xmax , entonces x− = xmax y x+ = ∞ .

B). Si 0 < x < xmin , entonces x− es 0 o un número subnormal en el caso binario, y x+ es


xmin o un número subnormal en el caso binario.

C). Si x < 0, entonces la situación se invierte para x− y x+ , por ejemplo, si x < 0 y


1
−xmax < x < −xmin , entonces x+ se obtiene por truncamiento y x− = x+ − t × β e .
β
Si x < 0 pero −xmin < x < 0, entonces x− = −xmin o un número negativo subnormal
en el caso binario, y x+ = 0 o un número negativo subnormal en el caso binario. Y si
x < −xmax , entonces x− = −∞ y x+ = −xmax .

Valores correctamente redondeados


El estándar IEEE define el valor correctamente redondeado de un número real x a través
de una función que se denota como red o fl, es decir:

red : R −→ fl(β, t, L, U ) ∪ {números subnormales} ∪ {±∞} ,

definido por

A). Si x es un número punto flotante, entonces: red(x) = x .

B). Si x no es un número punto flotante, el valor correctamente redondeado de x depende


de cuál de los siguientes cuatro modos de redondeo esté en efecto:

i). Redondeo hacia abajo (o hacia −∞): red(x) = x− .


ii). Redondeo hacia arriba (o hacia ∞): red(x) = x+ .
iii). Redondeo hacia cero: (
x− si x > 0
red(x) =
x+ si x < 0
iv). Redondeo al más cercano:

 x− si |x| < xmax y |x − x− | < |x − x+ |



 x+ si |x| < xmax y |x − x− | > |x − x+ |
red(x) =

 ∞ si x > xmax



−∞ si x < −xmax

En el caso de un empate |x − x− | = |x − x+ | :
1) En un sistema binario (β = 2), se escoge el red(x) como el flotante que tenga
su bit menos significativo igual a 0 (Overton, 2002 [19]).
2. Aritmética de punto flotante 33

2) Si β > 2, el red(x) puede ser más complicado pero una forma simple es elegir
el flotante cuyo último dígito significativo sea par (redondeo al par más
cercano).
El estándar IEEE usa por defecto el modo de redondeo al más cercano, y es la que se usa
casi siempre en la práctica. En adelante se referirá por redondeo a dicho modo.
Ejercicio 2.3.1. Sea x en un sistema binario dado por
x = (0.1b2 b3 · · · dt−1 dt dt+1 · · · ) × 2e . (2.5)
Demuestra que
A). Si dt+1 = 0 entonces red(x) = x− .
B). Si dt+1 = 1 y di = 1 para algún i > t + 1, entonces red(x) = x+ .
C). Si dt+1 = 1 y di = 0 para todo i ≥ t + 2, entonces |x − x− | = |x − x+ |.
“Los bits menos significativos, es decir, los bits finales de x− y x+ deben ser distintos,
y para romper el empate se escoge aquél cuyo bit final sea 0”.
Ejemplo 2.3.1. Redondeos al par más cercano con dos dígitos significativos:
red(2.750) = 2.8, red(2.850) = 2.8 y red(−1.450) = −1.4 .
Teorema 2.3.2. Sea β ≥ 2 un entero par, t ∈ Z+ y x ∈ R, x 6= 0, con representación
x = ±(0.d1 d2 · · · dt · · · ) × β e ,
donde d1 ∈ {1, 2, . . . , β − 1} y di ∈ {0, 1, . . . , β − 1}, i ≥ 2. Entonces

1 e−t red(x) − x 1 −(t−1) red(x) − x 1 −(t−1)
|red(x) − x| ≤ β , ≤ β y
2 x 2 red(x) ≤ 2 β .

Demostración. Nótese que


1 1
|red(x) − x| ≤ (x+ − x− ) = β e−t .
2 2
Por otro lado, si se escribe x = ±m × β donde m = 0.d1 d2 · · · dt · · · , d1 6= 0, entonces
e

β ≤ m < 1. De donde
−1
1
1< ≤β.
m
Así que
1 e−t
red(x) − x |red(x) − x| β 1 1 −t 1 1−t 1 −(t−1)
= ≤ 2
= β ≤ β = β .
x |x| m×β e 2m 2 2
Similarmente se verifica la tercera desigualdad.
34 2.4. Operaciones básicas de punto flotante

Definición 2.3.3. El número


1
u = β −(t−1) ,
2
se le llama unidad de redondeo (precisión de la máquina, epsilon de la máquina o
exactitud relativa) de la aritmética de punto flotante del sistema fl(β, t, L, U ).
Ejemplo 2.3.2. En el sistema de punto flotante binario IEEE SP (t = 24) se tiene:
1
u= × 2−23 = 2−24 = 0.596 × 10−7 ∼
= 10−7 ,
2
y en precisión doble (t = 53):
1
u= × 2−52 = 2−53 = 1.11 × 10−16 ∼= 10−16 .
2
Por lo que el sistema de punto flotante IEEE en precisión simple tiene alrededor de 7
dígitos significativos decimales de precisión, y en precisión doble tiene entre 15 y 16 dígitos
significativos decimales de precisión. ¿Ocurre esto exactamente en la práctica? En ambos
casos, está incluído el bit escondido.
Ejemplo 2.3.3. Para la precisión extendida Intel (t = 64), se tiene:
1
u=× 2−63 = 2−64 = 0.542 × 10−19 ∼
= 10−19 ,
2
que corresponde a aproximadamente 19 y 20 dígitos decimales significativos.

2.4. Operaciones básicas de punto flotante


Observación 2.4.1. Para a ∈ R, a 6= 0 :
a−a
b
=δ si y sólo si b
a = a(1 + δ) .
a
Así que en el sistema fl(β, t, L, U ):
fl(a) ≡ red(a) = a(1 + δ) para algún |δ| ≤ u ,
1
donde u := β −(t−1) es la unidad de redondeo del sistema.
2
Observación 2.4.2. El supuesto básico sobre una operación binaria en el sistema de punto
flotante fl (β, t, L, U ) es que para cualesquiera a, b ∈ fl (β, t, L, U ):
fl(a b) = (a b)(1 + δ), |δ| ≤ u ,
donde representa a cualquiera de las cuatro operaciones básicas: +, −, ×, o / . “Con este
criterio, las operaciones se realizan a precisión de la máquina”.
2. Aritmética de punto flotante 35

Dos talleres numéricos que simulan la aritmética flotante en FORTRAN 77 y en MATLAB,


son TALLER.EXE y TALLER.m . En ellos se pueden simular las operaciones básicas, resolver
un sistema lineal de 2 ecuaciones algebraicas, resolver una ecuación de segundo grado, entre
otros. Se recomienda hacer simulaciones con ellos.

2.5. Cancelación numérica


Al realizar la “resta” en el sistema de punto flotante, se puede presentar un fenómeno
numérico conocido como cancelación numérica. Por ejemplo, si a = 0.34567835 y b =
0.34567823, se tiene que
a − b = 0.00000012 = 0.12 × 10−6 .
Sin embargo, en una A.P.F. de 7 dígitos significativos y redondeo al más cercano par se
tiene
fl(a) = 0.3456784, fl(b) = 0.3456782 y fl(a − b) = 0.0000002 = 0.2 × 10 −6 .
Durante la resta se han perdido dígitos significativos que garantizaban la buena exactitud
y precisión de los números, y los resultados de a − b y fl(a − b) no coinciden ni por redondeo.

2.5.1. Ecuación de segundo grado


Se presenta el problema de cancelación catastrófica en el cálculo de las raíces de la ecuación
polinomial cuadrática:
ax2 + bx + c = 0, a, b, c ∈ R,
cuyo discriminante cuando a 6= 0, está dada por:
∆ = b2 − 4ac .
Si ∆ < 0, entonces ambas raíces son complejas y conjugadas, y están dadas por:
p
b |∆|
x1,2 = − ± i.
2a 2a
Si ∆ = 0, entonces ambas raíces son reales e iguales, y están dadas por:
x1,2 = −b/2a .
Si ∆ > 0, entonces ambas raíces son reales y distintas, y se pueden calcular con dos
métodos diferentes:
Método 1. Aplicando la fórmula clásica:

−b ± ∆
x1,2 = .
2a
36 2.6. Sumas

Método 2. En el método 1, no se toma en cuenta el problema de la cancelación numérica


en el cálculo de las raíces. Para evitar dicho problema, se aplican las fórmulas de Vieta de la
siguiente forma:
A). Si b > 0, se calculan: √
−b − ∆
x1 = ,
2a
y
c 2c
x2 = ≡− √ .
ax1 b+ ∆
B). Si b < 0, se calculan: √
−b + ∆
x1 = ,
2a
y
c 2c
x2 = ≡ √ .
ax1 −b + ∆
El método 1 es numéricamente inestable, mientras que el método 2 es numéricamente
estable.

2.6. Sumas
2.6.1. Análisis de estabilidad numérica
Problema 2.6.1. Para a1 , a2 , . . . , an en R, calcular
Xn
S= ak .
k=1

Algoritmo 2.6.1. El algoritmo estándar para calcular la suma del problema 2.6.1 está dado
por:
sum ← 0.0
Para k = 1 : n, hacer
sum ← sum + ak
Terminar.

Lema 2.6.1. Si ak ∈ fl (β, t, L, U ), k = 1 : n, entonces


n
! n n
X X Y
fl ak = ak ∗ (1 + εj )
k=1 k=1 j=k

donde |εj | ≤ u, j = 1 : n, ε1 = 0.
2. Aritmética de punto flotante 37

Demostración. Inducción sobre n.


Para n = 2 se tiene que
fl(a1 + a2 ) = (a1 + a2 )(1 + ε2 ) = a1 (1 + ε1 )(1 + ε2 ) + a2 (1 + ε2 )
con ε1 ≡ 0 y |ε2 | ≤ u.
Se supone cierta la hipótesis de inducción para n > 2, y se probará la igualdad para n + 1.
n+1
! n
! ! n
! !
X X X
fl ak := fl fl ak + an+1 = fl ak + an+1 (1 + εn+1 )
k=1 k=1 k=1
n
!
X
= fl ak (1 + εn+1 ) + an+1 (1 + εn+1 )
k=1
n n
!
X Y
= ak ∗ (1 + εj ) (1 + εn+1 ) + an+1 (1 + εn+1 )
k=1 j=k

n+1
X n+1
Y
= ak ∗ (1 + εj ), ε1 = 0, |εj | ≤ u, j = 2 : n + 1 .
k=1 j=k

Lema 2.6.2. Sea n entero positivo tal que nu < 0.01 y 0 < |εj | ≤ u para j = 1 : n.
n
Y
Si (1 + εj ) = 1 + δn , entonces |δn | ≤ 1.01nu.
j=1

Demostración. Nótese que al desarrollar el producto, resulta que


n
X X X
δn = εj + εi εj + εi εj εk + · · · + ε 1 ε2 · · · εn .
j=1 i6=j i6=j6=k

Así que
     
n 2 n 3 n
|δn | ≤ nu + u + u +···+ un
2 3 n
n(n − 1) 2 n(n − 1)(n − 2) 3 n(n − 1)(n − 2)(n − 3) 4
= nu + u + u + u + · · · + un
2! 3! 4!
 
0.01 (0.01)2 (0.01)3 (0.01)n−1
< nu + nu + + +···+
2! 3! 4! n!
 
1 1 1 1
= nu + nu + + +···+
200 60 000 24 000 000 n! × 102(n−1)

= nu + nu(0.005 + 0.00001666 · · · + 0.000000041666 · · · + · · · )

= nu + nu(0.00501670833 · · · ) ≤ nu + 0.01nu = 1.01nu .
38 2.6. Sumas

Teorema 2.6.1 (Análisis de error prospectivo). Si ak ∈ fl (β, t, L, U ), k = 1 : n, y si


nu < 0.01, entonces
!
Xn Xn X n

fl ak − ak ≤ |ak | ∗ |δn−k+1 | , (2.6)

k=1 k=1 k=1

con |δj | ≤ 1.01ju, j = 1 : n − 1 y δn = δn−1 .

Demostración. Por los lemas 2.6.1 y 2.6.2 :


n
! n n
X X Y
fl ak = ak ∗ (1 + εj ) , |εj | ≤ u , ε1 ≡ 0
k=1 k=1 j=k
n
X n
X n
X
= ak ∗ (1 + δn−k+1 ) = ak + ak ∗ δn−k+1 ,
k=1 k=1 k=1

de donde se sigue la desigualdad (2.6).


Por otro lado
Yn n
Y
1 + δn = (1 + εj ) = (1 + εj ) = 1 + δn−1 ,
j=1 j=2

de donde δn = δn−1 y |δn−1 | ≤ 1.01(n − 1)u .


Para k = 3 : n, se tiene que
n
Y
(1 + εj ) = 1 + δn−k+1 , con |δn−k+1 | ≤ 1.01(n − k + 1)u .
j=k

Observación 2.6.1. Del teorema 2.6.1 se sigue que


!
n
X n
X n
X

fl a k − a k ≤ |a 1 | ∗ |δ n−1 | + |ak | ∗ |δn−k+1 |

k=1 k=1 k=2
n
X
≤ |a1 | ∗ 1.01(n − 1)u + |ak | ∗ 1.01(n − k + 1)u
k=2
n
!
X
≤ |ak | ∗ 1.01(n − 1)u . (2.7)
k=1
2. Aritmética de punto flotante 39

A). Así que cuando


Xn n
X

ak << |ak | ,

k=1 k=1

el lado derecho de (2.7) no necesariamente es pequeña. Por lo que no se garantiza la


estabilidad del algoritmo 2.6.1 si en la sumatoria hay términos positivos y negativos.

B). Si ak > 0, k = 1 : n, entonces de (2.7) se sigue que


! , n
X n Xn X

fl ak − ak ak ≤ 1.01(n − 1)u . (2.8)

k=1 k=1 k=1

Por lo tanto, la suma de números positivos hecha en orden natural por el algoritmo
2.6.1 es numéricamente estable. Sin embargo, esto no garantiza que el resultado que
se obtiene de la suma sea exacto.

C). Si ak < 0, k = 1 : n, entonces



Xn X n

ak = |ak | .

k=1 k=1

Por lo que la desigualdad (2.8) sigue siendo válida, así que el algoritmo 2.6.1 también
es numéricamente estable, para este caso.

Teorema 2.6.2 (Análisis de error retrospectivo). Si ak ∈ fl (β, t, L, U ), k = 1 : n, y si


nu < 0.01, entonces !
X n X n
fl ak = ak ,
b
k=1 k=1

donde b
ak = ak (1 + δn−k+1 ), |δj | ≤ 1.01ju, j = 1 : n − 1, δn = δn−1 .
Demostración. Se sigue de los lemas 2.6.1 y 2.6.2.
Observación 2.6.2. Del teorema 2.6.2 o 2.6.1, se sigue que
!
Xn Xn

fl a k − a k ≤ |a1 | |δn−1 | + |a2 | |δn−1 | + |a3 | |δn−2 | + · · · + |an | |δ1 |

k=1 k=1
≤ 1.01u [(n − 1)|a1 | + (n − 1)|a2 | + (n − 2)|a3 | + · · · + 2|an−1 | + |an | ].

Nótese que el error por redondeo se minimiza si

|a1 | ≤ |a2 | ≤ · · · ≤ |an | .


40 2.6. Sumas

A). En el caso de suma de números positivos, el error por redondeo se minimiza si se


ordenan primero los números de menor a mayor.

B). En el caso de suma de números negativos, el error por redondeo se minimiza si se


ordenan primero los números de mayor a menor.

Lo anterior sugiere construir algoritmos más efectivos que el algoritmo estándar 2.6.1 para
la suma de n números arbitrarios. Investiga sobre el algoritmo “divide y vencerás”.

Ejemplo 2.6.1. Calcula la suma en orden creciente y decreciente en el sistema fl(10, 4, −9, 9)
con redondeo al par más cercano, de los siguientes números: a 1 = 1.234×101 , a2 = 3.453×100 ,
a3 = 3.441 × 10−2 , a4 = 4.667 × 10−3 y a5 = 9.876 × 10−4 .

12.34 + 3.453 = 15.793 0.0009876 + 0.004667 = 0.0056546


15.79 + 0.03441 = 15.82441 0.005655 + 0.03441 = 0.040065 Verifica que la
15.82 + 0.004667 = 15.824667 0.04006 + 3.453 = 3.49306 suma exacta es
15.82 + 0.0009876 = 15.8209876 3.4930 + 12.34 = 15.833 s = 15.8330646 .
Suma en orden decreciente = 15.82 . Suma en orden creciente = 15.83 .
Porcentaje de error ∼
= 0.08 % . Porcentaje de error ∼
= 0.02 % .

2.6.2. Algunas aplicaciones


Algunos ejemplos en donde se requiere el cálculo de una suma son:

1. Cálculo de ex . Usando la serie de Taylor

x2 x3
ex = 1 + x + + +···
2! 3!

Para x < 0, la serie de Taylor es alternante, por lo que puede haber resultados desas-
trosos por cancelación numérica.

2. Cálculo del producto punto. El producto punto de dos vectores x = (x1 , x2 , . . . , xn )T


y y = (y1 , y2 , . . . , yn )T en Rn , está definido por
n
X
xT y = xk y k . (2.9)
k=1

En particular, el cálculo de la norma de un vector x = (x1 , x2 , . . . , xn )T en Rn :


n
X
A). kxk1 := |xk | “Norma 1”
k=1
2. Aritmética de punto flotante 41

v
uX
u n 2
B). kxk2 := t xk “Norma Euclidiana”
k=1

3. Cálculo de la media y de la desviación estándar. La media de n números reales


x1 , x2 , . . . , xn , está definida por:
n
1X
x= xk ,
n k=1

y la desviación estándar (varianza) está definida por


" n
#1/2
1 X
σ= (xk − x)2 , (2.10)
n − 1 k=1

conocido como fórmula de dos pasos (uno para calcular la media y la otra para la
desviación estándar). Para una mejor eficiencia, se puede usar la fórmula equivalente
de un solo paso
" n
!#1/2
1 X
σ= x2 − nx 2 . (2.11)
n − 1 k=1 k

4. Método de sustitución prospectiva. Un sistema triangular inferior está dada por

`11 x1 = c1
`21 x1 + `22 x2 = c2
(2.12)
··· ··· ··· ···
`n1 x1 + `n2 x2 + · · · + `nn xn = cn

donde `kk 6= 0 para k = 1 : n.


La solución del sistema triangular inferior (2.12) se obtiene mediante el método de
sustitución prospectiva:
Pk−1
c1 ck − i=1 `ki xi
x1 = , xk = , `kk 6= 0, k = 2 : n .
`11 `kk

5. Método de sustitución retrospectiva. Un sistema triangular superior está dada


por
r11 x1 + r12 x2 + · · · + r1n xn = d1
r22 x2 + · · · + r2n xn = d2
(2.13)
··· ··· ···
rnn xn = dn
42 2.6. Sumas

donde rkk 6= 0 para k = 1 : n.


La solución del sistema triangular superior (2.13) se obtiene mediante el método de
sustitución retrospectiva:
P
dn dk − ni=k+1 rki xi
xn = , xk = , rkk 6= 0, k = n − 1 : −1 : 1 .
rnn rkk

2.6.3. Análisis de estabilidad numérica en el cálculo de ex


Se considera el valor exacto de ex dado por el polinomio de Taylor

x2 xn
y = ex = 1 + x + +···+ , n = n(x) ,
2! n!
y se hará el análisis al realizar la suma con el algoritmo 2.6.1.
Bajo el supuesto de que cada xk /k! son bien calculados y que nu < 0.01, se sigue del lema
2.6.1 y lema 2.6.2 que
n
X xk
yb = fl(y) = (1 + δn−k+1 ) , con |δj | ≤ 1.01ju, j = 1 : n, y δn+1 = δn .
k=0
k!

Así que
n
X n
X
|x|k |x|k
|b
y − y| ≤ |δn−k+1 | ≤ 1.01(nu) = 1.01(nu)e|x| . (2.14)
k=0
k! k=0
k!
Si x ≥ 0, se sigue de (2.14) que el error apriori es acotado por

|b
y − y|
≤ 1.01nu .
|y|

Bajo el supuesto de que x es capturado a precisión de la máquina, el número de condición


del problema se puede definir en este caso como κ := 1.0. Por lo que el método de la serie de
Taylor es numéricamente estable para x ≥ 0.
Si x < 0, entonces de (2.14):

|b
y − y|
≤ 1.01(nu) e−2x ,
|y|

y nuevamente bajo el supuesto de que x es capturado a precisión de la máquina:

κ := e−2x > 1 .

Así que para x << −1, el método de la serie de Taylor es numéricamente inestable.
2. Aritmética de punto flotante 43

2.7. Análisis de primer orden de la sensibilidad numérica


2.7.1. Símbolos de Landau
Sean f, g : D ⊆ R → R, donde g(x) 6= 0 para x ∈ D.

1. Se dirá que f (x) = O(g(x)) cuando x → x0 si existe una constante C > 0 y δ > 0 tal
que
f (x)

g(x) ≤ C ,

para x ∈ D con x 6= x0 y |x − x0 | < δ.

2. Se dirá que f (x) = o(g(x)) cuando x → x0 si para cualquier constante C > 0 existe
δ > 0 tal que
f (x)

g(x) ≤ C ,

para x ∈ D con x 6= x0 y |x − x0 | < δ.

Observación 2.7.1. Algunas propiedades de los símbolos de Landau.

A). f (x) = O(f (x)).

B). f (x) = o(g(x)) ⇒ f (x) = O(g(x)).

C). f (x) = K · O(g(x)) para alguna K ∈ R ⇒ f (x) = O(g(x)).

D). f (x) = O(g1 (x)) y g1 (x) = O(g2 (x)) ⇒ f (x) = O(g2 (x)).

E). f1 (x) = O(g1 (x)) y f2 (x) = O(g2 (x)) ⇒ f1 (x) · f2 (x) = O(g1 (x) · g2 (x)).

F ). f (x) = O(g1 (x) · g2 (x)) ⇒ f (x) = g1 (x) · O(g2 (x)).

Se tienen propiedades análogas (C) − (F ) para el símbolo “o”.

Demostración. Probarlos de ejercicio.


Algunos ejemplos:
x2 x4
1). f (x) = + ⇒ f (x) = O(x2 ) cuando x → 0.
2 24
x2 x4
2). f (x) = + ⇒ f (x) = o(x) cuando x → 0.
2 24
1 1 5
3). f (n) = n3 + n2 − n ⇒ f (n) = O(n3 ) cuando n → ∞.
3 2 6
44 2.7. Análisis de primer orden de la sensibilidad numérica

2.7.2. Análisis de primer orden


Lema 2.7.1. Si x = (x1 , x2 , . . . , xn )T ∈ Rn , entonces

kxk∞ = max{|x1 |, |x2 |, . . . , |xn |} ,

es una norma sobre Rn .

Teorema 2.7.1. Si f : D ⊆ Rn → R es diferenciable en x ∈ D, D abierto en Rn , entonces


el error prospectivo en la evaluación de y = f (x) está dado por

Xn
∂f
∆y := yb − y ≡ f (x + δx) − f (x) = (x) δxk + ψ(δx) , (2.15)
k=1
∂x k

donde
ψ(δx)
−→ 0 cuando δx → 0 ,
kδxk∞
δx = (δx1 , δx2 , . . . , δxn )T , δxk ≡ ∆xk := x
bk − xk , k = 1 : n.

Demostración. Se sigue de la fórmula de Taylor de primer orden (Marsden y Tromba, 1991


[15]).

El análisis del error prospectivo dada por la fórmula (2.15), se llama análisis de error
de primer orden para el problema y = f (x).

Ejemplo 2.7.1. Hacer el análisis de sensibilidad numérica del problema de calcular:


a
z= , a 6= 0 , b 6= 0 .
b
Solución.
∂z ∂z
∆z = δa + δb + ψ(δx) , δx = (δa, δb)
∂a ∂b
δa a
= − 2 δb + ψ(δx)
b b
 
a δa δb b
= − + ψ(δx) ,
b a b a
de donde
∆z δa δb b
= − + ψ(δx),
z a b a
y
∆z δa δb b

z ≤ a + b + a |ψ(δx)| .
2. Aritmética de punto flotante 45

Así que  
∆z δb
≤ 2 max δa , + ψ ∗ (δx) ,
z a b
donde

b b  

ψ (δx) = |ψ(δx)| = O kδxk2∞ , lo que implica que ψ ∗ (δx) = O kδxk2∞ .

a a

Si además, |δa| ≤ ε|a| y |δb| ≤ ε|b| con 0 < ε  1, entonces



∆z 
≤ κ ε + O ε2 ,
z

donde κ ≤ 2 es el número de condición del problema. Por lo tanto, el problema es numérica-


mente bien condicionado.
Otra alternativa de hacer el análisis de sensibilidad del problema es escribir:

a + ∆a
z + ∆z = .
b + ∆b
De aquí se sigue que
 
a + ∆a a b∆a − a∆b a ab ∆a − ∆b z b
∆z = − = = = ∆a − ∆b
b + ∆b b b(b + ∆b) b b + ∆b b + ∆b a
   
z b z ∆a ∆b
= ∆b
 ∆a − ∆b = ∆b
− ,
b 1+ b a 1+ b a b

de donde  
∆z 1 ∆a ∆b
= − ,
z 1 + ∆b
b
a b
por lo que  
∆z
≤ 2 max ∆a , ∆b .
z 1 +
∆b a b
b

Si |∆b| ≤ ε|b| con 0 < ε  1, entonces −ε|b| ≤ ∆ ≤ ε|b|. Si b > 0, entonces −εb ≤ ∆b ≤
εb, de donde
∆b
−ε ≤ ≤ ε,
b
que también es válido para b < 0.
Así que
∆b
1−ε≤1+ ≤ 1+ε,
b
46 2.8. Ejercicios

y tomando inversos, resulta que


1 1 1
≤ ∆b
≤ .
1+ε 1+ b 1−ε

Por lo tanto,  
∆z ∆a ∆b

z ≤ κ max a , b ,
donde
2
κ∗ = ,
1−ε
que para 0 < ε  1, κ∗ es relativamente pequeño, por lo que se deduce de nuevo que el pro-
blema es numéricamente bien condicionado. 2

2.8. Ejercicios
Representación de números reales en bases arbitrarias

1. ¿Qué problema práctico dio origen a los números racionales y reales?

2. En la tabla 2.3 se presenta la tabla de multiplicar en base 5, muy útil para realizar
operaciones aritméticas elementales en base 5.

5 0 1 2 3 4 10
0 0 0 0 0 0 0
1 0 1 2 3 4 10
2 0 2 4 11 13 20
3 0 3 11 14 22 30
4 0 4 13 22 31 40
10 0 10 20 30 40 100
Tabla 2.3: Multiplicación en base 5.

Tablas similares se pueden construir en otras bases. ¿Cuáles serán las tablas de multi-
plicación en bases 2, 3 y 4?.

3. Encuentre un número cuya representación (2.1) no es única si la condición “xm =


6 β −1
para algún m ≥ n y cualquier n ∈ N” no se cumple. Observe que en el caso par, no
puede haber más de dos representaciones de esta clase.

4. Reescribe los números decimales x = 11.625 y y = 2.41 6 en forma binario, octal y


hexadecimal.
2. Aritmética de punto flotante 47

5. Convertir los números siguientes en base dada a otra indicada.


A). (0.25)10 = ( ? )2 , B). (0.30)10 = ( ? )2 , C). (0.30)10 = ( ? )3 , D). (0.666 · · · )10 =
( ? )3 ¿Todo número decimal finito es binario finito?

6. Escriba los números siguientes en forma estandarizada: −17.123 , 111.789 , −0.00001011


y 0.000001359 .

7. Escribe los números siguientes en bases 2 y 3, en forma estandarizada: −17.123 ,


111.789 y −0.00001011 .

8. Escribe los siguientes números binarios en números decimales en su forma estandariza-


da: −101.1111 , 111.010010001 y −0.00001011 011 .

9. Demuestra que la representación β−cimal estandarizada de todo número racional es un


número mixto periódico, es decir, de la forma:

±(0.a1 a2 · · · ak b1 b2 ...bs ) × β p .

Sugerencia: Use el algoritmo de la división de Euclides.



10. ¿Es la representación β−cimal de 2 mixta periódica?

11. ¿Es el número a = (0.010010001 · · · )3 un número racional?

12. Si a = ±.b1 b2 · · · bt × β p , 0 < b1 < β, 0 ≤ bk < β para k = 2 : t, p ∈ Z, demuestra que


a ∈ Q.

13. Sea β ∈ N, β > 1. Demuestra que la serie


b1 b2 b3
b−m β m + b−(m−1) β m−1 + · · · + b0 + + 2 + 3 +···
β β β

donde 0 < b−m < β, 0 ≤ bk < β, k = −(m − 1), −(m − 2), · · · , converge a un número
real.

14. Sea β ∈ N, β > 1. Si a ∈ R tiene representación β−cimal: a = b−m b−(m−1) · · · b0 .b1 b2 b3 · · · ,


1
demuestra que: b−m b−(m−1) · · · b0 .b1 b2 · · · bn ≤ a ≤ b−m b−(m−1) · · · b0 .b1 b2 · · · bk + k ,
β
para todo n ≥ 1 y para todo k ≥ 1.
P∞ 1
15. Sea β ∈ N, β > 1. Demuestra que el número a = k=1 es irracional.
β k!
16. Sea a = (0.b1 b2 · · · ) × β p , 0 < b1 < β, 0 ≤ bk < β para k = 2, 3, . . . , p ∈ Z. Considera
la sucesión {qn }n∈N ⊆ Q, qn = (0.b1 b2 · · · bn ) × β p .
48 2.8. Ejercicios

A). Demuestra que {qn }n∈N es una sucesión creciente y acotada. Luego, por el axioma
del supremo, existe a∗ ∈ R tal que a∗ = sup qn (o bien que qn → a∗ ∈ R, cuando
n∈N
n → ∞).
B). Demuestra que 0 ≤ a − qn ≤ β p−n . Esto es, que qn → a cuando n → ∞. Así,
concluye que a = a∗ ∈ R.

Sistemas de punto flotante

17. Pruebe que la representación normalizada de un número positivo de punto flotante es


única.

18. Indica cuáles de los números siguientes no pertenecen a fl(2, 4, −2, 2):

−0.1011×21 , −0.1101×2−2 , 1.101×22 , 0.2121×22 , 0.01101×2−2 y −0.7615×22 .

19. Considera al conjunto de números de punto flotante fl(β, t, L, U ).


A). ¿Cuántos elementos tiene este sistema?
B). ¿Cuántos de ellos son enteros?
D). ¿Cuántos de ellos son irracionales?

20. Verifica que los números subnormales positivos más pequeño y más grande que se
pueden representar en un sistema binario son:

smin = 2L−t y smax = 1 − 2−(t−1) 2L−1 .

21. ¿Cuántos números subnormales distintos de cero hay en un sistema binario?

22. Considera a los números de punto flotante fl(10, 7, −49, 48).


A). Halla el elemento α positivo más chico.
B). Halla el elemento ω positivo más grande.
C). ¿Cuál es el espaciamiento entre los dos números consecutivos más chicos?
D). ¿Cuál es el espaciamiento entre los dos números consecutivos más grandes?

Redondeo

23. Con respecto al sistema fl(10, 4, −2, 3), halla el fl(x) para x = (2./3.)T , x = (3./7.)R ,
x = (9.99999)R y x = (π)R . Aquí, (·)T significa con truncamiento y (·)R con redondeo.

24. Considera el sistema de números punto flotante fl(β, t, L, U ) con unidad de redondeo u.

A). Si α > 0 es el elemento más chico en fl(β, t, L, U ) ¿Es cierto que u < α?
B). Si 2 |β y 1 − t > L, demuestra que u ∈ fl(β, t, L, U ).
2. Aritmética de punto flotante 49

C). ¿En los estándares de IEEE 32 bits, u ∈ fl(2, 24, −126, 127)?

25. Demuestra que si

eps = min {ε ∈ fl(β, t, L, U ) : fl(1 + ε) > 1} , (2.16)

1
entonces u = eps.
2
Algunos autores como Overton (2002) [19], definen a eps como el epsilon de la
máquina.

26. El algoritmo siguiente es debido a Moler y sirve para el cálculo de la unidad de redondeo
u de la máquina:
a ← 4.0/3.0
b ← a − 1.0
c←b+b+b
u ← |c − 1.0|

A). Escriba un programa en FORTRAN 77 que implante este algoritmo en simple


precisión, y ejecútalo en tu máquina.
B). Escriba otro programa en FORTRAN 77 que implante este algoritmo en doble
precisión, y ejecútalo en tu máquina.
C). Compara tus resultados con los del ejemplo 2.3.2. Explica.

27. El siguiente algoritmo para calcular la unidad de redondeo u, y la precisión t de la


máquina, está basado en la fórmula (2.16).
u ← 1.0
w ← 2.0
n←0
Mientras w > 1.0, hacer
u ← u/2.0
w ← 1.0 + u
n←n+1
Termina.
Resultados : precisión : n, unidad de redondeo : u, eps ← 2.0 ∗ u

A). Escriba un programa en FORTRAN 77 que implante este algoritmo en simple


precisión, y ejecútalo en tu máquina.
B). Escriba otro programa en FORTRAN 77 que implante este algoritmo en doble
precisión, y ejecútalo en tu máquina.
50 2.8. Ejercicios

C). Compara tus resultados con los del ejemplo 2.3.2 y del ejercicio 26. Explica.

28. LA SUBROUTINE MACHAR EN FORTRAN 77.

A). Obtenga la subroutina MACHAR.FOR.


B). Calcula la base β, precisión t, exponentes L y U , así como los números xmin y xmax ,
y la unidad de redondeo u de tu máquina en simple precisión usando el programa
MACHAR.FOR
C). Calcula de nuevo la base β, precisión t, L y U , así como los números xmin y xmax ,
y la unidad de redondeo u de tu máquina en doble precisión usando el programa
MACHAR.FOR
D). Compara tus resultados con los del ejemplo 2.3.2 y de los ejercicios 26 y 27. Explica.

Operaciones básicas de punto flotante

29. Recordando que fl(a) = a(1 + δ), para algún δ con |δ| ≤ u, verifique que si:
 
1. √ 
A). fl10 = 0.25 B). fl10 2 = 1.414214
4.
 
1.
C). fl10 = 0.3333333 D). fl10 (π) = 3.14159265359
3.
1
¿Cuánto vale δ? ¿Cuánto vale u (la unidad de redondeo)? ¿Es |δ| ≤ u?
2
30. En una aritmética de punto flotante (A.P.F.) ¿Es cierto que:

(b − (a + b)) + a = 0 ?

Sugerencia. En una A.P.F. de 7 dígitos significativos con redondeo, considera a =


0.1234567 y b = 0.4711325 × 104 . ¿Qué concluye?

31. En una A.P.F. averigua la validez de la relación: a = (a + b) − b.


Sugerencia. Considera el caso a = 0.8614 × 10−2 y b = 0.3204 en una A.P.F. de 4 dígitos
significativos con redondeo. ¿Qué concluye?

32. En una A.P.F. de 5 dígitos significativos con redondeo, halla la solución positiva más
chica de la ecuación:
fl(123.45 + a) = a .

33. En una A.P.F. de 5 dígitos significativos con redondeo, halla la solución positiva más
grande de la ecuación:
fl(123.45 + b) = 123.45 .
2. Aritmética de punto flotante 51

34. Sean a, b ∈ fl(β, t, L, U ), a = ma · β e1 , β −1 ≤ |ma | < 1, b = mb · β e2 , β −1 ≤ |mb | < 1. Si


e1 ≥ e2 + t, demuestra que fl(a + b) = a.

Cancelación numérica

35. En general se evita la cancelación numérica con el fin de obtener métodos numérica-
mente estables. Sin embargo, existen casos en donde evitarla nos conduce a resultados
sorprendentemente absurdos. En una aritmética de punto flotante de 4 decimales con
redondeo, para a = 0.8717 y b = 0.8719, calcula el punto medio c = 21 (a + b) del
intervalo [a, b]. ¿De qué otra manera se puede calcular c?

36. Escribe la forma conveniente para evaluar, evitando cancelación numérica, cada una de
las siguientes funciones:

A). f (x) = x2 + 1 − x, para x = 105 con t = 7 y redondeo al par más cercano.

B). f (x) = ln(x − x2 − 1), para x >> 1 .
C). f (x) = (a + x)n − an , para x ∼
= 0.
D). f (x) = ex − x − 1, para x ∼
= 0.
√ 
E). f (x) = (tg x − sen x)/ x − 1 + x2 , para x = 0.125 × 10−9 .

37. Evalúa f (x) = (1 − cos x)/x2 , para x = 1, 0.1, 0.01, . . . , 10−19 , en precisión simple y
doble. Estudia tus resultados.

38. Elabora un buen programa, usando sólo aritmética real, para el cálculo de las raíces
(reales o complejas) de la ecuación de segundo grado ax2 + bx + c = 0: 1. Sin evitar
cancelación catastrófica, y 2. Evitando cancelación catastrófica. Prueba tu programa
con las ecuaciones siguientes e imprima los resultados de cada una.

A). x2 − 4.002x + 4 = 0, D). x2 − 2x + 0.999999 = 0,


B). x2 − 105 x + 4 = 0, E). x2 + 111.11x + 1.2121 = 0,
C). x2 − 3.999x + 4 = 0, F ). x2 + 4 ∗ 104 x + 1 = 0.

39. En el año 250 A. de C., el matemático griego Arquímedes estimó el número π como
sigue. Consideró un círculo con diámetro 1 y circunferencia π. Inscribió un cuadrado.
El perímetro del cuadrado es menor que la circunferencia, y este es una cota inferior de
π. Luego, Arquímedes consideró un octágono inscrito, un dieciseiságono, etc., cada vez
duplicaba el número de lados del polígono inscrito y obtenía una mejor aproximación
de π. Usando un polígono inscrito y un circunscrito de 96 lados, pudo mostrar que
223/71 < π < 22/7. Existe una forma recursiva para estas estimaciones.
52 2.8. Ejercicios

n
A). Sea pn el perímetro del polígono
√ inscrito con 2 lados. Entonces p2 es el perímetro
del cuadrado inscrito, p2 = 2 2. En general:
q p
n
pn+1 = 2 2(1 − 1 − (pn /2n )2 ) , n ≥ 2 . (2.17)

Calcula pn para n = 3, 4, . . . , 90, en simple presición y n = 3, 4, . . . , 550 en doble


precisión. Explica tus resultados (este problema lo sugirió Alan Cline). Esto es,
esta fórmula falla para calcular una aproximación de π, ¿Por qué?
B). La fórmula (2.17) se puede mejorar (evitando la cancelación numérica), al tomar

pn+1 = 2n rn+1

donde p √
rn+1 = 2(1 − 1 − (pn /2n )2 ), r3 = 2/(2 + 2) .

Muestra que
rn
rn+1 = √ , n ≥ 3. (2.18)
2 + 4 − rn
C). Usa la iteración (2.18) para calcular rn , n = 3, 4, . . . , 90, en simple presición y
n = 3, 4, . . . , 550 en doble precisión (esta modificación lo propuso W. Kahan).
D). Observa que eventualmente, 4 − rn se redondeará a 4, y consecuentemente la
fórmula (2.18) se verá afectada también por errores de redondeo para n0 s grandes.
¿Nos debemos preocupar por esto?

40. Considera los tres puntos (x, y) del plano:

x : 5 201 477.0 5 201 478.0 5 201 479.0


y: 99 999.0 100 000.0 100 001.0

Es obvio que hay una línea recta que mejor se ajusta a estos puntos. Para hallar la
recta y = bb + mx
b de ajuste óptimo, según el criterio de mínimo de cuadrados, se suelen
usar las populares fórmulas:

x1 y1 + x2 y2 + x3 y3 − 1/3(x1 + x2 + x3 )(y1 + y2 + y3 )
m
b = , y
(x21 + x22 + x23 ) − 1/3(x1 + x2 + x3 )2
bb = 1 m
b
(y1 + y2 + y3 ) − (x1 + x2 + x3 ) .
3 3

A). Calcula los valores para bb y m


b en aritmética real, y a continuación el valor de y
para x = 5 201 480.0 .
2. Aritmética de punto flotante 53

B). Repita el inciso anterior usando para m


b la fórmula alternativa:
x1 y1 + x2 y2 + x3 y3 − 1/3(x1 + x2 + x3 )(y1 + y2 + y3 )
m
b = .
(x1 − x)2 + (x2 − x)2 + (x3 − x)2
C). Haz un cuadro comparativo de tus resultados con los valores exactos:
m
b = 1, bb = −5 101 478.0 y y = 100 002.0 .

Sumas
41. En una A.P.F. de 5 decimales con redondeo, calcula el valor límite de la sucesión
sn+1 = fl(sn + a), n ≥ 0, con s0 = 0.0, para a = 1.0, 51.0, 100.0, y 555.0 ¿Cuál es tu
conjetura?
42. En una A.P.F. de 3 decimales con redondeo
A). Calcula la suma de los números siguientes:
1050, 44, 3, 4, 9910, 38, 49, 48, 547 y 145
¿Cuál es el error relativo de tu resultado? ¿Cuántas cifras de tu resultado son
correctas?
B). Repite el inciso anterior, pero sumando del número menor al mayor.
Comenta.
43. Análisis de estabilidad en el cálculo de un producto.
n
Y
Sean ak ∈ R, ak 6= 0, k = 1 : n, calcular el producto: P = ak .
k=1

Algoritmo 2.8.1. El algoritmo estándar para calcular el producto P está dado por:
prod ← 1.0
Para k = 1 : n, hacer
prod ← prod ∗ ak
Terminar.

Demuestra que:
A). [Análisis de error retrospectivo].
n
! n
Y Y
fl ak = a1 ak (1 + εk ) , donde |εk | ≤ u, k = 2 : n
k=1 k=2
n
Y
= ak ,
b donde b
a 1 = a1 , b
ak = ak (1 + εk ), k = 2 : n.
k=1
54 2.8. Ejercicios

B). [Análisis de error prospectivo]. Si (n − 1)u < 0.01, entonces


!
Yn Yn Yn

fl ak − ak ≤ δ ak ,

k=1 k=1 k=1

donde δ = (1 + u)n−1 − 1 < 1.01(n − 1)u.


¿Cuál será el número de condición? ¿Depende el error acumulado por el redondeo del
orden de los factores ak ?
44. Análisis de estabilidad en el cálculo del producto punto. Sean x, y ∈ Rn .
Demuestra que:

A). [Análisis de error retrospectivo]. Si nu < 0.01, entonces


n
X
T

fl x y = xk yk (1 + δk ) , |δ1 | < 1.01(nu), |δk | ≤ 1.01(n + 1 − k)u, k = 2 : n
k=1

= xT yb , donde ybk = yk (1 + δk ), k = 1 : n ,

donde xT y está definido en (2.9).


B). [Análisis de error prospectivo]. Si nu < 0.01, entonces
n
!
 X
fl xT y − xT y ≤ 1.01(nu) |xk | |yk | ≤ 1.01(nu)kxk2 kyk2 .
k=1

C). Concluya que 


fl xT y − xT y
≤ 1.01nκu ,
|xT y|
donde
1
κ := ≥ 1,
|cos θ|
con θ el ángulo que forman los vectores x y y.
D). Observando que κ = +∞, para θ = π/2 radianes, y que κ = 1 para θ = 0 radianes,
es natural la pregunta ¿Cuánto vale θ ∗ tal que κ ≤ 10, para 0 ≤ θ ≤ θ ∗ ?

45. Análisis de estabilidad en el cálculo de la varianza.


A). Bajo el supuesto de que nu < 0.01 y fl(xk − x) = xk − x, demuestra que
| fl(S2P ) − S2P | ≤ 1.01(nu)S2P ,
Pn
donde S2P ≡ k=1 (xk − x) (compare con la fórmula de dos pasos dado por
2

(2.10)). Escriba sus conclusiones.


2. Aritmética de punto flotante 55

P
B). Para la expresión popular dada por S1P ≡ nk=1 x2k − nx2 (compare conP la fórmula
de un solo paso dado por (2.11)), y bajo el supuesto de que fl(S1P ) = fl ( nk=1 x2k )−
nx, demuestra que
|fl(S1P ) − S1P |
≤ 1.01(nu)κ(S1P ) ,
|S1P |
donde
nx 2
κ(S1P ) = 1 + .
S1P
Escriba sus conclusiones.
C). Demuestra ahora que una expresión alternativa para κ(S1P ), de fácil interpretación,
y por ello de mayor importancia práctica, es
 2  2
x kxk2
< κ(S1P ) < ,
σ σ

donde σ es la desviación estándar dado por (2.10)-(2.11), y x = (x1 , x2 , ..., xn )T .


46. Análisis de estabilidad del algoritmo de Hörner. Sea q(t) el resultado de evaluar
en A.P.F. el polinomio
p(t) = a0 + a1 t + · · · + an tn , t∈R

con a0 , a1 , . . . , an ∈ R, an 6= 0, mediante el algoritmo siguiente debido a Hörner:


Algoritmo 2.8.2. Algoritmo de Hörner (que se conoce popularmente como la división
sintética):
q ← an
Para k = n − 1 : −1 : 0, hacer
q ← fl(t ∗ q + ak )
Terminar.

A). Demuestra que


n
Y
n
q(t) = a0 (1 + δn ) + a1 t(1 + δn−1 )(1 + γn ) + · · · + an t (1 + γj ) ,
j=1

con |δk | ≤ u y |γk | ≤ u(2 + u); k = 1 : n.


B). Si (2n − 1)u < 0.01, demuestra que
n
X
|q(t) − p(t)| ≤ 1.01(2k + 1)u|ak | |t|k .
k=0

¿Es el algoritmo de Hörner numéricamente estable?


56 2.8. Ejercicios

47. Una forma de evaluar ex , para x pequeña, es vía su desarrollo en serie de Taylor, en
base al segmento del algoritmo siguiente:
s ← 1.0
term ← 1.0
k←1
Hasta que |sa − s| ≤ s ? tol, hacer:
term ← x ? (term/k)
k ←k+1
write(?, ?)k, s, term
sa ← s
s ← s + term

A). El programa que se anexa está basado en el algoritmo anterior. Captura el pro-
grama y pruébalo en WATFOR87 para un x dado, por ejemplo, para x = −5.5.
C CALCULO DE LA EXP(X) A TRAVES DE LA SERIE DE TAYLOR
C2345678
REAL S,TERM,SA,X,TOL,EXPO,EAPOS,KAPPA,EAPRIO
INTEGER K
WRITE(*,*)’DAME X:’
READ(*,*)X
C
CALL MOLER(TOL)
C
S=1.0
TERM=1.0
K=1
100 CONTINUE
TERM=X*(TERM/K)
K=K+1
WRITE(*,*)K,S,TERM
SA=S
S=S+TERM
IF (.NOT. (ABS(S-SA) .LE. TOL*ABS(S))) GO TO 100
C
EXPO=EXP(X)
EAPOS=ABS(EXPO-S)/EXPO
C
IF (X .LT. 0.0) THEN
KAPPA=EXP(-2.0*X)
ELSE
KAPPA=1.0
2. Aritmética de punto flotante 57

ENDIF
EAPRIO=(1.01*K)*KAPPA*TOL
WRITE(*,*)X,EXPO,SA,K,EAPOS,KAPPA,EAPRIO
STOP
END
C
C **************************************************
C
SUBROUTINE MOLER(TOL)
REAL A,B,C
C
A=4.0/3.0
B=A-1.0
C=B+B+B
TOL=ABS(C-1.0)
RETURN
END
C
C **************************************************

B). Estudia el programa, documéntalo y agrégale un formato adecuado de impresión,


para que imprima para x = 1.5 el siguiente esquema de resultados:
K SUMA TERM
2 1.0000000 1.5000000
3 2.5000000 1.1250000
4 3.6250000 0.5625000
5 4.1875000 0.2109375
6 4.3984380 0.0632813
7 4.4617190 0.0158203
8 4.4775390 0.0033901
9 4.4809290 0.0006356
10 4.4815650 1.0593960E − 004
11 4.4816700 1.5890940E − 005
12 4.4816860 2.1669460E − 006
13 4.4816880 2.7086830E − 007

X EXPO SUMA K EAPOS KAPPA EAPRIORI


1.5 0.4481689E + 01 0.4481688E + 01 13 0.0000E + 00 0.1000E + 01 0.1565E − 05
58 2.8. Ejercicios

C). Ejecuta tu programa para x = ±1.5, ±5.5, ±10.5, ±15.5 y ±20.5. ¿Cuáles son los
errores relativos apriori y aposteriori, en cada caso? Comenta.
D). ¿En qué paso de la recursión se da la cancelación numérica para x = −20.5? ¿De
qué otra forma calcularías e−20.5 ? Comenta.

Análisis de primer orden de la sensibilidad numérica

48. Demuestra para la función ψ de la fórmula (2.15) que

ψ(δx)
lim =0 sı́ y sólo si ψ(δx) = o(kδxk∞ ) cuando δx → 0 .
δx→0 kδxk∞

49. Demuestra que si f ∈ C 2 (D) en el teorema 2.7.1, entonces ψ(δx) = O(kδxk 2∞ ).


Sugerencia. Aplica la fórmula de Taylor de segundo orden.

50. Desarrolla el análisis de sensibilidad numérica (usando análisis de primer orden) para el pro-
ducto de dos números reales (i.e., el análisis de sensibilidad de la función z = a · b). Comenta.

51. Sean a, b ∈ R, a > b > 0 de órdenes distintos. Si z = a − b y

∆z = [(a + ∆a) − (b + ∆b)] − (a − b) .

A). Demuestra que  


∆z
≤ κ · max |∆a| , |∆b| ,
z |a| |b|

donde  
|a| |b| |a|
κ ≡ 2 · max , =2 ,
|z| |z| |z|

es tal que 2 < κ < 2β 2 .


B). Ahora, sean a, b ∈ R, a > b > 0 de órdenes distintos. Usando el hecho de que

fl(a − b) = (a + ∆a) − (b + ∆b), con |∆a| ≤ au y |∆b| ≤ bu ,

demuestra, si fl(a − b) ∈ fl(β, t, L, U ), que

|fl(a − b) − (a − b)|
≤ κu ,
|a − b|

donde β −(t−1) < κu < β −(t−3) , (es decir, para fines prácticos, κu ∼
= β −(t−2) ).
2. Aritmética de punto flotante 59

52. Análisis de sensibilidad numérica del problema de cálculo de raíces de una ecuación
cuadrática con respecto a los coeficientes. Sea la ecuación ax 2 +bx+c = 0 con coeficientes
reales con a 6= 0 tales que b2 − 4ac > 0, y con raíces r1 y r2 (r1 6= r2 ). Usando la aproximación
del primer orden
∂r1 ∂r1 ∂r1
∆r1 = δa + δb + δc + ψ ,
∂a ∂b ∂c
con
ψ
−→ 0 cuando (δa, δb, δc) → 0 ,
max{|δa|, |δb|, |δc| }

demuestra que  
|∆r1 | |r1 | + |r2 | |δa| |δb| |δc|
≤ + + + ψ∗ ,
|r1 | |r2 − r1 | |a| |b| |c|

donde
ψ∗
−→ 0 cuando (δa, δb, δc) → 0 ,
max{|δa|, |δb|, |δc| }

y por lo tanto  
|∆r1 | |δa| |δb| |δc|
≤ κ · max , , + ψ∗ ,
|r1 | |a| |b| |c|

en donde
|r1 | + |r2 |
κ := 3 ,
|r2 − r1 |

es el número de condición del problema del cálculo de la raíz r 1 .


Observa que es el mismo número de condición del problema del cálculo de la raíz r 2 .
¿Qué puedes concluir cuando r1 es muy cercano a r2 ? En particular, ¿Qué se concluye cuando
r1 = r 2 ?

53. Las raíces de la ecuación x2 − 4x + 4 = 0, son r1 = r2 = 2.

A). Verifica que las raíces rb1 y rb2 de la ecuación x2 − 4x + (4 − ε) = 0, con 0 < ε  1, están
√ √ √
dadas por rb1 = 2 − ε y rb2 = 2 + ε. Luego, se tiene que |b r1, 2 − 2| / |2| = 12 ε; y en
consecuencia, si ε = 10−6 , las raíces se ven perturbadas, respecto a ε, por un factor de
103 .
B). Muestra que las raíces rb1 y rb2 de la ecuación (1 − ε)x2 − 4x + 4 = 0, con 0 < ε  1,
están dadas por √ √
2−2 ε 2+2 ε
rb1 = y rb2 = ,
1−ε 1−ε
En consecuencia, se tiene que |b ∼ √ε. Y por lo tanto, para ε = 10−6 las
r1, 2 − 2| / |2| =
raíces se ven perturbadas por un factor de 2·10 3 .
C). Repite el análisis anterior para la ecuación x 2 − (4 + 2ε)x + 4 = 0, donde 0 < ε  1.
60 2.8. Ejercicios

54. Si el número de condición κ(σ) para la varianza muestral de n valores observados x 1 , x2 , . . . , xn


de n variables aleatorias i.i.d., se define como

2 kxk2
κ(σ) := √ , (2.19)
n − 1σ

en donde x = (x1 , x2 , . . . , xn )T y σ definido por (2.10), demuestra que

κ(σ) ≥ 2 .

Compara la definición de κ(σ) con los resultados obtenidos en el ejercicio 45(C).



55. Usando el desarrollo de Taylor de la función φ(z) = z alrededor de z0 > 0, y suponiendo
que |∆xk | ≤ u |xk | , para k = 1 : n, demuestra que

|b
σ − σ| 
≤ κ(σ)u + O u2 ,
σ

en donde κ(σ) está definido por (2.19) y σ


b denota la varianza muestral de los valores pertur-
bados x
bk = xk + ∆xk , k = 1 : n.
Capítulo 3

Sistemas lineales de ecuaciones


algebraicas

3.1. Normas vectoriales y matriciales


3.1.1. Normas vectoriales
Definición 3.1.1. Una norma en Rn es una función N : Rn → R que satisface las siguientes
propiedades:

A). N (x) ≥ 0 , x ∈ Rn , y N (x) = 0 sı́ y sólo si x = 0.

B). N (x + y) ≤ N (x) + N (y) , x, y ∈ Rn .

C). N (α x) = |α|N (x) , α ∈ R , x ∈ Rn .

Una norma se denota generalmente por k · k .


Una clase importante de normas vectoriales son las p-normas definidas por

kxkp = (|x1 |p + |x2 |p + · · · + |xn |p )1/p , p ≥ 1.

De estos, los más importantes son las normas 1, 2 e ∞ :

kxk1 = |x1 | + |x2 | + · · · + |xn | .


p
kxk2 = |x1 |2 + |x2 |2 + · · · + |xn |2 .
kxk∞ = max |xi | .
i=1:n

61
62 3.1. Normas vectoriales y matriciales

3.1.2. Normas matriciales


El espacio de las matrices reales m × n se denotará por Rm×n .
Definición 3.1.2. Una norma en Rm×n es una función N : Rm×n → R que satisface las
siguientes propiedades:
A). N (A) ≥ 0 , A ∈ Rm×n , y N (A) = 0 sı́ y sólo si A = 0 .
B). N (A + B) ≤ N (A) + N (B) , A, B ∈ Rm×n .
C). N (α A) = |α|N (A) , α ∈ R , A ∈ Rm×n .
La norma de A ∈ Rm×n se denota generalmente por kAk .
Las normas más frecuentes son la norma de Frobenius (o de Schur)
v
uX
u m X n
kAkF = t |aij |2 , (3.1)
i=1 j=1

y las p−normas
kAxkp
kAkp = sup , A ∈ Rm×n , x ∈ Rn , p ≥ 1 .
x6=0 kxkp
Propiedad 3.1.1 (Consistencia).

kAxkp ≤ kAkp kxkp , A ∈ Rm×n , x ∈ Rn .

Más generalmente, para cualesquiera dos normas vectoriales k · kα sobre Rn y k · kβ sobre


R , se tiene kAxkβ ≤ kAkα,β kxkα , donde
m

kAxkβ
kAkα,β = sup , A ∈ Rm×n , x ∈ Rn ,
x6=0 kxkα
por lo que se dice que que la norma matricial k · kα,β está subordinada a (o es consistente
con) las normas vectoriales k · kα y k · kβ . √
Note que para la matriz identidad In×n : kIn×n kF = n y kIn×n kp = 1.
Propiedad 3.1.2 (Submultiplicativa).

kABkp ≤ kAkp kBkp , A ∈ Rm×n , B ∈ Rn×q .

Demostración. Basta observar que


kA(Bx)kp
kABxkp = kBxkp , Bx 6= 0 .
kBxkp
3. Sistemas lineales de ecuaciones algebraicas 63

Observación 3.1.1. Si A ∈ Rm×n , entonces


 
x

kAkp = sup A = max kAxkp .
x6=0 kxk p
kxkp =1
p

Por lo que una forma de calcular kAkp es maximizar la función


fp (x) = kAxkp , x ∈ Rn
sobre la esfera unitaria en Rn con respecto a la p−norma.
Si
   
a11 a12 · · · a1n A1
 a21 a22  
· · · a2n 
=
A2 
A=
 ··· ···  .. , Ai = (ai1 , ai2 , · · · , ain ) , i = 1 : m ,
··· ···   . 
am1 am2 · · · amn Am
entonces  
A1 · x
 A2 · x  n
X
 
Ax =  .. , donde Ai · x = aij xj , x ∈ Rn .
 .  j=1
Am · x
Si ebj = (0, 0, . . . , 0, 1, 0, . . . 0)T ∈ Rn , entonces Ai · ebj = aij , j = 1 : n, i = 1 : m.
j
Para p = 1, el máximo de la función f1 (x) = kAxk1 se alcanza sobre alguno de los 2n
vértices ±b
e1 , ±b
e2 , . . ., ±b
en de la esfera unitaria en Rn con respecto a la norma 1.
Dado que
m
X

f1 (b ej k1 = (a1j , a2j , . . . , amj )T 1 =
ej ) = kAb |aij | = f1 (−b
ej ), j = 1 : n
i=1

entonces m
X
kAk1 = max |aij | , A ∈ Rm×n
j=1:n
i=1

Para p = ∞, el máximo de la función f∞ (x) = kAxk∞ se alcanza sobre alguno de los 2n


vértices x
b = ±b e1 ± eb2 ± · · · ± ebn de la esfera unitaria en Rn con respecto a la norma ∞.
Dado que
 T
Pn Pn Pn
f∞ (b
x) = kAb xk∞ = j=1 ±a1j , j=1 ±a2j , . . . , j=1 ±amj



n P P P o

= max nj=1 ±a1j , nj=1 ±a2j , . . . , nj=1 ±amj
Pn
= j=1 |aij | , para algún i .
64 3.2. Número de condición de una matriz

Así que en este caso


n
X
kAk∞ = max |aij | , A ∈ Rm×n .
i=1:m
j=1

3.2. Número de condición de una matriz


3.2.1. Análisis de sensibilidad de sistemas lineales de ecuaciones al-
gebraicas
En adelante se supondrá que kAk es una norma matricial submultiplicativa y consistente
con la norma vectorial kxk. A continuación se mostrará cómo se usan las normas para acotar
la influencia debido a perturbaciones en A y en b sobre la solución x de un sistema lineal de
ecuaciones algebraicas:
Ax = b . (3.2)
Lema 3.2.1. Si A ∈ Rn×n es no singular, b ∈ Rn , Ax = b y A(x + ∆x) = b + ∆b, entonces
k∆xk k∆bk
≤ κ(A) , x 6= 0 , b 6= 0 ,
kxk kbk

donde κ(A) := kAk kA−1 k se le llama número de condición de la matriz A, con la con-
vención que κ(A) = ∞ si A es singular.
“El número de condición es una medida de sensibilidad del error relativo en la solución
del sistema lineal (3.2) a cambios en el lado derecho b”.
Demostración. Dado que A(x + ∆x) = b + ∆b , y A es no singular, se sigue que

∆x = A−1 ∆b .

Así que
k∆xk ≤ kA−1 k k∆bk . (3.3)
Y dado que
1 kAk
kbk = kAxk ≤ kAk kxk =⇒ ≤ , x 6= 0 , b 6= 0 .
kxk kbk

Combinando la desigualdad anterior con (3.3), se obtiene

k∆xk k∆bk k∆bk


≤ kAk kA−1 k = κ(A) . (3.4)
kxk kbk kbk
3. Sistemas lineales de ecuaciones algebraicas 65

Observación 3.2.1. Si A ∈ Rn×n es no singular, entonces κp (A) ≥ 1.


Demostración. Dado que A−1 A = I, entonces
1 = kIkp = kA−1 Akp ≤ kA−1 kp kAkp := κp (A) .

Note que κp (I) = 1.


Teorema 3.2.1. Una caracterización del número de condición en la p−norma es
 
1 kE − Akp
RCOND(A) ≡ = min : E es singular .
κp (A) kAkp
Demostración. Una prueba se puede encontrar en Kahan (1966) [13].
El teorema 3.2.1 muestra que κp (A) mide la inversa de la distancia relativa inducida por
la p−norma de la matriz A al conjunto de matrices singulares E. Así que cuando κp (A) es
“muy grande”, A se dice mal condicionada o cercanamente singular.
Teorema 3.2.2. Si A ∈ Rn×n es no singular, b ∈ Rn , Ax = b y (A + ∆A)(x + ∆x) = b + ∆b,
entonces  
k∆xk k∆bk k∆Ak
≤ κ(A) + , x 6= 0 , b 6= 0 .
kxk kbk kAk
Demostración. Sean A(t) = A + t∆A , b(t) = b + t∆b , t ∈ R
y x(t) = x + t∆x solución del sistema lineal A(t) x(t) = b(t) .
Derivando el sistema lineal parametrizado, se tiene
A0 (t) x(t) + A(t) x0 (t) = b0 (t) =⇒ (∆A) x(t) + A(t)∆x = ∆b .
Evaluando en t = 0 y reagrupando términos, resulta
∆x = A−1 ∆b − A−1 (∆A)x
k∆xk ≤ kA−1 k k∆bk + kA−1 k k∆Ak kxk
k∆xk kA−1 k k∆bk
≤ + kA−1 k k∆Ak , x 6= 0
kxk kxk
k∆xk kAk kA−1 k k∆bk kAk kA−1 k k∆Ak
≤ + , x 6= 0 .
kxk kAk kxk kAk
Dado que kbk ≤ kAk kxk, resulta finalmente que
 
k∆xk k∆bk k∆Ak
≤ κ(A) + , x 6= 0 , b 6= 0 .
kxk kbk kAk
66 3.2. Número de condición de una matriz

Conclusión 3.2.1. El problema de resolver el sistema lineal (3.2) es muy mal condicionado
si κ(A) >> 1 , y bien condicionado cuando κ(A) es “pequeño”.
Conclusión 3.2.2. Si los datos A ∈ Rn×n no singular y b ∈ Rn , b 6= 0 , son exactos a
precisión de la máquina, entonces una cota razonable para el error relativo en la solución del
sistema lineal Ax = b es dado por
kb
x − xk
/ 2κ(A)u = β logβ (κ(A))−t+1 ,
kxk
lo que dice que la solución calculada x
b pierde alrededor de log β (κ(A)) dígitos significativos
con respecto de la exactitud de los datos de entrada.

3.2.2. Residuales
Definición 3.2.1. El residual de la solución aproximada x
b de un sistema lineal Ax = b,
está definido por
r := b − Ab
x.
Es claro que si A es no singular, entonces k∆xk = kb x − xk = 0 si y sólo si krk = 0 .
Sin embargo, esto no necesariamente ocurre en la práctica, es decir, k∆xk y krk pueden
no ser simultáneamente pequeños, ya que cuando Ax = b se multiplica por una constante
c 6= 0 su solución no cambia, mientras que r = c(b − Ab x) “puede ser arbitrariamente grande
o pequeño”. Así que se introduce la siguiente definición:
Definición 3.2.2. El residual relativo de la solución aproximada x
b de un sistema lineal
Ax = b, se define como
krk
rrel := ,
kAk kb
xk
A ∈ Rn×n no singular, y x
b ∈ Rn , x
b 6= 0.
Proposición 3.2.1. Si A ∈ Rn×n es no singular, b ∈ Rn , y x b es solución aproximada de
Ax = b , entonces
k∆xk krk
≤ κ(A) .
kb
xk kAk kbxk
“Así que cuando A es bien condicionada, un residual relativo pequeño implica un error
relativo pequeño en la solución”.
Demostración.

x − xk = kA−1 Ab
k∆xk = kb x − A−1 bk = kA−1 (Ab
x − b)k = k − A−1 rk ≤ kA−1 k krk .

Dividiendo entre kb
xk y completando el lado derecho, se tiene el resultado.
3. Sistemas lineales de ecuaciones algebraicas 67

Para ver las implicaciones de un residual relativo grande, se tiene el siguiente:

Teorema 3.2.3. Si A ∈ Rn×n es no singular, b ∈ Rn , y (A + ∆A)b


x = b , entonces

krk k∆Ak
≤ .
kAk kb
xk kAk

“Así que un residual relativo grande implica un error retrospectivo grande en la matriz
A, lo que significa que el algoritmo usado para calcular la solución xb es numéricamente
inestable”.

Demostración. De (A + ∆A)b
x = b se tiene que

krk = kb − Ab
xk = k(∆A)b
xk ≤ k∆Ak kb
xk ,

que al dividir entre kAk kb


xk se obtiene el resultado.

Ejemplo 3.2.1. Calcule el número de condición de A, los residuales y residuales relativos


de las soluciones aproximadas del sistema lineal:
    
0.913 0.659 x1 0.254
Ax = = = b,
0.457 0.330 x2 0.127

donde las soluciones aproximadas son:


   
−0.0827 0.999
x
ba1 = y x
ba2 = .
0.5 −1.001

Solución. Trabajando con la norma infinita y con MATLAB, se tiene que

kAk∞ = max {1.572, 0.787} = 1.572 , κ∞ (A) = cond(A, inf) = 1.696 × 104 ,

y los demás resultados que se muestran en la tabla 3.1.

k · k∞ r = b − Abx krk∞ rrel


x
ba1 0.5 (5.10 × 10 , −2.06 × 10 ) 2.06 × 10 2.62 × 10−4
−6 −4 T −4

x
ba2 1.001 (1.57 × 10−3 , 7.87 × 10−4 )T 1.57 × 10−3 9.98 × 10−4
Tabla 3.1: Residuales y residuales relativos.

El residual y residual relativo más pequeño lo tiene x ba1 , sin embargo, no es la mejor
solución pues la solución exacta es x = (1, −1)T . El problema radica en que la matriz A es
mal condicionada.
68 3.3. Regla de Cramer y métodos de eliminación Gaussiana

3.3. Regla de Cramer y métodos de eliminación Gaus-


siana
Ilustrar la estabilidad del método de eliminación Gaussiana con pivoteo, y la inestabilidad
de otros métodos como la regla de Cramer y el método de eliminación Gaussiana (sin pivoteo).
Estos métodos se usan para solucionar un sistema lineal algebraico (s.l.a.) de n ecuaciones
con n incógnitas, de la forma
    
a11 a12 · · · a1n x1 b1
 a21 a22 · · · a2n   x2   b2 
    
Ax =  .. .. . . ..   ..  =  ..  = b . (3.5)
 . . . .  .   . 
an1 an2 · · · ann xn bn

3.3.1. Regla de Cramer


Este método obtiene la solución x = (x1 , x2 , . . . , xn )T del s.l.a. (3.5) cuando existe, como

∆k
xk = , cuando ∆ 6= 0, k = 1 : n, (3.6)

donde
a11 a12 · · · a1n

a21 a22 · · · a2n

∆ = det(A) = .. .. .. .. ,
. . . .

an1 an2 · · · ann
y ∆k es el determinante de la matriz que se obtiene de A al remplazar su columna k−ésima
por el vector b = (b1 , b2 , . . . , bn )T .

Ejemplo 3.3.1. Resolver el siguiente sistema en una A.P.F. de cuatro dígitos significativos
con redondeo al par más cercano:
    
0.457 0.330 x1 0.127
Ax = = = b. (3.7)
0.913 0.659 x2 0.254

Solución.
0.457 0.330
∆ = = 0.3012 − 0.3013 = −10−4 .

0.913 0.659
Por lo tanto, el sistema tiene solución única en f l(10, 4, L, U ).

0.127 0.330
∆1 = = 0.08369 − 0.08382 = −0.13 × 10−3 ,
0.254 0.659
3. Sistemas lineales de ecuaciones algebraicas 69


0.457 0.127
∆2 = = 0.1161 − 0.1160 = 10−4 .

0.913 0.254
Aplicando la fórmula (3.6) se obtiene la solución deseada del sistema (3.7):

∆1 −0.13 × 10−3 ∆2 10−4


x1 = = = 1.3 , x2 = = = −1 . (3.8)
∆ −10−4 ∆ −10−4

Por lo tanto, xC = (1.3, −1)T .

3.3.2. Método de eliminación Gaussiana sin pivote


Este método consta de dos etapas.
La primera etapa consiste en transformar el s.l.a. (3.5) en un sistema triangular superior
equivalente     
r11 r12 · · · r1n x1 d1
   
r22 · · · r2n   x2   d2  
 
Rx =  .. ..   ..  =  ..  = d, (3.9)
 . .  .   . 
rnn xn dn
aplicando operaciones elementales sobre el sistema (3.5) (sin intercambio de renglones salvo
en el caso necesario).
La segunda etapa consiste en obtener la solución del sistema triangular superior (3.9)
cuando existe, mediante el método de sustitución retrospectiva
P
dn di − nk=i+1 rik xk
xn = , xi = , rii 6= 0, i = n − 1 : −1 : 1 .
rnn rii

La solución así obtenida es solución del sistema lineal algebraico (3.5).

Ejemplo 3.3.2. Resolver ahora el s.l.a. (3.7) en la misma A.P.F. de cuatro dígitos signi-
ficativos con redondeo al par más cercano.

Solución. Se aplicarán operaciones elementales sobre la matriz aumentada del sistema (3.7),
que está dada por  
0.457 0.330 0.127
[A|b] := . (3.10)
0.913 0.659 0.254
Sean R1 y R2 los renglones 1 y 2, respectivamente de la matriz aumentada (3.10), y
reemplazando:
a21 R1
R2 ← − R1 + R2 = −a21 ∗ + R2 ,
a11 a11
70 3.3. Regla de Cramer y métodos de eliminación Gaussiana

se obtiene la matriz equivalente (por filas)


 
0.457 0.330 0.127
, (3.11)
0 −0.3 × 10−3 0.3 × 10−3

donde
R1
−a21 ∗ = −.913 ∗ [1, 0.7221, 0.2779] = [−0.913, −0.6593, −0.2537] .
a11
Resolviendo el sistema triangular superior (3.11) con el método de sustitución retrospec-
tiva, se obtiene la solución

0.127 − 0.330(−1) 0.457


x2 = −1 y x1 = = = 1. (3.12)
0.457 0.457
Por lo tanto, xG = (1, −1)T .
¿Cuál de las dos soluciones es mejor?
Para dar una posible respuesta, se calcula el número de condición de A.
Nótese que
kAk1 = max{1.370, 0.989} = 1.37 .
Y  
−1 4 −0.519 0.260
A = inv(A) = 10 ∗ .
0.719 −0.360
Por lo que
kA−1 k1 = 104 ∗ max{1.238, 0.620} = 1.24 × 104 .
Así que
κ1 (A) = kAk1 kA−1 k1 = 1.7 × 104 .
Y
1 ∼
RCOND(A, 1) = = 5.9 × 10−5 ,
κ1 (A)
lo que dice que la matriz A es cercanamente singular.
Puesto que A y b son capturados exactamente en la máquina, se puede suponer que

k∆Ak1 k∆bk1
/u y / u,
kAk1 kbk1

donde
1 1
u= × 10−(4−1) = × 10−3 .
2 2
Así que  
k∆xk1 k∆Ak1 k∆bk1
/ κ1 (A) ∗ + / 17 .
kxk1 kAk1 kbk1
3. Sistemas lineales de ecuaciones algebraicas 71

Es decir,
k∆xk1
× 100 / 1 700 % .
kxk1
No hay garantía de que alguna de las dos soluciones sea bueno.
Por otro lado, el residual r = b − Ab
x y el residual relativo de cada una de las soluciones se
muestran en la tabla 3.2. En este caso, el residual correspondiente a la solución xG = (1, −1)T
es el vector 0, lo que confirma que es la solución exacta del sistema. Mientras que, tanto el
tamaño del residual como el residual relativo correspondiente a la solución xC = (1.3, 1)T son
grandes, lo que dice que la regla de Cramer es numéricamente inestable.

Método Solución estimada r = b − Ab x krk1 rrel = krk1 /kA k1 kb


xk1
T T
R.C. xC = (1.3, −1) r = (−0.1371, −0.2740) 0.4111 0.1305
T T
E.G. xG = (1, −1) r = (0, 0) 0 0
Tabla 3.2: Comparación de la regla de Cramer (R.C.) con el método de Eliminación Gaussiana
(E.G.).

3.3.3. Algoritmo de eliminación Gaussiana con pivote (parcial)


Este procedimiento agrega un paso adicional que se le llama búsqueda del pivoteo parcial
al método de eliminación Gaussiana. La razón principal de la forma de elegir el pivote parcial
es para garantizar la estabilidad numérica del método. El algoritmo es el siguiente:

A). Seleccionar el elemento pivote ak1 en la primera columna de la matriz aumentada


[A|b] del sistema lineal algebraico (3.5) como

|ak1 | = max |ai1 | .


i=1:n

Si tal elemento pivote ak1 = 0, entonces la matriz A es singular y el procedimiento se


detiene.

B). En caso de que el elemento pivote ak1 6= 0, permutar el renglón k con el renglón
 1 de
[A|b] (este procedimiento se llama pivoteo). El resultado es la matriz A|b .
 
C). Remplazar los renglones R2 hasta Rn de la matriz A|b como

ai1
Ri ← − R1 + R i , i = 2 : n.
a11
 
El resultado es una matriz A(1) |b(1) .
72 3.3. Regla de Cramer y métodos de eliminación Gaussiana

h i
D). Repetir los pasos (A), (B) y (C) sobre la matriz Ã|b̃ , donde
 .. .. 
 (1) (1)   ã 11 . ã T
. b̃ 1

A |b =  ··· ··· ··· ··· ···  ,
.. ..
0 . Ã . b̃

à una matriz (n − 1) × (n − 1).


E). Repitiendo el proceso n − 1 veces se obtiene el sistema triangular superior deseado.
Ejemplo 3.3.3. Resolver de nuevo el s.l.a (3.7) en la misma A.P.F. de cuatro dígitos sig-
nificativos con redondeo al más cercano par.
Solución. Como primer paso, observa que el elemento pivote de la primera columna de la
matriz aumentada (3.10) se localiza en el segundo renglón y es a21 = 0.913. Por lo que se
permuta el segundo renglón con el primero:
 
  0.913 0.659 0.254
A|b = . (3.13)
0.457 0.330 0.127

Reemplazando en la matriz (3.13): R2 ← − aa21


11
R1 + R2 , se obtiene la matriz equivalente
(por filas):  
 (1) (1)  0.913 0.659 0.254
A |b = . (3.14)
0 10−4 −10−4
Resolviendo el sistema triangular superior (3.14) con el método de sustitución retrospec-
tiva, se obtiene la solución
0.254 − 0.659(−1) 0.913
x2 = −1 y x1 = = = 1, (3.15)
0.913 0.913
que es la misma solución que se obtuvo con el algoritmo de eliminación Gaussiana sin pivoteo
parcial.
Una de las causas de la inestabilidad de la regla de Cramer está en su costo com-
putacional, es decir, en la cantidad de operaciones aritméticas de punto flotante (adiciones,
multiplicaciones y divisiones) (flops) que se requieren realizar para su aplicación. Recuerda
que la definición del determinante de A ∈ Rn×n es
X
det(A) = sgn(σ)a1σ(1) a2σ(2) · · · anσ(n) ,
σ∈Sn

por lo que el costo computacional de la regla de Cramer usando la definición del determinante
es
c1 (n) = nD + n!(n − 1)(n + 1)M + (n! − 1)(n + 1)A = n[(n + 1)!] − 1 flops .
3. Sistemas lineales de ecuaciones algebraicas 73

El costo computacional del método de sustitución retrospectiva es

(n − 1)n (n − 1)n
c2 (n) = nD + M+ A = n2 . (3.16)
2 2

El costo computacional de la primera etapa del proceso de eliminación Gaussiana es

(n − 1)n (n − 1)n(2n + 5) (n − 1)n(2n + 5)


c3 (n) = D+ M+ A,
2 6 6

que da un total de
2 3 13 2
c3 (n) = n3 + n2 − n ∼
= n3 (3.17)
3 2 6 3
flops para n suficientemente grande.
Así que el costo computacional total del método de eliminación Gaussiana es

2 5 13 2
c4 (n) = n3 + n2 − n ∼
= n3 , (3.18)
3 2 6 3

para n suficientemente grande.


Una comparación del costo computacional se muestra en la tabla 3.3.

n R.C. E.G.
2 11 11
3 71 34
5 3 599 135
10 399 167 999 895
12 74 724 249 599 1 486
14 18 307 441 151 999 2 289
Tabla 3.3: Costo computacional de los métodos. El costo del método de E.G.P. aumenta “ligeramente”
por la búsqueda del pivote y el pivoteo.

3.4. Factorización LU
En esta sección se describirán los pasos B), C), D) y E) del algoritmo de eliminación
Gaussiana con pivote parcial en términos de matrices elementales. Únicamente se trabajará
con A ∈ Rn×n .
74 3.4. Factorización LU

Una vez localizado el pivote parcial ak1 en el paso A), el pivoteo de los renglones 1 y k
del paso B) para obtener la matriz A, se puede ver como:
  
0 ··· 1 0 ··· 0 a11 ··· a1k a1,k+1 ··· a1n
 .. . . . .. .. . . . ..   .. ..
.
.. .. ..
.
.. 
 . . . .  . . . . 
  
 1 ··· 0 0 ··· 0   ak1 ··· akk ak,k+1 ··· akn 
A = P1 A =   
 0 ··· 0 1 ··· 0   ak+1,1 · · · ak+1,k ak+1,k+1 · · · ak+1,n 
 . . ..   . 
 .. . . ... ... . . . .   ..
..
.
..
.
..
.
..
.
..
. 
0 ··· 0 0 ··· 1 an1 ··· ank an,k+1 ··· ann
 
ak1 · · · akk ak,k+1 ··· akn
 .. ..
.
.. .. ..
.
.. 
 . . . . 
 
 a11 · · · a1k a1,k+1 ··· a1n 
=  ,
 ak+1,1 · · · ak+1,k ak+1,k+1 ··· ak+1,n 
 . .. .. .. .. .. 
 .. . . . . . 
an1 · · · ank an,k+1 ··· ann

donde P1 ∈ Rn×n se llama matriz de permutación, y se obtiene permutando la fila 1 con


la fila k de la matriz identidad I ∈ Rn×n . El efecto que se produce al multiplicar P1 por la
izquierda de la matriz A es permutar las filas 1 y k de A.
Para describir el paso C) en términos de matrices elementales, se introduce la siguiente
definición:

Definición 3.4.1. Sean m(k) = (0, 0, . . . , 0, mk+1 , . . . , mn )T ∈ Rn y ebk ∈ Rn el k−ésimo


vector unitario. Una transfomación de Gauss es una matriz de la forma
 
1 ··· 0 0 ··· 0
.
 . ... .. .. . . .. 
 . . . . . 
 
 0 ··· 1 0 ··· 0 
Mk = I − m(k) ebkT =  .
 0 · · · −mk+1 1 ··· 0 
 . . .. .. . . .. 
 .. . . . . . . 
0 · · · −mn 0 ··· 1

Propiedad 3.4.1. Algunas propiedades importantes de la transformación de Gauss son:

I). Mk es triangular inferior con 10 s en la diagonal principal, por lo tanto es no singular.

II). Mk−1 = I + m(k) ebkT , k = 1 : n − 1.


3. Sistemas lineales de ecuaciones algebraicas 75

III). Si a = (a1 , a2 , . . . , ak , . . . , an )T ∈ Rn , ak 6= 0, y mi = ai /ak , i = k + 1 : n, entonces


   

1 ··· 0 0 ··· 0 a1 a1
. .
 . .. .. .. . . ..   ..   .. 
 . . . . .  .   . 
    
 0 ··· 1 0 · · · 0   ak   ak 
Mk a =    =  .
 0 · · · −m k+1 1 · · · 0   ak+1   0 
 . . .. .. . . ..   .   . 
 .. . . . . . .   ..   .. 
0 · · · −mn 0 ··· 1 an 0

“Mk anula las entradas k + 1 hasta n del vector a”.


El vector m(k) = (0, 0, . . . , 0, mk+1 , . . . , mn )T se llama k−ésimo vector de Gauss, y
mk+1 , . . . , mn se llaman multiplicadores de Gauss.

IV ). Si j > k, entonces
Mk Mj = I − m(k) ebkT − m(j) ebjT .

Así que tomando m(1) = (0, m2 , m3 , . . . , mn )T con mi = ai1 /ak1 , i = 2 : n; la matriz A(1)
del paso (C) se obtiene como:
  
1 0 0 ··· 0 ak1 ak2 ak3 · · · akn
 −m2 1 0 · · · 0   a21 a22 a23 · · · a2,n 
  
  
A(1) = M1 A =  −m3 0 1 · · · 0   a31 a32 a33 · · · a3n 
 .. .. .. . . ..   .. .. .. .. .. 
 . . . . .  . . . . . 
−mn 0 0 · · · 1 an1 an2 an3 · · · ann
 
ak1 ak2 ak3 · · · akn
 0 ã22 ã23 · · · ã2,n 
 
 
=  0 ã32 ã33 · · · ã3n  “Nótese el efecto sobre A 00 .
 .. .. .. .. .. 
 . . . . . 
0 ãn2 ãn3 · · · ãnn

Al repetir el proceso n − 1 veces se obtiene que

Mn−1 Pn−1 · · · M2 P2 M1 P1 A = U

Por lo que si L = Pn−1 · · · P3 P2 (Mn−1 Pn−1 · · · M2 P2 M1 )−1 , entonces

P A = LU ,

donde P = Pn−1 · · · P2 P1 .
Se ha probado el siguiente teorema:
76 3.4. Factorización LU

Teorema 3.4.1. Sea A ∈ Rn×n no singular. Si se aplica el método de eliminación Gaussiana


con pivote parcial para calcular la matriz triangular superior

Mn−1 Pn−1 · · · M2 P2 M1 P1 A = U , (3.19)

entonces
P A = LU ,
donde P = Pn−1 · · · P2 P1 y L es una matriz triangular inferior con 10 s en la diagonal principal
y |`ij | ≤ 1. La k−ésima columna de L debajo de la diagonal principal es una permutación
del k−ésimo vector de Gauss. En particular, si Mk = I − m(k) ebkT entonces L(k + 1 : n, k) =
g(k + 1 : n), donde g = Pn−1 · · · Pk+2 Pk+1 m(k) .

Demostración. Es un ejercicio, pero si hay dudas se puede consultar en Golub and Van Loan
(1989) [10].

Ejemplo 3.4.1. Calcular la factorización LU de la matriz


 
3 17 10
A =  2 4 −2  .
6 18 −12

Solución.
   
0 0 1 6 18 −12
P1 =  0 1 0  =⇒ P1 A =  2 4 −2  .
1 0 0 3 17 10
   
1 0 0 6 18 −12
M1 =  −1/3 1 0  =⇒ M1 P1 A =  0 −2 2  .
−1/2 0 1 0 8 16
   
1 0 0 6 18 −12
P2 =  0 0 1  =⇒ P2 M1 P1 A =  0 8 16  .
0 1 0 0 −2 2
   
1 0 0 6 18 −12
M2 =  0 1 0  =⇒ M2 P2 M1 P1 A =  0 8 16  = U .
0 1/4 1 0 0 6
Por lo que la factorización LU es

P A = LU ,

donde
3. Sistemas lineales de ecuaciones algebraicas 77

 
0 0 1
P = P 2 P1 =  1 0 0  .
0 1 0
 
1 0 0
L = P2 (M2 P2 M1 )−1 = P2 M1−1 P2−1 M2−1 = P2 M1−1  0 −1/4 1 
    0 1 0
1 0 0 1 0 0
= P2  1/3 −1/4 1  =  1/2 1 0 .
1/2 1 0 1/3 −1/4 1

Observa que
det(A) = (−1)2 × 6 × 8 × 6 = 288 ,
por haber realizado dos permutaciones en la factorización de A.

Aplicación 1. Si A ∈ Rn×n es no singular, entonces la resolución de un sistema lineal Ax = b


para diferentes vectores b, se puede realizar con el siguiente procedimiento:

A). Calcular la factorización P A = LU de la matriz A.

B). Resolver primero el sistema triangular inferior Lc = P b , por el método de sustitución


prospectiva.

C). Después resolver el sistema triangular superior U x = c , utilizando el método de susti-


tución retrospectiva.

Aplicación 2. Si A ∈ Rn×n es no singular, y P A = LU es la factorización LU de A, entonces

det(A) = ± u11 u22 · · · unn ,

donde u11 , u22 , · · · , unn son los elementos de la diagonal principal de la matriz triangular
superior U , y se elige el signo menos si el número total de permutaciones es impar. Observa
que esto disminuye significativamente el costo computacional del cálculo del determinante de
A.
El siguiente algoritmo permite obtener el sistema triangular superior equivalente de un
sistema lineal Ax = b :
Algoritmo 3.4.1. Facorización LU por eliminación Gaussiana con pivote parcial.
Para k = 1 : n − 1 {iteración sobre columnas}
Encontrar el índice p tal que
|apk | ≥ |aik | para i = k : n {búsqueda del pivote}
Si p 6= k entonces
intercambiar las filas k y p
78 3.5. Factorización de Cholesky

Si akk = 0 entonces
continuar con el siguiente k
Para i = k + 1 : n
mik = aik /akk {cálculo de multiplicadores}
Termina
Para j = k + 1 : n
Para i = k + 1 : n
aij = aij − mik akj
Termina
Termina
Termina.

3.5. Factorización de Cholesky


Definición 3.5.1. Sea A ∈ Rn×n .

A). A se dice simétrica si A = AT .

B). A se dice definida positiva si xT Ax > 0 para todo x 6= 0.

Se llama submatriz principal de orden k de una matriz A de orden n a toda sub-


matriz que se obtiene de A al suprimir los renglones y columnas j1 , j2 , . . . , jn−k de A. Los
determinantes de las submatrices principales de A se llaman menores principales de A.

Teorema 3.5.1. Sea A ∈ Rn×n simétrica y definida positiva. Entonces A es no singular y


A−1 es simétrica y definida positiva. Más aún, todas las submatrices principales de A son
simétricas y definidas positivas, y todos los menores principales de A son positivos.

Demostración. Si A fuera singular debe existir un x 6= 0 tal que Ax = 0, por lo que xT Ax = 0


que contradice el hecho de que A es definida positiva, así que A debe ser no singular. Por
otro lado, puesto que (A−1 )T = (AT )−1 = A−1 , se sigue que A−1 es simétrica. También A−1
es definida positiva, pues si y 6= 0, entonces x = A−1 y 6= 0 y y T A−1 y = xT AT A−1 Ax =
xT AT x = xT Ax > 0. Ahora se verá que si
 
a i1 i1 a i1 i2 · · · a i1 ik
 a i2 i1 a i2 i2 · · · a i2 ik 
 
à =  .. .. .. .. ,
 . . . . 
a ik i1 a ik i2 · · · a ik ik

es cualquier submatriz principal de A, entonces à es simétrica y definida positiva. En efecto,


3. Sistemas lineales de ecuaciones algebraicas 79

es claro que ÃT = Ã. Por otro lado, cualquier


 
x̃1
 x̃2 
 
x̃ =  ..  ∈ Rk , x̃ 6= 0 ,
 . 
x̃k

se puede expandir a un vector


 
x1
 x2  
  x̃j para µ = ij , j = 1 : k ,
x =  ..  ∈ Rn , x 6= 0 , xµ =
 .  0 en otro caso.
xn

Se sigue que
x̃T Ãx̃ = xT Ax > 0 ,
por lo que à es definida positiva.
Para completar la prueba es suficiente con mostrar que det(A) > 0. Para ello, se aplica
inducción sobre n. Para n = 1 es claro, pues A = (α) donde α > 0, y por tanto det(A) =
α > 0. Se supone que el teorema es cierto para matrices simétricas y definidas positivas de
orden n − 1, y sea A una matriz simétrica y definida positiva de orden n. De acuerdo con la
primera parte de la prueba
 
α11 α12 · · · α1n
 α21 α22 · · · α2n 
−1  
A =  .. .. . . .. 
 . . . . 
αn1 αn2 · · · αnn

existe y es simétrica y definida positiva, por lo que α11 > 0. Además es bien conocido que
 
a22 · · · a2n
det  ... .. 
 ..
. . 
a2n · · · ann
α11 = ,
det(A)
y por hipótesis de inducción,
 
a22 · · · a2n
det  ... ..  > 0 ,
 ..
. . 
a2n · · · ann

por lo que det(A) > 0.


80 3.5. Factorización de Cholesky

Teorema 3.5.2 (Factorización de Cholesky). Si A ∈ Rn×n es simétrica y definida positiva,


entonces existe una única L ∈ Rn×n triangular inferior con `ii > 0, i = 1 : n, tal que

A = LLT .

La factorización A = LLT se le llama factorización de Cholesky de A, y L se le llama


el triángulo de Cholesky.
Demostración. La prueba se hace por inducción sobre n. Para n = 1, el teorema es claro
pues A = (α) donde α > 0, por lo que se puede escribir de manera única como

α = `11 `11 , `11 = + α .

Se supone que el teorema es cierto para matrices simétricas y definidas positivas de orden
n − 1. Sea A una matriz simétrica y definida positiva de orden n, entonces
 
An−1 b
A= ,
bT ann

donde b ∈ Rn−1 , y por el teorema 3.5.1 An−1 ∈ R(n−1)×(n−1) es simétrica y definida positiva.
De la hipótesis de inducción se sigue que existe una única Ln−1 ∈ R(n−1)×(n−1) que satisface
An−1 = Ln−1 LTn−1 , `ik = 0 para k > i, `ii > 0 .

Se considera la matriz  
Ln−1 0
L= ,
cT α
y se tratará de determinar c ∈ Rn−1 y α > 0 tales que
  T   
Ln−1 0 Ln−1 c An−1 b
= = A. (3.20)
cT α 0 α bT ann
Para ello, se debe cumplir que
Ln−1 c = b
c c + α2 = ann ,
T
α > 0.

La primera ecuación tiene una única solución c = L−1 n−1 b, pues Ln−1 es una matriz trian-
gular inferior con det(Ln−1 ) = `11 `22 · · · `(n−1)(n−1) > 0, por lo que el vector c existe.
Ahora de (3.20) se sigue que det(A) = [det(Ln−1 )]2 α2 , y como A es simétrica y definida
positiva se sigue del teorema 3.5.1 que det(A) > 0, por lo que α 2 existe y es positiva. Así que
de la segunda ecuación se tiene que α2 = ann − cT c > 0, por lo que basta tomar
p
α = + ann − cT c > 0 .
3. Sistemas lineales de ecuaciones algebraicas 81

Algoritmo 3.5.1 (Cholesky). Dada una matriz simétrica y definida positiva A ∈ R n×n ,
el siguiente algoritmo calcula la matriz triangular inferior L tal que A = LL T . Para todo
i ≥ j , `ij se escribe sobre aij .
Para k = 1 : n, hacer

akk = akk
Para i = k + 1 : n, hacer
aik = aik /akk
Termina
Para j = k + 1 : n, hacer
Para i = j : n, hacer
aij = aij − aik ajk
Termina
Termina
Termina.

Ejemplo 3.5.1. Calcular en una aritmética flotante de precisión 4 y redondeo al más cercano
par, la factorización de Cholesky de la matriz
 
100 15 0.01
A =  15 2.3 0.01  .
0.01 0.01 1.00

Solución. Para k = 1, aplicando los primeros dos pasos del Algoritmo 3.5.1 se tiene:
     
10 10 10
 1.5 0.05  ,→  1.5 0.2236  ,→  1.5 0.2236 .
0.001 0.0085 1.000 0.001 0.03801 0.9986 0.001 0.03801 0.9993

j = 2; i = 2 : a22 = a22 − a21 a21 = 2.3 − (1.5)(1.5) = 0.05


i = 3 : a32 = a32 − a31 a21 = 0.01 − (0.001)(1.5) = 0.0085
j = 3; i = 3 : a33 = a33 − a31 a31 = 1.00 − (0.001)(0.001) = 1.000
Para k = 2, aplicando de nuevo los primeros dos pasos del Algoritmo 3.5.1 se tiene:
j = 3; i = 3 : a33 = a33 − a32 a32 = 1.00 − (0.03801)(0.03801) = 0.9986
√ √
Para k = 3, a33 = a33 = 0.9986 = 0.9993
Por lo que  
10 0 0
L =  1.5 0.2236 0 .
0.001 0.03801 0.9993
Aplicación 1. La resolución de un sistema lineal Ax = b para diferentes vectores b cuando
A ∈ Rn×n es simétrica y definida positiva, se puede realizar con el siguiente procedimiento:
A). Calcular la factorización de Cholesky A = LLT de la matriz A.
82 3.6. Ejercicios

B). Resolver primero el sistema triangular inferior Lc = b , por el método de sustitución


prospectiva.
C). Después resolver el sistema triangular superior LT x = c , utilizando el método de susti-
tución retrospectiva.
Aplicación 2. Si A ∈ Rn×n es simétrica y definida positiva, y A = LLT es la factorización
de Cholesky de A, entonces
det(A) = (`11 `22 · · · `nn )2 .

3.6. Ejercicios
Normas vectoriales y matriciales
1. Demuestra que la función norma N : Rn → R es uniformemente continua con respecto
a la métrica ρ(x, y) = max |xi − yi | en Rn .
i=1:n

2. Sea x ∈ R . Demuestra las desigualdades siguientes:


n


A). kxk2 ≤ kxk1 ≤ n kxk2 .

B). kxk∞ ≤ kxk2 ≤ n kxk∞ .
C). kxk∞ ≤ kxk1 ≤ n kxk∞ .
3. Para todo x ∈ Rn dado, demuestra que
lim kxkp = kxk∞ .
p→∞

4. Sea S ∈ Rn×n simétrica


√ y positiva definida (i.e., S = S y x Sx > 0, para todo x 6= 0).
T T

Prueba que kxkS = x Sx , define una norma sobre R .


T n

Sugerencia. Muestra primero que < x, y >= y T Sx es un producto interior sobre Rn .


5. Demuestra que
kAk∆ = max |aij | , A ∈ Rm×n ,
i=1:m,j=1:n

es una norma matricial no submultiplicativa.


6. Si A ∈ Rm×n , demuestra que existe un vector unitario z ∈ Rn tal que AT Az = µ2 z ,
donde µ = kAk2 .
Sugerencia. Observa que existe z ∈ Rn unitario tal que kAzk2 = kAk2 , y que maximiza
la función
1 kAxk22 1 xT AT Ax
g(x) = ≡ , x 6= 0 .
2 kxk22 2 xT x
En consecuencia ∇g(z) = 0, que es equivalente a AT Az = (z T AT Az)z ≡ µ2 z.
3. Sistemas lineales de ecuaciones algebraicas 83

7. Demuestra que p
kAk2 = λmax (AT A) , A ∈ Rm×n ,

donde λmax (AT A) es el máximo de los eigenvalores de AT A.


Así que kAk22 es también la raíz más grande del polinomio p(λ) = det(AT A − λ I).
Si Q ∈ Rn×n es ortogonal (es decir, QT Q = QQT = I), entonces kQk2 = 1 .
Sugerencia. Concluya del ejercicio 6.

8. Si A ∈ Rm×n , demuestra que


p
kAk2 ≤ kAk1 kAk∞ .

9. Sea A ∈ Rm×n , demuestra las desigualdades siguientes:


1 √
A). √ kAk∞ ≤ kAk2 ≤ m kAk∞ .
n
1 √
B). √ kAk1 ≤ kAk2 ≤ n kAk1 .
m

C). kAk2 ≤ kAkF ≤ n kAk2 .

D). α ≤ kAk2 ≤ mn α , donde α = max |ai,j | .
i=1:m,j=1:n

10. Si B es cualquier submatriz de A, demuestra que kBkp ≤ kAkp .



11. Prueba que la forma bilineal < A, B >:= tr B T A , para todo A, B ∈ Rm×n , define un
producto interior sobre Rm×n (i.e., (Rm×n , < , >) es un espacio euclidiano).

A). Muestra que la norma inducida por este producto interior es la norma de Frobenius
dada por (3.1).
B). Prueba que k · kF es consistente con la norma vectorial euclidiana k · k2 .
C). Prueba que k · kF es submultiplicativa.
D). ¿Cuándo se dice que A, B ∈ Rm×n son ortogonales entre sí ?

Número de condición de una matriz

12. Contesta si son falsos o verdaderos las afirmaciones 2.21 al 2.25 de la página 93 de
Heath (2002) [12].

13. Contesta las preguntas 2.60 al 2.62 de la página 95, y las preguntas 2.65 y 2.67 de la
página 96 de Heath (2002) [12].
84 3.6. Ejercicios

14. Hallar κ1 (A), κ2 (A) y κ∞ (A), para cada una de las siguientes matrices:
   
1 2 1 2
A= y B= .
3 7 3 4

15. Considera las matrices


   
1 −1 1 −1
A= y B= .
1 −1.00001 −1 1.00001

A). Muestra que


|λmax (A)| ∼ |λmax (B)| ∼
= 1 y que = 4 · 105 .
|λmin (A)| |λmin (B)|

B). A continuación prueba que κ2 (A) = κ2 (B) ¿Cuál es la moraleja?


16. Sea A ∈ Rn×n no singular. Explica por qué κ2 (A) = 1 si y sólo si A es el producto de
un escalar (diferente de cero) por una matriz ortogonal. ¿Es cierto lo anterior cuando
κ∞ (A) = 1 o κ1 (A) = 1?
Sugerencia. Considera la matriz
 
1 2 −1
A= √ .
5 1 2
P
17. A ∈ Rn×n , A = (aij ), se dice equilibrada por renglones si nj=1 |aij | = 1, i = 1 : n.
Demuestra que si A ∈ Rn×n es equilibrada por renglones, entonces
κ∞ (A) ≤ κ∞ (DA) ,

para toda D ∈ Rn×n diagonal. Esto es, la equilibración por renglones mejora el número
de condición de la matriz.
18. Sea A = diag(1/2) una matriz diagonal n × n con entradas en la diagonal = 1/2.
A). ¿Cuál es el valor del det(A)?
B). ¿Cuál es el valor del κp (A) para p = 1, 2 e ∞?
C). ¿Qué conclusión puedes obtener de estos resultados?
19. Sea A ∈ Rn×n no singular, demuestra que
1 kE − Akp
≤ , p ≥ 1,
κp (A) kAkp

para toda E ∈ Rn×n singular.


3. Sistemas lineales de ecuaciones algebraicas 85

20. Sea A ∈ Rn×n no singular. Para demostrar que


 
1 kE − Ak2
= min : E es singular ,
κ2 (A) kAk2

haga lo siguiente:
A). Prueba que kωk2 = max |ω T x|2 , para todo ω ∈ Rn .
kxk2 =1

B). ¿Por qué existe x0 ∈ Rn tal que kx0 k2 = 1 y kA−1 x0 k2 = kA−1 k2 ?


C). Tomando E ∗ = A − x0 ω T , donde ω = kA−1 x0 k−2
2 A x0 , muestra que E z = 0
−1 ∗
−1 −1
para z = A x0 6= 0 y que kE − Ak2 ≤ kA k2 .
−1 ∗

21. Sea A ∈ R3×3 la matriz dada por


 
1 −1 1
A =  −1 e e , 0 < |e| < u ,
1 e e

donde u es la unidad de redondeo del sistema que se esté usando.


3
Demuestra que κ∞ (A) ≥ |e|−1 . Comenta.
2
22. Sea A ∈ Rn×n . Demuestra las desigualdades siguientes:
1
A). κ2 (A) ≤ κ1 (A) ≤ nκ2 (A).
n
1
B). κ∞ (A) ≤ κ2 (A) ≤ nκ∞ (A).
n
1
C). 2 κ1 (A) ≤ κ∞ (A) ≤ n2 κ1 (A).
n
23. Demuestra que cualesquiera dos números de condición κα (·) y κβ (·) sobre Rn×n son
equivalentes, es decir, existen constantes c1 y c2 tales que
c1 κα (A) ≤ κβ (A) ≤ c2 κα (A) , para toda A ∈ Rn×n .

Residuales
24. Contesta las preguntas 2.63 y 2.67 de las páginas 95 y 96, respectivamente de Heath
(2002) [12].
25. Considera al sistema lineal algebraico (s.l.a.):
0.780x1 + 0.563x2 = 0.217
0.913x1 + 0.659x2 = 0.254
86 3.6. Ejercicios

A). Calcula los residuales y residuales relativos en norma 1 para las soluciones aproxi-
madas
ba1 = (0.341, −0.087)T y x
x ba2 = (0.999, −1.001)T .
¿Cuál es la mejor solución?
B). Halla la solución exacta.
C). Calcula el número de condición κ1 (A).
D). Explica la situación en lenguaje geométrico.
Comenta.

26. Considera al s.l.a.


0.2161x + 0.1441y = 0.1440
1.2969x + 0.8648y = 0.8642

ba = (0.9911, −0.4870)T ?
¿Cuánto vale el residual y el residual relativo para x
¿Cuánto vale κ1 (A)? Comenta.
Nota. La solución exacta es x = (2, −2)T .

Regla de Cramer y métodos de eliminación Gaussiana


27. (Moler) Considera el s.l.a.
0.326x + 0.260y = 0.456
0.373x + 0.296y = 0.521

Utilizando una A.P.F. de 4 decimales con redondeo al más cercano par llena las tablas
3.4 y 3.5, donde r = (r1 , r2 )T = b − Ab
x ¿Cuál es el valor de la unidad de redondeo? ¿Es
la regla de Cramer un método numéricamente estable? ¿Es el método de eliminación
Gaussiana sin pivoteo parcial numéricamente estable?

kAk1 kA−1 k1 det(A) κ1 (A)

Tabla 3.4: Determinante y número de condición de A.

Nota. La solución exacta es x = 1.0 y y = 0.5.


28. Con una A.P.F. de 3 decimales con truncamiento resuelva el s.l.a. (3.21) y llena las
tablas 3.6 y 3.7.
0.209x1 + 0.141x2 = 0.068
(3.21)
0.461x1 + 0.311x2 = 0.150

Para cada caso, compara el residual relativo contra u (la unidad de redondeo). Comenta.
3. Sistemas lineales de ecuaciones algebraicas 87

Cramer Gauss s/p Gauss c/p


x
y
r1
r2
krk1
rrel
Tabla 3.5: Comparación de los métodos de Cramer, Gauss s/p y Gauss c/p.

kAk1 kA−1 k1 det(A) κ1 (A)

Tabla 3.6: Determinante y número de condición de A.

Cramer Gauss s/p Gauss c/p


x1
x2
r1
r2
krk1
rrel
Tabla 3.7: Comparación de los métodos de Cramer, Gauss s/p y Gauss c/p.

29. Verifica las fórmulas (3.16), (3.17) y (3.18).

30. Con la ayuda de una computadora, en simple y en doble precisión, resuelve el s.l.a.
siguiente:
0.2038x + 0.1218y = 0.2014
0.4071x + 0.2436y = 0.4038

aplicando el método de eliminación Gaussiana con pivoteo. Dada una A.P.F. de t


decimales con redondeo, halla la menor t para la cuál se obtiene la solución exacta
x = −2.0 , y = 5.0. Comenta.

31. Sean    
0.1 0.2 0.3 0.1
A =  0.4 0.5 0.6  y b =  0.3  .
0.7 0.8 0.9 0.5

A). Muestra que el sistema Ax = b tiene una infinidad de soluciones. Describe el


conjunto de todas sus soluciones.
88 3.6. Ejercicios

B). Resuelve este sistema usando MATLAB ¿Qué solución obtuviste?


C). Utiliza la subrutina SGEFS del libro de Kahaner, Moler and Nash (1989) [14],
para resolver dicho sistema ¿Qué solución obtuviste?
Comenta.

32. Considera el s.l.a.


x1 + x2 = 2
10x1 + 10 x2 = 10 + 1018
18

A). Resuelve el sistema en aritmética real (exacta).


B). Con la ayuda de una calculadora resuelve de nuevo el sistema por eliminación
Gaussiana con pivoteo.
C). Repite el inciso anterior después de dividir cada renglón por αi = maxj |aij |.
D). Calcula los residuales en cada caso.
Comenta.

33. Demuestra que los vectores siguientes


     
1 −1 −1
 0   1   −1 
     
     
a1 =  0  , a2 =  0  , . . . , an =  −1 
 ..   ..   .. 
 .   .   . 
0 0 1

de Rn son l.i. Sea A = [a1 |a2 | . . . |an ] ¿Cuánto vale det(A)?

A). Prueba que κ1 (A) ≥ 2n−1 n .


Sugerencia. Note que kA−1 k1 ≥ kA−1 ebn k1 y muestra que kA−1 ebn k1 = 2n−1 .
B). Para n = 24 en precisión finita ¿Son los vectores {ai }ni=1 l.i.? En A.P.F. en precisión
simple, halla la menor n para la cual A es ya numéricamente singular.
C). Usando MATLAB llena la tabla siguiente:

n κ1 (A)
2
3
..
.
30

Comenta.
3. Sistemas lineales de ecuaciones algebraicas 89

34. Considera la matriz A del problema 33.

A). Muestre que det(E) = 0, donde E = A − 2−n+1 1 eb1T , (1T = (1, 1, . . . , 1) ∈ Rn ),


para n ≥ 2 .

B). Usa la desigualdad kAkF ≤ n kAk2 , para mostrar que
 1/2
n+1
kAk2 ≥ .
2

C). Halla una subestimación para κ2 (A). Para ello, muestre que

1 1 T n
T
2n−1 1 eb1 = 2n−1 1 eb1 2 = 2n−1 .
2

D). ¿Cuánto vale κ∞ (A)?

35. Considera a la matriz


 
0.501 −1 0 ··· 0
 .. 
 0 0.502 −1 0 · · · . 
 .. .. 
A=
 0 0 . . 0 .

 .. .. 
 . . 0 0.599 −1 
0 0 ··· 0 0.600

Muestra que κ∞ (A) > 1021 y que |λmax (A)|/|λmin (A)| ∼= 1.1976 .
Sugerencia. Para estimar kA−1 k∞ , resuelve el sistema lineal Ax = eb100 .

Factorización LU

36. Contesta las preguntas 2.40, 2.41 y 2.43 de la página 94, y la pregunta 2.58 de la página
95 de Heath (2002) [12].

37. Muestra que la matriz


 
2 2 1
A= 1 1 1 ,
3 2 1

es invertible y que, sin embargo, no admite descomposición A = LU alguna. ¿Es esta


matriz fuertemente no singular? Comenta.
90 3.6. Ejercicios

38. Resuelve por eliminación Gaussiana sin pivoteo el s.l.a. Ax = b, donde


   
1 2 3 4 2
 1 4 9 16   10 
A=  1 8 27 64 
 y b= 
 44  .
1 16 81 256 190

A continuación resuelve nuevamente este sistema por eliminación Gaussiana con pivoteo
parcial. ¿Cuáles son los factores de la descomposición LU de A? ¿Cuánto vale det(A)?
Compara resultados y comenta.

39. Demuestra que si P ∈ Rn×n es de permutación, entonces P es invertible y que es su


propio inverso.
40. Demuestra las propiedades 3.4.1 de una transformación de Gauss.

41. Programa el algoritmo 3.4.1 en FORTRAN y aplícalo a los ejercicios 37 y 38.

42. Para la resolución de sistemas tridiagonales (i.e., Ax = b, con A ∈ Rn×n tridiagonal),


es conveniente guardar la matriz en un arreglo 3 × n. Por ejemplo, la siguiente matriz
ocurre cuando se interpola un conjunto de datos por spline cúbicos.
 
−1 1
 1 4 1 
 
 .. .. .. 
A= . . . .
 
 1 4 1 
1 −1

La matriz A se puede almacenar como una matriz ATR de 3 × n. El método de elimi-


nación Gaussiana no requiere de pivoteo. Escriba una rutina apropiada en FORTRAN
para este caso, para obtener la descomposición LU de A, y resuelva el sistema lineal
Ax = b, b = (1, 1, . . . , 1)T para n = 5, 15, 25 y 55. Para estas matrices, usando MAT-
LAB, calcula κ1 (A).

Factorización de Cholesky

43. Contesta las preguntas 2.73 al 2.78 de la página 96 de Heath (2002) [12].

44. Calcula el costo computacional del algoritmo de Cholesky 3.5.1 incluyendo las raíces
cuadradas.

45. Implanta el Algoritmo de Cholesky 3.5.1 en FORTRAN y úsalo para resolver el proble-
ma 2.6 de la página 101 de Heath (2002) [12].
Capítulo 4

Ceros de funciones

4.1. Planteamiento del problema


Dada f : I ⊆ R → R polinomio o función transcendente sobre un intervalo I, encontrar
x∗ ∈ I tal que f (x∗ ) = 0.
Un tal x∗ se llama cero de f (x) o raíz de la ecuación f (x) = 0.
La existencia de una solución del problema se garantiza con el siguiente teorema:
Teorema 4.1.1. Si f : [a, b] → R es continua y f (a) y f (b) son de signo opuesto, entonces
existe un x∗ ∈ (a, b) tal que f (x∗ ) = 0.
Demostración. Para una prueba consultar Spivak (1978) [23].
En la práctica no siempre es posible hallar x∗ exactamente, sino hasta donde permita la
aritmética de punto flotante que se está usando. Así que el problema se reduce a encontrar
un intervalo “muy pequeño” (a∗ , b∗ ) con a∗ y b∗ números flotantes tales que f (a∗ ) y f (b∗ ) sean
de signo opuesto. En tal caso, x∗ se puede tomar como a∗ o b∗ .

4.2. Método de bisección


En esta sección se presenta el siguiente algoritmo de la bisección.
Algoritmo 4.2.1. Algoritmo de bisección.
Datos de entrada: a, b ∈ R, a < b y f : [a, b] → R continua con f (a)f (b) < 0.
T OL una tolerancia dada, y
N M AX un número máximo de iteraciones.
Datos de salida: La raíz aproximada x ∗ de f (x) = 0 sobre [a, b].
α←a
β←b
N ←1

91
92 4.2. Método de bisección

Mientras |β − α| ≥ T OL ∗ |β| , hacer


γ ← (α + β)/2
Si sign (f (γ)) = sign (f (β)) , entonces
β←γ
En caso contrario, hacer
α←γ
N ←N +1
Si N = N M AX, entonces hacer
α=β
Terminar.

La tolerancia T OL se puede elegir como f actor ∗ u, con 0 < f actor < 1 y u la unidad de
redondeo de la aritmética flotante que se está usando. Discutir el criterio de paro |β − α| ≥
T OL ∗ |β| con el criterio |f (γ)| < T OL.
Sugerencias para programar el algoritmo de bisección:
A). Programar f (x) como function.
B). Programar el método de bisección como function.
C). Una simulación de Mientras (While) en Fortran es:

{Etiqueta} IF ({Expresión lógica}) THEN


{Bloque de instrucciones}
GO TO {Etiqueta}
ENDIF

Actividad 4.2.1. Capture el programa BISEC.FOR anexo. Dicho programa está basado en
el algoritmo de la bisección y tiene la siguiente estructura:
{Documentación del programa
{Lea f (x) como function


 Programa principal

EXTERNAL F

 Llama BISEC como function

Imprima resultados
{Lea BISEC como function
Programa BISEC.FOR
C APROXIMA LA RAIZ DE LA ECUACION F(X)=0 SOBRE [A,B]
C USANDO EL METODO DE LA BISECCION
C
C JUSTINO ALAVEZ RAMIREZ
C
4. Ceros de funciones 93

C FEBRERO DE 2006
C
C DATOS: F(X), A, B, TOL
C
C DONDE: F:[A,B]–>R
C TOL TOLERANCIA PARA APROXIMAR LA RAIZ DE F(X)=0
C
C SALIDA: R, FR, N, NMAX
C
C DONDE: R RAIZ APROXIMADA DE F(X)=0
C FR VALOR DE F(R)
C N ITERACION EN QUE SE LOGRA R
C NMAX ITERACION MAXIMA SIN CONVERGENCIA
C
C ****************************************************************
C
REAL FUNCTION F(X)
REAL X
F = X**7-2.0
C F = X**4 + X**3 - X**2 - 2.0*X - 2.0
C F = X - EXP(-X)
RETURN
END
C
C ****************************************************************
C
EXTERNAL F
REAL A,B,R,FR,TOL,BISEC
INTEGER N,NMAX
C
A = 1.0
B = 2.0
TOL = 1.0E-6
NMAX = 1500
R = BISEC(A,B,F,FR,TOL,N,NMAX)
C
IF (N .EQ. NMAX) THEN
WRITE(6,10)NMAX
10 FORMAT(//,6X,’**************************************************
+*********’,/,
+ 8X,’NO SE LOGRO CONVERGENCIA DESPUES DE’,2X,I5,2X,
+ ’ITERACIONES’,/,
+ 8X,’REINICIE CON UNA NUEVA TOLERANCIA O CON MAS’,1X,
94 4.2. Método de bisección

+’ITERACIONES’,/,
+ 6X,’*****************************************************
+******’)
ELSE
WRITE(6,20)R,FR,N
20 FORMAT(//,6X,’**********************************************’,/,
+ 14X,’R E S U L T A D O S’,//,
+ 8X,’LA RAIZ APROXIMADA ES:’,3X,E15.8,/,
+ 8X,’EL VALOR DE F(RAIZ) ES:’,2X,E15.8,/,
+ 8X,’DESPUES DE’,1X,I3,2X,’ITERACIONES’,/,
+ 6X,’**********************************************’)
ENDIF
STOP
END
C
C *********************************************************************
C
REAL FUNCTION BISEC(A,B,F,FR,TOL,N,NMAX)
REAL A,B,F,FR,TOL
INTEGER N,NMAX
C
C CALCULO DE UNA RAIZ DE F(X)=0 SOBRE [A,B] POR EL
C METODO DE LA BISECCION
C
REAL ALPHA,BETA,GAMMA,FG,FB,R
C
C INICIALIZANDO
C
ALPHA = A
BETA = B
N = 1
C
C VERIFICANDO CONDICION DE CONVERGENCIA
C
30 IF (ABS(BETA-ALPHA) .GE. ABS(BETA)*TOL) THEN
GAMMA = (ALPHA+BETA)/2.0
FG = F(GAMMA)
FB = F(BETA)
IF (FG*FB .GT. 0.0) THEN
BETA=GAMMA
ELSE
ALPHA=GAMMA
ENDIF
4. Ceros de funciones 95

N = N+1
IF (N .EQ. NMAX) THEN
ALPHA = BETA
ENDIF
GO TO 30
ENDIF
C
R = BETA
C R = ALPHA
FR = F(R)
BISEC = R
RETURN
END

Actividad 4.2.2. Para p(x) = x4 + x3 − x2 − 2x − 2, con a = 1.0 y b = 2.0, ejecuta tu


programa con los parámetros siguientes:
A). T OL = 10−7 y N M AX = 100
B). T OL = 10−8 y N M AX = 100
C). T OL = 10−8 y N M AX = 1 500
D). Repita el inciso (A) e imprima los resultados de cada iteración.
Comenta.

Actividad 4.2.3. Para p(x) = x7 − 2, con a = 1.0 y b = 2.0, ejecuta tu programa con los
parámetros siguientes:
A). T OL = 10−7 y N M AX = 1 500
B). T OL = 10−6 y N M AX = 1 500
Comenta.

Actividad 4.2.4. Ejecute su programa para resolver los siguientes problemas:

A). Verifica que el polinomio p(x) = x4 + x3 − x2 − 2x − 3, tiene un raíz ξ entre 1 y 2


¿Cuánto vale ξ?
x2
B). Encuentra el punto donde la función f (x) = + e−x alcanza su mínimo.
2
Observación 4.2.1. Se gana un bit de precisión en cada iteración en el método de la bisec-
ción.
En la iteración t:
b−a
β−α≤ ≡ 2−t (b − a)
2t
El macheps en precisión simple es 0.1192093 × 10−6 ≡ 2−23 , por lo que si se toma T OL =
2−23 y un intervalo [a, b] de longitud 1, se necesitarían 23 iteraciones para alcanzar el intervalo
96 4.3. Método de Newton

más pequeño: a∗ ≤ x∗ ≤ b∗ , con a∗ y b∗ números flotantes sucesivos.


En precisión doble, macheps = 0.222044604925031 × 10 −15 ≡ 2−52 , por lo que se requeririán
52 iteraciones en este caso.
Observación 4.2.2. El método es lento pero seguro, es decir, siempre converge a alguna raíz
x∗ de f (x) = 0.
Observación 4.2.3. En cada iteración se evalúa f , por lo que si la evaluación es rápida, no
hay razón para rechazar el método.

4.3. Método de Newton


Si f : [a, b] → R es continuamente diferenciable sobre (a, b) y f (a)f (b) < 0, es posible
construir métodos más rápidos para aproximar la raíz x∗ de f (x) = 0 sobre [a, b].
Sea x0 un punto inicial dado en (a, b). Entonces,

f (x) = f (x0 ) + f 0 (x0 )(x − x0 ) + O(|x − x0 |2 )

Si f 0 (x0 ) 6= 0, se resuelve la ecuación f (x0 ) + f 0 (x0 )(x − x0 ) = 0, para obtener:

f (x0
x+ = x 0 − .
f 0 (x0 )
Esto da lugar a la iteración de Newton-Raphson:
f (xk )
xk+1 = xk − si f 0 (xk ) 6= 0, k ≥ 0 .
f 0 (xk )

Teorema 4.3.1. Si f (x∗ ) = 0, f 0 (x∗ ) 6= 0 y f 00 es continua en (a, b), entonces existe un


intervalo abierto I que contiene a x∗ tal que si x0 ∈ I, la iteración de Newton-Raphson
xk → x∗ cuando k → ∞. Si se denota el error en xk por ek = xk − x∗ , entonces:

|ek+1 | f 00 (x∗ )
lim = 0 . (4.1)
k→∞ |ek |2 2f (x∗ )

Demostración. Como f 0 (x∗ ) 6= 0 y f 0 es continua en (a, b), existe un intervalo abierto J ⊂


(a, b) que contiene a x∗ tal que f 0 (x) 6= 0 para todo x ∈ J.
Sea
f (x)
g(x) = x − 0 , x∈J.
f (x)
Es claro que g 0 existe y es continua en J, y como g 0 (x∗ ) = 0, existe un intervalo abierto
I ⊂ J tal que x∗ ∈ I, y
|g 0 (x)| ≤ C , x ∈ I ,
4. Ceros de funciones 97

para alguna constante C tal que 0 < C < 1.


Sea x0 ∈ I, y se define lo que se conoce como la iteración del punto fijo para g como:

f (xk )
xk+1 = g(xk ) = xk − , k ≥ 0,
f 0 (xk )

que es justamente la iteración de Newton-Raphson.


Se sigue del teorema del valor medio que existe ξk−1 entre xk−1 y x∗ tal que

ek = xk − x∗ = g(xk−1 ) − g(x∗ ) = g 0 (ξk−1 )(xk−1 − x∗ ) = g 0 (ξk−1 )ek−1 ,

de donde
|ek | ≤ C|ek−1 | ≤ C 2 |ek−2 | ≤ · · · ≤ C k |e0 | .

Como 0 < C < 1, se sigue que C k → 0 cuando k → ∞, así que |ek | → 0 cuando k → ∞,
y así se tiene que xk → x∗ cuando k → ∞.
Ahora, de la fórmula de Lagrange para el residuo en la aproximación de Taylor de primer
orden para f en un entorno de xk es

1
f (x) = f (xk ) + f 0 (xk )(x − xk ) + f 00 (ξk )(x − xk )2 ,
2

para alguna ξk entre x y xk . Así que tomando x = x∗ , se tiene que

1
0 = f (x∗ ) = f (xk ) + f 0 (xk )(x∗ − xk ) + f 00 (ξk )(x∗ − xk )2 .
2
Agrupando términos, resulta
 
f (xk ) f 00 (ξk )
x∗ − xk − 0 =− 0 (x∗ − xk )2 ,
f (xk ) 2f (xk )

de donde
f 00 (ξk )
x∗ − xk+1 =− 0 (x∗ − xk )2 .
2f (xk )
Por lo que 00
|ek+1 | f (ξk ) f 00 (x∗ )
lim = lim 0 =
2f 0 (x∗ ) .
k→∞ |ek |2 k→∞ 2f (xk )

Observación 4.3.1. f (x∗ ) = 0 y f 0 (x∗ ) 6= 0 significa que x∗ es raíz simple de f (x) = 0.


98 4.3. Método de Newton

00
f (x∗ )

Observación 4.3.2. Si C = 0 , entonces de (4.1) se tiene que
2f (x∗ )

|ek+1 | ∼
= C|ek |2 para k 0 s grandes.

Si C ∼= 1, lo anterior dice que el error en la iteración k + 1 es aproximadamente el


cuadrado del error en la iteración k, y si

|ek | ∼
= 2−t , entonces |ek+1 | ∼
= 2−2t .

Esto significa que en cada iteración se duplican los dígitos decimales (binarios) correctos
de la aproximación a la raíz x∗ .

Ejemplo 4.3.1. Sea f (x) = x2 − 2.


La iteración de Newton-Raphson es:

x2k + 2
xk+1 = , k ≥ 0.
2xk
Observa cómo se va duplicando los dígitos correctos de la raíz de 2:
x0 = 2, x1 = 1.5, x2 = 1.41666666666667, x3 = 1.41421568627451,
x4 = 1.41421356237469, x5 = 1.41421356237309.

Observación 4.3.3. Si C ∼
= 1 y |ek | ≤ 1/2, entonces:

|ek+1 | ≤ 1/22 , |ek+2 | ≤ 1/24 , |ek+3 | ≤ 1/28 ,

|ek+4 | ≤ 1/216 , |ek+5 | ≤ 1/232 , y |ek+6 | ≤ 1/264 .


Por lo que al iniciar con un error ≤ 1/2 en una aritmética flotante de precisión simple,
es suficiente 5 iteraciones para alcanzar el número flotante a∗ más cercano a la raíz x∗ ; y en
precisión doble bastan 6 iteraciones. Note la diferencia con el método de la bisección.

Definición 4.3.1. Una iteración convergente {xk }k≥0 se dice que tiene convergencia de tasa
(orden) d, si la sucesión de errores {ek }k≥1 satisface:

|ek+1 |
lim = C < ∞.
k→∞ |ek |d

C se le llama la constante de error asintótico. Si d = 1 y C < 1, la tasa de conver-


gencia se llama lineal, si d > 1 la tasa de convergencia se llama superlineal, y si d = 2 la
tasa de convergencia se dice cuadrática.

El método de Newton tiene tasa de convergencia cuadrática.


4. Ceros de funciones 99

Ejercicio 4.3.1. Muestre que el método de bisección tiene tasa de convergencia lineal y que
C = 1/2.

Observación 4.3.4. El verdadero problema del método de Newton es encontrar un intervalo


adecuado I que contiene a x∗ , que garantice convergencia para la iteración de Newton desde
cualquier punto inicial x0 ∈ I.

En la práctica, lo anterior plantea el problema de la elección del punto inicial x0 que


garantice convergencia para la iteración de Newton. Un ejemplo perverso que presenta este
tipo de problema es cuando se itera para aproximar el cero de f (x) = arctan(x), ver figura 4.1.
Eligiendo un xc ∈ [1.39, 1.40] y tomando x0 = xc , resulta que x1 = −xc , x2 = xc , x3 = −xc , y
así sucesivamente. Si |x0 | < xc , el método de Newton convergerá a x∗ = 0, pero si |x0 | > xc ,
el método de Newton divergirá, es decir el tamaño del error |xk − x∗ | se incrementará en cada
iteración.
2
Y
1.5

1 q
f (x) = arctan(x)
0.5
−xc
0 q q
xc X
−0.5

−1
q

−1.5

−2
−4 −3 −2 −1 0 1 2 3 4

Figura 4.1: Método de Newton aplicado a f (x) = arctan(x).

En conclusión, el método de Newton es de convergencia local y el método de bisección es


de convergencia global.
Algoritmo 4.3.1. Algoritmo de Newton-Raphson.
Datos de entrada: Una función f de clase C 1 .
x0 un punto inicial dado.
T OL una tolerancia dada, y
N M AX un número máximo de iteraciones.
Salida: La raíz aproximada x∗ de f (x) = 0 si existe.
IT ER ← 1
Hasta que |x+ − x0 | < T OL ∗ |x+ | , hacer
x0 ← x +
Determinar f 0 (x0 )
Si f 0 (x0 ) 6= 0 , entonces hacer
100 4.3. Método de Newton

f (x0 )
x+ ← x 0 −
f 0 (x0 )
IT ER ← IT ER + 1
Si IT ER = N M AX, hacer
x0 = x +
Terminar.
La tolerancia T OL se puede elegir como f actor ∗ u, con 0 < f actor < 1 y u la unidad de
redondeo de la aritmética flotante usada. Discutir el criterio de paro |x+ − x0 | < T OL ∗ |x+ |
con el criterio |f (x+ )| < T OL.
Sugerencias para programar el algoritmo de Newton-Raphson:
A). Programar f (x) como function.
B). Programar f 0 (x) como function.
C). Programar el algoritmo como function.
D). Una simulación de Hasta (Until ) en Fortran es:

{Etiqueta} CONTINUE
{Bloque de instrucciones}
IF ({Expresión lógica}) GO TO {Etiqueta}
Actividad 4.3.1. Escriba un programa para el algoritmo de Newton-Raphson en WATFOR87
con las sugerencias anteriores. Úsalo para resolver de nuevo los dos problemas de la actividad
4.2.4. Compara los resultados y comenta.
Ejercicio 4.3.2. ¿Qué hacer si x+ se sale fuera del intervalo donde f está definida?
Actividad 4.3.2. Escriba un programa híbrido en WATFOR87 que combine los algoritmos
de bisección y Newton-Raphson, para aproximar la raíz real (si existe) de f (x) = 0 sobre
un intervalo [a, b]. Úsalo para resolver una vez más los dos problemas de la actividad 4.2.4.
Compara los resultados y comenta.
Observación 4.3.5. Si x∗ no es raíz simple de f (x) = 0, el teorema 4.3.1 no se puede
aplicar. Sin embargo, sí se puede aplicar el método de Newton aunque ya no se garantice
convergencia cuadrática. De hecho, la convergencia del método de Newton a una raíz doble
de f (x) = 0 es lineal.
Por ejemplo, f (x) = x2 tiene como raíz doble a x∗ = 0, y la iteración de Newton corre-
spondiente es:
x2 1
xk+1 = xk − k = xk , xk 6= 0, k ≥ 0
2xk 2
y
ek+1 xk+1 − 0 1
= =
ek xk − 0 2
Por lo tanto, xk → 0 linealmente.
4. Ceros de funciones 101

Observación 4.3.6. Otra desventaja del método de Newton es que requiere evaluar f (x) y
f 0 (x) en cada iteración. En la práctica, evaluar f (x) y f 0 (x) pueden ser muy caros o de plano
sea imposible evaluar f 0 (x).
Observación 4.3.7. La principal importancia del método de Newton, radica en que se puede
aplicar para aproximar ceros complejos de funciones analíticas, y se puede extender para
solucionar sistemas de ecuaciones no lineales de varias variables.

4.4. Método de la secante


Se usa cuando f 0 (x) es difícil de evaluar para aplicar el método de Newton.
Se inicia con dos puntos x0 y x1 .
Se calcula xk+1 de xk y xk−1 , resolviendo la ecuación de la recta secante:
f (xk ) − f (xk−1 )
y = f (xk ) + (x − xk ) = 0 ,
xk − xk−1
de donde se obtiene la iteración de la secante:
xk − xk−1
xk+1 = xk − f (xk ) , f (xk ) 6= f (xk−1 ) , k ≥ 1 . (4.2)
f (xk ) − f (xk−1 )
Nótese que se ha usado la aproximación para la derivada:
f (xk ) − f (xk−1 )
f 0 (xk ) ∼
=
xk − xk−1
para deducir (4.2).
Teorema 4.4.1. Si f (x∗ ) = 0, f 0 (x∗ ) 6= 0, f 00 (x∗ ) 6= 0 y f 00 es continua, entonces existe un
intervalo abierto I que contiene a x∗ tal que si se eligen x0 y x1 en I con x0 6= x1 , entonces
la iteración {xk }k≥0 generada por (4.2) converge a x∗ cuando k → ∞.
Más aún,
|ek+1 |
lim = C 6= 0 ,
k→∞ |ek |d

donde 00
f (x∗ ) 1/d
1 √ 

C= 0 y d = 5 + 1 = 1.618 .
2f (x∗ ) 2
Demostración. Una prueba de convergencia se puede encontrar en Ortega and Rheinboldt
(1971) [18].
Para determinar la tasa de convergencia, sea
|ek+1 |
sk = , k ≥ 0.
|ek |d
102 4.4. Método de la secante

Se tiene que
d 2
|ek+1 | = sk |ek |d = sk sk−1 |ek−1 |d = sk sdk−1 |ek−1 |d ,

así que
2
|ek+1 | sk sdk−1 |ek−1 |d d2 −d−1
= d
= sk sd−1
k−1 |ek−1 | , k ≥ 1.
|ek | · |ek−1 | sk−1 |ek−1 | |ek−1 |
Como |ek | → 0 cuando k → ∞, mientras el lado izquierdo de la igualdad anterior se puede
probar que tiende a una constante no cero, entonces dicha igualdad será válida solamente si

d2 − d − 1 = 0 .

Lo anterior implica que la tasa de convergencia


√ está dada por la raíz positiva de esta
ecuación cuadrática, es decir por d = (1 + 5)/2 ∼
= 1.618 .

Observación 4.4.1. No hay manera de determinar el tamaño del intervalo I, por lo que no
es posible elegir adecuadamente x0 y x1 que garanticen convergencia de la iteración (4.2).
Así que el método de la secante es de convergencia local.

Observación 4.4.2. Si x∗ es raíz simple de f (x) = 0 y f 00 es continua, el método de la


secante tiene tasa de convergencia 1.618 (superlineal). Así que es más rápido que el método
de bisección, pero más lento que el método de Newton.

En la práctica frecuentemente se combinan métodos para aproximar raíces de la ecuación


f (x) = 0, con f función real continua de una variable. Por ejemplo, se aplica bisección en la
búsqueda de x0 y x1 y luego se aplica secante para acelerar la convergencia. Estos métodos
se les llama híbridos.
Uno de los mejores algoritmos computacionales híbridos escritos que combina la conver-
gencia global del método de la bisección con la velocidad de la secante, para encontrar una
raíz real simple de funciones “suaves” es el FZERO. Fue creado por Wijngaarden y Dekker en-
tre otros, en el Centro Matemático de Amsterdam en 1960’s. Publicado por Dekker en 1969.
El programa FZERO.FOR fue escrito por Shampine y Watts. Una variante que aproxima
raíces en doble precisión es el ZERO.FOR.

Actividad 4.4.1. Ponga a punto el programa FZERO.FOR o ZERO.FOR para resolver


los dos problemas de la actividad 4.2.4. Compare los resultados con los que obtuvo en las
actividades 4.2.4, 4.3.1 y 4.3.2. Comenta.

Observación 4.4.3. El método de la secante trabaja bien para aproximar ceros de funciones
analíticas de una variable compleja, pero tiene serias dificultades para ser extendida a calcular
soluciones de sistemas de ecuaciones no lineales de varias variables.
4. Ceros de funciones 103

4.5. Método de interpolación cuadrática inversa


Se pueden derivar métodos fuertes para aproximar raíces de f (x) = 0, usando aproxima-
ciones cuadráticas de la función f (x). Cuando f (x) ha sido evaluado en más de dos puntos,
se puede usar interpolación cuadrática inversa para mejorar la estimación de la raíz. Sea
g(y) una parábola en la variable y tal que xi = g(fi ), i = k − 2, k − 1, k, donde fi ≡ f (xi ).
Entonces:
(y − fk−1 )(y − fk ) (y − fk−2 )(y − fk )
g(y) = xk−2 + xk−1
(fk−2 − fk−1 )(fk−2 − fk ) (fk−1 − fk−2 )(fk−1 − fk )
(y − fk−2 )(y − fk−1 )
+ xk .
(fk − fk−2 )(fk − fk−1 )

La siguiente aproximación de la raíz x∗ se toma como:

xk+1 = g(0) .

Observación 4.5.1. Los tres valores fk−2 , fk−1 y fk deben ser distintos a pares para evitar
división por 0.

Observación 4.5.2. La tasa de convergencia del método de interpolación cuadrática inversa


es de 1.839, por lo que es ligeramente más rápido que el método de la secante. Sin embargo,
necesita tres valores previos, y la conducta del algoritmo puede ser errático si los valores
iniciales no se eligen cercanos a la raíz x∗ .

El programa ZEROIN.FOR escrito por Shampine y Watts (1970), combina los métodos
de bisección, secante e interpolación cuadrática inversa, para la búsqueda de una raíz real de
f (x) = 0 sobre un intervalo [a, b].

Actividad 4.5.1. Ponga a punto el programa ZEROIN.FOR para resolver los dos proble-
mas de la actividad 4.2.4. Compara los resultados con los que obtuvo en la actividad 4.4.1.
Comenta.

4.6. Sistemas de ecuaciones no lineales


4.6.1. Existencia y unicidad
El problema de encontrar la solución de un sistema de ecuaciones no lineales, se plantea
como:

Dada F : D ⊆ Rn → Rn , encontrar x∗ ∈ D tal que F (x∗ ) = 0,


104 4.6. Sistemas de ecuaciones no lineales

donde F se supone continuamente diferenciable sobre el conjunto D que se supone también


abierto y convexo en Rn .
Una forma de garantizar la existencia de x∗ es vía la teoría de punto fijo y aplicaciones
contractivas.

Definición 4.6.1. Sea G : D → Rn .

A). La aplicación G se llama una contracción en D si existe 0 < γ < 1 tal que

kG(x) − G(y)k ≤ γkx − yk ,

para todo x, y ∈ D.

B). Un punto x ∈ D se llama punto fijo de G si G(x) = x.

Teorema 4.6.1 (de aplicaciones contractivas). Sea G : D → Rn una contracción sobre un


conjunto cerrado D ⊆ Rn con constante γ y g(D) ⊆ D. Entonces

A). Existe un único x∗ ∈ D tal que G(x∗ ) = x∗ .

B). Para cualquier x0 ∈ D, la sucesión {xk }k≥0 generado por xk+1 = G(xk ), k ≥ 0, per-
manece en D y converge q−linealmente a x∗ con constante γ.

C). Para cualquier η ≥ kG(x0 ) − x0 k,

ηγ k
kxk − x∗ k ≤ , k ≥ 0.
1−γ

Demostración. Una prueba se puede encontrar en ...

Observa que desde cualquier x0 ∈ D, la longitud de paso kxk+1 −xk k decrece por lo menos
en un factor γ en cada iteración, pues

kxk+1 − xk k = kG(xk ) − G(xk−1 )k ≤ γkxk − xk−1 k .

Aplicación. Dada F : D → Rn , si G(x) = x − AF (x) con x ∈ D, A ∈ Rn×n no singular,


G una contracción sobre un conjunto cerrado D ⊆ Rn y G(D) ⊆ D, entonces la ecuación
F (x) = 0 tiene una única raíz x∗ en D.
El teorema de aplicaciones contractivas garantiza que desde cualquier punto inicial x 0 en
la región D, la sucesión {xk }k≥0 generado por xk+1 = G(xk ), k ≥ 0, convergerá a la raíz x∗ de
la ecuación F (x) = 0. Sin embargo, la convergencia es solamente lineal por lo que el método
no se considera apropiado.
4. Ceros de funciones 105

4.6.2. Método de Newton


Si F : Rn → Rn es continuamente diferenciable, entonces

F (x + s) ∼
= F (x) + JF (x)s ,

donde  
∂f1 ∂f1 ∂f1
(x) (x) · · · (x)
 ∂x1 ∂x2 ∂xn 
 
 ∂f2 ∂f2 ∂f2 
 (x) (x) · · · (x) 
 ∂x1 ∂x2 ∂xn 
JF (x) = 



 .. .. .. .. 
 . . . . 
 
 ∂fn ∂fn ∂fn 
(x) (x) · · · (x)
∂x1 ∂x2 ∂xn
es la matriz Jacobiana de F en x.
Puesto que el objetivo es encontrar un x∗ tal que F (x∗ ) = 0, entonces si s satisface el
sistema de ecuaciones lineales:
JF (x)s = −F (x) ,
entonces
x+ = x + s ,
puede ser una buena aproximación del cero x∗ de F . A s se le llama el paso de Newton.
En este sentido, el método de Newton reemplaza el problema de resolver un sistema de
ecuaciones no lineales, por una sucesión de sistemas de ecuaciones lineales.

Algoritmo 4.6.1. Algoritmo de Newton para sistemas de ecuaciones no lineales.


Sea F : Rn → Rn continuamente diferenciable.
Sea x0 ∈ Rn un punto inicial dado.
Para cada iteración k, se resuelve el sistema de ecuaciones lineales:

JF (xk )sk = −F (xk ) ,


xk+1 = xk + sk .

Ejemplo 4.6.1. Aproximar la raíz de


" #
x1 + 2x2 − 2
F (x) = ,
x21 + 4x22 − 4

si existe en una aritmética de punto flotante de precisión 7 y redondeo al par más cercano.
106 4.6. Sistemas de ecuaciones no lineales

En efecto, la matriz Jacobiana de F es


 
1 2
F (x) = .
2x1 8x2
 
1
Tomando x0 = , resulta:
2
   
3 1 2
Para k = 0, F (x0 ) = , JF (x0 ) = .
13 2 16
El sistema lineal a resolver es
   
1 2 −3 1 2 −3
∼ ,
2 16 −13 0 12 −7
   
−1.8333330 −0.833333
de donde resulta que s0 = , por lo que x1 = x0 + s0 = .
−0.5833333 1.416667
   
0.000001 1 2
Para k = 1, F (x1 ) = , JF (x1 ) = .
4.722225 −1.666666 11.33334
El sistema lineal a resolver es
   
1 2 −0.000001 1 2 −0.000001
∼ ,
−1.666666 11.33334 −4.722225 0 14.66667 −4.722226
   
0.6439388 −0.1893942
de donde resulta que s1 = , por lo que x2 = x1 + s1 = .
 −0.3219699   1.0946970

−0.2 × 10−6 1 2
Para k = 2, F (x2 ) = , JF (x2 ) = .
0.8293163 −0.3787884 8.757576
El sistema lineal a resolver es
   
1 2 0.2 × 10−6 1 2 0.2 × 10−6
∼ ,
−0.3787884 8.757576 −0.8293163 0 9.515153 −0.8293162
   
0.17431500 −0.0150792
de donde resulta que s2 = , por lo que x3 = x2 + s2 = .
−0.08715742 1.0075400
Observa que  
0.8 × 10−6
F (x3 ) = ,
0.06077479
por lo que si se continúa iterando se aproximará a la solución exacta
 
0
x∗ = .
1
4. Ceros de funciones 107

4.6.3. Convergencia local del método de Newton


Se enuncia el teorema de convergencia local del método de Newton para sistemas de
ecuaciones no lineales.
Teorema 4.6.2. Sea F : Rn → Rn continuamente diferenciable en un conjunto abierto
convexo D ⊆ Rn . Se supone que existe x∗ ∈ Rn y r, β > 0, tales que B(x∗ ; r) ⊂ D, F (x∗ ) = 0,
JF (x∗ )−1 existe con kJF (x∗ )−1 k ≤ β, y JF Lipschitz continua con constante γ en B(x∗ ; r).
Entonces, existe ε > 0 tal que para todo x0 ∈ B(x∗ ; ε), la sucesión {xk }k≥0 generado por

xk+1 = xk − JF (xk )−1 F (xk ) , k ≥ 0,

está bien definida, converge a x∗ , y satisface que

kxk+1 − x∗ k ≤ βγkxk − x∗ k2 , k ≥ 0.

Demostración. Se aplica inducción sobre k, y la prueba se puede ver en Dennis and Schnabel
(1983) [4].
Las constantes γ y β se pueden combinar en una sola constante γRel = γ · β, una constante
de Lipschitz que mide la no linealidad relativa de F en x∗ , pues

kJF (x∗ )−1 [JF (x) − JF (x∗ )]k ≤ kJF (x∗ )−1 k kJF (x) − JF (x∗ )k
≤ βγkx − x∗ k
= γRel kx − x∗ k ,

para todo x ∈ B(x∗ ; r). Puesto que en la prueba del teorema 4.6.2, el radio de convergencia
se elige como:  
1
ε = min r, ,
2βγ
entonces se puede decir que el radio de convergencia del método de Newton es inversamente
proporcional a la no linealidad relativa de F en x∗ .
Algunas ventajas y desventajas del método de Newton para sistemas de ecuaciones no
lineales son:
Ventajas
1. Es de convergencia q−cuadrática cuando se eligen buenos puntos de inicio x0 , y cuando
JF (x∗ ) es no singular.

2. Obtiene solución exacta en una sola iteración cuando F es afín (y es exacta en cada
iteración en las funciones componentes de F que sean afín).
Desventajas
108 4.7. Ejercicios

1. No converge globalmente para muchos problemas.

2. Requiere de JF (xk ) en cada iteración.

3. En cada iteración necesita resolver un sistema de ecuaciones lineales que puede ser
singular o mal condicionada.

Existen modificaciones globalmente convergentes del método de Newton que se conocen


como métodos cuasi Newton, que reducen significativamente el costo computacional, com-
parados con el método de Newton. Para más detalles, consultar Dennis and Schnabel (1983)
[4]. Actualmente se están desarrollando nuevos métodos para resolver sistemas de ecuaciones
no lineales, como los métodos de continuación homotópica.

4.7. Ejercicios
1. Hallar todos los ceros de las siguientes funciones sobre los intervalos que se indican:

A). f (x) = log(1 + x) − x2 , sobre [−1, 1] usando el método de bisección.


B). f (x) = ex − x2 + 3x − 2, sobre [0, 1] usando el método de la secante.
C). f (x) = 2x cos(2x) − (x + 1)2 , sobre [−3, 0] usando el método de interpolación
cuadrática inversa.

2. En el año 1225 Leonardo de Pisa (mejor conocido como Fibonacci) estudió la ecuación
cúbica:
x3 + 2x2 + 10x − 20 = 0 ,

y obtuvo la raíz x = 1.368808107. Nadie sabe qué método utilizó Leonardo para encon-
trar este valor aunque fue un resultado notable en ese tiempo. Verifica que el resultado
de Leonardo es correcto en todas sus cifras decimales, usando el método de Newton.

3. Las frecuencias de vibración naturales de una viga uniforme sujeta en un extremo y


libre en el otro son soluciones de la ecuación:

tan(x) tanh(x) = 1 ,

donde, x = ρω 2 L/EI (L = longitud de la viga (m), ω = frecuencia (seg −1 ), EI =


rigidez ante la flexión (N m2 ), ρ = densidad del material de la viga (kg/m3 )).
Investigue primero los valores que satisfacen la ecuación, y luego determine los tres
valores más bajos con 5 decimales correctos.
4. Ceros de funciones 109

4. Una mezcla equimolar de monóxido de carbono y oxígeno debe alcanzar el equilibrio a


3000 ◦ K (grados Kelvin) y una presión de 5 bar. La reacción teórica es CO + 21 O2 ↔
CO2 , y la reacción química real por
1
CO + O2 → xCO + (1 + x)O2 + (1 − x)CO2 .
2
La ecuación de equilibrio químico para determinar la fracción de CO restante, o sea x,
está dada por √
(1 − x) x + 3
Kp = √ p , 0 < x < 1,
x x + 1 P/P0

donde, Kp = 3.06 es la constante de equilibrio para CO + 12 O2 ↔ CO2 a 3000 ◦ K,


P = 5 bar y P0 = 1 bar. Determina el valor de x.
5. Considere la misma reacción química del problema anterior, excepto que ocurre en
presencia de N2 a presión atmosférica. La reacción es
1
CO + O2 + 3.76N2 → xCO + (1 + x)O2 + (1 − x)CO2 + 3.76N2 .
2
La ecuación de equilibrio es

(1 − x) x + 10.52
3.06 = √ .
x x+1

Determina el valor de x.
6. El factor de fricción f para los flujos turbulentos en una tubería está dado por:
 
1 e 9.35
√ = 1.14 − 2 log + √ ,
f D Re f

que se le llama correlación de Colebrook, donde Re es el número de Reynolds, e es


la aspereza de la superficie de la tubería y D es el diámetro de la tubería. Evalué f
adecuadamente para los siguientes casos:
A). D = 0.1 m, e = 0.0025 m, Re = 3 × 104 .
B). D = 0.1 m, e = 0.0001 m, Re = 5 × 106 .
7. Demuestra que bajo las hipótesis del teorema 4.4.1, se tiene que
|ek+1 |
lim =C,
k→∞ |ek | · |ek−1 |

con 0 < C < ∞.


110 4.7. Ejercicios

8. Para cada una de las funciones f (x) = x, f (x) = x2 + x, f (x) = ex − 1, contesta las
siguientes preguntas:

A). ¿Cuándo vale f 0 (x) en la raíz x∗ = 0?


B). ¿Cuál es la constante de Lipschitz para f 0 (x) en el intervalo [−a, a], es decir, cuál
es una cota para |(f 0 (x) − f 0 (0))/x| en este intervalo?
C). ¿Cuál es la región de convergencia del método de Newton para f (x) que predice
el teorema 2.4.3 del libro de Dennis and Schnabel (1983) [4]?
D). ¿En cuál intervalo [b, c], b < 0 < c, el método de Newton sobre f (x) converge a
x∗ = 0?

9. Usando tus respuestas del Ejercicio 8, considera el método de Newton aplicado a


 
x1
F (x) =  x22 + x2  .
e x3 − 1

A). ¿Cuándo vale JF (x) en la raíz x∗ = (0, 0, 0)T ?


B). ¿Cuál es la constante de Lipschitz para JF (x) en una bola abierta centrado en x∗
y radio a?
C). ¿Cuál es la región de convergencia del método de Newton para F (x) que predice
el teorema 4.6.2?
D). ¿Cuál podría ser la región de convergencia si x03 = 0? ¿Si x02 = x03 = 0?

10. La ecuación sen(xy) = y −x define y implícitamente como función de x. La función y(x)


tiene un máximo en (x, y)T ∼
= (1, 2)T . Muestra que las coordenadas de este máximo se
pueden encontrar resolviendo el sistema de ecuaciones no lineales

sen(xy) − y + x = 0
y cos(xy) + 1 = 0 .

Calcula una aproximación de este máximo usando el método de Newton.


Capítulo 5

Interpolación polinomial y splines cúbico

5.1. Interpolación global uniformemente espaciada


5.1.1. Existencia, unicidad y condicionamiento
Problema 5.1.1. Dado un conjunto de m puntos reales (xi , yi ), i = 1 : m, que se llamará
datos con xi 6= xj , i 6= j, encontrar una función f : R −→ R que satisfaga

f (xi ) = yi , i = 1 : m.

A f se le llama función de interpolación o interpolante de los datos. La interpo-


lación puede ser por polinomios, polinomios por piezas, funciones racionales y funciones
spline. También existe la llamada interpolación trigonométrica e interpolación exponencial.
Entre los propósitos de la interpolación están:
A). Dibujar una curva suave a través de los datos.
B). Interpolar o extrapolar puntos que no están en los datos.
C). Evaluar una función matemática fácil y rápido.
D). Aproximar una función matemática complicada por una más simple.

En el pasado se usaron los interpolantes para generar tablas de raíces cuadradas, raíces
cúbicas, logaritmos y de funciones trigonométricas, entre otros. Hoy día la interpolación por
polinomios sigue siendo la base de muchas fórmulas de uso general para la integración y
diferenciación numérica. Más aún, la interpolación polinomial y racional se usan para con-
struir “métodos de extrapolación” para problemas de integración de ecuaciones diferenciales y
problemas relacionados. La interpolación trigonométrica es ampliamente usado en el análisis
de Fourier numérico de series de tiempo y en fenómenos cíclicos. Son particularmente impor-
tantes en el análisis de las “transformadas rápidas de Fourier”. La interpolación exponencial
es usado en el análisis del decaimiento radiactivo. La interpolación por spline es una poderosa

111
112 5.1. Interpolación global uniformemente espaciada

herramienta para representar curvas empíricas, y para aproximar funciones matemáticas com-
plicadas. Se ha incrementado su uso en el tratamiento de ecuaciones diferenciales ordinarias
y parciales.
¿Cómo se construye un interpolante?
Se abordará el problema de interpolación lineal (en el cuál están incluidos la interpo-
lación por polinomios e interpolación trigonométrica). Se requiere de un conjunto linealmente
independiente (l.i.) de funciones {φ1 (x), φ2 (x), . . . , φn (x)} que se llamarán funciones bases,
para construir f en el espacio de dimensión n generado por estas funciones bases, es decir
n
X
f (x) := cj φj (x), x ∈ R,
j=1

donde c1 , c2 , . . . , cn , son parámetros por determinar. Nótese que f depende linealmente de los
parámetros c1 , c2 , . . . , cn .
En el caso de interpolación no lineal se encuentran la interpolación racional y expo-
nencial.
Puesto que

f (xi ) = c1 φ1 (xi ) + c2 φ2 (xi ) + · · · + cn φn (xi ) = yi , i = 1 : m, (5.1)

esto da lugar al sistema lineal de m ecuaciones con n incógnitas c1 , c2 , . . . , cn :


    
φ1 (x1 ) φ2 (x1 ) · · · φn (x1 ) c1 y1
 φ1 (x2 ) φ2 (x2 ) · · · φn (x2 )     
   c2   y 2 
Ac =  .. .. .. ..   ..  =  ..  = y . (5.2)
 . . . .  .   . 
φ1 (xm ) φ2 (xm ) · · · φn (xm ) cn ym

Así que

• La existencia y unicidad de f se garantiza cuando m = n y A sea una matriz no


singular.

• La sensibilidad numérica del problema de determinar la solución c = (c1 , c2 , . . . , cn )T


a pequeñas perturbaciones en los datos dependerá del número de condición de A, es
decir, de κ(A) = kAkkA−1 k cuando A es no singular.

5.1.2. Interpolación polinomial global


Sean (xi , yi ), i = 1 : n, un conjunto de datos dados, y sin perder generalidad se puede
suponer que x1 < x2 < · · · < xn . Se construirá un polinomio de grado ≤ n − 1 que interpola
a dichos datos de tres formas diferentes.
5. Interpolación polinomial y splines cúbico 113

Usando bases monomiales


El interpolante polinomial que se obtiene a partir de la base monomial {1, x, . . . , xn−1 }
es:
Pn−1 (x) = c0 + c1 x + · · · + cn−1 xn−1 , ci ∈ R, i = 0 : n −1, (5.3)
que se conoce como el interpolante estándar.
De acuerdo con (5.1) y (5.3), el sistema lineal (5.2) toma la forma
    
1 x1 x21 · · · xn−11 c0 y1
 1 x2 x2 · · · xn−1   c1   y2 
 2 2    
Vn c =  .. .. .. . . ..   ..  =  ..  = y , (5.4)
 . . . . .   .   . 
2 n−1
1 x n xn · · · x n cn−1 yn
donde la matriz Vn es llamado matriz de Vandermonde.
Ejercicio 5.1.1. Para la matriz de Vandermonde Vn ∈ Rn×n , demuestra que

det(Vn ) = Π (xj − xi ) 6= 0, si xi 6= xj , i 6= j .
i<j

Por lo tanto, la matriz de Vandermonde es no singular.


Por el ejercicio 5.1.1, el sistema lineal (5.4) tiene una única solución c = (c0 , c1 . . . . , cn−1 )T ,
en consecuencia, existe un único polinomio de grado a lo más n−1 dado por (5.3) que interpola
los datos dados. Por otro lado, el problema puede ser muy mal condicionado como se muestra
en el siguiente ejercicio:
1
Ejercicio 5.1.2. Para xi = (i − 1)h, i = 1 : n, h = , demuestra que κ1 (Vn ) > nn .
n−1
Sugerencia. Estudia el teorema 1 en Gautschi (1962) [9].

Usando bases de Lagrange


Los polinomios de la base de Lagrange {`j (x)}nj=1 están definidos por

(x − x1 ) · · · (x − xj−1 )(x − xj+1 ) · · · (x − xn )


`j (x) = ; j = 1 : n, (5.5)
(xj − x1 ) · · · (xj − xj−1 )(xj − xj+1 ) · · · (xj − xn )
y todos son polinomios de grado n − 1, además
(
1 si i = j
`j (xi ) =
0 si i 6= j .
En este caso, es claro que el polinomio interpolante de grado a lo más n − 1 está dado por
Pn−1 (x) = y1 `1 (x) + y2 `2 (x) + · · · + yn `n (x) , (5.6)
114 5.1. Interpolación global uniformemente espaciada

que se conoce como el interpolante de Lagrange.


La matriz A del sistema lineal (5.2) se reduce en este caso a la matriz identidad I, por
lo que no hay necesidad de resolver ningún sistema de ecuaciones lineales. El problema más
significativo que se presenta en este caso es la evaluación de Pn−1 (x) en puntos de interés,
pues se requiere evaluar los n polinomios `j (x) que son de grado n − 1. Por lo que resulta
más cara comparado con la evaluación del interpolante estándar (5.3). También es más difícil
derivar e integrar el interpolante de Lagrange. Sin embargo, dichos interpolantes tienen su
importancia en otras cuestiones teóricas.
Algoritmo 5.1.1. Cálculo y evaluación del interpolante de Lagrange dado por (5.6) en m
puntos de interés w1 , w2 , . . . , wm .
Datos de entrada: [x1 , x2 , . . . , xn ], [y1 , y2 , . . . , yn ] y [w1 , w2 , . . . , wm ].
Datos de salida: pj = Pn−1 (wj ), j = 1 : m.
Para j = 1 : m, hacer
pj ← 0
Para i = 1 : n, hacer
p ← 1.0
Para k = 1 : n, hacer
p ← p(wj − xk )/(xi − xk ) si k 6= i
Terminar
pj ← p j + y i p
Terminar
Terminar.

Ejercicio 5.1.3. Calcula el costo computacional (número de flops) que se requieren para cal-
cular el interpolante de Lagrange, y su evaluación en m puntos de interés, según el Algoritmo
5.1.1.
Actividad 5.1.1. Programa el Algoritmo 5.1.1 en FORTRAN o en MATLAB y que genere
las gráficas del interpolante y los datos.

Usando bases de Newton


Los polinomios de la base de Newton {πj (x)}nj=1 están definidos por

π1 (x) = 1 


π2 (x) = x − x1
(5.7)
π3 (x) = (x − x1 )(x − x2 ) 


πj (x) = (x − x1 )(x − x2 ) · · · (x − xj−1 ), j = 4 : n

y son polinomios de grado 0, 1, 2, hasta n − 1, respectivamente.


Además
πj (xi ) = 0 si i < j, j = 2 : n . (5.8)
5. Interpolación polinomial y splines cúbico 115

El polinomio de interpolación de grado a lo más n − 1 en este caso es

Pn−1 (x) = c1 π1 (x) + c2 π2 (x) + · · · + cn πn (x) , (5.9)

que se conoce como el interpolante de Newton.


Por la propiedad (5.8), el sistema lineal (5.2) toma la forma
    
1 0 0 ··· 0 c1 y1
 1 x2 − x1 0 ··· 0   c2   y 2 
    
   c3   y 3 
Ac =  1 x3 − x1 (x3 − x1 )(x3 − x2 ) · · · 0  =  = y. (5.10)
 .. .. .. . . ..   ..   .. 
 . . . . .  .   . 
1 xn − x1 (xn − x1 )(xn − x2 ) · · · πn (xn ) cn yn

Es claro que la matriz A es triangular inferior, más aún

det(A) = π2 (x2 ) · π3 (x3 ) · · · πn (xn ) 6= 0 ,

por lo que A es no singular, y en consecuencia el sistema lineal (5.10) tiene una única solución
c = (c1 , c2 , . . . , cn )T . Así que el interpolante de Newton dado por (5.9) existe y es único. La
solución del sistema lineal (5.10) se obtiene con una sustitución progresiva, y está dada por

c1 = y 1 



y2 − y 1 

c2 =
x2 − x 1 (5.11)
P 

yj − j−1 
k=1 πk (xj )ck 
cj = , j = 3 : n. 

πj (xj )

De la estructura de la solución dada por (5.11) se obtiene el siguiente criterio “inductivo”


para calcular el interpolante de Newton.

Teorema 5.1.1. Si Pj−1 (x) es el polinomio de grado a lo más j − 1 que interpola los puntos
(x1 , y1 ), (x2 , y2 ), . . . , (xj , yj ), entonces

Pj (x) = Pj−1 (x) + cj+1 πj+1 (x) , (5.12)

es el interpolante de grado a lo más j de los puntos (x1 , y1 ), (x2 , y2 ), . . . , (xj+1 , yj+1 ), si

yj+1 − Pj−1 (xj+1 )


cj+1 = .
πj+1 (xj+1 )

Demostración. Es un ejercicio fácil.


116 5.1. Interpolación global uniformemente espaciada

Ejemplo 5.1.1. Calcular el interpolante de los puntos (−1, −3), (0, −2), (1, −1) y (2, 6).
Solución. Es claro que P0 (x) = −3 es el interpolante de (−1, −3). De (5.12) el interpolante
de (−1, −3) y (0, −2) será el polinomio
y2 − P0 (x2 ) −2 + 3
P1 (x) = P0 (x) + c2 π2 (x) = −3 + π2 (x) = −3 + (x + 1) = x − 2.
π2 (x2 ) 1
Ahora, el interpolante de (−1, −3), (0, −2) y (1, −1) será el polinomio
y3 − P1 (x3 ) −1 + 1
P2 (x) = P1 (x) + c3 π3 (x) = P1 (x) + π3 (x) = P1 (x) + π3 (x) = P1 (x).
π3 (x3 ) 2
Finalmente, el interpolante buscado será
y4 − P2 (x4 ) 6−0
P3 (x) = P2 (x) + c4 π4 (x) = P2 (x) + π4 (x) = x − 2 + (x + 1)x(x − 1) = x3 − 2.
π4 (x4 ) 6
Por lo tanto, P3 (x) = x3 − 2.

Diferencias divididas
Los parámetros c1 , c2 , . . . , cn dados en (5.11) se les llama diferencias divididas, y la
j − ésima diferencia dividida se denota por

cj = f [x1 , x2 , . . . , xj ], j = 1 : n,

y se define f [xj ] = yj , j = 1 : n . Así que c1 = y1 = f [x1 ].

Ejercicio 5.1.4. Demuestra que

f [x1 , x2 , . . . , xj ] = f [xσ(1) , xσ(2) , . . . , xσ(j) ] , σ ∈ Sj ,

donde Sj es el grupo simétrico de grado j .


Por lo que las diferencias divididas son invariantes respecto a las permutaciones de los
subíndices 1, 2, . . . , j . La siguiente caracterización del interpolante Pj−1 (x) da lugar a una
fórmula de recurrencia para calcular cj .

Teorema 5.1.2. Si Pj−2 (x) es el interpolante de grado a lo más j − 2 de los puntos (x1 , y1 ),
(x2 , y2 ), . . . , (xj−1 , yj−1 ), y Pj−2 ∗
(x) es el interpolante de grado a lo más j − 2 de los puntos
(x2 , y2 ), (x3 , y3 ), . . . , (xj , yj ), entonces
x − x1 ∗

Pj−1 (x) = Pj−2 (x) + Pj−2 (x) − Pj−2 (x) , (5.13)
xj − x 1

es el interpolante de grado a lo más j − 1 de los puntos (x1 , y1 ), (x2 , y2 ), . . . , (xj , yj ).


Demostración. Es un ejercicio inmediato.
5. Interpolación polinomial y splines cúbico 117

De (5.7) y (5.9) se observa que

Pj−2 (x) = c1 + c2 (x − x1 ) + · · · + cj−1 (x − x1 )(x − x2 ) · · · (x − xj−2 ) ,



Pj−2 (x) = c∗1 + c∗2 (x − x2 ) + · · · + c∗j−1 (x − x2 )(x − x3 ) · · · (x − xj−1 ) ,
Pj−1 (x) = c1 + c2 (x − x1 ) + · · · + cj (x − x1 )(x − x2 ) · · · (x − xj−1 ) ,

y de (5.13) se obtiene la fórmula recursiva

c∗j−1 − cj−1
cj = ; j = 2 : n,
xj − x 1

que es equivalente a

f [x2 , x3 , . . . , xj ] − f [x1 , x2 , . . . , xj−1 ]


cj = f [x1 , x2 , . . . , xj ] = , j = 2 : n. (5.14)
xj − x 1

En la tabla 5.1 se muestra un esquema práctico para el cálculo de las diferencias divididas.

j=1 j=2 j=3 ··· j=n


x1 y 1
f [x1 , x2 ]
x2 y2 f [x1 , x2 , x3 ]
f [x2 , x3 ] &
..
x3 y3 . f [x1 , x2 , . . . , xn ]
..
. %
.. ..
. . f [xn−2 , xn−1 , xn ]
f [xn−1 , xn ]
xn yn
Tabla 5.1: Esquema práctico de diferencias divididas.

Ejemplo 5.1.2. Calcular las diferencias divididas de los puntos (−1, −3), (0, −2), (1, −1) y
(2, 6), y obtener de nuevo su interpolante.
Solución. Las diferencias divididas son los que aparecen en la diagonal superior del esquema
de la tabla 5.2:

y son c1 = −3, c2 = 1, c3 = 0 y c4 = 1. Por lo tanto, el interpolante es

P4 (x) = −3 + (x + 1) + (x + 1)x(x − 1) = x3 − 2 .
118 5.1. Interpolación global uniformemente espaciada

j=1 j=2 j=3 j=4


−1 −3
f [x1 , x2 ] = 1
0 −2 f [x1 , x2 , x3 ] = 0
f [x2 , x3 ] = 1 f [x1 , x2 , x3 , x4 ] = 1
1 −1 f [x2 .x3 , x4 ] = 3
f [x3 , x4 ] = 7
2 6
Tabla 5.2: Diferencias divididas del ejemplo 5.1.2.

Algoritmo 5.1.2. Cálculo de las diferencias divididas.


Datos de entrada: [x1 , x2 , . . . , xn ] y [y1 , y2 , . . . , yn ].
Datos de salida: c1 , c2 , . . . , cn .
Para j = 1 : n, hacer
cj ← y j
Terminar
Para k = 1 : n − 1, y
Para j = n : −1 : k + 1, hacer
cj − cj−1
cj ←
xj − xj−k
Terminar
Terminar.

Algoritmo 5.1.3. Evaluación del interpolante de Newton dado por (5.9) en m puntos de
interés w1 , w2 , . . . , wm , vía diferencias divididas.
Datos de entrada: [x1 , x2 , . . . , xn ], [c1 , c2 , . . . , cn ] y [w1 , w2 , . . . , wm ].
Datos de salida: pj = Pn−1 (wj ), j = 1 : m.
Para j = 1 : m, hacer
pj ← c n
Para k = n − 1 : −1 : 1, hacer
pj ← pj (wj − xk ) + ck
Terminar
Terminar.

Ejercicio 5.1.5. Calcula el costo computacional (número de flops) que se requieren para
calcular el interpolante de Newton (Algoritmo 5.1.2), y su evaluación en m puntos de interés
(Algoritmo 5.1.3). Compara con el costo del Algoritmo 5.1.1 que obtuvo en el ejercicio 5.1.3.

Actividad 5.1.2. Escriba un programa en FORTRAN o en MATLAB que integre los algo-
ritmos 5.1.2 y 5.1.3 y genere las gráficas del interpolante y los datos.
5. Interpolación polinomial y splines cúbico 119

5.1.3. Función de Runge


Un análisis detallado sobre el peligro de la interpolación polinomial global fue publicado
en 1901 por el matemático alemán Carl David Tolme Runge (1856-1927), quién intentó
interpolar la función
1
fR (x) = , −1 ≤ x ≤ 1 ,
1 + 25x2
sobre el intervalo [−1, 1] con polinomios en puntos uniformemente espaciados. Descubrió que
la sucesión {Pn−1 (x)}n≥2 de polinomios de interpolación de grado n − 1 en puntos uniforme-
mente espaciados
2
xi = −1 + (i − 1), i = 1 : n , (5.15)
n−1
diverge sobre (−1, −0.726 · · · ] ∪ [0.726 · · · , 1) cuando n → ∞.
En otras palabras
lim Pn (x) 9 fR (x) para 0.726 · · · ≤ |x| < 1 . (5.16)
n→∞

Actividad 5.1.3. Interpola la función de Runge fR (x) con polinomios Pn−1 (x) de grado n−1
para n = 6, 11, 16, 21 y 26, en puntos uniformemente espaciados como en (5.15).
A). Calcula Pn−1 (x) como interpolante estándar resolviendo el sistema lineal (5.4).
B). Calcula κ1 (Vn )
C). Grafica Pn−1 (x), fR (x) y los datos generados, sobre un mismo sistema de coordenadas.
¿Qué observa? Escriba sus conclusiones.
Teorema 5.1.3. Si f tiene derivadas continuas hasta de orden n y Pn−1 es el polinomio
de grado a lo más n − 1 que interpola a f en n puntos (xi , yi ), i = 1 : n dados, con
a = x1 < x2 < · · · < xn = b, entonces para cada x ∈ [a, b] existe un θ ∈ (a, b) tal que
f (n) (θ)
f (x) − Pn−1 (x) = w(x) , (5.17)
n!
donde
w(x) = (x − x1 )(x − x2 ) · · · (x − xn ) . (5.18)
Demostración. Sea x ∈ [a, b] fijo con x 6= xi , i = 1 : n, y se elige una constante K tal que
F (t) := f (t) − Pn−1 (t) − Kw(t), t ∈ [a, b] ,
se anule en t = x.
Note que F (t) tiene al menos n + 1 ceros en [a, b] a saber x1 , x2 , . . . , xn , x. Aplicando
n − veces el teorema de Rolle, F 0 (t) tiene al menos n ceros en (a, b), así sucesivamente F (n) (t)
tiene al menos un cero θ ∈ (a, b). Como F (n) (t) = f (n) (t) − 0 − Kn! , entonces 0 = F (n) (θ) =
f (n) (θ) − Kn! de donde K = f (n) (θ)/n!. De aquí se sigue el resultado deseado.
120 5.2. Interpolación global sobre puntos de Tchebyshev

5.2. Interpolación global sobre puntos de Tchebyshev


Los polinomios de Tchebyshev (1821-1894) juegan un papel importante en la interpolación
y la aproximación de funciones continuas. El k-ésimo polinomio de Tchebyshev de primer
tipo Tk : [−1, 1] → R está dada por
Tk (x) = cos(k arc cos(x)), k ≥ 0.
Proposición 5.2.1. Las primeras propiedades son:
A). T0 (x) = 1, T1 (x) = x, y Tk+1 (x) = 2xTk (x) − Tk−1 (x), k ≥ 1 .
B). El coeficiente líder de Tk (x) es 2k−1 , k ≥ 1.
Demostración. La fórmula recursiva para Tk+1 (x) se sigue al aplicar las fórmulas trigonométri-
1
cas cos(A + B) = cos(A) cos(B) − sen(A)sen(B) y sen(A)sen(B) = [cos(A − B) − cos(A +
2
B)].
Es directo verificar que los primeros 6 polinomios de Tchebyshev son
1, x, 2x2 − 1, 4x3 − 3x, 8x4 − 8x2 + 1 y 16x5 − 20x3 + 5x ,
y se recomienda graficarlos en un mismo sistema de coordenadas, para observar que todas
las raíces y puntos extremos permanecen en el intervalo [−1, 1].
Proposición 5.2.2. Otras propiedades de los polinomios de Tchebyshev:
A). Tk es un polinomio de grado k.
B). Tk contiene únicamente términos de grado par, si k es par, y únicamente términos de
grado impar si k es impar.
C). Los coeficientes de Tk se alternan de signo.
D). Propiedad (equi-alternante o equi-oscilante): Los valores extremos sucesivos de T k
para k ≥ 2, son iguales en magnitud y se alternan de signo. “Esta propiedad tiende
a distribuir uniformemente el error cuando estos polinomios se usan para aproximar
funciones continuas arbitrarias”.
Demostración. Hacerlo de ejercicio.
La propiedad equi-alternante tiene implicaciones poderosas en la interpolación polinomial
de funciones continuas, donde el error máximo:
max |f (x) − Pn−1 (x)| ,
x∈I

se minimiza sobre el intervalo I = [a, b] cuando los puntos de interpolación se eligen como
raíces o puntos extremos de un polinomio de Tchebyshev de grado apropiado.
5. Interpolación polinomial y splines cúbico 121

Proposición 5.2.3. Los k ceros de Tk para k ≥ 1 son


 
(2i − 1)π
ξk,i = cos , i = 1 : k, (5.19)
2k

y que sus k + 1 puntos extremos (incluye los extremos del intervalo [−1, 1]) están dados por
 

xk,i = cos , i = 0 : k, (5.20)
k
y que
|Tk (xk,i )| = 1, i = 0 : k.

Demostración. Es un ejercicio fácil.

Definición 5.2.1. Los ceros de un polinomio de Tchebyshev de primer tipo dado en (5.19) o
los puntos extremos de dicho polinomio dado en (5.20), se les llama puntos de Tchebyshev.

Los puntos de Tchebyshev juegan un papel importante en interpolación, en integración


numérica, y en la solución numérica de ecuaciones diferenciales.
Sean (xi , yi ) ∈ R2 tales que x2i + yi2 = 1, donde x1 , x2 , . . . , xk son puntos de Tchebyshev.

Actividad 5.2.1. Grafica los puntos (xi , yi ) y (xi , 0), i = 1 : k, para k = 14, 19 y 24. ¿Qué
observa? Escriba sus conclusiones.

Actividad 5.2.2. Verifica que los puntos (xi , yi ), i = 1 : k, están uniformemente espaciados
sobre el círculo unitario, y que las xi , i = 1 : k, se concentran en los extremos del intervalo
[−1, 1].

Actividad 5.2.3. Interpola la función de Runge fR (x) con polinomios Pn (x) de grado n − 1
para n = 6, 11, 16, 21 y 26, en puntos de Tchebyshev para k = n − 2. Grafica los polinomios
junto con fR (x) sobre un mismo sistema de coordenadas. ¿Qué observa? Escriba sus conclu-
siones.

Ejercicio 5.2.1. Demuestra que usando los puntos {ξn,k }nk=1 de Tchebyshev como puntos de
interpolación, se tiene

lim Pn (x) = fR (x) uniformemente sobre [−1, 1].


n→∞

¿Por qué el resultado no se contradice con (5.16)?

Sugerencia. Hecha mano de (5.17) con xk = ξn,k y usa el hecho de que ...
122 5.3. Interpolación polinomial por pedazos

5.3. Interpolación polinomial por pedazos


Actividad 5.3.1. Considera los puntos uniformemente espaciados x1 , x2 , . . ., xn dados en
(5.15) sobre [−1, 1] con n = 26. Interpola la función de Runge por pedazos con polinomios de
grado 5, es decir, calcule P1,5,n (x) de grado 5 que interpola los puntos x1 , x2 , . . ., x6 , luego
P2,5,n (x) de grado 5 que interpola x6 , x7 , . . ., x11 , y así hasta calcular P5,5,n (x) de grado 5
que interpola x21 , x22 , . . ., x26 . Grafica fR (x), y los polinomios Pi,5,n (x), x ∈ [x5(i−1)+1 , x5i+1 ],
i = 1 : 5, junto con los datos en un mismo sistema de coordenadas. ¿Qué observa? Escriba
sus conclusiones.
Sea 

 P1,5,n (x) si x1 ≤ x ≤ x6

 P2,5,n (x) si x6 ≤ x ≤ x11
P5,n (x) = ..

 .

 P
5,5,n (x) si x21 ≤ x ≤ x26 .

Ejercicio 5.3.1. Demuestra que

lim P5,n (x) = fR (x) uniformemente sobre [−1, 1].


n→∞

¿Contradice el resultado con (5.16)?


Ejercicio 5.3.2 (Generalización). Demuestra que

lim Pk,n (x) = fR (x) uniformemente sobre [−1, 1].


n→∞

donde Pk,n (x) es una función construida por pedazos por polinomios de grado k ≥ 1, de
manera similar como se construyó P5,n (x).
Actividad 5.3.2. Construya P1,21 (x) y P2,21 (x) y grafícalos junto con fR (x) en un mismo
sistema de coordenadas. ¿Qué observa? Escriba sus conclusiones.

5.4. Interpolación por splines cúbico


Sea Π := a = x1 < x2 < · · · < xn = b una partición del intervalo [a, b].
Definición 5.4.1. Un spline cúbico sobre la partición Π es una función s : [a, b] → R con
las propiedades:
A). s ∈ C 2 [a, b], es decir, s es continua sobre [a, b] y existen s0 y s00 sobre [a, b] y son
continuas.

B). s coincide sobre [xi , xi+1 ], i = 1 : n − 1 con un polinomio cúbico.


5. Interpolación polinomial y splines cúbico 123

Así que un spline cúbico consta de n − 1 polinomios cúbicos por piezas cuyos valores y los
de sus primeras dos derivadas coinciden en los nodos o puntos de ruptura xi , i = 2 : n−1.
Si y1 , y2 , . . . , yn son n números reales arbitrarios, entonces un spline cúbico inter-
polante de los puntos (xi , yi ), i = 1 : n, es un spline cúbico s que satisface

s(xi ) = yi , i = 1 : n.

5.4.1. Cálculo del spline cúbico interpolante


Para determinar el spline cúbico s(x) se parte del hecho de que es un polinomio cúbico
sobre [xi , xi+1 ], lo que implica que s00 (x) es un segmento de recta sobre [xi , xi+1 ]. Por lo tanto

s00 (xi+1 ) − s00 (xi )


s00 (x) = s00 (xi ) + (x − xi ) . (5.21)
xi+1 − xi

Integrando sobre [xi , x], x ≤ xi+1 se tiene

0 0 00 s00 (xi+1 ) − s00 (xi )


s (x) = s (xi ) + s (xi )(x − xi ) + (x − xi )2 . (5.22)
2(xi+1 − xi )
Integrando de nuevo se obtiene

0 s00 (xi ) 2 s00 (xi+1 ) − s00 (xi )


s(x) = yi + s (xi )(x − xi ) + (x − xi ) + (x − xi )3 . (5.23)
2 6(xi+1 − xi )

Abreviando: hi = xi+1 − xi , i = 1 : n − 1, s0i = s0 (xi ) y s00i = s00 (xi ), i = 1 : n, se sigue


de (5.23) y de la propiedad de interpolación que

s00i 2 s00i+1 − s00i 3


yi+1 = s(xi+1 ) = yi + s0i hi + hi + hi ,
2 6hi
de donde
yi+1 − yi hi 00 hi 00
s0i = − si − si+1 , i = 1 : n− 1. (5.24)
hi 3 6
Ejercicio 5.4.1. Demuestra que
yn − yn−1 hn−1 00 hn−1 00
s0n = + sn−1 + s .
hn−1 6 3 n

Si se denota el spline cúbico sobre [xi−1 , xi ] por z(x), entonces las expresiones equivalentes
a (5.22) y (5.23) para z 0 (x) y z(x) son

z 00 (xi ) − z 00 (xi−1 )
z 0 (x) = z 0 (xi−1 ) + z 00 (xi−1 )(x − xi−1 ) + (x − xi−1 )2 ,
2(xi − xi−1 )
124 5.4. Interpolación por splines cúbico

z 00 (xi−1 ) z 00 (xi ) − z 00 (xi−1 )


z(x) = yi−1 + z 0 (xi−1 )(x − xi−1 ) + (x − xi−1 )2 + (x − xi−1 )3 .
2 6(xi − xi−1 )

Evaluando ambas expresiones en xi resultan



0 0 00 z 00 (xi ) − z 00 (xi−1 ) 

z (xi ) = z (xi−1 ) + z (xi−1 )hi−1 + hi−1 , 
2
(5.25)
z 00 (xi−1 ) 2 z 00 (xi ) − z 00 (xi−1 ) 2 

z(xi ) = yi−1 + z 0 (xi−1 )hi−1 + hi−1 + hi−1 . 
2 6
Por la continuidad de s(x), s0 (x) y s00 (x) en xi se sigue que

z(xi ) = s(xi ) = yi , z 0 (xi ) = s0 (xi ) y z 00 (xi ) = s00 (xi ), i = 2 : n− 1.

Por lo que las igualdades en (5.25) se pueden escribir como

hi−1 00 hi−1 00 yi − yi−1 hi−1 00 hi−1 00


s0i = s0i−1 + si−1 + s y s0i−1 = − si−1 − s ,
2 2 i hi−1 3 6 i

que son equivalentes a


yi − yi−1 hi−1 00 hi−1 00
s0i = + si−1 + s . (5.26)
hi−1 6 3 i
Igualando (5.24) con (5.26) se obtiene el sistema tridiagonal
 
00 00 00 yi+1 − yi yi − yi−1
hi−1 si−1 + 2(hi−1 + hi )si + hi si+1 = 6 − , i = 2 : n− 1. (5.27)
hi hi−1

El sistema (5.27) está subdeterminado pues tiene n − 2 ecuaciones y n incógnitas s001 ,


s002 , . . . , s00n , por lo que no se garantiza la unicidad del spline cúbico. Hay varias alternativas
para abordar el problema, las más comunes son:

Teorema 5.4.1. Cada una de las condiciones

A). s00 (a) = s00 (b) = 0, “spline cúbico natural”.

B). s(k) (a) = s(k) (b), k = 0, 1 y 2, “spline cúbico periódico”.

C). s0 (a) = y10 , s0 (b) = yn0 , con y10 y yn0 dados, “spline cúbico completo”,

garantizan la existencia y unicidad del spline cúbico s(x) que interpola los puntos (x 1 , y1 ),
(x2 , x2 ), . . . , (xn , yn ).
5. Interpolación polinomial y splines cúbico 125

Demostración. Caso A). Si s00 (a) = s00 (b) = 0 entonces s001 = 0 y s00n = 0. Introduciendo las
abreviaciones
λ1 := 0, d1 := 0, µn := 0, dn := 0 ,

hi hi−1 
λi := , µi := 1 − λi = , 

hi−1 + hi hi−1 + hi 
  (5.28)
6 yi+1 − yi yi − yi−1 

di := − , i = 2 : n −1.  
hi−1 + hi hi hi−1

El sistema tridiagonal (5.27) se convierte en un sistema tridiagonal de n ecuaciones con


n incógnitas s001 , s002 , . . . , s00n , dado por
    
2 λ1 s001 d1
 µ2 2 λ 2   s00   d2 
  2   
 µ3 2 λ3   s00   d3 
  3   
As =  . . . . . .   .. = ..  = d. (5.29)
 . . .  .   . 
    
 µn−1 2 λn−1   s00n−1   dn−1 
µn 2 s00n dn

La matriz A es tridiagonal y de diagonal dominante estricto por filas, por lo que es no


singular. Así, el sistema tridiagonal (5.29) tiene una única solución s = (s001 , s002 , . . . , s00n−1 , s00n )T .
Caso B). Si s(k) (a) = s(k) (b), k = 0, 1 y 2, entonces y1 = yn , s01 = s0n y s001 = s00n . Estas
tres condiciones junto con (5.24) para i = 1 y el ejercicio 5.4.1, dan lugar a la ecuación:
 
00 00 00 y2 − yn yn − yn−1
hn−1 sn−1 + 2(hn−1 + h1 )sn + h1 s2 = 6 − . (5.30)
h1 hn−1
Definiendo
h1 hn−1
λn := , µn := 1 − λn = ,
hn−1 + h1 hn−1 + h1
y  
6 y2 − yn yn − yn−1
dn := − ,
hn−1 + h1 h1 hn−1
y junto con (5.28) se obtiene del sistema (5.27) y de la ecuación (5.30) el sistema lineal
    
2 λ2 µ2 s002 d2
 µ3 2 λ3   s00   d3 
  3   
 µ4 2 λ4   s00   d4 
  4   
As =  .. .. ..   ..  =  ..  = d , (5.31)
 . . .  .   . 
   00   
 µn−1 2 λn−1   sn−1   dn−1 
λn µn 2 s00n dn
126 5.4. Interpolación por splines cúbico

de n − 1 ecuaciones con n − 1 incógnitas s002 , s003 , . . . , s00n . La matriz A también es de diagonal


dominante estricto por filas, por lo que es no singular. Así, el sistema lineal (5.31) tiene una
única solución s = (s002 , s003 , . . . , s00n )T .
Caso C). Si s0 (a) = y10 entonces s01 = y10 , y de (5.24) con i = 1 se obtiene la ecuación
 
00 00 y2 − y 1 0
2h1 s1 + h1 s2 = 6 − y1 . (5.32)
h1

Y si s0 (b) = yn0 entonces s0n = yn0 , y del ejercicio 5.4.1 se obtiene la ecuación
 
00 00 0 yn − yn−1
hn−1 sn−1 + 2hn−1 sn = 6 yn − . (5.33)
hn−1

Ahora definiendo  
6 y2 − y 1
λ1 := 1, d1 := − y10 ,
h1 h1
y  
6 yn − yn−1
µn := 1, dn := yn0 − ,
hn−1 hn−1
y junto con (5.28), se obtiene del sistema (5.27) y de las ecuaciones (5.32) y (5.33) el mismo
sistema lineal dado por (5.29). Así que también en este caso, existe una única solución
s = (s001 , s002 , . . . , s00n−1 , s00n )T .

Ejemplo 5.4.1. Determina el spline cúbico natural que interpola los puntos (0, 1), (1, 2),
(2, 0.5) y (2.5, 2), en una aritmética flotante de precisión 4.

Solución. h1 = 1, h2 = 1 y h3 = 0.5.
)
s001 + 4s002 + s003 = −15
(5.34)
s002 + 3s003 + 0.5s004 = 27

Para un spline cúbico natural: s001 = s004 = 0.


Así que el sistema tridiagonal (5.34), se reduce al sistema:

4s002 + s003 = −15


s002 + 3s003 = 27

cuya solución es s002 = −0.6545 × 101 y s003 = 0.1118 × 102 .


Haciendo uso de (5.24), se obtienen las derivadas en los primeros tres nodos:

s01 = 2.091 , s02 = −1.181 y s03 = 1.136 .


5. Interpolación polinomial y splines cúbico 127

Ahora, de acuerdo con la fórmula (5.23) se obtiene el spline cúbico natural deseado:


 1 + 2.091x − 1.091x3 , 0≤x≤1

s(x) = 2 − 1.181(x − 1) − 3.272(x − 1)2 + 2.953(x − 1)3 , 1≤x≤2


 0.5 + 1.136(x − 2) + 5.590(x − 2)2 − 3.727(x − 2)3 , 2 ≤ x ≤ 2.5 .

Ejercicio 5.4.2. Demuestra que la matriz de coeficientes del sistema lineal (5.29) y (5.31)
son no singulares.

Actividad 5.4.1. Interpola la función de Runge fR (x) con splines cúbicos sn (x) en puntos
uniformemente espaciados −1 = x1 < x2 < . . . < xn = 1 dados en (5.15), para n =
6, 11, 16, 21 y 26. Grafica los splines cúbicos junto con fR (x) sobre un mismo sistema de
coordenadas. ¿Qué observa? Escriba sus conclusiones.
Sugerencia. Analiza y usa la función “spline” de MATLAB.

Una ventaja de interpolar una función f suficientemente suave con splines cúbicos, es que
permite estimar también f 0 , f 00 y f 000 con aceptable precisión.

Teorema 5.4.2. Si f tiene derivadas continuas hasta de orden 4 y s es el spline cúbico que
interpola a f en n puntos dados: a = x1 < x2 < · · · < xn = b, entonces para cada x ∈ [a, b] :

|f (x) − s(x)| ≤ C max |f (4) (x)| h4 , (5.35)


x∈[a,b]

o sea que 
|f (x) − s(x)| = O h4 ,
y que 
|f 0 (x) − s0 (x)| = O h3 ,


|f 00 (x) − s00 (x)| = O h2 ,

|f 000 (x) − s000 (x)| = O(h) ,


donde C en (5.35) es una constante y h ≡ max |xk+1 − xk |.
k=1:n−1

Demostración. Una prueba se puede encontrar en ...

Actividad 5.4.2. Calcule s(x), s0 (x), s00 (x) y s000 (x), donde s(x) es el spline cúbico que
interpola la función de Runge fR (x) en puntos uniformemente espaciados −1 = x1 < x2 <
· · · < xn = 1 dados en (5.15), para n = 21.

A). Grafica s(x) y fR (x) junto con los datos en un mismo sistema de coordenadas.
128 5.5. Teoremas de Faber

B). Grafica s0 (x) y fR0 (x) junto con los datos en un mismo sistema de coordenadas.

C). Grafica s00 (x) y fR00 (x) junto con los datos en un mismo sistema de coordenadas.

D). Grafica s000 (x) y fR000 (x) junto con los datos en un mismo sistema de coordenadas.
(k)
E). Compara s(k) (0.85) con fR (0.85), para k = 0, 1, 2 y 3.

¿Qué observa en cada caso? ¿Cuándo vale h? Escriba sus conclusiones.

5.5. Teoremas de Faber


Sea ∆ = {Πn }∞
n=1 una familia de particiones del intervalo I = [a, b] dada por

Πn : a ≤ x1n < x2n < · · · < xnn ≤ b ,

y sea Pn (x) el polinomio de interpolación de una función continua f (x) por Πn .

Teorema 5.5.1 (Primer teorema de Faber). Dada ∆ existe f ∈ C(I) tal que Pn (x) 9 f (x).

Teorema 5.5.2 (Segundo teorema de Faber). Dada f ∈ C(I) existe ∆ tal que Pn (x) → f (x)
uniformemente sobre I.

5.6. Ejercicios
1. ¿Qué problemas dieron origen a la interpolación polinomial? Dar la formulación ex-
plícita de tales problemas.

2. ¿Es la interpolación polinomial por n nodos siempre de grado n−1? Ilustra con ejemplos.

3. Para los datos (1, 2) y (2, 4), halla el polinomio p(x) de menor grado que los interpola.
Halla también un polinomio q(x) de grado dos que interpola estos datos. ¿Contradice
esto el teorema de unicidad de la interpolación?

4. Demuestra que el conjunto {`1 (x), `2 (x), . . . , `n (x)} formado por los polinomios de La-
grange dados por (5.5) es l.i. para cualquier n ≥ 1.

5. Demuestra que el conjunto {π1 (x), π2 (x), . . . , πn (x)} formado por los polinomios de
Newton dados por (5.7) es l.i. para cualquier n ≥ 1.

6. Sea f (x) un polinomio de grado n. Demuestra que si p(x) es el polinomio de grado


menor o igual a n que interpola a f (x) por n + 1 puntos, entonces p(x) ≡ f (x).
5. Interpolación polinomial y splines cúbico 129

7. Si f (x) es un polinomio de grado n − 1 y yi = f (xi ), i = 1 : j, demuestra que

f [x1 , x2 , . . . , xj ] = 0 ,

para j > n.

8. Calcula las diferencias divididas para ex con respecto a la tabla:

x 0 1 2 ··· k
y 1 e e 2 · · · ek

para k = 3, 7, 9, 11 y 15.
Muestra que la solución exacta es
k−1
(e − 1)2 (e − 1)k Y
pk (x) = 1 + (e − 1)(x − 0) + (x − 0)(x − 1) + · · · + (x − j) .
2! k! j=0

9. Considera a la función f (x) = e−x , x ∈ [0, 1]. Sea pn−1 (x) el polinomio de grado a lo
más n − 1 que interpola a f (x) por los nodos 0 = ξ1 < ξ2 < · · · < ξn = 1 (igualmente
espaciados). ¿Con cuántos nodos se logra que
−x
e − pn−1 (x) ≤ 10−7 ,

para todo x ∈ [0, 1] ?


i
10. Sea pn (x) el polinomio de grado a lo más n que interpola a ex por los nodos xi = ,
n
i = 0 : n. ¿Qué tan grande debe ser n para que

|ex − pn (x)| ≤ 10−7 ,

para todo x ∈ [0, 1] ?

11. Considera a la función f (x) = sen (x), x ∈ [0, π/2]. Sea pn−1 (x) el polinomio de grado
a lo más n − 1 que interpola a f (x) por los nodos 0 = ξ1 < ξ2 < · · · < ξn = π/2
(igualmente espaciados). ¿Cuál es la menor n tal que

|sin(x) − pn−1 (x)| ≤ 10−7 ,

para todo x ∈ [0, π/2] ?

12. Dar los inconvenientes de la interpolación polinomial en base monomial.


130 5.6. Ejercicios

13. Para la interpolación de Lagrange por n puntos (xi , yi ), i = 1 : n ,


A). Cuál es el grado de cada elemento
Pn `j (x) de la base de Lagrange?
B). ¿Qué función es g(x) si g(x) = j=1 `j (x)?

14. Sea Π := a = x1 < x2 < · · · < xn = b una partición uniformemente espaciada. Sean
p(f )(x) y p fb (x) los polinomios de interpolación de Lagrange de las tablas

Tf : (xi , yi ), yi = f (xi ), i = 1 : n ,

y
Tf : (xi , yi ), yi = fb(xi ), i = 1 : n ,

respectivamente.

A). Prueba que si (


yi si i 6= k
ybi =
yi + ε si i = k
entonces  
n−1
|δp(x)| ≤ |ε| , x1 ≤ x ≤ x n ,
k−1
donde  
δp(x) := p fb (x) − p(f )(x) .

B). Demuestra que si ybi = yi + εi , i = 1 : n (|εi | ≤ ε, i = 1 : n), entonces

|δp(x)| ≤ 2n−1 ε, x1 ≤ x ≤ x n .

15. Sea a = x1 < x2 < · · · < xn = b una partición del intervalo I = [a, b].

A). Si ψ(x) = (x − xk )(x − xk+1 ), muestra que


1
|ψ(x)| ≤ h2 si x ∈ [xk , xk+1 ) ,
4
donde
h = max |xk+1 − xk | . (5.36)
k=1:n−1

B). Muestra que


k! (n − k)! n
|w(x)| ≤ h si x ∈ [xk , xk+1 ) ,
4
con w dada por (5.18).
5. Interpolación polinomial y splines cúbico 131

16. Muestra que


k! (n − k)! ≤ (n − 1)! para k = 1 : n − 1 ,

y concluya del ejercicio 15 que


(n − 1)! n
|w(x)| ≤ h si x ∈ [a, b] .
4

17. Sea f ∈ C ∞ (I), I = [a, b] y a = x1 < x2 < · · · < xn = b una partición arbitraria de
I = [a, b]. Demuestra que si |f (n) (x)| ≤ Mn para todo x ∈ [a, b], entonces:
M n hn
max |f (x) − Pn−1 (x)| ≤ , (5.37)
x∈I 4n

con h dado por (5.36). Si |f (n) (x)| permanece acotada, entonces el error de interpolación
disminuye cuando n crece (y h decrece).
(n)
18. Calcula fR (x), para n = 1, 2, 3, 4 y 5. ¿Cómo es el comportamiento de cada una de
ellas? ¿La desigualdad (5.37) es válida para la función de Runge?
19. Sea f ∈ C[a, b] dada. Si pn−1 (x) es el polinomio de interpolación para f con respecto a
la partición uniformemente espaciada Π := a = x1 < x2 < · · · < xn = b de [a, b]. ¿Se
u
tiene siempre que pn−1 −→ f (i.e., max |f (x) − pn−1 (x)| −→ 0 cuando n → ∞)?
x∈[a,b]

Recuerda al respecto el fenómeno de Runge (Sección 5.1.3) para su función famosa


1
fR (x) = , −1 ≤ x ≤ 1 .
1 + 25x2

¿Qué dice el teorema de Faber? ¿Qué alternativas conoces a la interpolación polinomial


como un procedimiento de construcción de funciones aproximantes?
20. Sea sn−1 (x) el spline cúbico de interpolación para la función de Runge dado en el
ejercicio 19, con respecto a n nodos −1 = x1 < x2 < · · · < xn = 1 igualmente
u
espaciados. ¿sn−1 −→ fR cuando n → ∞)? ¿Cuál es el orden de convergencia? Bajo el
supuesto que la constante del orden de convergencia es igual a la unidad. ¿Cuál es la
menor n tal que
|sn−1 (x) − fR (x)| ≤ 10−4 ,

para −1 ≤ x ≤ 1?
21. Calcula y gráfica el spline cuadrático de interpolación s(x) para la función de Runge
dada en el ejercicio 19, con nodos Π : −1, −1/3, −1/5, −1/10, 0, 1/10, 1/5, 1/3, 1. A
continuación calcula y gráfica el polinomio de interpolación global. ¿Cuál es el grado
de este polinomio? Comenta.
132 5.6. Ejercicios

22. A). ¿Qué función aproximan los siguientes datos?

xi 0 1 4 9 16 25 36 49 64
yi 0 1 2 3 4 5 6 7 8

B). Calcule el polinomio de grado 9 que interpola los puntos dados.


C). Use una rutina de spline cúbico para interpolar los datos.
D). ¿Cuál de los dos interpolantes es más exacto sobre todo el dominio de interpo-
lación?
E). ¿Cuál de los dos interpolantes es más exacto entre 0 y 1?

23. La función gamma está definido por


Z ∞
Γ(x) = tx−1 e−t dt, x > 0.
0

A). Puesto que


Γ(n) = (n − 1)! , n ∈ Z+ ,

complete la siguiente tabla


xi 1 2 3 4 5
yi 1

que aproxima a la función gamma sobre [1, 5].


B). Calcule el polinomio de grado 4 que interpola los puntos de la tabla.
C). Use una rutina de spline cúbico para interpolar los datos de la tabla.
D). ¿Cuál de los dos interpolantes es más exacto sobre todo el dominio de interpo-
lación?
E). ¿Cuál de los dos interpolantes es más exacto entre 1 y 2?

24. Prueba que el problema de interpolación lineal

Φi [f ] = mi , i = 0 : n,

donde Z 1
Φi [f ] = ti f (t)dt ,
0

que se le llama de momentos, tiene una única solución sobre Pn (espacio de polinomios
de grado a los más n).
5. Interpolación polinomial y splines cúbico 133

Sugerencias. Muestra, con respecto a la base canónica {1, x, . . . , xn } de Pn que

AΦ = (aij ), aij = Φi [xj ] ,

es la matriz de Hilbert
 1 1 
1 ···
 2 n+1 
 
 1 1 1 
 ··· 
 2 3 n+2 
Hn+1 = .
 .. .. .. .. 
 . . . . 
 
 
1 1 1
···
n+1 n+2 2n + 1

25. Sea Π : 0 = x1 < x2 < · · · < xn = 1 una partición uniforme del intervalo [0, 1], y sea
Y = {y ∈ C 2 [0, 1] : y(0) = y(1) = 1}. Considera a la familia de funciones

ϕ0 (x) = B1 (x) − 4B0 (x) ,


ϕj (x) = Bj (x), j = 1 : n,
ϕn+1 (x) = Bn (x) − 4Bn+1 (x) ,

en donde Bj (x) es la función B-spline cúbica con soporte [xj−2 , xj+2 ]. Prueba que tal
familia es l.i. Esto es, {ϕj (x)}n+1
j=0 es una base para S(Π, 3) el espacio de las funciones
splines cúbicas sobre [0, 1] con puntos de ruptura xj .

26. Demuestra que la matriz A ∈ R(n+1)×(n+1) dada por


 
3/2h2 −3/h2 3/h2
 
 1/4 1 1/4 
 
 
 1/4 1 1/4 
 
A= .. .. .. ,
 . . . 
 
 
 1/4 1 1/4 
 
3/2h2 −3/h2 3/2h2

la cual se obtiene de expresar a s(x) ∈ Snat (Π, 3), Π : a = x0 < x1 < · · · < xn = b en
términos de los B-splines cúbicos Bi,3 (x), i = −1 : n + 1, es no singular.
134 5.6. Ejercicios

27. Sea X(I), I = [a, b], a < b, un espacio vectorial normado de funciones g : I → R para
el cual todas las funcionales de evaluación

Φx (g) := g(x), x ∈ I dado ,

pertenecen a su dual topológico X d . Y sea Vn+1 ⊂ X un subespacio de dimensión n + 1.


Se dice que Vn+1 es de Haar si para p ∈ Vn+1 (p 6= 0) cualesquiera dado, p(x) tiene en
I a lo más n raíces. ¿Es V3 = hx, x2 , x3 i ⊂ C[−1, 1] de Haar?
A). Ahora, considera el problema (clásico) de interpolación:
(PI) Dado y ∈ Rn+1 , hallar p ∈ Vn+1 tal que

Φxi (p) = yi , i = 0 : n,

Π : a = x0 < x1 < · · · < xn = b. Demuestra que si Vn+1 es de Haar entonces (PI)


tiene una única solución (la cuál es independiente de la base, esto es, del método
para Vn+1 elegida).
B). Sean β = {bj (x)}nj=0 ⊂ X una base para Vn+1 y Π : a = x0 < x1 < · · · < xn = b
una partición para I. Si Vn+1 es de Haar, prueba que

det(AΠ ) 6= 0 ,

donde AΠ = (aij ), aij = Φxi (bj ). Muestra que la condición de Haar es esencial,
(es decir, si Vn+1 no es de Haar, existe β base de Vn+1 y Π partición de I tal que
det(AΠ ) = 0).
C). Sea AΠ como en B). Y sea ΦΠ : X −→ Rn+1 dado por

ΦΠ (g) = (Φx0 (g), Φx1 (g), . . . , Φxn (g))T .

Si ΦΠ es sobreyectivo, demuestra que det(AΠ ) 6= 0 ssi (PI) tiene una única solución
en Vn+1 con respecto a β y Π. En otras palabras, det(AΠ ) 6= 0 ssi Vn+1 generado
por β con respecto a Π es complemento topológico del subespacio N (ΦΠ ), (es
decir, X = N (ΦΠ ) ⊕ Vn+1 ). En particular, si Vn+1 es de Haar entonces Vn+1 es
siempre un complemento topológico de N (ΦΠ ), sin importar la base β para Vn+1
ni la partición Π para I elegidas.
28. Sea X un espacio vectorial normado de funciones f : Ω ⊂ R → R y {bj (x)}nj=1 ⊂ X. Se
dice que {bj (x)}nj=1 es de Haar o uniresolvente si det(bj (ξi )) 6= 0 para toda partición
Π = {ξi : ξi 6= ξj , i 6= j} de Ω. Y se dice de Tchebychev si además {bj (x)}nj=1 ⊂ C(Ω).
D E
Demuestra que si {bj (x)}nj=1 es de Tchebychev en Ω entonces no existe f ∈ {bj (x)}nj=1
no idénticamente nula con más de n − 1 ceros en Ω. Enuncia y demuestra el inverso de
este resultado. ¿Es esta discusión válida para el caso de funciones f : Ω ⊂ Rn → R?
5. Interpolación polinomial y splines cúbico 135

29. Sea Π : a = x0 < x1 < · · · < xn = b una partición arbitraria de [a, b], y wi (x) =
Πj6=i (x − xj ), i = 0 : m + 1.

A). Demuestra que


m+1
X f (xk )
f [x0 , x1 , . . . , xm+1 ] = .
k=0
wk (xk )

Sugerencia. Recuerda que f [x0 , x1 , . . . , xm+1 ] es el coeficiente líder de

pm+1 (f ; x) = c0 + c1 (x − x0 ) + · · · + cm+1 Πm
j=0 (x − xj ) .

Si p(f ; x) es el polinomio de interpolación de Lagrange de grado a lo más m + 1


por (xi , f (xi )), i = 0 : m + 1. ¿Cuál es la expresión de su coeficiente líder?
B). Demuestra que
  m+1
1  m
 1 X (x − t)m +
K(t) := Φm+1,x (x − t)+ = ,
m! m! k=0 wk (xk )

en donde Φm+1 es el “operador” de la (m + 1) − ésima diferencia dividida, es decir,

Φm+1 [f ] := f [x0 , x1 , . . . , xm+1 ] .

Así, el kernel de Peano para la (m + 1) diferencia dividida es una función spline.


C). Demuestra que
m+1
X (x − t)+
d(m+1)
K(t) = .
dt(m+1) k=0
wk (xk )

d(m+1)
Y que por lo tanto, K(t) no puede tener más de m − 1 cambios de signo.
dt(m+1)
30. Sea X un subespacio lineal de C[a, b] y Π : a = x0 < x1 < · · · < xn = b una partición
de [a, b]. Prueba que la funcional ϕ : X → R dada por

ϕ(f ) := f [x0 , x1 , . . . , xn ]

es lineal. ¿Cuál es el N (ϕ)? ¿Qué es N (ϕ) ∩ Pn ? Aquí, Pn es el espacio de los polinomios


de grado a lo más n.
Nota. Averiguar qué se puede preguntar sobre la continuidad de ϕ. ¿Es ϕ continuo sobre
C[a, b]? Al parecer no, pues ϕ ∼= D (n) .
Capítulo 6

Integración y diferenciación numérica

6.1. Integración numérica


Problema 6.1.1. Dada f : R → R continua, encontrar
Z b
I(a, b, f ) := f (x)dx .
a

Nótese que el operador I : R2 × C(R) → R. Para a y b fijos, I es un operador continuo con


respecto a f , por consiguiente el Problema 6.1.1 es bien planteado en el sentido de Hadamard.

6.1.1. Comportamiento numérico


Para estimar el número de condición del Problema 6.1.1, se hará uso de la norma infinita
para funciones continuas, definida por

kf k∞ = max |f (x)| < +∞ .


a≤x≤b

Se distinguen dos casos:


Caso A). Sean a y b fijos tales que a < b.
Sea fb : [a, b] → R una aproximación continua de f .
Z b Z b Z bh i
∆I = b
f (x)dx − f (x)dx = fb(x) − f (x) dx ,
a a a
Z b Z b
b b
|∆I| = f (x) − f (x) dx ≤ f − f dx = fb − f (b − a) = k∆f k∞ (b − a) ,
a a ∞ ∞

de donde
|∆I| b−a b−a k∆f k∞
≤ k∆f k∞ = kf k∞ , I(f ) 6= 0 .
|I(f )| |I(f )| |I(f )| kf k∞

136
6. Integración y diferenciación numérica 137

Definición 6.1.1. El número de condición relativa del Problema 6.1.1 se define como

(b − a)kf k∞
κrel (f ) := , I(f ) 6= 0 .
|I(f )|

Observación 6.1.1. |I(f )| ≤ (b − a)kf k∞ implica κrel (f ) ≥ 1, para toda f ∈ C[a, b].

Observación 6.1.2. Si 0 < |I(f )| < ε con ε > 0 arbitrario, es posible que κrel (f ) >>
1, aunque kf k∞ sea pequeño. Así que en este caso, el Problema 6.1.1 puede ser muy mal
condicionado.

Observación 6.1.3. Si I(f ) = 0, entonces se maneja el número de condición absoluto del


Problema 6.1.1, dado por
|∆I|
κabs (f ) := ≤ b − a.
k∆f k∞

Caso B). Sea bb una aproximación de b tal que bb > b.


Para a y f fijos se tiene que
Z Z b Z
b b

f (x)dx − f (x)dx = f (x)dx ≤ bb − b max |f (x)| .
a a b b≤x≤b

Así que el número de condición relativa con respecto a b será:


R Rb . R Rb
b b
a f (x)dx − a f (x)dx |I(f )| |b| · a f (x)dx − a f (x)dx
κrel (b) = . = ,
b b
b − b |b| b − b · |I(f )|

de donde
|b|
κrel (b) ≤ max |f (x)| ,
|I(f )| b≤x≤b
y cuando I(f ) = 0 :
R Rb
b
a f (x)dx − a f (x)dx
κabs (b) = ≤ max |f (x)| .
b
b − b b≤x≤b

En ambos casos, los números de condición pueden ser arbitrariamente grandes si f es sin-
gular “cerca” de b. Por lo que en este caso, el Problema 6.1.1 puede ser muy mal condicionado
con respecto a perturbaciones en los límites de integración.
138 6.1. Integración numérica

6.1.2. Fórmulas de cuadratura numérica


Sea f : [a, b] → R continua sobre [a, b], y Πn : a = x1 < x2 < · · · < xn+1 = b una partición
arbitraria de [a, b].

Definición 6.1.2. Se define una suma de Riemann para f sobre [a, b] por
n
X
Rn (f, Πn ) = (xi+1 − xi )f (ξi ) ,
i=1

donde xi ≤ ξi ≤ xi+1 , i = 1 : n .

Teorema 6.1.1. Si f : [a, b] → R es continua sobre [a, b], y


b−a
xi = a + (i − 1) , i = 1 : n + 1 , n ≥ 1 .
n
Entonces
lim Rn (f, Πn ) = I(f ) .
n→∞

Demostración. Una prueba se puede ver en ...


A partir de las sumas de Riemann, se introduce la siguiente definición:

Definición 6.1.3. Se definen las sumas de cuadratura numérica como:


n
X
Qn (f ) := wi f (xi ) ,
i=1

donde a ≤ x1 < x2 < · · · < xn ≤ b, que se les llama fórmulas abiertas si a < x1 y xn < b,
y fórmulas cerradas si a = x1 y xn = b. Los puntos xi se les llama nodos y wi se les llama
pesos.

Surgen inmediatamente dos problemas:

A). ¿Cómo elegir los nodos xi ?

B). ¿Cómo elegir los pesos wi ?

Hay varias alternativas para la primera pregunta, la más inmediata es elegir los nodos
uniformemente espaciados, es decir
b−a
xi = a + (i − 1) , i = 1 : n , n ≥ 2 .
n−1
Para la segunda pregunta, se procede de la siguiente manera:
6. Integración y diferenciación numérica 139

Sea yi = f (xi ), i = 1 : n .
Sea Pn−1 (x) el polinomio de grado ≤ n − 1 que interpola los puntos (xi , yi ) , i = 1 : n .
Y sea {`i (x)}ni=1 la base de Lagrange, es decir,

(x − x1 ) · · · (x − xi−1 )(x − xi+1 ) · · · (x − xn )


`i (x) = ; i = 1 : n.
(xi − x1 ) · · · (xi − xi−1 )(xi − xi+1 ) · · · (xi − xn )
Pn Rb
Lema 6.1.1. Dado que Pn−1 (x) = i=1 f (xi )`i (x), entonces wi = a
`i (x)dx , i = 1 : n .

Demostración.
Z b n
X Z b n
X
Pn−1 (x)dx = f (xi ) `i (x)dx = wi f (xi ) = Qn (f ) ,
a i=1 a i=1

Rb
con wi = a
`i (x)dx.

“Los pesos wi son independientes de f (x)”.

Lema 6.1.2. Si P (x) es un polinomio de grado ≤ n−1 y Pn−1 (x) es el interpolante polinomial
de los puntos (xi , yi ) con yi = P (xi ), i = 1 : n, entonces Pn−1 (x) ≡ P (x) para todo x ∈ R.

Demostración. Nótese que Q(x) = P (x) − Pn−1 (x) es un polinomio de grado ≤ n − 1 que
tiene a xi como raíz para i = 1 : n, por lo que se sigue del teorema fundamental del álgebra
que Q(x) ≡ 0 para toda x ∈ R. Por lo tanto, Pn−1 (x) ≡ P (x).

Corolario 6.1.1. Si P (x) es un polinomio de grado ≤ n − 1, entonces


Z b n
X
P (x)dx = wi P (xi ) .
a i=1

Demostración. Consecuencia inmediata del lema 6.1.2 y lema 6.1.1.

Método de coeficientes indeterminados. Consiste en aplicar el Corolario 6.1.1 a la base


monomial {1, x, . . . xn−1 }, para calcular los pesos wi , i = 1 : n .
Rb
P (x) = 1 : w1 + w2 + · · · + wn = a
dx = b− a,
Rb 1 2
P (x) = x : w 1 x1 + w 2 x2 + · · · + w n xn = a
xdx = (b − a2 ) ,
2
··· ··· ··· ... ···
Rb 1 n
P (x) = xn−1 : w1 xn−1
1 + w2 xn−1
2 + · · · + wn xn−1
n = a
xn−1 dx = (b − an ) .
n
140 6.1. Integración numérica

Que se puede abreviar como:


    
1 1 ··· 1 w1 b−a
 x1 x2 · · · x n  w2   1 2
(b − a2 ) 
    2 
VnT w =  .. .. .. ..  .. = ..  = c.
 . . . .  .   . 
xn−1
1 x n−1
2 · · · x n−1
n wn 1 n
n
(b − an )

Donde Vn es la matriz de Vandermonde, por lo tanto es no singular, así que se pueden


determinar valores únicos para w1 , w2 , . . . , wn .

Ejemplo 6.1.1. Para n = 2, se tiene


s h s
a = x1 b = x2

    
1 1 w1 b−a
V2T w = = 1 2 = c,
a b w2 2
(b − a2 )
de donde w1 = w2 = (b − a)/2 = h/2 . Por lo tanto,

h
Q2 (f ) = [f (a) + f (b)] ,
2
que se le llama la regla del trapecio.

Ejemplo 6.1.2. Para n = 3, se tiene h = (b − a)/2, donde


s h s
1
a = x1 x2 = 2
(a + b) b = x3

    
1 1 1 w1 b−a
    
V3T w = 
 a
1
2
(a + b) b   w2  =  1 (b2 − a2 )  = c ,
   2 
1 1 3
a2 4
(a + b)2 b2 w3 3
(b − a 3
)
de donde
1 2 1
w3 = (b − a) , w2 = (b − a) y w1 = (b − a) .
6 3 6
Por lo tanto,    
h a+b
Q3 (f ) = f (a) + 4f + f (b) ,
3 2
que se le llama la regla de Simpson. La función quad.m de MATLAB se basa en esta regla
en forma adaptiva recurrente.
6. Integración y diferenciación numérica 141

Ejemplo 6.1.3. Para n = 4, se tiene h = (b − a)/3, donde


h x3 = 31 (a + 2b)
s s
a = x1 x2 = 13 (2a + b) b = x4

    
1 1 1 1 w1 b−a
 1 1    
 a 3
(2a + b) 3
(a + 2b) b   w2   21 (b2 − a2 ) 
V4T w =
 2 1 1

2 
=
 
 = c,

 a 9
(2a + b)2 9
(a + 2b)2 b   w3   31 (b3 − a3 ) 
1 1 1 4
a3 27
(2a + b)3 27
(a + 2b)3 b3 w4 4
(b − a4 )

que al resolver el sistema se obtiene


1 3 3 1
w4 = (b − a) , w3 = (b − a) , w2 = (b − a) y w1 = (b − a) .
8 8 8 8
Por lo tanto,
     
3 2a + b a + 2b
Q4 (f ) = h f (a) + 3f + 3f + f (b) ,
8 3 3

que se le llama la regla 3/8 de Simpson.


Definición 6.1.4. Un método de cuadratura es de orden d ≥ 1, si es exacto para polinomios
de grado ≤ d, pero no lo es para algún polinomio de grado d + 1.
Ejercicio 6.1.1. Demuestra que la regla de Simpson Q3 (f ) es de orden 3 .
En general, Qn (f ) es de orden al menos n − 1 para n ≥ 4 .

6.1.3. Error de aproximación


Lema 6.1.3. Sea f : [a, b] → R continua, entonces

|I(f ) − Qn (f )| ≤ (b − a)kf − Pn−1 k∞ , n ≥ 2.

Demostración.
|I(f ) − Qn (f )| = |I(f ) − I(Pn−1 )| = |I(f − Pn−1 )|
Z b
≤ |f (x) − Pn−1 (x)|dx ≤ (b − a)kf − Pn−1 k∞ .
a
142 6.1. Integración numérica


Teorema 6.1.2. Si f ∈ C n [a, b] y existe M > 0 tal que f (n) ∞ ≤ M para todo n ≥ 1,
entonces lim Qn (f ) = I(f ) .
n→∞

Demostración. Recuerda que si f ∈ C n [a, b], entonces


hn hn (n)
|f (x) − Pn−1 (x)| ≤ max f (n) (x) = f ,

(6.1)
4n a≤x≤b 4n
para todo x ∈ [a, b], donde
b−a
h = max |xi+1 − xi | = , n ≥ 2.
i=1:n−1 n−1
Combinando la desigualdad (6.1) con el lema 6.1.3, se tiene que
b−a n 1 n − 1 n+1
|I(f ) − Qn (f )| ≤ h f (n) ∞ = h f (n)

4n 4 n
1 n+1
f (n) ≤ M hn+1 −→ 0 .
≤ h ∞
4 4 n→∞

Observa que
1 n+1
|I(f ) − Qn (f )| ≤
h max f (n) (x) .
4 a≤x≤b

Sin embargo, en casos particulares se puede mejorar la cota para el error absoluto, como
se puede mostrar en los siguientes ejercicios.
Ejercicio 6.1.2. Para la regla del trapecio: si f ∈ C 2 [a, b], demuestra que
Z b
h 1 3 00
f (x)dx = [f (a) + f (b)] − h f (ξ) ,
a 2 12
para algún ξ ∈ (a, b) y h = b − a.
Ejercicio 6.1.3. Para la regla de Simpson: si f ∈ C 4 [a, b], demuestra que
Z b    
h a+b 1 5 (4)
f (x)dx = f (a) + 4f + f (b) − h f (ξ) ,
a 3 2 90
para algún ξ ∈ (a, b) y h = (b − a)/2.
Ejercicio 6.1.4. Para la regla 3/8 de Simpson: si f ∈ C 4 [a, b], demuestra que
Z b      
3h 2a + b a + 2b 3 5 (4)
f (x)dx = f (a) + 3f + 3f + f (b) − h f (ξ) ,
a 8 3 3 80
para algún ξ ∈ (a, b) y h = (b − a)/3.
6. Integración y diferenciación numérica 143

6.1.4. Estabilidad numérica del método de cuadratura


Sea f : [a, b] → R continua y fb : [a, b] → R una perturbación continua de f . Dado que los
pesos wi son independientes de f , entonces
n
X h i X n
b b b
Qn (f ) − Qn (f ) = Qn (f − f ) = wi f (xi ) − f (xi ) ≤ |wi | fb(xi ) − f (xi ) ,

i=1 i=1

de donde !
n
X
b b
Qn (f ) − Qn (f ) ≤ |wi | f − f .

i=1

Definición 6.1.5. Se define el número de condición absoluto de la fórmula de cuadratura


como: n
X
κasb (Qn ) := |wi | .
i=1

Se tienen las siguientes conclusiones:

A). Si wi > 0, i = 1 : n, entonces κasb (Qn ) = b − a, por lo que Qn es numéricamente estable.


Es el caso particular para las fórmulas de cuadratura Q2 , Q3 y Q4 .

B). Si wi < 0 para alguna i, entonces κasb (Qn ) puede ser muy grande, en consecuencia, Qn
puede ser numéricamente inestable. Es el caso, cuando n es muy grande, por ejemplo:
κasb (Q21 ) = 542.25 ∗ (b − a).

Ejemplo 6.1.4. Los pesos para la fórmula de cuadratura Q9 están dados por
h
w= [3 956, 23 552, −3 712, 41 984, −18 160, 41 984, −3 712, 23 552, 3 956] T ,
14 175
donde h = (b − a)/8. En este caso, κasb (Q9 ) = 1.45 ∗ (b − a). La función quad8.m de
MATLAB se basa en Q9 en forma adaptiva recurrente. Esta regla es de orden 8.

6.1.5. Fórmulas de cuadratura compuesta


Se ejemplicará la presentación con la fórmula de Simpson compuesta.
Sean f ∈ C 4 [a, b],
n impar, n ≥ 3 .
b−a
h= ,
n−1
xi = a + (i − 1) ∗ h , i = 1 : n.
144 6.1. Integración numérica

s
h s s s
a = x1 x2 x3 x4 x5 x6 b = x7

Aplicando la regla de Simpson a cada par consecutivo de intervalos, resulta:


Z b (n−1)/2 Z x2i+1
X
f (x)dx = f (x)dx
a i=1 x2i−1

(n−1)/2  
X h h5 (4)
= [f (x2i−1 ) + 4f (x2i ) + f (x2i+1 )] − f (ξi )
i=1
3 90
 
(n−1)/2 (n−3)/2 5 (n−1)/2
h X X h X
= f (x1 ) + 4 f (x2i ) + 2 f (x2i+1 ) + f (xn ) − f (4) (ξi ) ,
3 i=1 i=1
90 i=1

donde x2i−1 ≤ ξi ≤ x2i+1 .

Definición 6.1.6. Se define la regla de Simpson compuesta por:


 
(n−1)/2 (n−3)/2
h X X
Sn (f ) = f (x1 ) + 4 f (x2i ) + 2 f (x2i+1 ) + f (xn ) ,
3 i=1 i=1

para n ≥ 5 entero impar.

Teorema 6.1.3. Si f ∈ C 4 [a, b], n ≥ 3 es entero impar, h = (b−a)/(n−1), xi = a+(i−1)h,


i = 1 : n. Entonces Z b
b − a 4 (4)
f (x)dx = Sn (f ) − h f (ξ) ,
a 180
para algún ξ ∈ (a, b).

Demostración. Se sigue al aplicar el teorema del valor extremo y el teorema de valores inter-
medios de Bolzano a f (4) (x).
Algoritmo 6.1.1. Algoritmo de la regla de Simpson compuesta.
Datos de entrada: a, b, f : [a, b] → R continua, T OL > 0, N M AX
Rb
Datos de salida: Valor aproximado S de a f (x)dx
N ←3
Mientras |S − Sprevio | ≥ T OL ∗ |S| o N ≤ N M AX, hacer
Sprevio ← S
h ← (b − a)/(N − 1)
S1 ← 0.0
S2 ← 0.0
6. Integración y diferenciación numérica 145

Para i = 2 : N − 1, hacer
x ← a + (i − 1) ∗ h
Si i es par, entonces
S2 ← S2 + f (x)
En caso contrario
S1 ← S1 + f (x)
Terminar
Terminar
S = h ∗ (f (a) + f (b) + 2 ∗ S1 + 4 ∗ S2 )/3.0
N ←N +2
Terminar.
Actividad 6.1.1. Programa el algoritmo de la regla de Simpson compuesta en FORTRAN
o en MATLAB. Prueba tu programa calculando ϕ(2), donde
Z x π 
ϕ(x) = sen t2 dt .
0 2
Sugerencia. Elija T OL a precisión de la máquina, S = 1.0 y Sprevio = 0.0 .

6.1.6. Fórmulas adaptivas recurrentes

6.2. Diferenciación numérica


6.2.1. Comportamiento numérico
El problema de la diferenciación numérica es un problema sensible inherente, es
decir, pequeñas perturbaciones en los datos casi siempre causan cambios bruscos en los re-
sultados. De hecho, es fácil construir dos funciones continuas con la misma integral pero con
propiedades diferenciables completamente diferentes.

6.2.2. Fórmulas de diferencias finitas


Sea f : R → R de clase C ∞ (R) y x ∈ R. Desarrollando f en series de Taylor alrededor de
x para h > 0, se tiene que:
1 1
f (x + h) = f (x) + f 0 (x)h + f 00 (x)h2 + f 000 (x)h3 + · · · (6.2)
2 6
1 1
f (x − h) = f (x) − f 0 (x)h + f 00 (x)h2 − f 000 (x)h3 + · · · (6.3)
2 6
De (6.2) se obtiene la fórmula de diferencia prospectiva:
f (x + h) − f (x)
f 0 (x) = + O(h) .
h
146 6.2. Diferenciación numérica

De (6.3) se obtiene la fórmula de diferencia retrospectiva:


f (x) − f (x − h)
f 0 (x) = + O(h) .
h
Restando (6.3) se (6.2) se obtiene la fórmula de diferencia central:
f (x + h) − f (x − h)
f 0 (x) = + O(h2 ) ,
2h
que resulta ser una fórmula de segundo orden.
Ahora, sumando (6.2) con (6.3), se obtiene la fórmula de diferencia central para la
segunda derivada:
f (x + h) − 2f (x) + f (x − h)
f 00 (x) = + O(h2 ) ,
h2
que también es de segundo orden.
Es posible construir fórmulas de mayor orden eligiendo puntos equidistantes. Por ejemplo,
con el interpolante polinomial de grado ≤ 4 de los puntos: x − 2h, x − h, x, x + h, y x + 2h, se
obtienen fórmulas de diferencias de cuarto orden para f 0 (x) y f 00 (x), y fórmulas de segundo
orden para f 000 (x) y f (4) (x).

6.2.3. Aplicaciones a problemas de valores iniciales


Se ilustrará la aplicación de las fórmulas de diferencias finitas, para la solución numérica
del problema del valor inicial (PVI):
 )
y = f (t, y) , t ≥ t0 , y ∈ R ,
(6.4)
y(t0 ) = y0 .

De la teoría básica de existencia y unicidad, se sabe que si la función f (t, y) es continua


y globalmente Lipschitz con respecto a y, entonces el PVI (6.4) tiene solución –al menos
localmente– es única y depende continuamente de sus datos t0 y y0 , es decir, bajo estos
supuestos sobre f (t, y) el problema (6.4) es bien planteado (en el sentido de Hadamard).
Una forma de aproximar numéricamente la solución del problema (6.4), para t > t0 es la
siguiente:
1. Se elige un paso h > 0 .
2. Se calculan ti = t0 + ih , i = 0, 1, 2, . . .
3. Se discretiza la ecuación diferencial con alguna fórmula de diferencias finitas.
Discretizando con la fórmula de diferencia prospectiva:
y(ti+1 ) − y(ti ) ∼ yi+1 − yi
y (ti ) ∼

= = ,
h h
6. Integración y diferenciación numérica 147


y dado que y (ti ) = f (ti , yi ), se sigue que
yi+1 = yi + hf (ti , yi ) ; i = 0 : n− 1, (6.5)
que se le llama método de Euler (explícito). Es un método de un sólo paso, y es el más
sencillo de las técnicas numéricas para ecuaciones diferenciales. Si la solución de (6.4) se
requiere en t = tf , basta con elegir alguna n suficientemente grande y para h = (tf − t0 )/n
se tendrá tn = tf , y yn será una aproximación para y(tn ). La pregunta esencial es: ¿Qué tan
buena es esta aproximación? ¿Tiene alguna relación con y(tf ).
Discretizando con la fórmula de diferencia retrospectiva se tiene que
y(ti ) − y(ti−1 ) ∼ yi − yi−1
y (ti ) ∼

= = ,
h h
de donde se obtiene el llamado método de Euler hacia atrás:
yi = yi−1 + hf (ti , yi ) ; i = 1 : n, (6.6)
donde la derivada se evalúa al final del paso. Este tipo de métodos que evalúan la derivada
al final del paso se les llama también métodos implícitos.
Ahora, discretizando la ecuación diferencial del problema (6.4) con la fórmula de diferencia
central, se tiene que
y(ti+1 ) − y(ti−1 ) ∼ yi+1 − yi−1
y 0 (ti ) ∼
= = ,
2h 2h
de donde se obtiene el método del punto medio:
yi+1 = yi−1 + 2hf (ti , yi ) ; i = 1 : n −1, (6.7)
que es un método de dos pasos.
Este método de pasos múltiples es muy importante, por ejemplo, se utiliza como base de
un método de extrapolación de Bulirsch y Stoer (England, 2003 [6]). El método (6.7) necesita
de un método de un solo paso para arrancar, y en este caso se puede utilizar el método de
Euler (6.5):
y1 = y0 + hf (t0 , y0 ) .

Sistemas de ecuaciones y ecuaciones de orden mayor que uno


Dos generalizaciones del PVI (6.4): Primero, tanto y como f pueden ser vectores de
dimensión n, es decir el PVI (6.4) sería una notación reducida para el sistema de ecuaciones:

y 1 = f1 (t, y1 , y2 , · · · , yn ) 





y 2 = f2 (t, y1 , y2 , · · · , yn ) 


.. .. .. (6.8)
. . . 




y = f (t, y , y , · · · , y ) 

n n 1 2 n
148 6.3. Ejercicios

con valor inicial:


y(t0 ) = y0 ≡ (y10 , y20 , · · · , yn0 )T .
Donde f1 , f2 , . . . , fn son funciones distintas de los n + 1 argumentos. No todos los argu-
mentos deben de aparecer explícitamente en todas las funciones.
En segundo lugar, se puede tener una ecuación de orden mayor que 1, es decir en lugar
 dn y  
de y se tenga y (n) (= n ) como función de t, y, y , y , . . . , y (n−1) . Esto es
dt

y (n) = f (t, y, y , y , . . . , y (n−1) ) ,


 
(6.9)

con n condiciones iniciales:

y (t0 ) = y 0 , . . . , y (n−1) (t0 ) = y0(n−1) .


 
y(t0 ) = y0 ,

Afortunadamente, esta generalización se puede ver como un sistema de n ecuaciones de


primer orden, al escribir

yi = y (i−1)

y1 = y , y2 = y , i = 3 : n,

y reemplazar la ecuación (6.9) por el sistema de n ecuaciones de primer orden





y1 = y2 



y2 

= y3 

.. .. .. (6.10)
. . . 




y n−1 = yn 

 

yn = fn (t, y1 , y2 , · · · , yn )

con valor inicial:


 (n−1)
z(t0 ) = z0 = (y0 , y 0 , · · · , y0 ).
Nótese que la solución y1 (t) que se obtenga de (6.10) es la solución y(t) de la ecuación de
orden n dado por (6.9).
Normalmente, se supone que las ecuaciones de orden mayor que 1 se reducen a sistemas
de primer orden para la solución numérica, aunque algunos métodos se presentan para tratar
directamente con ecuaciones de orden mayor que 1.

6.3. Ejercicios
Integración numérica
1. Contesta las preguntas 8.1, 8.3, 8.7, 8.8 y 8.9 de la página 373 de Heath (2002) [12].
6. Integración y diferenciación numérica 149

2. Resuelva el ejercicio 8.3 de la página 376 de Heath (2002) [12].


3. La ecuación polar ρ = 2 cos 2θ modela una rosa de cuatro pétalos.
A). Dibuja la rosa de cuatro pétalos.
B). Verifica que la longitud (perímetro) de la rosa está dada por
Z π/4 p
s = 16 4 − 3 cos2 (2θ) dθ ,
0

que es una integral elíptica de segunda clase, y es imposible evaluarla con métodos
elementales de integración.
C). Calcule la longitud de la rosa con un 0.01 % de error.
¿Cuántos dígitos correctos se logran con este orden de error?
4. El periodo de un péndulo simple está determinado por la integral elíptica completa de
1a clase Z π/2

K(x) = √ .
0 1 − x2 sen2 θ
Dibuje una gráfica suave de K(x) sobre el intervalo 0 ≤ x ≤ 1.

Diferenciación numérica
5. Contesta las preguntas 8.39 al 8.42 de la página 375 de Heath (2002) [12].
6. Un algoritmo simple que se basa en el método de Euler prospectivo para aproximar
numéricamente la solución de (6.4) sobre el intervalo: t0 ≤ t ≤ tf , es el siguiente:
Datos de entrada: t0 , tf , y0 , f (t, y), N
Datos de salida: Valor aproximado y i de y(ti ), i = 0 : N .
h ← (tf − t0 )/N
Para i = 0 : N − 1, hacer
yi+1 ← yi + h ∗ f (ti , yi )
xi+1 ← xi + h
Terminar.

Programa el algoritmo anterior en FORTRAN o en MATLAB y pruébalo con el prob-


lema de valor inicial:

y +ty = 0
y(0) = 1 ,
sobre el intervalo 0 ≤ t ≤ 2.
2
Compara tu solución numérica con la solución analítica que está dada por y(t) = e−t /2 .
150 6.3. Ejercicios

7. Sea el problema de valor inicial:



y = −1000(y − sen t) + cos t
y(0) = 1 ,

sobre el intervalo 0 ≤ t ≤ 1.

A). Calcula la solución analítica usando dsolve.m de MATLAB.


B). Calcula la solución numérica para diferentes valores de N .
C). Compara ambas soluciones y escriba tus observaciones.

8. Calcule la solución numérica del problema de valor inicial:


 y  y 2
y= −
t t
y(1) = 1 ,

sobre el intervalo 1 ≤ t ≤ 2.
Compárela con la solución analítica dada por y(t) = t/(1 + ln t).
Bibliografía

[1] Buchanan, J. L., and Turner, P. R., Numerical Methodos and Analysis. McGraw-Hill,
Inc., 1992.

[2] Coleman, T. F., and Van Loan, Ch., Handbook for Matrix Computations. SIAM,
Philadelphia, 1988.

[3] Davis, Ph. J. Interpolation and Aproximation. Dover, 1975.

[4] Dennis, J. E. JR., and Schnabel, R. B. Numerical Methods for Uncostrained Opti-
mization and Nonlinear Equations. Prentice-Hall, Inc., Englewood Cliffs, New Jersey,
1983.

[5] Eldén, L., and Wittmeyer-Koch, L. Numerical Analysis An Introduction. Academic


Press, Inc., 1990.

[6] England, R., Solución Numérica de Ecuaciones Diferenciales, XIII ENOAN, UAdeC,
México, 2003.

[7] Etter, D. M., Fortran 77 with Numerical Methods for Engineers and Scientifics. Ben-
jamin/Cummings, 1992.

[8] Forsythe, G. F., Malcolm, M. A., and Moler, C. B. Computer Methods for Mathemat-
ical Computations. Prentice-Hall Inc., 1977.

[9] Gautschi, W. On inverses of Vandermonde and Confluent Vandermonde Matrices.


Numerische Mathematik, 4, 117–123, 1962.

[10] Golub, G. H., and Van Loan, Ch. F., Matrix Computations, 2nd Edition. The Johns
Hopkins University Press, 1989.

[11] Hämmerlin, G., and Hoffmann, K-H., Numerical Mathematics. Springer-Verlag New
York Inc., 1991.

[12] Heath, M. T. Scientific Computing: An Introductory Survey. McGraw-Hill, N.Y., 2nd


Edition, 2002.

151
152 BIBLIOGRAFÍA

[13] Kahan, W., Numerical Linear Algebra. Canadian Math. Bull. 9, 757–801, 1966.

[14] Kahaner, D., Moler C., and Nash S. Numerical Methods and Software. Prentice-Hall,
1989.

[15] Marsden, J. E. y Tromba, A. J. Cálculo Vectorial. Addison-Wesley Iberoamericana,


3a Edición, 1991.

[16] Moler, C. B., Cramer’s Rule on 2-by-2 Systems. New Mexico University, Alburquerque.

[17] Moler, C. B. Numerical Computing with MATLAB. SIAM, 2006.


http://www.mathworks.com/academia/.

[18] Ortega, J. M., and Rheinboldt, W. C., Iterative Solution of Nonlinear Equations in
Several Variables. Academic Press, New York, 1971.

[19] Overton, M. L. Numerical Computing with IEEE Floating Point Arithmetic. Society
for Industrial and Applied Mathematics. Philadelphia, 2001.
Versión en español: Cómputo Numérico con Aritmética de Punto Flotante. SMM,
2002.

[20] Page, C. G., Professional Programmer’s Guide to FORTRAN 77. University of Leices-
ter, UK. 1988, 2001. Last update/bug fix: 2003 September 3.
http://www.fortran.com/

[21] Rivlin, Th.J. An Introduction to the Aproximation of Functions. Dover, 1981.

[22] Shampine, L. F., Allen, R. C. Jr., and Pruess, S. Fundamentals of Numerical Com-
puting. John Wiley & Sons, Inc., 1997.

[23] Spivak, M. Cálculo Infinitesimal. Tomo I. Editorial Reverté, S. A., España, 1978.

[24] Stoer, J., and Bulirsch, R., Introduction to Numerical Analysis. Springer-verlag, New
York, Inc., 1993.

You might also like