Sei sulla pagina 1di 153

MÉTODOS NUMÉRICOS CON

MATLAB

Andres Felipe Amador Rodriguez


Jorge Hernando Figueroa Jimenez
Daniel Suescun Diaz

Ponticia Universidad Javeriana, Cali. 2015

i
ii
Introducción

El Análisis numérico es la rama de las Matemáticas que estudia los méto-


dos numéricos que permiten obtener una solución aproximada (en algunas
ocasiones exacta) de cierto problema matemático. Esta solución se obtiene
mediante la ejecución de un número nito de operaciones lógicas y alge-
braicas.
Los problemas que abordan los métodos numéricos se pueden clasicar en dos
grandes grupos, según tengan naturaleza numérica o naturaleza funcional.
En el primer grupo se encuentran los problemas relativos a la resolución de
sistemas de ecuaciones lineales y no lineales, cálculo de raíces de funciones,
vectores propios etc. Son del segundo tipo, los problemas de interpolación,
de aproximación de funciones y los problemas de valor inicial entre otros.
El desarrollo de los métodos numéricos y sus aplicaciones ha ido ligado a la
vertiginosa evolución de los ordenadores, los cuales se han convertido en unas
herramientas imprescindibles para la aplicación de los mismos, facilitando el
cálculo y manipulaciones de los datos que suelen ir involucrados.

Este texto se escribe como material de apoyo para el curso de Análisis


Numérico que se dicta en la Facultad de ingeniería de la Ponticia Universi-
dad Javeriana seccional Cali, asume conocimientos previos de los cursos de la
línea básica de matemáticas de la Facultad de Ingeniería: Matemáticas Fun-
damentales, Algebra lineal, calculo diferencial, calculo integral y ecuaciones
diferenciales ordinarias. El propósito de este material es servir como una
introducción fácilmente comprensible para las aplicaciones de los métodos
numéricos clásicos, haciendo énfasis en la utilización de comandos especial-
izados del software MATLAB y en la programación de los métodos numéricos.
En el primer capítulo se realiza una introducción al error numérico y a la ar-
itmética de precisión nita, utilizando algunos comandos de MATLAB para
ejemplicar los conceptos. En el capítulo dos se trabajan las técnicas clásicas
de solución de ecuaciones no lineales y en el cálculo de raíces de funciones.
En el capítulo tres se introducen algunos métodos para solucionar sistemas
lineales de forma iterativa. En el capítulo cuatro se trabaja interpolación
polinomial y aproximación de funciones mediante polinomios. La integración
numérica simple y adaptativa se trabaja en el capítulo cinco y Finalmente en
el capítulo seis se estudian los métodos clásicos para solucionar ecuaciones
diferenciales ordinarias.
Contenido

Introducción iii
Contenido v
1 Representación Numerica y Errores 1
1.1 Sistemas de numeración . . . . . . . . . . . . . . . . . . . . . 1
1.2 Representación de un número real en una máquina . . . . . . 5
1.3 Aritmética de precisión nita . . . . . . . . . . . . . . . . . . 12
1.4 Arimética en una Máquina . . . . . . . . . . . . . . . . . . . . 16
1.5 Pérdida de dígitos o cifras signicativas . . . . . . . . . . . . . 17
1.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2 Ceros de Funciones 27
2.1 Método de Bisección . . . . . . . . . . . . . . . . . . . . . . . 28
2.1.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Método de la Regula Falsi . . . . . . . . . . . . . . . . . . . . 34
2.2.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 35
2.3 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 39
2.4 Método de la Secante . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 46
2.5 Método del punto jo . . . . . . . . . . . . . . . . . . . . . . . 47
2.5.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 50
2.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

v
CONTENIDO

3 Sistemas de Ecuaciones Lineales 61


3.1 Normas Vectoriales y Matrices . . . . . . . . . . . . . . . . . . 62
3.2 Número Condicional y Renamiento Iterativo . . . . . . . . . 66
3.3 Precondicionamiento o Equilibración de una Matriz . . . . . . 71
3.3.1 Precondicionamiento mediante equilibración de las . . 71
3.3.2 Precondicionamiento mediante equilibración de Colum-
nas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.4 Métodos directos de solución . . . . . . . . . . . . . . . . . . . 74
3.4.1 Método de la Inversa . . . . . . . . . . . . . . . . . . . 76
3.4.2 Factorización LU . . . . . . . . . . . . . . . . . . . . . 82
3.5 Métodos iterativos para sistemas lineales . . . . . . . . . . . . 87
3.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

4 Interpolación y Ajustes de Curvas 103


4.1 Método Directo . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.2 Polinomio de Newton . . . . . . . . . . . . . . . . . . . . . . 105
4.2.1 Forma matricial . . . . . . . . . . . . . . . . . . . . . . 106
4.2.2 Número condicional . . . . . . . . . . . . . . . . . . . . 106
4.2.3 Método de diferencias divididas . . . . . . . . . . . . . 107
4.3 Polinomio de Lagrange . . . . . . . . . . . . . . . . . . . . . . 110
4.4 El fenómeno de Runge . . . . . . . . . . . . . . . . . . . . . . 116
4.5 Nodos de Chebyshev . . . . . . . . . . . . . . . . . . . . . . . 118
4.6 Interpolación polinomial a trozos . . . . . . . . . . . . . . . . 122
4.6.1 Trazador Cúbico . . . . . . . . . . . . . . . . . . . . . 122
4.7 Ajuste de curvas por mínimos cuadrados . . . . . . . . . . . . 131
4.8 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

Bibliografía 145
Índice alfabético 146

vi
Capitulo 1
Representación Numerica y Errores
En este capítulo se realiza una introducción a la aritmética de precisión nita
y al concepto de error numérico, la demostración se algunos teoremas clásicos
es omitida.

1.1 Sistemas de numeración


Un sistema de numeración es un conjunto de símbolos y reglas que permiten
representar datos numéricos o cantidades. Los sistemas de numeración se
caracterizan por su base, que es el número de símbolos distintos que utilizan
y determina cuál es el valor de cada símbolo dependiendo de la posición
que éste ocupe. Por ejemplo, Dado x ∈ R y b 6= 0, la representación de
x en la base b utiliza los símbolos {0, 1, ..., |b| − 1} para su representación.
A continuación se enuncia un resultado sin demostración, que garantiza la
existencia y la unicidad de la representación en las bases numéricas que se
trabajaran en este texto.
Teorema 1.1. Dado x ∈ R y b > 1, b ∈ N existe una unica representación
de x en la base b dada por
x = (en en−1 · · · e0 .d1 d2 d3 · · · dk dk+1 · · · )b
donde ei y dj son dígitos entre 0 y b − 1. Si el valor de x se escribe en forma
explícita entonces el valor de x es:
x =en × bn + en−1 × bn−1 + · · · + e1 × b1 + e0 ×b0 + d1 ×b−1 + d2 ×b−2
+ · · · + dk × b−k + dk+1 × b−(k+1) + · · ·

1
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

La mayoría de las computadoras hacen los cálculos aritméticos usando el


sistema binario (base 2) y no el sistema decimal (base 10). Esto se debe a
que éstas trabajan internamente con dos niveles de voltaje, por lo cual su
sistema de numeración natural es el sistema binario (encendido 1, apagado
0). Cuando se introducen números en base 10, la computadora los convierte
en números en base 2, lleva a cabo los cálculos en base 2 y nalmente presenta
los resultados en base 10. A continuación, se escriben los números x = 13.625
y y = 401.3̄ en base 10, 2, 8 y 16.

Ejemplo 1.1 (Sistema decimal o base 10). Para representar un número en


el sistema decimal se utilizan potencias de 10 junto con los dígitos del 0 al 9.

a) Representacion de x en sistema decimal

x = 13.625
= 1 × 101 + 3 × 100 + 6 × 10−1 + 2 × 10−2 + 5 × 10−3

b) Representacion de y en sistema decimal

y = 401.3
= 4 × 102 + 0 × 101 + 1 × 100 + 3 × 10−1 + 3 × 10−2 + 3 × 10−3 + · · ·

Ejemplo 1.2 (Sistema binario o base 2). Para representar un número en


sistema binario se usan los dígitos 0 y 1.

a) Representacion de x en sistema binario

x = 13.625
= 8 + 4 + 1 + 0.5 + 0.125
= 23 + 22 + 20 + 2−1 + 2−3
= 1 × 23 + 1 × 22 + 1 × 20 + 1 × 2−1 + 1 × 2−3
= 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 + 1 × 2−1 + 0 × 2−2 + 1 × 2−3

Recordando la representacion de x en sistema decimal y la anterior en


sistema binario se tiene (13.625)10 = (1101.101)2 . Donde los subíndices
10 y 2 indican la base en la que se encuentra el número.

2
Métodos Numéricos con MATLAB

b) Representacion de y en sistema binario


y = 401.3
= 256 + 128 + 16 + 1 + 0.25 + 0.0625 + · · ·
= 1 × 28 + 1 × 27 + 1 × 24 + 1 × 20 + 1 × 2−2 + 1 × 2−4 + · · ·

De forma analoga las representaciones en sistema decimal y binario de y


se relacionan como antes. (401.333 · · · )10 = (110010001.0101 · · · )2 .
Ejemplo 1.3 (Sistema octal o base 8). El número se escribe usando los
dígitos del 0 al 7.
a) Representacion de x en sistema octal.
x = 13.625
= 8 + 5 + 0.625
= 1 × 81 + 5 × 80 + 5 × 8−1

Como antes se tiene que (13.625)10 = (15.5)8


b) Representacion de x en sistema octal.
y = 401.3
= 384 + 16 + 1 + 0.25 + 0.0625 + · · ·
= 6 × 82 + 2 × 81 + 1 × 80 + 2 × 8−1 + 4 × 8−2 + · · ·

Luego (401.333 . . .)10 = (621.24 . . .)8


Ejemplo 1.4 (Sistema hexadecimal o base 16). Para representar un número
en hexadecimal se usan los dígitos del 0 al 9 y las letras A, B, C, D, E y F
en lugar de los números 10, 11, 12, 13, 14 y 15 respectivamente.
a) Representación de x en sistema hexadecimal.
x = 13.625
= 13 + 0.625
= 13 × 160 + 10 × 16−1
= D × 160 + A × 16−1

Luego (13.625)10 = (D.A)16

3
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

b) Representación de y en sistema hexadecimal.

y = 401.3
= 256 + 144 + 1 + 0.3125 + 0.01953125 + · · ·
= 1 × 162 + 9 × 161 + 1 × 160 + 5 × 16−1 + 5 × 16−2 + · · ·

Luego (401.333 · · · )10 = (191.55 · · · )16

Denición 1.1 (Notación cientíca en base 10). Un número real x está


escrito en notación cientíca en base 10 si se puede representar de la forma:
x = ±M × 10n donde 1 ≤ M < 10 (si x 6= 0) y n es un entero. M se conoce
como la mantisa, 10 es la base y n es el exponente o característica.
Ejemplo 1.5. Encontrar la representación cientíca en base de 10 para x =
1231 y y = −0.0000738.

x = 1231 = 1.231 × 103


y = −0.0000738 = −7.38 × 10−5

De la misma forma, se puede utilizar la notación cientíca en el sistema


binario. En este caso x = ±M × 2n donde 1 6 M < 2 (si x 6= 0) y n es un
entero.
Por ejemplo x = (1101.101)2 = (1.101101)2 × 23 .

MATLAB [7] posee la función dec2base(d,b), que convierte un entero


no negativo d en base 10 a una base dada b. El número d no puede ser mayor
de 252 y b debe ser un entero entre 2 y 36.

Ejemplo 1.6. Utilizando MATLAB, transforme 13 base: 2, 5 y 16.


>> n1= dec2base(13, 2)

n1 =

1101

>> n2= dec2base(13, 5)

n2 =

4
Métodos Numéricos con MATLAB

23

>> n3= dec2base(13, 16)

n3 =

D
MATLAB también posee la función bin2dec , que transforma un número
binario en su equivalente en base 10.

Ejemplo 1.7. >> n=bin2dec('11101')


n =

29

1.2 Representación de un número real en una


máquina
Una máquina generalmente no almacena una cantidad matemática x sino
una aproximación binaria a x es llamada representación de punto otante,
denotada por f l(x) y toma la siguiente forma:

f l(x) = ±1 · d1 d2 d3 · · · dk × 2n

donde di es un dígito binario.

f l(x) = (−1)s 1 · f × 2n , donde f = d1 d2 d3 · · · dk (1.1)

El valor de s indica el signo del número, la cantidad 1 · f se denomina


mantisa y se encuentra en base 2, y la cantidad n es el exponente. La máquina
utiliza un formato (longitud de palabra) para almacenar un número real, éste
utiliza múltiplos de 8 bits, donde cada posición contiene un dígito binario o
bit.
El formato de precisión simple usa 32 bits, para almacenar un número
real, el de precisión doble 64 bits y el extendido 128 bits. En el formato

5
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

de precisión simple (32 bits), el primer bit está reservado para el signo del
número denotado por s en la ecuación (1.1) (1 para negativo y 0 para pos-
itivo), los ocho bits siguientes se utilizan para almacenar un patrón de bits
que representan al exponente n, los 23 bits restantes se usan para la mantisa,
pero sólo se almacena la parte de la mantisa denotada por f porque el dígito
principal siempre es 1. En la gura 1.1 se muestra la distribución de los 32
bits en un formato de precisión simple.

1 bit 8 bits 23 bits


Signo del número Exponente Mantisa. Parte fraccionaria f

Figure 1.1: Distribución de 32 bits

El valor del exponente de 8 bits varía de (00000000)2 = 0 a (11111111)2 =


255 para enteros positivos y no permitiría representar exponentes negativos,
por esta razón el valor binario del exponente n no se almacena directamente
y en vez de ello se almacena en forma sesgada como un valor no negativo c.
La relación del exponente n en términos del valor almacenado c y el sesgo b
es n = c − b.
Por ejemplo, para el caso del formato de 32 bits b = 127, si el exponente n
es 2, entonces n = c − b, 2 = c − 127, c = 129, en lugar de almacenar el
exponente n = 2 = (00000010)2 se almacena c = 129 = (10000001)2 . Sí el
exponente n es −5, entonces n = c − b, −5 = c − 127, c = 122, en lugar
de almacenar n = −5 = (−00000101)2 , se almacena c = 122 = (01111010)2 .
En la gura 1.2 se muestra el valor real del exponente n y el correspondiente
valor del exponente sesgado c que se almacenaría en el formato.
(Valor real del exponente n)

- 127 -5 0 2 128

(Valor del exponente sesgado c


almacenado en el formato)
0 122 127 129 255

Figure 1.2: Valores de los exponentes n y c

Para representar un número en un formato especico, se escribe el número


en notación de punto otante base 2 en la forma f l(x) = (−1)s (1.f ) × 2n y
luego se lo almacena en el formato deseado.

6
Métodos Numéricos con MATLAB

Ejemplo 1.8. Represente en formato de precisión simple los siguientes números.


a) Formato de precisión simple para x = 13.625
x = 13.625 = (1101.101)2
= (1.101101)2 × 23
f l(x) = (−1)0 (1.101101) × 23

En este caso s = 0 porque el número es positivo, la parte fraccionaria f


de la mantisa es f = 101101, el exponente real es n = 3, pero se almacena
el exponente sesgado c. n = c − 127, 3 = c − 127, c = 130 = (10000010)2 .
La representación de x = 13.625 en el formato de precisión simple es:
0 10000010 10110100000000000000000
Signo del número Exponente Parte fraccionaria f de la mantisa

b) Formato de precisión simple para y = −0.375


y = −0.375 = (−0.011)2
= (−1.1)2 × 2−2
f l(y) = (−1)1 (1.1) × 2−2

Como el número es negativo s = −1, la parte fraccionaria de la mantisa


es f = 1 y el exponente real es n = −2, el exponente sesgado es c = 125 =
(01111101)2 . La representación de y = −0.375 en el formato de precisión
simple es:
1 01111101 10000000000000000000000
Signo del número Exponente Parte fraccionaria f de la mantisa

En el formato de precisión doble de (64 bits), el primer bit está reservado


para el signo del número; los 11 bits siguientes se usan para almacenar el ex-
ponente sesgado, y los 52 bits restantes se usan para almacenar la mantisa f .
El sesgo b que se usa es 1023. En la gura 1.3 se muestra la correspondencia
entre el valor real del exponente n y el valor sesgado del exponente c.

7
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

(Valor real del exponente n)


- 1023 0 1024

(Valor del exponente sesgado c


almacenado en el formato)
0 1023 2047

Figure 1.3: Correspondencia entre el valor real y el valor sesgado del exponente

0 10000001001 10011000. . . 0
Signo del número Exponente Parte fraccionaria f de la mantisa

Por ejemplo, el número real que representa el formato de precisión doble


(64 bits), corresponde a un número positivo, el valor del exponente sesgado
es
c = (10000001001)2 = 1033
luego el exponente real es n = c − b, n = 1033 − 1023 = 10 y la parte frac-
cionaria de la mantisa es f = 10011. Por lo tanto el número que representa
es:
(1.10011)2 × 210 = (1 × 20 + 1 × 2−1 + 0 × 2−2 + 0 × 2−3 + 1 × 2−4 + 1 × 2−5 ) × 210
= 210 + 29 + 26 + 25
= 1632

Los números que representa una máquina están dentro de un rango numérico
que depende del formato que esta utilice (ya que existen restricciones para
la mantisa y el exponente, impuestas por la longitud de palabra), esto quiere
decir que no todo número real se puede representar. Para un formato de
precisión simple (32 bits) el máximo número positivo (Mnp) es aproximada-
mente 3 × 1038 y el mínimo número positivo (mnp) es aproximadamente
10−38 . El mínimo número negativo (mnn) es 3 × 10−38 y el máximo número
negativo (Mnn) es −3 × 10−38 . En la Figura 1.4 se ilustran los intervalos de
números representables en el formato de precisión simple.
Cuando el número que se quiere representar es 0, se iguala a 0 cada uno de
los 31 últimos bits, de modo que el esquema descrito en la ecuación (1.1) se
omite en este caso. El bit de signo puede ser 0 ó 1. La magnitud más pequeña
diferente de 0 que se puede almacenar es limitada por esta excepción y es
2−126 ≈ 10−38 [1].

8
Métodos Numéricos con MATLAB

Figure 1.4: Intervalos de números representables

Cuando se hacen cálculos en una máquina que usa un formato de precisión


simple y la magnitud del número resultante es menor que 10−38 se produce
un subdesbordamiento o subujo (underow) y suele dársele el valor de cero,
los números que tengan una magnitud mayor a 3 × 1038 producen un desbor-
damiento o sobreujo (overow) y los cálculos se interrumpen. En la gura
1.5 se ilustran los intervalos donde ocurre un overow o underow.

Figure 1.5: Overow o underow

El rango numérico para una máquina que usa un formato de precisión


doble (64 bits) comprende números cuya magnitud está entre 10−308 y 10308 .
Los números en una máquina no están uniformemente distribuidos, además
no todo número real que se encuentre en el rango numérico de la máquina se
puede representar exactamente. Por ejemplo el número −39.9 tiene una man-
tisa que es una sucesión binaria innitamente larga (−39.9 = −1.0011111100×
25 ) que se debe reducir a 23 bits (en precisión simple) para poder almace-
narlo.
El método de reducción dictado por la norma IEEE es el redondeo estadís-
tico en el que se redondea hacia arriba si el valor más allá del bit 23 de
f excede a 2−24 , se redondea hacia abajo si es menor que 2−24 , y se re-
dondea al siguiente valor par o impar si es exactamente 2−24 . Para −39.9,

9
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

f l(−39.9) = −1.00111111001100110011010 × 25 se redondeó hacia arriba.


El valor del número almacenado es −39.90000152587890625 [1]. Para ilus-
trar esta situación considere una máquina que maneja números de la forma:
± 1 · d1 d2 × 2n donde n = −1, 0, 1. Los números positivos que maneja esta
máquina son:

1.00 × 2−1 = (1 × 20 + 0 × 2−1 + 0 × 2−2 ) × 2−1 = 0.5


1.01 × 2−1 = 0.625
1.10 × 2−1 = 0.75
1.11 × 2−1 = 0.875
1.00 × 20 =1
1.01 × 20 = 1.25
1.10 × 20 = 1.5
1.11 × 20 = 1.75
1.00 × 21 =2
1.01 × 21 = 2.5
1.10 × 21 =3
1.11 × 21 = 3.5
Observe que a medida que los números se alejan de cero la distancia entre
ellos aumenta; para el primer grupo la distancia es 0.125, para el segundo
grupo es de 0.25 y para el tercer grupo es de 0.5.
El rango numérico de la máquina que se está considerando se encuentra en-
tre 0.5 y 3.5 para números positivos, y entre −3.5 y −0.5 para números
negativos. Observe que no todos los números reales que se encuentran en el
intervalo cerrado [0.5, 3.5] se pueden representar en esta máquina, por ejem-
plo el número real 2.1 se almacenaría como 2 (¾por qué?).
En general en el sistema numérico de una máquina hay huecos o discon-
tinuidades.
En la recta real, dado cualquier número real no existe el siguiente número real
más pequeño ni el siguiente número más grande, pero en el sistema numérico
de una máquina si existe. Para ilustrar esta situación considere el número
de una máquina de precisión simple.
El número es positivo, el exponente sesgado es (10001111)2 = 143, el
exponente real es 16 y la mantisa es: (1.100100000000000000000001)2 . El
número que representa la máquina es:

10
Métodos Numéricos con MATLAB

0 10001111 10010000000000000000001

(1.100100000000000000000001)2 × 216 = 102400.0078125

El siguiente número más grande en la máquina se halla sumando 2−23 a


la mantisa (o un 1 al último dígito de la mantisa ¾por qué?)

1.10010000000000000000001
+ 1
1.10010000000000000000010

Luego, el número siguiente más grande en la máquina es:

(1.1001 . . . 010)2 × 216 = (1 × 20 + 1 × 2−1 + 1 × 2−4 + 1 × 2−22 ) × 216


= 102400.015625

El siguiente número más pequeño en la máquina se halla restando 2−23 a la


mantisa,

1.10010000000000000000001
− 1
1.10010000000000000000000

El número siguiente más pequeño en la máquina es:

(1.10010 . . . . . . 0)2 × 216 = 102400


En la gura 1.6, x es el número y xp y xg denotan respectivamente el
siguiente número más pequeño y el siguiente número más grande. Se observa
que el número original de la máquina no sólo representa a 102400.0078125
sino a muchos números reales que se hallen entre este número y sus números
más cercanos. En otras palabras, el número original de la máquina representa
cualquier número real en el intervalo [102400, 102400.015625). En MATLAB
la función eps representa la distancia de 1 al siguiente número en punto
otante. En el formato IEEE el valor de eps es: 2−52 y el valor decimal
aproximado es: 2.2204 × 10−16 . MATLAB posee las funciones realmin y

11
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

Figure 1.6: Overow o underow

realmax que representan respectivamente el número más pequeño y más


grande que se puede representar. Sí una operación produce un valor más
grande que realmax, el resultado es el valor en punto otante innito o Inf,
sí una operación produce un valor que no está denido, el resultado es NaN
(Not a Number). En la siguiente tabla se muestran los valores de las funciones
antes denidas.
Binario Decimal
eps 2  (-52) 2.2204e-16
realmin 2  (-1022) 2.2251e-308
realmax 2-eps*2 (1023) 1.7977e+308
MATLAB usa el sistema punto-otante IEEE-64 bits para representar
todo número [7]. Sí x = 230 , r1 = 2−22 , r2 = 2−23 y construimos una sentencia
logica de igualdad a x entre; x+r1 y x+r2 , MATLAB asumirá que x 6= x+r1
pero x = x + r2 ,¾por Qué?.

1.3 Aritmética de precisión nita


La aritmética de precisión nita signica que los cálculos se hacen con un
número constante de dígitos, así por ejemplo: si se quiere sumar x = 12.16
y z = 8.7243 usando aritmética de corte a 3 dígitos, el resultado es x + z =
12.1 + 8.72 = 20.8; ahora si x y z se suman usando aritmética de redondeo
a tres dígitos, el resultado es x + z = 12.2 + 8.72 = 20.9. Observe que el
resultado que se obtiene en ambos casos es una aproximación al valor exacto
x + z = 20.8843.
En general, cuando se usa aritmética a k dígitos lo primero que se hace
es escribir los números en la forma:

x = ±0 · d1 d2 d3 . . . dk dk+1 dk+2 . . . × 10n , d1 6= 0

12
Métodos Numéricos con MATLAB

después se aproxima x por

f l(x) = ±0 · d1 d2 d3 . . . dk × 10n

Si se usa corte y redondeo, x se aproxima por

f l(x) = ±0 · d1 d2 d3 . . . δk × 10n

donde δk = dk si dk+1 es 0, 1, 2, 3, 4 o δk = dk + 1 si dk+1 es 5, 6, 7, 8, 9.

Ejemplo 1.9. El número 22/7 tiene una expansión decimal de la forma:


22
= 3.142857 · · · = 0.3142857 · · · × 101
7

La representación de punto otante de 22


7
usando corte a 4 dígitos es
 
22
fl = 0.3142 × 101 = 3.142
7

Si se usa redondeo a 4 dígitos


 
22
fl = 0.3143 × 101 = 3.143
7

Observe que el cuarto dígito ahora es 3 y no 2, esto se debe a que el quinto


dígito en la expansión de 22/7 es 8 y como 8 es mayor que 5 se le suma 1 al
cuarto dígito.

Ejemplo 1.10. Escribir el número x = 148.17 en la forma de punto otante


usando corte y redondeo a 4, 3 y 2 dígitos.

x = 148.17 = 0.14817 × 103

corte redondeo
4 dígitos f l(x) = 0.1481 × 103 = 148.1 f l(x) = 0.1482 × 103 = 148.2
3 dígitos f l(x) = 0.148 × 103 = 148 f l(x) = 0.148 × 103 = 148
2 dígitos f l(x) = 0.14 × 103 = 140 f l(x) = 0.15 × 103 = 150

13
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

El error que resulta al reemplazar un número cualquiera x por su forma de


punto otante f l(x) se conoce como error de redondeo , independientemente
de si se aplica corte o redondeo para hallar la forma de punto otante f l(x).
A continuación se dene el error absoluto y el error relativo . Si x̄ es una
aproximación
de x entonces el error absoluto es | x − x̄ | y el error relativo
x − x̄
es , x 6= 0.

x
Ejemplo 1.11. Error absoluto y error relativo para varios x y x̄
Error absoluto Error relativo
x = 104 x̄ = 103 1 0.009615384
x = 1.04 x̄ = 1.03 0.01 0.009615384
x = 0.0104 x̄ = 0.0103 0.0001 0.009615384
Observe que el error relativo es el mismo en los tres casos, pero el er-
ror absoluto es distinto en cada caso. Es aconsejable como una medida de
precisión trabajar con el error relativo ya que el error absoluto puede ser en-
gañoso. Un error de sólo un metro al determinar la distancia entre la tierra
y Júpiter sería algo asombroso, pero no sería algo aceptable que un cirujano
cometiera un error de esa magnitud al efectuar una incisión [4].
Ejemplo 1.12. Si f l(x) es una aproximación de x con corte a k dígitos.
Demuestre que el error relativo que se comete al reemplazar x por f l(x) está
acotado por 10−k+1 .

Suponga que x = 0 · d1 d2 · · · dk dk+1 dk+2 · · · × 10n , entonces f l(x) = 0 ×


d1 d2 · · · dk × 10n

|x − f l(x)| 0 · d1 d2 · · · dk dk+1 dk+2 · · · × 10n − 0 · d1 d2 . . . dk × 10n



=
x 0 · d1 d2 · · · dk dk+1 dk+2 · · · × 10n

0.00 · · · dk+1 dk+2 · · ·
=
0 · d1 d2 · · · dk dk+1 dk+2 . . .
0 · dk+1 dk+2 . . . × 10−k

= 6 1 × 10−k = 10 × 10−k = 10−k+1
0 · d1 d2 · · · dk dk+1 dk+2 . . . 0.1
Luego

x − f l(x)
6 10−k+1

x

14
Métodos Numéricos con MATLAB

(La desigualdad es porque una cota para el numerador 0 · dk+1 dk+2 . . . ×


10−k es 0.99 . . . × 10−k 6 1 × 10−k , y una fracción alcanza su valor más
grande cuando el denominador es el más pequeño, en este caso el valor más
pequeño para 0 · d1 d2 . . . dk dk+1 dk+2 . . . es 0.1).
Ejercicio 1. Demuestre que el error relativo que se comete al reemplazar x
por (x) usando redondeo a k dígitos está acotado por 1/2 × 10−k+1 .
Sugerencia: se deben considerar dos casos:
Si dk+1 < 5 entonces f l(x) = 0 · d1 d2 . . . dk × 10n .
Si dk+1 ≥ 5 entonces f l(x) = 0 · d1 d2 . . . dk × 10n + 10n−k .
Denición 1.2. Se dice que el número x aproxima a x con τ dígitos (o
cifras) signicativos, si τ es el entero no negativo más grande para el cual,

x − x̄ −τ
x < 5 × 10

Ejemplo 1.13. 1) Si x = 3.141592 y x̄ = 3.1



x − x̄ −2
x = 0.013239147 = 1.3239147 × 10
< 5 × 10−2

x̄ aproxima a x con 2 cifras signicativas.


2) Si x = 100000 y x̄ = 99994

x − x̄ −4
x = 0.00006 = 0.6 × 10
< 5 × 10−4

x̄ aproxima a x con 4 cifras signicativas


3) Si x = 0.000012 y x = 0.00004

x − x̄ 0
x = 2.3̄ < 5 × 10

x̄ aproxima a x sin cifras signicativas


4) Si x = 0.000012 y x = 0.00001

x − x̄ −1
x = 0.16̄ = 1.6̄ × 10
< 5 × 10−1

x̄ aproxima a x con 1 cifra signicativa

15
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

1.4 Arimética en una Máquina


Para analizar los errores que surgen al efectuar cálculos en una máquina de-
bido a la limitante de la longitud de palabra (precisión simple, precisión doble
etc.) se supondrá una máquina que opera en decimal y trabaja aritmética a
5 dígitos usando redondeo. Si f l(x) y f l(z) son las representaciones para x y
z , y además ⊕, , ⊗ y denotan las operaciones suma, resta, multiplicación
y división en la máquina entonces:
x⊕z = f l(f l(x) + f l(z))
x z = f l(f l(x) − f l(z))
x⊗z = f l(f l(x) × f l(z))
x z = f l(f l(x) ÷ f l(z))
Ejemplo 1.14. Para x = 2/3 = 0.66666 · · · × 100 , f l(x) = 0.66667 × 100 =
0.66667
z = 22/7 = 0.3142857142 × · · · × 101 , f l(z) = 0.31429 × 101 = 3.1429

x⊕z = f l(0.66667 + 3.1429) = f l(3.80957) = 3.8096 = 0.38096 × 101


x z = f l(0.66667 − 3.1429) = f l(−2.47623) = −2.4762 = −0.24762 × 101
x⊗z = f l(0.66667 × 3.1429) = f l(2.095277143) = 2.0953 = 0.20953 × 101
x z = f l(0.66667 ÷ 3.1429) = f l(0.21211938) = 0.21212 = 0.21212 × 100
En la tabla siguiente se muestran los valores de las operaciones en la
máquina, los valores reales y el error relativo en cada operación.

Operación Resultados Valor real Error rela-


en la tivo
máquina
x⊕z 3.8096 80/21 0.200 × 10−4
x z −2.4762 −52/21 0.385 × 10−5
x⊗z 2.0953 44/21 0.295 × 10−4
x z 0.21212 7/33 0.571 × 10−5

Como el error relativo más grande en las operaciones es 0.295 × 10−4 los
resultados tienen 5 dígitos signicativos ya que 0.295 × 10−4 = 2.95 × 10−5 <
5 × 10−5 .

16
Métodos Numéricos con MATLAB

1.5 Pérdida de dígitos o cifras signicativas


Se presenta cuando se restan cantidades casi iguales en una máquina, por
ejemplo, si x = 2.1784301 y z = 2.1765628 se restan en una máquina decimal
que maneja 5 dígitos y usa redondeo se tendría que:

f l(x) =0.21784 × 101


f l(z) =0.21766 × 101
f l(x) − f l(z) =0.00018 × 101
x z =f l(f l(x) − f l(z)) = 0.18000 × 10−2

Observe que para representar a x z en su forma de punto otante se


necesito desplazar dígitos en la mantisa añadiendo tres ceros en el lado dere-
cho, estos ceros carecen de sentido y no representan una exactitud adicional
ya que sólo sirven para denotar el lugar decimal.
El valor real de x − z es 0.0018673 y el error relativo es de 0.036041.
El valor dado por la máquina tiene 2 cifras signicativas ya que 0.036041 =
3.6041 × 10−2 < 5 × 10−2 . En este caso, aunque se trabaja con 5 dígitos, el
número 0.18000 × 10−2 sólo tiene 2 cifras signicativas, ya que las primeras
tres cifras de x y z coinciden, su diferencia x − z sólo contiene 2 cifras deci-
males.
Para apreciar la pérdida de dígitos signicativos cuando se restan números
casi iguales suponga que x y z son números reales tales que x > z , y

x =0 · d1 d2 d3 · · · dp dp+1 dp+2 · · · dk dk+1 · · · × 10n


z =0 · d1 d2 d3 · · · dp αp+1 αp+2 · · · αk αk+1 · · · × 10n

si se utiliza una máquina decimal que usa una mantisa a k dígitos (corte)
entonces
f l(x) =0 · d1 d2 d3 · · · dp dp+1 dp+2 · · · dk × 10n
f l(z) =0 · d1 d2 d3 · · · dp αp+1 αp+2 · · · αk × 10n

Ahora,

f l(x) − f l(z) = 0.000


| {z· · · 0}|βp+1 βp+2 · · · βk × 10n
{z }
p cifras
k - p cifras

x y = f l(f l(x) − f l(z)) = 0. βp+1 βp+2 βk ×10n−p


| {z }
k - p cifras

17
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

Por lo tanto el número que se usa para representar a x − z tendrá solamente


k − p cifras signicativas.
La pérdida de dígitos signicativos debido al error de redondeo a veces
se puede evitar reformulando el problema o reordenando los cálculos o reem-
plazando en el caso de haber una función por un polinomio de Taylor.

Ejemplo 1.15. El enunciado x2 + 1 − 1 implica √ perdida de cifras signi-
cativas para valores de x cercanos a 0 ya que x2 + 1 ≈ 1 para x ≈ 0 , y
se restarían dos números casi iguales.
Si se evalúa en x = 0.1 y se usa aritmética a 6 dígitos usando redondeo
se tiene:
x2 = 0.01 = 0.1 × 10−1
x2 + 1 = 0.1 × 10−1 + 1 = 1.01 = 0.101 × 101

x2 + 1 = 1.004987562 = 0.1004987562 × 101

x2 + 1 ≈ 1.00499 (redondeo a 6 dígitos)

x2 + 1 − 1 ≈ 1.00499 − 1

x2 + 1 − 1 ≈ 0.00499 = 0.499 × 10−2 .

Para
√ evitar la pérdida de dígitos signicativos el enunciado
x + 1 − 1 se puede presentar también como
2

√ √  √x2 + 1 + 1 x2
x2 + 1 − 1 = x2 + 1 − 1 √ =√
x2 + 1 + 1 x2 + 1 + 1
x2 0.01 0.01
√ ≈ = = 0.498756 × 10−2
2
x +1+1 1.00499 + 1 2.00499
(redondeo a 6 dígitos)

El valor real de x2 + 1 − 1 en√x = 0.1 es 0.498756211 × 10−2 .
El error relativo con la expresión x2 + 1 − 1 es:
4.88793913 × 10−4 < 5 × 10−4 . (cuatro cifras signicativas).
x2
El error relativo con la expresión √ es:
x2 + 1 − 1
4.230523758 × 10−7 < 5 × 10−7 (siete cifras signicativas).
Ejemplo 1.16. El valor del polinomio 3.5x2 − 4.9x evaluado en x = 5.8 es
89.32.
Si se usa aritmética de 3 dígitos redondeo, se tiene x2 ≈ 33.6, 3.5x2 ≈ 118,

18
Métodos Numéricos con MATLAB

4.9x ≈ 28.4. Luego 3.5x2 −4.9x ≈ 89.6, el error relativo es aproximadamente


3.135 × 10−3 .
Si el polinomio se escribe como x(3.5x − 4.9) y se evalúa en x = 5.8 usando
aritmética de 3 dígitos y redondeo entonces, 3.5x ≈ 20.3, 3.5x − 4.9 ≈ 15.4
asi tenemos que x(3.5x − 4.9) ≈ 89.3
En este caso el error relativo es 0 (no siempre es así). El error se ha re-
ducido porque en la segunda parte se ha disminuido el número de cálculos,
en la primera se necesitan 3 multiplicaciones y una resta. En la segunda sólo
dos multiplicaciones y una resta.
En general los polinomios deben expresarse en forma anidada antes de re-
alizar una evaluación, porque así se disminuye al mínimo la cantidad de
cálculos aritméticos.
Si el polinomio ax3 +bx2 +cx+d se expresa como x[x(ax+b)+c]+d ¾Cuántas
operaciones necesita cada expresión para su evaluación?
1
Ejemplo 1.17. La cantidad √ presenta pérdida de cifras
4.0000000024 − 2
signicativas por que se restan números casi iguales.
Una forma alternativa para aproximar esta cantidad es la siguiente.

El polinomio de Taylor de grado 1 para la función f (x) = x alrededor de
x0 = 4 es:
P1 (x) =f (x0 ) + f 0 (x0 ) (x − x0 )
1
P1 (x) =2 + (x − 4)
4
Ahora se puede aproximar f (x) por P1 (x),y evaluar en x = 4.0000000024
f (x) ≈ P1 (x)
√ 1
x ≈ 2 + (x − 4)
4
Evaluando en x tenemos
√ 1 1
4.0000000024 ≈ 2 + (4.0000000024 − 4) = 2 + (0.0000000024)
4 4
1
24 × 10−10

=2+
4
= 2 + 6 × 10−10
Luego
1 1 1 1
√ ≈ −10
= −10
= × 1010
4.0000000024 − 2 2 + 6 × 10 −2 6 × 10 6

19
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

Los tres primeros dígitos signicativos son 1.67 × 109 .


Encuentre en diferentes calculadoras o en un computador el número igual
1
a √ ¾Qué puede concluir?
4.0000000024 − 2

1.6 Ejercicios
1. Escriba los números 275.5, 79.625 y 22 + 2−10 en base 2, 8 y 16.

2. Halle en decimal (16.1)8 , (1C.AF )16 , (1.0011)2 , (1001.01)2.

3. Escriba los números del ejercicio 1 en la notación cientíca en el sistema


binario.

4. Veamos cómo hallar el número racional en base 10 representado por el


número binario (0.01)2
Escribiéndolo en forma desarrollada:
(0.01)2 = (0 × 2−1 ) + (1 × 2−2 ) + (0 × 2−3 ) + (1 × 2−4 ) + · · ·
X∞ ∞
X
−2 k
= (2 ) = −1+ (2−2 )k
k=1 k=0
1
= −1 + = −1 + 4/3 = 1/3.
1 − 1/4
Es una serie geométrica de razón 1/4 y primer término 1.
Muestre que (0.0011)2 = 1
5
= 0.2 y que (0.001)2 = 17 .

5. Represente los números 7.2 y −8/7 en un formato de precisión simple


(use corte) (Sugerencia: utilice el resultado del ejercicio 4)

6. Obtenga el equivalente decimal de los números dados en los siguientes


formatos

(a) Precisión simple

0 10011111 01110000000000000000101

(b) Precisión doble

20
Métodos Numéricos con MATLAB

1 01111111 11000000000000000000000

0 00001111111 100000000 . . . 00000000011

7. Encuentre en decimal el número siguiente y el anterior a los números


del ejercicio 6 a).

8. Demuestre que 4/5 no se puede representar de manera exacta en una


máquina que tiene un formato de precisión simple. ¾Cuál es el número
de máquina más cercano?.

9. ¾Es 2/3 (1 − 2−24 ) un número que se puede representar de manera ex-


acta en un formato de precisión simple?

10. ¾Cuáles de los siguientes números se pueden representar exactamente


en un formato de precisión simple?
1040 , 2−1 , 1/5, 1/3 y 1/256.

11. Sea x = 216 + 2−8 + 2−9 + 2−10 . Si x∗ denota el número de máquina


más cercano a x en un formato de precisión simple ¾Cuál es el valor de
|x − x∗ |?.

12. Convierta los siguientes números binarios en su forma decimal.

(a) 1.0110101
(b) 11.0010010001

13. Los números del ejercicio anterior son aproximadamente 2 y π . Halle
el error de dichas aproximaciones; es decir, halle
√ √
(a) 2 − 1.0110101 (use 2=1.41421356237309 . . . )
(b) π − 11.0010010001 (use π =3.14159265358979 . . . )

14. La serie innita 1 + 12 + 13 + 14 . . . es divergente. Escriba un programa


que evalúe esta suma. ¾Es divergente la serie de la computadora? En
caso negativo, ¾por qué no?

21
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

15. El término epsilon de la máquina es el menor valor positivo tal que la
máquina es capaz de distinguir entre (1 + ) y 1. Este valor depende
del hardware y de cómo el compilador de un lenguaje de programación
almacena la mantisa de un número de punto otante. El epsilon de la
máquina para una mantisa normalizada (1 · f ) donde f se almacena en
ubicaciones de n bits es igual a 2−n . Para una mantisa no normalizada
(·1f ) que se almacena en ubicaciones de n bits, el epsilon de la máquina
es 21−n . El error al almacenar una cantidad x tiene una cota superior
 |x|.  (Akai, p. 60-61).Determine el epsilon de su máquina.

16. El epsilon de la máquina (ver el problema 15) permite estimar una
cota superior para el error en una operación. Sea f (x, y)el resultado
verdadero de una operación sobre x y y y sea  el epsilon de la máquina.
El error E al calcular y almacenar f (x, y) está acotado por
 
∂f ∂f
E 6 B = |f (x, y) | + (1 + ) x + y
∂x ∂y

Los términos con las derivadas parciales explican los errores en la op-
eración debidos a representaciones inexactas de x y y ; la multiplicación
por (1 + ) y la adición de  |f (x, y)| explica los errores al almacenar
el resultado.
Con el resultado del problema 15 (o un valor cticio de 10−7 para
), estimar la cota superior B para el error en z en las operaciones
siguientes. (Akai, p. 61).

(a) z = 1.897 + 9.635


(b) z = 4.058 × 13.27
(c) z = 2.345÷ 19.28
(d) z = 19.28 ÷ 2.345

17. Aplique la aritmética de redondeo a tres dígitos para realizar los sigu-
ientes cálculos. Calcule los errores absolutos y relativos con el valor
exacto determinado por lo menos a 5 dígitos.

(a) (121 − 0.327) − 119


13
− 67
(b) 14
2e − 5.4

22
Métodos Numéricos con MATLAB

22
π−
(c) 1
7

17

18. Repita el ejercicio anterior aplicando la aritmética de corte a 3 dígitos.


x cos x − sin x
19. Sea f (x) =
x − sin x
(a) Encuentre lim f (x)
x→0
(b) Aplique la aritmética de redondeo a cuatro dígitos para evaluar
f (0.1).
(c) Reemplace las funciones trigonométricas con su tercer polinomio
de Maclaurin y repita la parte b).
(d) El valor real es f (0.1) = −1.99899998. Encuentre el error relativo
de los valores obtenidos en las partes b) y c).

20. Suponga que los puntos (x0 , y0 ) y (x1 , y1 ) se encuentran en una recta
y que y1 6= y0 . Se cuenta con dos fórmulas para hallar la intersección x
de la línea:
x0 y1 − x1 y0 (x1 − x0 )y0
x= x = x0 −
y1 − yo y1 − yo
n
X xi
21. El polinomio de Taylor de grado n para f (x) = ex es .
i=0
i!
Use este polinomio y la aritmética de corte a tres dígitos para encontrar
una aproximación a e−5 mediante cada uno de los siguientes métodos.
9 9
X (−5)i X (−1)i 5i
(a) e −5
≈ =
i=0
i! i=0
i!
1
(b) e−5 = 1/e5 ≈ 9
X (5)i
i=0
i!

¾Cuál fórmula da mayor exactitud?.

22. Sugiera cómo se podría evitar la pérdida de dígitos signicativos en los


siguientes cálculos si x ≈ 0:

23
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES


(a) x2 + 1 − x
(b) x−3 (sin x − x)
(c) (cos x − e−x )/ sin x
(d) sinh x − tanh x

23. Suponga que a 6= 0 y que b2 −4ac > 0 y conside la ecuación ax2 +bx+c =
0. Sus raíces se pueden hallar mediante la conocida fórmula:

(a)
√ √
x1 = (−b + b2 − 4ac)/(2a) x2 =(−b − b2 − 4ac)/(2a)

Pruebe que estas raíces pueden calcularse mediante las fórmulas


equivalentes
(b)
 √   √ 
b ) x1 = (−2c)/ b + b2 − 4ac x2 = (−2c)/ b − b − 4ac
2

Indicación : Racionalice el numerador.



Observación: Cuando b2 − 4ac ≈ |b|, hay que proceder con cuidado
para evitar la pérdida de precisión por cancelación. Si b > 0, entonces
x1 debería ser calculado con la segunda fórmula y x2 con la primer
fórmula; mientras si b < 0, entonces x1 debería ser calculado usando la
primera fórmula y x2 debería ser calculado usando la segunda.

24. Use la fórmula adecuada para calcular x1 y x2 , tal como se explica en


el anterior ejercicio, para hallar las raíces de las siguientes ecuaciones
de segundo grado. (Use aritmética de corte a 6 dígitos).

(a) x2 − 1000.001x + 1 = 0
(b) x2 + 10000.0001x + 1 = 0

25. Determine los tres primeros dígitos signicativos de los números

(a) [(8.0000000025)1/3 − 2]−1


Sugerencia : Utilice serie de Taylor para aproximar (8 + x)1/3

24
Métodos Numéricos con MATLAB

10−15
(b)
1015 ln(1 + 10−15 ) − 1
Sugerencia : Utilice la serie de Taylor para aproximar ln(1 + x)

0.13 × 10−15
(c) use radianes.
cos(10−10 ) − 1
Sugerencia : Utilice serie de Taylor para aproximar cos x

25
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES

26
Capitulo 2
Ceros de Funciones
En este capitulo se estudia el problema de encontrar los valores que hacen
que una función de variable y valor real se anule (Figura 2.1), es decir; dada
una función f : R → R, debemos encontrar los valores de x para los cuales
f (x) = 0. Dada una función f (no necesariamente continua), un cero de f ,
es un número α tal que f (α) = 0.

Figure 2.1: Puntos de corte con el eje X para la función f (x)

A continuación se consideran varios de los métodos clásicos para resolver

27
CAPITULO 2. CEROS DE FUNCIONES

este problema.

2.1 Método de Bisección


Si f es una función continua sobre el intervalo [a, b] y si f (a) · f (b) < 0,
entonces f debe tener por lo menos un cero en (a, b). Este resultado es
consecuencia del teorema del valor intermedio para funciones continuas.
Teorema 2.1. Sea f una función continua en [a, b], sí k es un número entre
f (a) y f (b), entonces existe por lo menos un α ∈ (a, b) tal que f (α) = k
(Figura 2.2).
Para el caso en que f (a)f (b) < 0 se escoge k = 0, luego f (α) = 0 con
α ∈ (a, b).

f(a)

[ | ]
a c b

f(a)f(b) < 0
f(b)

Figure 2.2: Existencia de un cero.

El método de bisección consiste en dividir el intervalo en 2 subintervalos


de igual magnitud, reteniendo el subintervalo en donde f cambia de signo,
para conservar al menos un cero, y repetir el proceso varias veces. Por ejem-
plo, suponga que f tiene un cero en el intervalo [a, b]. Primero se calcula el
a+b
punto medio del intervalo c = , despúes se examinó el signo de f (a)f (c).
2
Si f (a)f (c) < 0, entonces f tiene un cero en [a, c]. A continuación se renom-
bra a c como b y se comienza una vez mas con el nuevo intervalo [a, b], cuya

28
Métodos Numéricos con MATLAB

longitud es igual a la mitad del intervalo original. Si f (a)f (c) > 0, entonces
f (c)f (b) < 0 y en este caso se renombra a c como a. En ambos casos se ha
generado un nuevo intervalo que contiene un cero de f , y el proceso puede
repetirse. Lo anterior genera las sucesiones {an }, {bn } y {cn } (gura 2.3).
Se deja como ejercicio para el lector demostrar que las dos primeras son
monótonas crecientes y decrecientes respectivamente, además se encuentran
acotadas, lo cual garantiza la convergencia de ambas sucesiones.

Figure 2.3: Representación graca sucesiones generadas en el método de


Bisección

Ejemplo 2.1. La función f (x) = x sin x − 1 tiene un cero en el intervalo


[0, 2], porque f (0) = −1 y f (2) = 0.818595.
Si se denota a1 = a = 0, b1 = b = 2 y c1 = (a1 +b1 )/2, entonces c1 = 1. Ahora
f (c1 ) = f (1) = −0.158529, luego la función tiene un cero en el intervalo
[c1 , b1 ] = [1, 2]; se renombra a2 = c1 y b2 = b1 . El nuevo punto medio es
c2 = (a2 + b2 )/2 = (1 + 2)/2 = 1.5 y f (c2 ) = f (1.5) = 0.496242, puesto que
f (1) = −0.158529 y f (1.5) = 0.496242, el cero está en el intervalo [a2 , c2 ] =
[1, 1.5] y se renombra como [a3 , b3 ]. En la siguiente tabla se muestran las
primeras nueve iteraciones del método de bisección para f (x) = x sin x − 1
con a = 0 y b = 2. Finalmente tenemos que c = 1.114157141 es el cero de
f (x) = x sin x − 1.

29
CAPITULO 2. CEROS DE FUNCIONES

n Extremo Extremo Punto Valor de la Error Relativo


izquierdo derecho medio función

an bn cn f (cn ) |(cn − cn−1 )/(cn )|

1 0 2 1 0.158529
2 1 2 1.5 0.496242 0.333333
3 1 1.5 1.25 0.186231 0.2
4 1 1.25 1.125 0.015051 0.111111
5 1 1.125 1.0625 -0.071827 0.0588235
6 1.0625 1.125 1.09375 -0.028362 0.0285714
7 1.09375 1.125 1.109375 -0.006643 0.0140845
8 1.1093750 1.125 1.1171875 0.004208 0.0069930
9 1.1093750 1.1171875 1.11328125 -0.001216 0.0035087

Figure 2.4: Graca de la función f (x) = x sin x − 1

Para detener el método de bisección y dar una aproximación del cero de


una función se pueden usar varios criterios, los cuales son conocidos como
criterios de parada. Uno de los criterios de parada consiste en examinar si
|f (cn )| < ε, donde ε es una tolerancia previamente establecida (por ejemplo
ε = 10−3 ). Otro criterio que se puede utilizar es examinar sí |bn − an | /2 < ε.
También se puede usar como criterio de parada el error relativo entre dos
aproximaciones del cero de f , |(cn − cn−1 )/cn | < ε. En el ejemplo anterior si
ε = 0.005, el procedimiento se pararía en la octava iteración con el criterio

30
Métodos Numéricos con MATLAB

|f (cn )| < ε, ya que:


|f (c8 )| = |f (1.1171875)| = 0.004208 < ε = 0.005
pero si se usa el criterio |(cn − cn−1 )/cn | < ε, el procedimiento se detendría
en la novena iteración porque:

c9 − c8 1.11328125 − 1.1171875
= = 0.0035087 < ε = 0.005
c9 1.11328125
Cuando se generan aproximaciones por medio de una computadora, se re-
comienda jar un número máximo de iteraciones N que debería realizar la
máquina. Esto con el n de contar con un resguardo para evitar la posibili-
dad de que el proceso de cálculo caiga en un ciclo innito cuando la sucesión
diverge (o cuando el programa no esta codicado correctamente).

2.1.1 Convergencia
Teorema 2.2 (Convergencia Bisección). Supongamos que f es continua en
n=0 la sucesión de puntos medios de los in-
[a, b] y f (a)f (b) < 0. Sea {cn }∞
tervalos generados por el método de bisección. Entonces {cn } converge a un
punto α ∈ [a, b] tal que f (α) = 0 y, además
b−a
|cn − α| 6 , n>1
2n
Proof. El teorema del valor intermedio garantiza la existencia de α ∈ [a, b]
tal que f (α) = 0. Por construcción del método, para todo n > 1, se tiene
que
b−a
bn − an = n−1 (2.1)
2
Además α esta en cada intervalo (an , bn ). La distancia entre cn y α no puede
superar la mitad de la longitud de cada intervalo, es decir
b n − an
|α − cn | 6
2
De (2.1) se tiene que
b−a
b−a
|α − cn | 6 2n−1
= (2.2)
2 2n
Aplicando limite cuando n → ∞, en la desigualdad anterior se tiene que la
sucesión de puntos medios converge a al cero α. q

31
CAPITULO 2. CEROS DE FUNCIONES

Utilizando (2.1) se puede demostrar que las sucesiones an y bn convergen


a α. De acuerdo con el teorema anterior, en el método de bisección es posible
determinar cuantas iteraciones son necesarias para aproximar el cero de una
función con una exactitud especíca, ya que el error después de n iteraciones
es |α − cn | 6 (b − a)/2n .

Ejemplo 2.2. Para determinar el número de iteraciones necesarias para


aproximar el cero de f (x) = x sin x − 1 con una exactitud de 10−2 en el
intervalo [0, 2], se debe hallar un número n tal que:
b−a
|α − cn | 6 < 10−2
2n
Es decir (2 − 0)/(2n ) < 10−2 , n > 7.643 . . .. Se necesitan aproximadamente
unas 8 iteraciones. Observe en la tabla de aproximaciones que el cero de
f (x) = x sin x − 1 es c = 1.114157141 y c8 = 1.1171875. El error real es
|c − c8 | = 0.003030359 ≈ 3 × 10−3 . El error real es menor que el error dado
por el teorema; en la mayoría de casos la cota de error dada por el teorema
es mayor que el número de iteraciones que realmente se necesitan. Para este
ejemplo, |α − c7 | = 0.004782141 < 10−2 = 0.01.
El método de bisección tiene la desventaja que es lento en cuanto a con-
vergencia, es decir que se necesita un n grande para que |c − cn | sea pequeño.
Otros métodos requieren menos iteraciones para alcanzar la misma exactitud,
pero entonces no siempre se conoce una cota para la precisión. El método de
bisección suele recomendarse para encontrar un valor aproximado del cero de
una función, y luego este valor se rena por medio de métodos más ecientes.
La razón es porque la mayoría de los otros métodos para encontrar ceros de
funciones requieren un valor inicial cerca de un cero, al carecer de dicho valor,
pueden fallar por completo.
Resolver una ecuación en una variable como por ejemplo: xex = 1 es equiv-
alente a resolver la ecuación xex − 1 = 0, o a encontrar el cero de la función
f (x) = xex − 1. Para aproximar el cero de f se puede hacer la gráca de f y
determinar un intervalo donde f tenga un cero. También se pueden probar
números a y b de tal manera que f (a)f (b) < 0. Para el caso de f (x) = xex −1,
por ejemplo, f (0) = −1, f (1) = e − 1 ≈ 1.71828 entonces f tiene un cero
en el intervalo [0, 1]. Pero si tomamos valores no apropiados para a y b, es
posible que el criterio que se construyo falle y no se detecte el cero que se
busca (Figura 2.5).

32
Métodos Numéricos con MATLAB

Figure 2.5: Intervalo de busqueda erroneo para la función f (x) = xex − 1

Cuando hay ceros de múltiplicidad algebraica mayor a 1, el método de


bisección quizá no sea válido, ya que la función podría no cambiar de signo
en puntos situados a cualquier lado de sus ceros (Figura 2.6)

Figure 2.6: Multiplicidad mayor a 1

La gráca es fundamental para aclarar la situación. En este caso sería

33
CAPITULO 2. CEROS DE FUNCIONES

posible hallar los ceros trabajando con la derivada f 0 (x), que se anula en un
cero de multiplicidad mayor a 1. A continuación se da un codigo basico en
MATLAB, que implementa el método de Bisección, Se deja como ejercicio
para el lector, cambiar el codigo para que dada una tolerancia, calcule el
número de iteraciones necesarias para que la aproximación al cero cumpla
con la tolerancia (2.2).
Algoritmo 1 (Algoritmo Bisección). Dada una función continua f, dos
números a y b tales que, a<b y f(a)*f(b)< 0 y una tolerancia tol> 0.
while (b-a)/2 > tol
c=(a+b)/2;
if f(c)==0
a=c;
b=c;
end
if sign(f(a))==sign(f(b))
a=c;
else
b=c;
end
end

2.2 Método de la Regula Falsi


Supongamos que f (x) es continua en un intervalo [a, b] con f (a) · f (b) < 0.
El método consiste en aproximar la gráca de f (x) por una recta que une
(a, f (a)) y (b, f (b)). El corte α de la recta con el eje X se usa para generar
dos subintervalos, [a, c] y [c, b], donde:
b−a
 
c =b − f (b)
f (b) − f (a)
af (b) − bf (a)
=
f (b) − f (a)
Se escoge el intervalo que contenga la raíz α, examinando los productos;
f (a)·f (c) y f (c)·f (b) y se repite el proceso anterior. La Figura 2.7 muestra la
evolución geometrica de las rectas secantes que se van generando. El método
anterior es conocido como método de la Falsa posición o Regula Falsi.

34
>%%,-5)?) 5)& &%()$'%& -*. .%(')& @% ,%$*. -%$@
%$(%..)@) %$'.% @*& +'%.)@*& &7(%&+B*&2
Métodos Numéricos con MATLAB

#&'% ,<
%'*@*
,* %5 ,<
%'*@* @
87% %5 *.@%$ @%

>%/%.%$(+)G
!"# $%&' ()*"
# "
567" .-) 8-97
# ! ,%-:: NCO: B*52

Figure 2.7: Interpretación geométrica del Método de la Regula Falsi.

Para detener el método se pueden utilizar los criterios de parada del


metodo de bisección.

Ejercicio 2. Efectúe tres iteraciones del método de la Regula Falsi para la


función f (x) = x sin x − 1 con x0 = 1 y x1 = 2.

2.2.1 Convergencia
Teorema 2.3 (Convergencia Regula Falsi). Sea f una función dos veces

&'(#)*+,# -% >%E75) /)5&+ R*@+S()@* /:):4:.)<T?:)


diferenciable en [a, b] con α una única raíz en [a, b]. Suponga que f (a)f (b) <
0, f (α) 6= 0, y f no cambia de signo en [a, b]. Sí
0 00

00
%
w−α
 
f (x)
M= max 0 <1 (2.3)
2 x∈[a,b] f (x)

con92 # w =1
w = b o!"#$ %* +1 el método
a según el caso, entonces ! de !la 1 % +
Regula Falsi!2 $
converge a α.
! "
Proof. Ver referencia [9]. $ %
;2 #%&" $ 1 $ +! q

35 +! +
M2 3+ &+E$* %!! "1 &+E$* #%&" $ !!: A)(%. $ 1 #
)@%,<
)& &+E$* # !! 1 &+E$* # !! A)(%.
CAPITULO 2. CEROS DE FUNCIONES

La siguiente rutina describe la iteración basica del método de la Regula


Falsi. El valor absoluto de la función evaluada en cada iteracion, es utilizado
como criterio de parada. Se deja como ejercicio para el lector la imple-
mentación de otros criterios de parada, y codigos que permitan visualizar la
función.

Algoritmo 2 (Algoritmo Regula Falsi). Dada una función f dos veces difer-
enciable, dos números a y b tales que, a<b y f(a)*f(b)< 0 y una tolerancia
tol> 0.

c=a;
while abs(f(c)) > tol
c=(a*f(b)-b*f(a))/(f(b)-f(a));
if f(c)==0
a=c;
b=c;
end
if sign(f(a))==sign(f(b))
a=c;
else
b=c;
end
end

2.3 Método de Newton


El método de Newton o también llamado método de Newton-Raphson, es
uno de los métodos mas útiles y mejor conocido para aproximar el cero de
una función.
Suponga que α es un cero de f , es decir, f (α) = 0 y que x0 es una
aproximación de c. El polinomio de Taylor de grado uno para f alrededor
de x0 y su correspondiente residuo es:

f 00 (z)
0
f (x) = f (x0 ) + f (x0 )(x − x0 ) + (x − x0 )2 , (2.4)
2
z esta entre x0 y x.

36
Métodos Numéricos con MATLAB

Si en la ecuación (2.4) se reemplaza x por α y usando el hecho que f (α) =


0, se obtiene:

f 00 (z)
0 = f (x0 ) + f 0 (x0 )(α − x0 ) + (α − x0 )2 (2.5)
2

si x0 está sucientemente cerca de α, entonces en el último sumando de la


ecuación (2.5) el término (α − x0 )2 será pequeño, comparado con la suma de
los dos primeros términos.
Si se desprecia este término se puede usar la expresión (2.5) para encontrar
una aproximación al cero de f .

0 ≈ f (x0 ) + f 0 (x0 )(α − x0 ) (2.6)

Despejando c en la ecuación (2.6), se obtiene:

α ≈ x0 − f (x0 )/f 0 (x0 )

El método de Newton comienza con una aproximación inicial x0 del cero


de la función a partir de la cual se dene una sucesión {xn } de aproximaciones
denidas por:

f (xn )
xn+1 = xn − ,n>0 (2.7)
f 0 (xn )

Desde un punto de vista geométrico, lo que hace el método de Newton


es construir la recta tangente a la gráca de f en un punto cercano x0 a α
y encontrar el cero de la recta tangente, x1 ( gura 2.8). La aproximación
x2 es el cero de la recta tangente a la gráca de f en el punto x1 y así
sucesivamente.

37
CAPITULO 2. CEROS DE FUNCIONES

Figure 2.8: Interpretación geométrica

Ejemplo 2.3. Para aproximar una solución de la ecuación 3x + sin x = ex ,


se puede tomar f (x) = 3x + sin x − ex . Observe que f (0) = −1 y f (1) =
1.123189, según el teorema del valor intermedio existe un cero de f en el
intervalo [0, 1].
Si se aplica el método de Newton comenzando con x0 = 0 se tiene:

f (x) = 3x + sin x − ex
0
f (x) = 3 + cos x − ex

f (x0 ) (−1) 1
x 1 = x0 − 0
=0− =
f (x0 ) 3 3
f (x1 ) 1 −0.068417728
x2 = x1 − 0 = − = 0.360170713
f (x1 ) 3 2.549344521
f (x2 ) −6.2798651 × 10−4
x 3 = x2 − 0 = 0.360170713 − = 0.33357967
f (x2 ) 2.502262549

Para esta función |(x3 − x2 )/x3 | ∼


= 6.96 × 10−4 < 10−3 , |f (x3 )| = 5.744 ×
10 < 10 y |x3 − x2 | = 2.50967 × 10−4 < 10−3 .
−8 −7

38
Métodos Numéricos con MATLAB

Los criterios de parada mencionados en el método de bisección también


pueden ser utilizados en el método de Newton. A continuación se estudiara
la convergencia, expandiendo f (x) alrededor de xn :

(x − xn )2 00
f (x) = f (xn ) + (x − xn )f 0 (xn ) + f (zn ), zn ∈ (xn , x)
2
Haciendo x = α y teniendo en cuenta que f (α) = 0 se tiene,

(α − xn )2 00
0 = f (xn ) + (α − xn )f 0 (xn ) + f (zn ), zn ∈ (xn , α)
2
00
f (xn ) 2 f (zn )
0= 0 + (α − xn ) + (α − xn )
f (xn ) 2f 0 (xn )
00
f (xn ) 2 f (zn )
−α = −xn + 0 + (α − xn )
f (xn 2f 0 (xn )
  00
f (xn ) 2 f (zn )
−α = − xn − 0 + (α − xn )
f (xn ) 2f 0 (xn )

Usando (2.7) se obtiene


  00
f (xn ) 2 f (zn )
xn − 0 − α = (xn − c)
f (xn 2f 0 (xn )
00
2 f (zn )
xn+1 − α = (xn − α)
2f 0 (xn )

Sí se dene el error en el paso n-esímo por: en = xn − α, entonces


 00 
f (zn )
en+1 = e2n , zn ∈ (xn , α) (2.8)
2f 0 (xn )

2.3.1 Convergencia
Teorema 2.4 (Convergencia Newton). Sea f una función dos veces diferen-
ciable en un intervalo alrededor de α con f (α) = 0 y f 0 (α) 6= 0. Si x0 esta lo
sucientemente cerca a α, la iteración (2.7) del método de Newton converge
a α.

39
CAPITULO 2. CEROS DE FUNCIONES

Proof. Considere un intervalo I = [c − ε, c + ε], con ε > 0. Se toma



1 f 00 (x)
M = max 0

2 x∈I f (x)

Una condición inicial x0 ∈ I tal que M |ε0 | < 1. Usando (2.8) se tiene que
|ε1 | ≤ M |ε0 |2 = M |ε0 ||ε0 | < |ε0 | ≤ ε
luego x1 ∈ I , ya que:
|ε1 | < ε
|x1 − α| < ε
−ε < x1 − α < ε
−ε + c < x1 < ε + c
x1 ∈ [c − ε, c + ε]
Además,
M |ε1 | ≤ M 2 |ε0 |2 < 1
M |ε1 | ≤ (M |ε0 |)2 < 1
Suponga que xn ∈ I y M |εn | < 1, entonces
|εn+1 | ≤ M |εn |2 = M |ε0 ||ε0 | < |εn | ≤ ε
Por lo tanto xn+1 ∈ I y
M |εn+1 | ≤ (M |εn |)2 < 1 (2.9)
Se tiene que xn ∈ I y M |εn | < 1 para todo n. Además, de (2.9) se tiene
n
M |εn+1 | ≤ (M |ε0 |)2
1 n
|εn+1 | ≤ (M |ε0 |)2
M
Al ser M |ε0 | < 1, limn→∞ εn = 0 y por lo tanto xn → α. Tomando limites
en (2.8)
εn+1 f 00 (c)
lim 2 = 0
n→∞ εn 2f (c)
Por la continuidad de f 00 y porque zn → α cuando n → ∞
q

40
Métodos Numéricos con MATLAB

La convergencia del método se puede garantizar, si

M |x0 − α| = M |ε0 | < 1

es decir, si
1
|x0 − α| < 00
maxx∈I ff 0 (x)
1 (x)
2
lo cual indica, que tan cerca debe estar x0 del cero α. La estructura de la
condición anterior, indica que el método presentara problemas de convergen-
cia, si una de las iteraciones se anula en la primera o segunda derivada de f .
Más adelante se trabajar un algunas ejemplos donde el método de Newton
no converge.
Por otro lado, la relación de los errores que se describe en (2.8), indica
que cada error es proporcional a la segunda potencia del error previo. Es
decir, que si se comienza con una aproximación del cero de f con 1 dígito
correcto, después de una iteración se tendría dos dígitos correctos; después
de dos iteraciones cuatro dígitos correctos; y después de tres iteraciones ocho
dígitos correctos, etc.
Ejemplo 2.4. Halle una expresión para aproximar
√ la raíz cuadrada de un
número R > 0. Use la expresión para aproximar 5.


x= R
x2 = R
x2 − R = 0, x es la raíz cuadrada de R

Se puede aplicar el método de Newton a la función f (x) = x2 − R.


f (xn )
xn+1 = xn −
f 0 (xn )
x2n − R
xn+1 = xn − ,
2xn
!
1 R
xn+1 = xn +
2 xn

Para aproximar 5, se usa la fórmula con R = 5 y si se toma x0 = 2
entonces

41
CAPITULO 2. CEROS DE FUNCIONES

!
1 5
x1 = x0 + = 2.25
2 x0
!
1 5
x2 = x1 + = 2.236111111 . . .
2 x1
!
1 5
x3 = x2 + = 2.236067978 . . .
2 x2

en una calculadora 5 = 2.236067977 . . .
Existen funciones y puntos iniciales para los que el método de Newton
fracasa. La Figura 2.9 muestra una función en la que la gráca tiene una
forma especial y la cual genera que la sucesión entre en un ciclo innito, es
decir, diverge.
La Figura 2.10 muestra una función y una condición inicial x0 , que hace que
el método se indetermine. ¾ Porque divergen las iteraciones anteriores ?

Figure 2.9: Divergencia método de Newton.

42
Métodos Numéricos con MATLAB

Figure 2.10: Divergencia método de Newton.

En el método de Newton hay que evaluar dos funciones en cada iteración,


f (xn ) y f 0 (xn ). Para algunas funciones f 0 (xn ) no es una expresión sencilla y
se requieren más operaciones aritméticas para evaluarla que para la función.
Esto hace que el método de Newton sea más costoso, por ejemplo que el
método de bisección, en el que en cada iteración la función se evalúa una vez.

La siguiente rutina describe la iteración basica método de Newton. El


valor absoluto de la función evaluada en cada iteracion, es utilizado como
criterio de parada. Se deja como ejercicio para el lector la implementación de
otros criterios de parada, y codigos que permitan visualizar las rectas que se
van generando. Además, es importante implementar algunas restricción, ya
que si la función no cumple con las condiciones de convergencia del método,
el denominador se puede indeterminar o se puede entrar en un ciclo innito.
Algoritmo 3 (Algoritmo Newton). Dada una función f, su derivada g, una
condición inicial x0 y una tolerancia tol> 0.
c=x0-(f(x0)/g(x0));

43
CAPITULO 2. CEROS DE FUNCIONES

while abs(f(c))>tol
x0=c;
c=x0-x0-(f(x0)/g(x0));
end

2.4 Método de la Secante


El método de la secante, es otro método para aproximar el cero de una
función en el que en cada iteración se evalúa la función y no la derivada. A
continuación se presenta este método.
Utiliza la misma fórmula del Método de Newton:

f (xn )
xn+1 = xn −
f 0 (xn )

Pero en lugar de utilizar la derivada f 0 (xn ), este valor se aproxima por

f (xn ) − f (xn−1 )
f 0 (xn ) ≈
xn − xn−1

0
Al reemplazar esta aproximación de f (xn ) en la fórmula de Newton se
obtiene:
f (xn )(xn − xn−1 )
xn+1 = xn − n > 1, (2.10)
f (xn ) − f (xn−1 )

Ya que el cálculo de xn+1 requiere conocer xn y xn−1 , se debe dar al


principio dos aproximaciones iniciales x0 y x1 .
La interpretación geométrica del método de la secante es similar a la del
método de Newton. La recta tangente a la curva se reemplaza por una recta
secante. El cero de f se aproxima por el cero de la recta secante a f , ( Figura
(4.10)). Si x0 y x1 son las aproximaciones iniciales, la aproximación x2 es
la intersección de la recta que une los puntos (x0 , f (x0 )) y (x1 , f (x1 )). La
aproximación x3 es la intersección de la recta que une los puntos (x1 , f (x1 ))
y (x2 , f (x2 )) y así sucesivamente.

44
Métodos Numéricos con MATLAB

Figure 2.11: Interpretación geométrica del Método de la secante.

Ejemplo 2.5. Efectúe tres iteraciones del método de la secante para la fun-
ción f (x) = x sin x − 1 con x0 = 1 y x1 = 2.

f (x1 )(x1 − x0 )
x2 = x1 −
f (x1 ) − f (x0 )
(2 sin 2 − 1)(2 − 1)
=2− = 1.162240449
(2 sin 2 − 1) − (sin 1 − 1)
f (x2 )(x2 − x1 )
x3 = x2 − = 1.236422098
f (x2 ) − f (x1 )
f (x3 )(x3 − x2 )
x4 = x3 − = 1.113511445
f (x3 ) − f (x2 )

Para este caso f (x4 ) = −0.000896772969, ademas |f (x4 )| < 0.0009.


Este ejercicio se resolvió con el método de bisección en la sección anterior
y en la novena iteración |f (x9 )| = 0.001216 . . .

45
CAPITULO 2. CEROS DE FUNCIONES

2.4.1 Convergencia
Teorema 2.5 (Convergencia Secante). Sea f una función dos veces difer-
enciable en un intervalo que contiene a una raíz α de f y supongamos que
f 0 (α) 6= 0. Si x0 y x1 estan lo sucientemente proximos a α, entoces la
sucesión denida en (2.10) converge a α.

Proof. Los detalles de la demostración se pueden encontrar en [2]. De la


demostración extraemos algunos aspectos importantes. Dado un ε > 0 y un
intervalo I = [α − ε, α + ε].
x0 y x1 estan lo sucientemente proximos a α, si M max{|ε0 |, |ε1 |} < 1 y
|ε0 | ≤ ε, |ε1 | ≤ ε, donde
00
f (x)
M = max 0
x∈I 2f (x)

q

f 00 (α)
Si 0 es grande, habra que tomar x0 y x1 muy proximos a α, además

2f (α)
si la primera o segunda derivada se anula, el método no funciona bien.
El método de la secante converge a la solución más lentamente que el método
de Newton, pero tiene la ventaja de no usar la derivada en cada iteración.

A continuación se describe un codigo para el método de la Secante. Se


utiliza como criterio de parada el valor absoluto de la función evaluada en
cada iteracion. Se deja como ejercicio para el lector la implementación de
otros criterios de parada, y codigos que permitan visualizar las rectas que se
van generando.

Algoritmo 4 (Algoritmo Secante). Dada una función f dos veces diferen-


ciable, dos condiciones iniciales x0,x1 y una tolerancia tol> 0.

c=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));
while abs(f(c))>tol
x0=x1;
x1=c;
c=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));
end

46
Métodos Numéricos con MATLAB

2.5 Método del punto jo


Dada una función f (x), se dice que p es un punto jo de f , sí f (p) = p.
Geométricamente un punto jo representa el corte entre la graca de f y la
recta y = x. La gura 2.12 muestra una función f (x) que posee 5 puntos
jos.

y=x

f (x)

Figure 2.12: Representación graca del punto jo.

El Método de Punto Fijo (también conocido como iteración de punto


jo), es otro método para hallar los ceros de f (x). Para resolver f (x) = 0,
se reordena en una forma equivalente:
f (x) = 0
x − g(x) = 0
x = g(x)
Observe que si c es un cero de f (x), f (c) = 0 y c = g(c).

Para aproximar un cero de f se utiliza la iteración de punto jo


xn+1 = g(xn ), n = 0, 1, 2, 3, . . . (2.11)

47
CAPITULO 2. CEROS DE FUNCIONES

donde x0 es una aproximación inicial del cero de f .

Ejemplo 2.6. f (x) = x2 − 2x − 3 = 0, tiene dos ceros. x = 3 y x = −1


Supóngase que se reordena para lograr la forma equivalente:

x2 − 2x − 3 = 0
x2 = 2x + 3

x = 2x + 3

x = g(x) = 2x + 3

Si se comienza con x0 = 4 y se itera con la iteración de punto jo 2.11, los


valores sucesivos de x son:

x0 = 4
p
x1 = g(x0 ) = 2(4) + 3 = 3.31662
p
x2 = g(x1 ) = 2(3.31662) + 3 = 3.10375
p
x3 = g(x2 ) = 2(3.10375) + 3 = 3.03439
p
x4 = g(x3 ) = 2(3.03439) + 3 = 3.01144
p
x5 = g(x4 ) = 2(3.01144) + 3 = 3.00381

Parece que los valores convergen a x = 3. Otro reordenamiento de f (x) =


0 es

x2 − 2x − 3 = 0
x(x − 2) − 3 = 0
3
x= = g(x)
x−2

48
Métodos Numéricos con MATLAB

Si nuevamente se comienza con x0 = 4, los valores sucesivos de x son:


x0 = 4
3
x1 = g(x0 ) = = 1.5
4−2
3
x2 = g(x1 ) = = −6
1.5 − 2
3
x3 = g(x2 ) = = −0.375
−6 − 2
x4 = −1.263158
x5 = −0.919355
x6 = −1.02762
x7 = −0.990877
x8 = −1.00305

Parece que ahora x converge al otro cero de f , x = −1. Considérese un


tercer reordenamiento
x2 − 2x − 3 = 0
2x = x2 − 3
x2 − 3
x= = g(x)
2
Comenzando de nuevo con x0 = 4 se obtiene:
x0 =4
x1 = 6.5
x2 = 19.625
x3 = 191.070

Resulta evidente que las iteraciones son divergentes.


La diferencia en el comportamiento de los tres reordenamientos se puede
apreciar considerando las grácas en los tres casos. El punto jo de x = g(x)
es la intersección de la recta y = x, y la curva y = g(x). En la gura ??
se presentan los tres casos. Se comienza en el eje x con x0 , se efectúa un
desplazamiento vertical hacia la curva, luego uno horizontal hacia la recta

49
CAPITULO 2. CEROS DE FUNCIONES

y = x, luego uno vertical hacia la curva y nuevamente una horizontal hacia


la recta. Este proceso se repite hasta que los puntos en la curva convergen
a un punto jo o bien divergen. Parece que los diferentes comportamientos
dependen de que la pendiente de la curva sea mayor, menor o de signo opuesto
a la pendiente de la recta (que es igual a 1)
Cuando se tiene la ecuación f (x) = 0, existen muchas formas de re-
ordenarla en la forma x = g(x), por ejemplo para la ecuación anterior
x2 − 2x − 3 = 0 otras alternativas son:

x2 − 2x − 3 = 0
2
x − 2x − 3 = 0 x2 − 2x − 3 = 0
x(x − 2) = 3
x2 = 2x + 3 x2 − 2x − 3
3 =0
x3 = 2x2 + 3x x−2= 2x − 2
p x (x2 − 2x − 3)
3
x = 2x2 + 3x 3 x− =x
x= +2 2x − 2
= g1 (x) x
= g3 (x)
= g2 (x)

Observe que la iteración de g3 (x), es el método de Newton aplicado a g(x)


Una pregunta que surge en este momento es ¾cuál de las funciones g sirve
para aproximar el punto jo de g ? (o en forma equivalente el cero de f ).
A continuación se presenta un teorema que da condiciones sucientes para
la existencia y unicidad del punto jo de una función.

2.5.1 Convergencia
Teorema 2.6. Si g es continua [a, b] y g(x) ∈ [a,b] para toda x ∈ [a, b],
entonces g tiene un punto jo en [a, b]. Si además g 0 (x) existe en (a, b) y
existe una constante positiva K < 1 con |g 0 (x)| 6 K , para todo x ∈ (a, b),
entonces el punto jo en [a, b] es único.

Proof. Si g(a) = a o si g(b) = b, entonces g tendrá un punto jo en un


extremo del intervalo [a, b]. Si se supone que g(a) 6= a y g(b) 6=b entonces
se debe tener que: g(a) > a y g(b) < b (por que g(x) ∈ [a, b] para todo
x ∈ [a, b])
g(a) − a > 0 y g(b) − b < 0. Si se dene t(x) = g(x) − x, t es continua
en [a, b] y t(a) = g(a) − a > 0 ademas de t(b) = g(b) − b < 0, Por el teorema

50
Métodos Numéricos con MATLAB

del valor intermedio existe un c ∈(a,b) tal que t(c) = 0, es decir g(c) − c = 0,
g(c) = c, luego c es un punto jo de g .
Si se supone además que |g 0 (x)| 6 K < 1 y que c1 y c2 son dos puntos
jos de g en [a, b] con c1 6= c2 , por el teorema del valor medio, existe un
número z entre c1 y c2 tal que

g(c2 ) − g(c1 )
= g 0 (z) o |g(c2 ) − g(c1 )| = |g 0 (z)||c2 − c1 |
c2 − c1
Como c1 y c2 son puntos jos de g , g(c2 ) = c2 y g(c1 ) = c1 , entonces
|c2 − c1 | = |g(c2 ) − g(c1 )| = |g 0 (z)||c2 − c1 | 6 k|c2 − c1 | < 1|c2 − c1 | (porque
|g 0 (x)| 6 k < 1)
Luego, |c2 − c1 | < |c2 − c1 |, lo cual es una contradicción, por lo tanto el
punto jo de g en [a, b] es único.
q

Ejemplo 2.7. La función g(x) = (x2 − 3)/2 en el intervalo [2, 4] tiene un


punto jo único. c = 3 es un punto jo de g porque g(3) = (32 − 3)/2 = 3.
Observe que g 0 (x) = x y en el intervalo [2, 4] g 0 (x) > 0. g es creciente y
g(x) ∈ [1/2, 6.5], además |g 0 (x)| > 1. (ya que g 0 (x) = x y x ∈ (2, 4) ).

El ejemplo anterior muestra que las hipótesis del teorema 2.5.1 son su-
cientes para garantizar un punto jo único, pero no son necesarias.
El siguiente resultado da algunas pistas sobre los procedimientos que se
deben seguir y algunos que se deben excluir para escoger funciones que pro-
duzcan sucesiones que converjan a un punto jo.

Teorema 2.7 (Convergencia Punto jo). Sea g una función continua en


[a, b] tal que g(x) ∈ [a, b] para toda x en [a, b]. Además suponga que existe
g 0 en (a, b) y una constante positiva K < 1 tal que |g 0 (x)| 6 K , para toda
x ∈ (a, b), entonces
Para todo x0 en (a, b), la sucesión denida por xn+1 = g(xn ), converge al
único punto jo x en [a, b].
Proof.
|xn − x| = |g(xn−1 ) − g(x)|
= |g 0 (z)||g(xn−1 ) − g(x)| (Por el teorema del valor medio)
|xn − x| 6 K|xn−1 − x|( porque |g 0 (x)| 6 K, x ∈ (a, b))

51
CAPITULO 2. CEROS DE FUNCIONES

El teorema anterior implica que existe un punto jo único en [a, b], ahora
si se aplica esta desigualdad inductivamente se obtiene:

|xn − x| 6 K |xn−1 − x| 6 K 2 |xn−2 − x| 6 · · · 6 K n |x0 − x|


|xn − x| 6 K n |x0 − x|
lim |xn − x| ≤ lim K n |xo − x| = 0
n→∞ n→∞

porque si |k| < 1, limn→∞ K n = 0. Luego {xn } converge a x. q

Como consecuencia inmediata del teorema tenemos.

Corolario 2.1. Sí g satisface las hipótesis del teorema anterior, una cota
para el error al aproximar el punto jo x de g por xn esta dada por:

|xn − x| 6 K n max {x0 − a, b − x0 }

Proof. Por el teorema anterior |xn − x| 6 K n |x0 − x|.


como x ∈ [a, b], |x0 − x| 6 max {x0 − a, b − x0 }.
Luego, |xn − x| 6 K n max {x0 − a, b − x0 }.
q

La iteración del punto jo, presenta dos conguraciones geometricas. La


gura 2.13 muestra la conguración en escalera, convergente y divergente.
La gura 2.14 da un ejemplo de la conguración oscilante.

52
' ' %
C! "'1 # , $#!& ? ')(2)0'& $#! , " " A
$#! , $ '! & "
# #
' %
.'42 # ! , 10#/ 3'4 *+' &# > % ## % 'A
'& @#3'45')('7 B& D;
#
$# ! " #(7

B/ .420'&2 #('41(#32 # Métodos


! , $#Numéricos
! .+'@' con
4'.4'&')(14&'
MATLAB 5'2-; '(4#01-')('
02)&#@'41)@2 *+' '/ .+)(2 EF2 ! '& '/ .+)(2 @' #)('4&'00#;
2) @' /1& D+)0#2)'&
) , # ' ) , $#!7 G2@'-2& 3#&+1/#=14 0+1(42 01&2&H $1! > % $!! % A $6!
$!! " A $0! " % $!! % >A $@! $!! % " 7

! " !!"
!
" !!"

# # " !$" # $ " !$" % $

! !
%&'()*' ('+,)&-)+.) %&'()*' 12,)&-)+.)
!)+ )*(/0)&/" !)+ )*(/0)&/"

Figure 2.13: Ejemplo de iteración en escalera.

IJ

53
CAPITULO 2. CEROS DE FUNCIONES

!
!

" !$" # #
" !!"
" !!"

# # " !$" # $
!
%&'()*' ('+,)&-)+.) !'*(/01+.)" %&'()*' 2/,)&-)+.) !'*(/01+.)"
!" !$"! # # !" !$"! % #

!"#$%& '()('( !"!Figure


#$ #%#&'$( )*+*, -(. ! "! /# 01#.#
2.14: Ejemplo de iteración oscilante.
!2 # " # $ ! ! # " # $ ! "3 # "!# %"&

Ejemplo 2.8.
" Aplique el Teorema 2.7 para demostrar que g(x) = 2x + 3
42 #un
tiene " # punto
$ jo
' único # $[2, 4]. Use" !el3 corolario
# " en # "!#para("estimar
) la cantidad
!" ' #
de iteraciones necesarias para lograr una exactitud de 10 y después com-
−2

pare esta estimación teórica con!la & cantidad que realmente se requiere, use
-2 # " # $ # " # $ 3 # "!# !*"*
x0 = 3.5 "! " "" ! #

g(x) = & 2x ' + " ! ! función
! + 3 en [2, 4] es una
! # 3 continua y creciente. Basta
52 # " # $
evaluar g en!los" ! # " # $ # " ! # $ (
"! " !por
extremos del intervalo #" que g es creciente y por lo tanto su
valor mínimo√ y su valor máximo se encuentran en los extremos del intervalo.
0
g (x) = 1/( 2x + 3) > 0
!" #$%&'(') *&%+,&*-') (% '+(%. )/0%+*'+!

*"&+"#, '()(-( 6#! ! 7.! "!89: 5# g(2) $ ; #2.65
= # " 7#≈ 7.! <7.-18(. $ =#-#/ -(.01.>
7!&#.0# 51<#"#.-1!4$# # -#"-! 5#g(4)
!3 $=$ &11

* 67'(.?!&(/
≈ 3.32 !5#&8!/ @7#
Luego,# "g(x)
!# $ ∈
# "[g(2), %%% $ =
!# $ g(4)] # #! [2.65,
$%
"!# $
! #!%
(% . #Por
3.32] "!lo
#$& tanto
( g(x) ∈ [a, b] =

61 /# #$1?# /7A-1#.0#&#.0# '"8(B1&( ! !54


3 $! 10#"!-18(.
"&$ $ #" "# &$(
0#.5"8! !$ &#.(/ 7. ("5#. 5# -(.=#"?#.-1! 1?7!$ ! $ C

,-./
"&$! ! $ ,-./ '"&$ # #!% "!#
$
" ! !# '!" $0
""# " ! " "#
Métodos Numéricos con MATLAB

[2, 4]. Además

1 1
|g 0 (x)| = √ <p ≈ 0.378
2x + 3 2(2) + 3

por que g 0 (x) es decreciente y x ∈ (2, 4)


Como |g 0 (x)| 6 k = 0.378 < 1, el punto jo de g es único en [2, 4].
Para determinar aproximadamente el número de iteraciones necesarias
para lograr una exactitud de 10−2 se usa el corolario,

|xn − x| 6 k n max {x0 − a, b − x0 } con a = 2, b = 4, x0 = 3.5 y k = 0.378


|xn − x| 6 (0.378)n max {1.5, 0.5}
|xn − x| 6 (0.378)n (1.5)

Como el error debe ser menor que 10−2 entonces

(0.378)n (1.5) < 10−2


n > 5.15042 . . .

Por lo tanto se necesitan unas seis iteraciones para lograr una aproxi-
mación exacta dentro de 10−2 .
Este ejercicio ya se resolvió al comienzo de esta sección y se obtuvo x5 =
3.00381. Observe que el error real |x5 − x| = |3.00381 − 3| = 0.00381 <
10−2 = 0.01.
Cabe señalar que el corolario no da más que una cota del número de
iteraciones necesarias. En la mayoría de casos se requiere un número menor
de iteraciones.
El siguiente codigo en MATLAB describe la iteración basica del punto
jo. Se utiliza como criterio de parada el error absoluto entre las dos ultimas
iteraciones. Se deja como ejercicio para el lector, implementar otros criterios
de parada, y programar herramientas de gracación. Por otro lado se puede
implementar en el algoritmo, la cota de error del Colorario 2.1.

Algoritmo 5 (Algoritmo Punto jo). Dada una función continua f, una


condición inicial x0 y una tolerancia tol> 0.

55
CAPITULO 2. CEROS DE FUNCIONES

x1=f(x0);
while abs(f(x1)-f(x0))>tol
x0=x1;
x1=f(x1);
end

2.6 Ejercicios

1. A n de localizar las raíces de la ecuación x3 + x=6

(a) Mediante evaluaciones en enteros determine un intervalo de lon-


gitud 1 que contenga una raíz.
(b) Aplique tres iteraciones del método de bisección para reducir la
longitud de este intervalo en un factor de 0.125.

2. Sea f (x) = (x + 2)(x + 1)2 x(x − 2). ¾En cuál cero de f converge el
método de bisección en los siguientes intervalos?

a)[-1.5,2.5] b)[-0.5,2.4] c)[-0.5,3] d)[-3,-0.5]

3. Use el teorema (error en el método de bisección) para obtener una cota


del número de iteraciones que se requieren para alcanzar una aproxi-
mación con una exactitud de 10−3 a la solución de x3 + x − 4 = 0 que
se encuentra en el intervalo [1, 4]. Obtenga una aproximación de la raíz
con este grado de exactitud.

4. ¾Verdadero o falso?

(a) Si g(19.6) = 19.6, entonces 19.6 se denomina punto jo de g .


(b) La función x2 + 2x tiene exactamente dos ceros reales.
(c) Si f (a) = −1 y f (b) = 2, entonces f (x) tiene al menos un cero
entre a y b.
(d) Después de siete iteraciones del método de bisección, el intervalo
en curso tiene una longitud menor que el 1% de la longitud del
intervalo original.

56
Métodos Numéricos con MATLAB

(e) Diez iteraciones del método de bisección reducen la longitud L1


del intervalo que contenga una raíz por un factor de 1/102 , así la
longitud es L1 /100.
(f) La ecuación (ex )2 = 4 tiene exactamente dos soluciones (reales).

5. Determine cuántas raíces tiene ex − (x2 − 1)(x2 − 4) = 0.

6. Aplique el método de Newton para obtener soluciones con una exacti-


tud de 10−5 para:

(a) (x − 2)2 − lnx = 0 para 1 6 x 6 2 y para e 6 x 6 4


(b) sin x − e−x = 0 para 0 6 x 6 1 y para 3 6 x 6 4, y 6 6 x 6 7

7. ¾Se puede usar el método de NewtonRaphson para resolver f (x)=0


siendo f (x)=(x-3)1/2 tomando x0 = 4 como valor inicial? ¾por qué?.

8. Suponga que A es un número real y positivo.

(a) Pruebe que A puede escribirse como A = q × 22m , siendo


1/4 6 q < 1 y m un entero.
(b) Use el apartado a) para probar que la raíz cuadrada de A es
A1/2 = q 1/2 × 2m .

Observación. Si se toma p0 = (2q + 1)/3, siendo 1/4 6 q < 1,


y se usa la fórmula de Newton, entonces después de tres it-
eraciones, x3 será una aproximación a q 1/2 con 24 cifras bina-
rias de precisión. Este es el algoritmo que los computadores
usan habitualmente para hallar raíces cuadradas. (Math-
ews, p.96).

9. Halle, con una precisión de diez cifras decimales, el valor de x para el


que es mínima la distancia vertical entre las grácas de las funciones
f (x) = x2 + 2 y g(x) = (x/5) − sin(x).

10. Se construye una caja sin tapa a partir de una hoja metálica rectangular
que mide 10 por 16 centímetros. ¾Cuál debe ser el lado de los cuadrados
que hay que recortar en cada esquina para que el volumen de la caja
sea 100 centímetros cúbicos? Precisión: 0.000000001 centímetros.

57
CAPITULO 2. CEROS DE FUNCIONES

11. La función descrita por f (x) = ln(x2 + 1) − e0.4x cos πx tiene una can-
tidad innita de ceros.

(a) Determine, con una exactitud de 10−6 el único cero negativo.


(b) Determine, con una exactitud de 10−6 los cuatro ceros positivos
más pequeños.

12. El valor acumulado de una cuenta de ahorros que se basa en pagos


periódicos puede calcularse con la ecuación de anualidad vencida.

P
A= [(1 + i)n − 1]
i

En esta ecuación, A es el monto de la cuenta, P es la cantidad que se


deposita periódicamente e i es la tasa de interés por periodo para los
n periodos de depósito. A un ingeniero le gustaría tener una cuenta
de ahorros con un monto de $ 750000 dólares al momento de retirarse
dentro de 20 años, y puede depositar $ 1500 dólares mensuales para
lograr dicho objetivo. ¾Cuál es la tasa mínima de interés a que puede
invertirse este dinero, suponiendo que es un interés compuesto men-
sual?.

13.  Un método de Newton-Raphson modicado para raíces múltiples. Si


p es una raíz de multiplicidad M, entonces f(x)= (x - p)M q(x), donde
q(p) 6= 0.

(a) Pruebe que h(x) = f (x)/f 0 (x) tiene una raíz simple en p.
(b) Pruebe que si se aplica el método de Newton-Raphson para hallar
la raíz simple p de h(x), entonces se obtiene g(x) = x − h(x)/h0 (x)
que, en este caso, es

f (x)f 0 (x)
g(x) = x −
(f 0 (x))2 − f (x) f 00 (x)

(c) La función f (x) = sin(x3 ) tiene en p = 0 un cero triple. Partiendo


de p0 = 1 calcule p1 , p2 y p3 usando el método de Newton-Raphson
modicado. (Mathews, p.97).

58
Métodos Numéricos con MATLAB

14. Aplique el método de la secante para obtener soluciones con una exac-
titud de 10−3 para las ecuaciones dadas.

(a) x3 − 2x2 − 5 = 0, x ∈ [1, 4]


(b) x − cosx = 0, x ∈ [0, π/2]

15. La ecuación e−x = cos x tiene una raíz cerca de 1.29. Diga cuál de
las tres funciones siguientes sería preferible utilizar como función de
iteración a n de localizar la raíz

g1 (x) = cos−1 (e−x )


g2 (x) = ln(sec x) = − ln(cos x)
g3 (x) = x − 0.01(e−x − cos x)

16. Use el manejo algebraico para demostrar que las siguientes funciones
tienen un punto jo en p exactamente cuando f (p) = 0, donde f (x) =
x4 + 2x2 − x − 3.

(a) g1 (x) = (3 + x − 2x2 )1/4


!1/2
x + 3 − x4
(b) g2 (x) =
2
!1/2
x+3
(c) g3 (x) =
x2 + 2
3x4 + 2x2 + 3
(d) g4 (x) =
4x3 + 4x − 1
i. Efectúe cuatro iteraciones, si es posible hacerlo, en las funciones
g . Use x0 = 1.
ii. ¾Cuál función, a su juicio, dará la mejor aproximación a la solu-
ción?

17. Aplique el teorema de punto jo para demostrar que g(x) = π +


0.5 sin(x/2) tiene un punto jo único en [0, 2π]. Use la iteración de
punto jo para obtener una aproximación al punto jo con una exac-
titud de 10−2 . Use el corolario para estimar la cantidad de iteraciones

59
CAPITULO 2. CEROS DE FUNCIONES

necesarias para lograr una exactitud de 10−2 y después compare esta


estimación teórica con la cantidad que realmente se requiere.

18. En cada una de las siguientes ecuaciones, determine un intervalo [a, b]


para la cual la iteración de punto jo converge. Estime la cantidad de
iteraciones necesarias para obtener aproximaciones con una exactitud
de 10−5 y realice los cálculos.
2 − e x + x2
(a) x =
3
!1/2
ex
(b) x =
3
(c) x = 5−x

60
Capitulo 3
Sistemas de Ecuaciones Lineales
Un sistema de ecuaciones lineal con n ecuaciones y n incognitas

a11 x1 + a12 x2 + a13 x3 . . . + a1n xn = b1


a21 x1 + a22 x2 + a23 x3 . . . + a2n xn = b2
.. (3.1)
.
an1 x1 + an2 x2 + an3 x3 . . . + ann xn = bn

se puede representar en forma matricial por la expresión Ax = b, donde


A ∈ Rn×n y x, b ∈ Rn
     
a11 a12 . . . a1n x1 b1
 a21 a22 . . . a2n   x2   b2 
A= .. .. .. . , x= .. , b= ..
     
. . . ..  . .

    
an1 an2 . . . ann xn bn

Solucionar el sistema (3.1), es encontrar un vector x ∈ Rn tal que Ax = b. En


este capítulo se estudiará la solución de sistemas de ecuaciones lineales con
n ecuaciones y n incógnitas y cuya matriz de representación es no singular.
Se inicia estudiando las propiedades básicas de las normas vectoriales y ma-
triciales, conceptos que serán de utilidad al momento de denir los sistemas
mal condicionados y al desarrollar los métodos iterativos clásicos de resolu-
ción de sistemas lineales. También se realizara una breve introducción sobre
la factorización LU de una matriz y se aplicara en la resolución de sistemas.

61
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

3.1 Normas Vectoriales y Matrices


Al analizar elementos como los vectores y matrices a menudo se requiere
una forma para expresar sus magnitudes, alguna medida de grandeza o
pequeñez. Para los números el valor absoluto indica que tan grande es un
número, pero para vectores y matrices hay muchas componentes, cada una
de las cuales puede ser pequeña ó grande en magnitud.
Para discutir los errores en problemas numéricos que manejan vectores y
matrices resulta útil recurrir a las normas, ya que permiten medir distancia.

Denición 3.1. Una norma vectorial en Rn es una función k k , de Rn en


R+ que satisface:

i. Para todo x ∈ Rn , kxk > 0 y kxk = 0 si y sólo si x es el vector nulo.


ii. Para todo α ∈ R y x ∈ Rn , kαxk = |α|kxk.
iii. Para todo x, y ∈ Rn , kx + yk 6 kxk + kyk, (Desigualdad del triángular).
La cantidad kxk se llama magnitud ó longitud del vector x. Toda norma
dene una distancia, dados un par de vectores x, y ∈ Rn , la distancia entre
x y y es la norma del vector x − y es decir, kx − yk.
A continuación se dan algunos ejemplos de normas vectoriales. Dado x =
(x1 , x2 , . . . , xn ).

Norma p: Dado p ≥ 1, denimos la norma p de x por

n
! p1
X
kxkp = |xi |p
i=1

Cuando p = 2 se obtiene la norma clasica euclidiana.

Norma ∞: La norma innito esta denida por:

kxk∞ = max {|xi |}


1≤i≤n

Esta norma es conocida como norma innito, ya que

lim kxkp = kxk∞


p→∞

62
Métodos Numéricos con MATLAB

El conjunto de puntos que conforman una circunferencia con centro en el


origen y radio uno, es el conjunto de puntos del plano cuya distancia al origen
es igual a 1. Cuando se toma la norma euclidiana (p = 2), la ecuación que
describe la circunferencia se reduce a la expresión x2 + y 2 = 1. Sí tomamos
p = 1 la ecuación es |x| + |y| = 1. Sí denimos la distancia en términos de la
norma innito, la ecuación de la circunferencia es max{|x|, |y|} = 1. En la
gura 3.1 se puede observar la gráca de la circunferencia unitaria, al variar
la norma que dene la distancia.

p=∞
1
p=5

0.5 p=1

−0.5

−1

−1 −0.5 0 0.5 1

Figure 3.1: Circunferencia unitaria. p = 1, p = 5 y p = ∞

Ejemplo 3.1. Calcular las normas 1, 2 y la norma ∞ para el vector x =


(2, −4, 1)

kxk1 = |2| + |−4| + |1| = 7


1/2 √
kxk2 = 22 + (−4)2 + 12

= 21 ≈ 4.58
kxk∞ = max {|2| , |−4| , |1|} = 4

Dada un norma vectorial sobre Rn .

Denición 3.2. Se dice que una sucesión de vectores {x(k) }∞


k=1 en R con-
n

63
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

verge a x si

lim x(k) − x = 0
k→∞

La noción de convergencia en Rn denida anteriormente, es independiente


de la norma que se utilice, ya que todas las normas sobre Rn son equivalentes,
para más detalles ver [4].

Ejemplo 3.2. Tomemos


!
1 1 4k + 1
x(K) = 2 − , −5 + √ , , x = (2, −5, 4)
k k k
 √ 
Entonces, x(K) − x = −1/k, 1/ k, 1/k .
Si se calcula x(k) − x , usando la norma innita se puede ver que x(k) − x →

0, cuando k → ∞, por lo tanto x es el límite de la sucesión xK respecto


a la
norma innito. Así en este ejemplo se puede concluir que x − x → 0 .
(K)

A continuación se denirá el concepto de norma matricial sobre matrices


de orden n, la denición se puede extender a matrices de tamaño m × n, pero
esto supera las necesidades teóricas del capítulo.

Denición 3.3. Una norma matricial sobre el conjunto de las matrices de


orden n es una función de valor real, k k, denida en este conjunto y que
satisface para todas las matrices A y B de oden n y todos los números reales
α las siguientes propiedades [6]:

i. kAk > 0 y kAk = 0 si y sólo si A = 0


ii. kαAk = |α| kAk, α ∈ R
iii. kA + Bk 6 kAk + kBk
Como se denio anteriormente para vectores, la distancia entre un par de
matrices A y B se puede denir en terminos de una norma matricial, como
kA − Bk.
Existen dos tipos de normas matriciales, aquellas que se denen en ter-
minos de una norma vectorial, conocidas como normas matriciales inducidas
o subordinadas y aquellas que se denen sobre los elementos de la matriz.

64
Métodos Numéricos con MATLAB

Teorema 3.1. Dada una norma vectorial k kv sobre Rn , la función denida


por
kAk = max{kAxkv : x ∈ Rn , kxkv = 1}
es una norma matricial sobre las matrices de orden n.
El Cálculo directo de las normas inducidas por el teorema anterior es
poco práctico, ya que implica tomar el máximo de un conjunto innito de
elementos y en general esto no es sencillo. Existen tres caracterizaciones de
normas matriciales inducidas por las normas p = 1, 2 y la norma innito.
Estos resultados nos permitirán calcular de una manera ágil la norma de una
matriz. A continuación se enuncian estos resultados.
n
!
X
1. Norma 1: kAk1 = max |aij | (máxima suma en las columnas )
16j6n
i=1

n
!
X
2. Norma ∞:kAk∞ = max |aij | (máxima suma en las las )
16i6n
j=1

3. Norma 2: kAk2 = [ρ]1/2 , donde ρ es el radio espectral de At A

Un ejemplo de una norma matricial que no es inducida por una norma


matricial, es la norma de Frobenius:

n X
n
!1/2
X
kAkF = a2ij
i=1 j=1

De ahora en adelante se consideraran solo nomas matriciales inducidas,


la principal razón por la cual se consideran este tipo de normas, es la sigu-
iente propiedad. Dada una norma vectorial y su respectiva norma matricial
inducida. Sí A, B son matrices de orden n y x ∈ Rn :

kABk ≤ kAkkBk
kAxk ≤ kAkkxk

Ejemplo 3.3. Calcular las normas 1, ∞ y de Frobenius para la matriz

65
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

 
3 −1 4
A =  −5 0 2 
1 −2 6

Columnas F ilas
P3 P3
|ai1 | = |3| + | − 5| + |1| = 9 |a1j | = |3| + | − 1| + |4| = 8
i=1 j=1
P3 P3
|ai2 | = | − 1| + |0| + | − 2| = 3 |a2j | = | − 5| + |0| + |2| = 7
i=1 j=1
P3 P3
|ai3 | = |4| + |2| + |6| = 12 |a3j | = |1| + | − 2| + |6| = 9
i=1 j=1

kAk1 = max {9, 3, 12} = 12


kAk∞ = max {8, 7, 9} = 9
kAkF = (32 + (−1)2 + 42 + (−5)2 + 02 + 22 + 12 + (−2)2 + 62 )1/2

= 96 ≈ 9.798
MATLAB posee la función norm(X,opciones), donde X puede ser un
argumento vectorial o matricial y opciones respresenta diferentes tipos de
normas, para más detalles examine el help de MATLAB.

3.2 Número Condicional y Renamiento Itera-


tivo
Denición 3.4. Sea x̄ una aproximación del sistema lineal Ax = b. El
vector residual de x̄ respecto a este sistema es r = b − Ax̄.
Ejemplo 3.4. El sistema lineal Ax = b dado por
    
1 1.01 x1 2.01
=
0.99 1 x2 1.99

x1 + 1.01x2 = 2.01
0.99x1 + x2 = 1.99

66
Métodos Numéricos con MATLAB

Tiene solución x = (1, 1).


La aproximación x̄ = (0, 2) tiene vector residual
    
2.01 1 1.01 0
r = b − Ax̄ = −
1.99 0.99 1 2
   
2.01 2.02
= −
1.99 2
 
−0.01
=
−0.01

Observe que aunque la norma del vector residual es pequeña (krk∞ =


0.01), la aproximación x̄ = (0, 2) es muy deciente ya que kx − x̄k∞ = 1.
Sí suponemos que x y x̄ satisfacen Ax = b y Ax̄ = b̄ (A invertible).
¾Cuánto dieren x y x̄ en términos absolutos y relativos? Ax = b, Ax̄ = b̄,
x = A−1 b, x̄ = A−1 b̄ ya que A es invertible. Ahora,

kx − x̄k = A−1 b − A−1 b̄


= A−1 (b − b̄) (3.2)


≤ A−1 (b − b̄)

Luego una medida para la perturbación sobre x es kA−1 k b − b̄ .


Para obtener una estimación del error relativo kx − xk / kxk, se usa el


hecho que: Ax = b, kAxk = kbk, kAxk / kbk = 1, junto con la desigualdad
(ecuacion anterior), de donde:

kx − x̄k ≤ A−1 b − b̄

kAxk −1
kx − xk ≤ A b − b
kbk

−1 b − b̄
kx − x̄k ≤ kAk kxk A
kbk

kx − xk b−b

≤ kAk A−1

kxk kbk

kx − xk b − b
≤ κ(A) (3.3)
kxk kbk

67
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

donde:

κ(A) = kAk A−1 (3.4)


El número κ(A) se llama número condicional de la matriz A o número


de condición [8]. Como se observa en la desigualdad (3.3), si el número de
condición es pequeño, entonces pequeñas perturbaciones en b conducen a
pequeñas perturbaciones en x. Es decir, el error relativo en x esta acotado
por κ(A) y el residual de esta aproximación. Como r = b − Ax y Ax = b
entonces r = b − b y la desigualdad (3.3) se transforma en

kx − xk krk
≤ κ(A)
kxk kbk

Si A es invertible, I = AA−1 , kIk = kAA−1 k, 1 = kAA−1 k ≤ kAk kA−1 k =


κ(A). Luego κ(A) ≥ 1.

Denición 3.5. Una matriz A está bien condicionada si κ(A) se aproxima


a 1 y está mal condicionada si κ(A) es signicativamente mayor que 1.
Ejemplo 3.5. Determine si la matriz A esta bien o mal condicionada
 
1 1.01
A=
0.99 1

La inversa de la matriz A es:


 
−1 10000 −10100
A =
−9900 10000

El número condicional κ(A) = ||A||∞ ||A−1 ||∞ = (2.01)(20100) = 40401,


como κ(A) es mucho mayor que 1, A es una matriz mal condicionada.
Ejemplo 3.6. Considere una matriz de Hilbert H de orden 7(utilice el codigo
que se dio en una sección pasada para calcular H). MATLAB posee la función
cond(H) que calcula el número condicional κ de una matriz H
H =

Columns 1 through 4

68
Métodos Numéricos con MATLAB

1.000000000000000 0.500000000000000 0.333333333333333 0.250000000000000


0.500000000000000 0.333333333333333 0.250000000000000 0.200000000000000
0.333333333333333 0.250000000000000 0.200000000000000 0.166666666666667
0.250000000000000 0.200000000000000 0.166666666666667 0.142857142857143
0.200000000000000 0.166666666666667 0.142857142857143 0.125000000000000
0.166666666666667 0.142857142857143 0.125000000000000 0.111111111111111
0.142857142857143 0.125000000000000 0.111111111111111 0.100000000000000

Columns 5 through 7

0.200000000000000 0.166666666666667 0.142857142857143


0.166666666666667 0.142857142857143 0.125000000000000
0.142857142857143 0.125000000000000 0.111111111111111
0.125000000000000 0.111111111111111 0.100000000000000
0.111111111111111 0.100000000000000 0.090909090909091
0.100000000000000 0.090909090909091 0.083333333333333
0.090909090909091 0.083333333333333 0.076923076923077

>> cond(H)

ans =

4.753673563703924e+008

Por lo tanto la matriz H está mal condicionada. Sí se calcula la inversa


de H y se realiza la operación det(H)det(H −1 ) se obtiene:
>> det(H)*det(inv(H))

ans =

1.000000000659643
Sí se multiplica H por su inversa
>> inv(H)*H

ans =

Columns 1 through 4

1.000000000000227 0.000000000010004 0.000000000112095 0.000000000170530


-0.000000000014552 1.000000000000000 -0.000000000429281 -0.000000000662112
0 -0.000000000232831 1.000000000000000 0
0 -0.000000001862645 0 0.999999999534339

69
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

0 -0.000000001862645 -0.000000002793968 0.000000001396984


0 0.000000003259629 0.000000002793968 0.000000000931323
0 -0.000000001164153 -0.000000001164153 -0.000000000232831

Columns 5 through 7

0.000000000199634 0.000000000213390 0.000000000216460


-0.000000000785803 -0.000000000829459 -0.000000000844011
0 -0.000000000232831 -0.000000000116415
-0.000000001164153 0.000000001396984 0.000000000931323
0.999999999534339 -0.000000000931323 0.000000000465661
0 1.000000000931323 0.000000000931323
0 -0.000000000349246 1.000000000116415
>> inv(inv(H))-H

ans =

1.0e-009 *

Columns 1 through 4

0.417044176970194 0.309773096063282 0.243009445899389 0.198075555957189


0.309773096063282 0.231859420551928 0.182352688504750 0.148906637020829
0.243009445899389 0.182352688504750 0.138721201192737 0.109691755678654
0.198075555957189 0.148906637020829 0.109691755678654 0.083905271619500
0.166084868080674 0.125064070211067 0.089554696991456 0.066400301923508
0.142322653662319 0.107339692689834 0.074980521791446 0.054010421135509
0.124077359497932 0.093719920712942 0.064051625114914 0.044915834940262

Columns 5 through 7

0.166084868080674 0.142322653662319 0.124077359497932


0.125064070211067 0.107339692689834 0.093719920712942
0.089554696991456 0.074980521791446 0.064051625114914
0.066400301923508 0.054010421135509 0.044915834940262
0.050933271489306 0.040173669946242 0.032411018313638
0.040173669946242 0.030678654061589 0.023924029424194
0.032411018313638 0.023924029424194 0.017956455766743
En la matriz H del ejemplo anterior, se evidencia una caracteristica fun-
damental de las matrices mal condicionadas. Sí una matriz A es mal condi-
cionada y se desea solucionar un sistema AX = b, el error que se comete al
calcular su inversa, hace que la solución que se obtiene por métodos directos
este cargada de error númerico. En el caso en que el sistema que se desea re-
solver, tenga asociada una matriz mal condicionada, es recomendable buscar

70
Métodos Numéricos con MATLAB

soluciones mediante métodos iterativos o por precondicionamiento matricial.

3.3 Precondicionamiento o Equilibración de una


Matriz
Para resolver sistemas de ecuaciones lineales en casos críticos, se puede añadir
un cierto número de pasos a los procedimientos de eliminación gaussiana ( o
factorización) y de cálculo de soluciones mencionados anteriormente.

3.3.1 Precondicionamiento mediante equilibración de -


las
Es un proceso que consiste en dividir cada la de la matriz de coecientes
por el máximo elemento en valor absoluto de dicha la; es decir, multiplicar
la la i por

1
ri =
max |aij |
16j6n

Por ejemplo si

   
1 108 −1 0 1/2
A= , A =
2 0 10−8 −5 × 10−9

K∞ (A) = ||A||∞ ||A−1 ||∞ = (1+108 )(1/2) = 50000000.5. A es una matriz


mal condicionada.
Para equilibrar la matriz, primero se calcula ri , para i = 1, 2. En este
caso (r1 = 1/108 , r2 = 1/2). Luego se multiplica la la i por ri

10−8 1
     
1 108 1/108 1 108
A= →
− =
2 0 1/2 2 0 1 0

Si se denota como Ȧ a la matriz A precondicionada entonces


 −8 
10 1
Ȧ =
1 0

71
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

 
0 1
Observe que Ȧ =−1
y ahora K∞ (Ȧ) = (1 + 10−8 )(1 +
1 −10−8
10−8 ) = 1.00000002. Luego Ȧ es una matriz bien condicionada.
Cuando se va a resolver un sistema Ax = b, la equilibración por las se
escribe como:


ri , i=j
(RA)X = Rb, donde R = [Rij ], Rij =
0, i 6= j

Por ejemplo el sistema:

    
1 108 x1 3
=
2 0 x2 5

mediante la equilibración por las se convierte en:

      
1/108 0 1 108 x1 1/108 0 3
=
0 1/2 2l 0 x2 0 1/2 5
| {z }| {z }| {z } | {z } | {z }
R A x R b
 −8    8

10 1 x1 3/10
=
1 0 x2 5/2

Observe que la matriz del nuevo sistema es la que anteriormente se denotó


como Ȧ, este sistema se puede escribir en forma matricial como Ȧx = ḃ donde
ḃ1 = b1 /r1 y ḃ2 = b2 /r2

3.3.2 Precondicionamiento mediante equilibración de Colum-


nas
Es un proceso similar al de las, excepto que ahorase trata con columnas.
Se multiplica la columna j por Cj = 1/ max |aij | Se coloca los números
16i6n
Cj encima de cada columna sólo para indicar por que número se multiplica
cada columna.

Para la matriz

72
Métodos Numéricos con MATLAB

 
1 108
A= C1 = 1/2, C2 = 1/108
2 0

1/2 1/108
     
1 108 1 10 8
1/2 1
A= →
− =
2 0 2 0 1 0

Si se denota como Ȧ a la matriz A precondicionada por columnas,

 
−1 0 1
Ȧ =
1 −1/2

y ahora K∞ (Ȧ) = (1/2 + 1)(1 + 1/2) = 2.25. Luego Ȧ es una matriz bien
condicionada.
Si se va ha resolver un sistema Ax = b, el equilibrio por columnas se
escribe como: (AC)(C −1 x) = b, donde:
(
Cj sí i = j
Cij =
0 sí i 6= j.

Por ejemplo el sistema:


    
1 108 x1 3
=
2 0 x2 5
| {z } | {z } | {z }
A x b

Mediante la equilibración por columnas se convierte en

      
1 108 1/2 0 2 0 x1 3
8 8 =
2 0 0 1/10 0 10 x2 5
| {z }| {z }| {z }| {z } | {z }
A C C −1 x b
    
1/2 1 2x1 3
=
1 0 108 x2 5

El sistema que resulta se puede escribir en forma matricial como Ȧẋ = b


(donde ẋ1 = 2x1 y ẋ2 = 108 x2 ).

73
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

En general, cuando se va a resolver un sistema Ax = b y se equilibra por


las o columnas resulta un sistema de la forma Ȧx = ḃ o Ȧẋ = b y este
se puede resolver por eliminación gaussiana o factorización LU , métodos de
discutiremos en la siguiente sección.

3.4 Métodos directos de solución


Un método directo se reere a un procedimiento para calcular una solución
a partir de una forma que es matemáticamente exacta; los métodos directos
proporcionan una respuesta en un número jo de pasos, y sólo están sujetos
a errores de redondeo. Considere A una matriz diagonal no singular.
 
a11 0 ··· 0
 0 a22 ··· 0 
A= .. .. .. ..
 
. . . .

 
0 0 · · · ann

Entonces el sistema Ax = b tiene solución: xi = (bi )/aii , para i = 1, 2, . . . , n


donde aii 6= 0, ya que A es no singular es decir posee determinante diferente
de cero. A continuación se muestra un código en MATLAB que permite
encontrar la solución de sistemas diagonales.

Algoritmo 6 (Algoritmo matriz Diagonal). Dada un sistema de ecuaciones


lineales Ax = b, con matriz A diagonal y no singular.

n=length(b);
for i=1:n
x(i)=b(i)/A(i,i);
end

Si A es Triangular superior, es decir aij = 0 para todo i < j y no singular


 
a11 a12 · · · a1n
 0 a22 · · · a2n 
A= .. .. .. .. 
 
 . . . . 
0 0 · · · ann

74
Métodos Numéricos con MATLAB

Entonces el sistema Ax = b se puede representar de la forma:

a11 x1 + a12 x2 + a13 x3 . . . + a1n xn = b1


a22 x2 + a23 x3 . . . + a2n xn = b2
..
.
ann xn = bn

Que puede ser solucionado utilizando sustitución hacia atrás. Es llamada


sustitución hacia atrás porque el primer valor que se halla es xn , luego xn−1
y así hasta x1 .

bn
xn = y
ann
n
P
bi − aij xj
j=i+1
xi = para i = n − 1, n − 2, . . . , 1 (aii 6= 0).
aii
El código que permite solucionar este tipo de sistemas, se muestra a contin-
uación.
Algoritmo 7 (Algoritmo matriz triangular superior). Dada un sistema de
ecuaciones lineal Ax = b, con matriz A triangular superior y no singular.
n=length(b);
x(n)=b(n)/A(n,n);
for i=n-1:-1:1
s=0;
for k=i+1:n
s=s+A(i,k)*x(k);
end
x(i)=(b(i)-s)/A(i,i);
end
Si A es Triangular inferior, es decir aij = 0 para todo i > j y no singular.
 
a11 0 . . . 0
 a21 a22 . . . 0 
A =  .. .. . . .. 
 
 . . . . 
an1 an2 . . . ann

75
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

El sistema de ecuaciones lineales se puede representar de la forma:

a11 x1 = b1
a21 x1 + a22 x2 = b2
.. ..
. .
an1 x1 + an2 x2 +an3 x3 + . . . + ann xn = bn

El cual se puede resolver utilizando sustitución hacia adelante,

b1
x1 =
a11
i−1
P
bi − aij xj
j=1
xi = para i = 2, 3, . . . , n (aii 6= 0).
aii
Ejercicio 3. Construya el código de una función en MATLAB que dado un
sistema de ecuaciones lineales con matriz de coecientes triangular inferior,
calcule el vector solución x.
Sí A es ortogonal si su inversa es igual a su transpuesta, es decir A−1 = At .
En este caso, el sistema Ax = b tiene como solución x = At b, ya que si Ax = b
entonces:
Ax = AAt b
= AA−1 b
= Ib
=b

3.4.1 Método de la Inversa


La solución del sistema Ax = b es x = A−1 b (A no singular). El cálculo de
la matriz inversa involucra muchas operaciones. MATLAB posee la función
inv que calcula la inversa de una matriz cuadrada.
Ejemplo 3.7. La matriz de Hilbert H de tamaño m × n, esta dada por:
Hij = 1/(i + j − 1) i ∈ {1, 2, . . . , m}, j ∈ {1, 2, . . . , n}

El codigo en MATLAB que la genera es:

76
Métodos Numéricos con MATLAB

for i=1:m
for j=1:n
H(i,j)=1/(i+j-1);
end
end

La matriz de Hilbert para m = n = 3 es

H =

1 1/2 1/3
1/2 1/3 1/4
1/3 1/4 1/5

y tomando el vector columna b = (111). Encontrar la solución de Hx = b.

>> tic, x=inv(H)*b, toc

x =

3
-24
30

Elapsed time is 0.008232 seconds.

Los comandos tic y toc generan el tiempo de computo de la operación.


Dados dos sistemas de ecuaciones. Se dice que ellos son equivalentes, si
poseen el mismo conjunto solucion. Las operaciones elementales entre las
son transformaciones que admite la matriz aumentada de un sistema y que
generan un sistema equivalente.
La ecuación Ei (o la la i) puede multiplicarse por una constante λ dis-
tinta de cero. Esta operación se denota por λEi → Ei .
La ecuación Ej (o la la j ) puede multiplicarse por una constante λ distinta
de cero y sumarse a la ecuación Ei (o la i). Esta operación se denota por
(Ei + λEj ) → Ei .
El orden de las ecuaciones Ei y Ej ( o la i y la la j ) puede intercambiarse.
Esta operación se denota por Ei ↔ Ei .

77
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

El Método de Eliminación Gaussiana consiste en transformar mediante


.
operaciones elementales entre las a la matriz aumentada del sistema [A..b]
.
en una matriz de la forma [A0 ..b0 ], donde A0 es una matriz triangular superior
y así el sistema Ax = b se transforma en un sistema equivalente A0 x = b0
que es un sistema fácil de resolver, ya que es triangular superior y se puede
resolver con sustitución hacia atrás.

Ejemplo 3.8. Resolver el sistema lineal usando el método de eliminación


gaussiana.

x1 + 2x2 + x3 = 5
2x1 + 4x3 = 22
4x1 + 2x2 + 2x3 = 18

La matriz aumentada del sistema es:



.. 
E1  1 2 1 . 5
.. 22 
E2  2 0 4 . 
4 2 2 .. 18
 
E3
.
a11 = 1 es el elemento pivote, para anular los elementos que están debajo
de la primera columna se usan los multiplicadores. Los multiplicadores son
los números por los que se multiplica la la pivote para restarla de las cor-
respondientes las posteriores. M21 = a21 /a11 = 2/1 = 2 y M31 = a31 /a11 =
4/1 = 4.

.. 
1 2 1 . 5
2 ... 12
 
E2 − 2E1 
 0 −4

0 −6 −2 .. −2

E3 − 4E1
.
a22 = −4 es el elemento pivote, para anular el elemento que esta debajo de
la segunda columna se usa el multiplicador M22 = a32 /a22 = −6/ − 4 = 1.5.

.. 
.
 1 2 1
..
5 
 0 −4 2 . 12 
0 −5 .. −20
 
E3 − 1.5E2 0
.

78
Métodos Numéricos con MATLAB

Finalmente se obtiene el sistema:

x1 + 2x2 + x3 = 5
−4x2 + 2x3 = 12
−5x3 = −20

usando sustitución hacia atrás se tiene que x3 = 4, x2 = −1 y x1 = 3, luego


la solución del sistemas es x = (3, −1, 4).
Ejemplo 3.9. Resolver el sistema
0.03x1 + 58.9x2 = 59.2
5.31x1 − 6.10x2 = 47.0

a) Usando eliminación Gaussiana.

.
58.9 .. 59.2
!
E1 0.03
E2 5.31 −6.10 ... 47.0

El multiplicador M21 = 5.31/0.03 = 177

.
58.9 .. 59.2
!
0.03
E2 − 177E1 0 −10431.4 ... −10431.4

El sistema triangular que resulta es:

0.03x1 + 58.9x2 = 59.2


−10431.4x2 = −10431.4

La solución exacta del sistema es x = (x1 , x2 ) = (10, 1).


b) Usando eliminación Gaussiana y aritmética de 3 dígitos por corte. Para
resolver el sistema usando eliminación gaussiana y corte a tres dígitos,
primero se escribe la matriz aumentada del sistema con los números a
tres dígitos usando corte (en este caso queda igual) y después se aplica

79
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

eliminación gaussiana ( en cada operación se trabaja con tres dígitos us-


ando corte).

.
58.9 .. 59.2
!
E1 0.03
E2 5.31 −6.10 ... 47.0

El multiplicador es M21 = 5.31/0.03 = 177

.. !
0.03 58.9 . 59.2 0.03x1 + 58.9x2 ≈ 59.2
E2 − 177E1 −10400 ..
. −10300 −10400x2 ≈ −10300
Si x denota la solución aproximada del sistema, entonces x = (x1 , x2 ) =
(30, 0.99)

c) Usando eliminación gaussiana y artmética de 3 dígitos por redondeo. Para


resolver el sistema usando eliminación gaussiana y redondeo a 3 dígi-
tos, primero se escribe la matriz aumentada del sistema redondeando los
números a tres dígitos, pero en este caso queda igual ya que sólo tienen
tres dígitos, luego se aplica eliminación gaussiana (en cada operación se
trabaja con tres dígitos usando redondeo).

.
58.9 .. 59.2
!
0.03
5.31 −6.10 ... 47.0
,

El multiplicador es 177.

.
58.9 ..
!
0.03 59.2
E2 − 177E1 .
0 −10400 .. −10500

0.03x1 + 58.9x2 ≈ 59.2


−10400x2 ≈ −10500

Si x denota la solución aproximada del sistema entonces x = (x1 , x2 ) =


(−10, 1.01)

80
Métodos Numéricos con MATLAB

Observe que en b) y c) aunque los cálculos se hicieron con tres cifras, en


las respuestas no se tiene exactitud de tres cifras. La discrepancia se debe
al error de redondeo. Recuerde que se llama error de redondeo independien-
temente si en los cálculos se usa corte o redondeo. Como las computadoras
usan aritmética cuya precisión esta jada de antemano, es posible que cada
vez que se realice una operación aritmética se introduzca un pequeño error.
El ejemplo anterior pone de maniesto que la eliminación gaussiana puede
llevar aparejado un error apreciable en la solución de un sistema de ecua-
ciones lineales cuando se resuelve en un computador.
A continuación, se discutirá cómo minimizar los efectos del redondeo y se
evitarán condiciones que pueden provocar la amplicación de los errores de
redondeo.

Si, en el proceso de eliminación gaussiana, resulta que el elemento que


se usará como pivote es cero, este elemento no puede usarse como pivote
para eliminar elementos de la columna que están por debajo de la diagonal
principal. En este caso se intercambia la la que tiene el pivote cero por otra
la en la que el elemento que quede como pivote no sea cero. Este proceso
se llama Pivoteo y el criterio para decidir que la escoger se llama estrategia
de pivoteo. La estrategia de pivoteo trivial consiste en localizar la primera
la por debajo de la la en la que el pivote es cero e intercambiarla.

Ejemplo 3.10. Dado un sistema de ecuaciones AX = b y se desea resolver


en MATLAB utilizando eliminación Gaussiana, se utiliza la notación x =
A\b. Este metodo es mucho más rapido que el calculo de la inversa. Si se
considera una matriz de Hilbert H de orden 4 y el vector columna b = (1111).

>> tic, x=inv(H)*b; , toc


Elapsed time is 0.000109 seconds.
>> tic, x=H\b; , toc
Elapsed time is 0.000101 seconds.

Ejercicio 4. Explore la función rref de MATLAB que trabaja con la matriz


aumentada B = (A b) asociada a un sistemas de ecuaciones Ax = b. De-
termine para una matriz de Hilbert de orden 5, las diferencias de tiempo de
trabajo de esta función, con las funciones antes mesionadas.

81
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

3.4.2 Factorización LU
El objetivo de este método es factorizar la matriz A como el producto de un
matriz triangular inferior L y una matriz triangular superior U ; y después
resolver el sistema Ax = b en dos etapas como se muestra a continuación,
Ax = b, como A=LU entonces,
(LU )x = b
L(U x) = b, si se toma U x = y
Ly = b.
Entonces para encontrar la solución X del sistema, primero se resuelve el
sistema Ly = b y luego el sistema U x = y .
El sistema Ly = b es un sistema fácil de resolver ya que L es una matriz
triangular inferior y se resuelve con sustitución hacia delante.
El sistema U x = b también es un sistema fácil de resolver ya que U es una
matriz triangular superior y se resuelve con sustitución hacia atrás.
Ejemplo 3.11. Resuelva el sistema usando factorización
60x1 + 30x2 + 20x3 = 180
30x1 + 20x2 + 15x3 = 115
20x1 + 15x2 + 12x3 = 86

    
60 30 20 x1 180
 30 20 15  x2  =  115  AX = b
20 15 12 x3 86
La matriz A se puede factorizar como
    
60 30 20 1 0 0 60 30 20
 30 20 15  =  1/2 1 0   0 5 5 
20 15 12 1/3 1 1 0 0 1/3
| {z } | {z }| {z }
A L U

El primer paso es resolver el sistema Ly = b,


    
1 0 0 y1 180
 1/2 1 0  y2  =  115 
1/3 1 1 y3 86

82
Métodos Numéricos con MATLAB

y1 = 180
1/2y1 + y2 = 115
1/3y1 + y2 + y3 = 86
Usando sustitución hacia adelante se obtiene y1 = 180, y2 = 25, y3 = 1.
Luego
 
180
y =  25 
1
El segundo paso es resolver el sistema U x = y
    
60 30 20 x1 180
 0 5 5  x2  =  25 
0 0 1/3 x3 1

60x1 + 30x2 + 20x3 = 180


5x2 + 5x3 = 25
1/3x3 = 1
Usando sustitución hacia atrás se obtiene x3 = 3, x2 = 2, x1 = 1. Por lo
tanto la solución del sistema es:

1
X= 2 
3
La pregunta que surge ahora es ¾cómo factorizar una matriz An×n como
el producto de una matriz Ln×n (triangular inferior) y una matriz Un×n (tri-
angular superior)?
Si se supone que A = LU , entonces
    
a11 a12 . . . a1n l11 0 0 0 u11 u12 . . . u1n
 a21 a22 . . . a2n   l21 l22 0 0  0 u22 . . . u2n 
 
 .. .. . . .  = . .. . . .. .. 
  
 . . . ..   .. . . 0  0 . . 

0
an1 an2 . . . ann ln1 ln2 · · · lnn 0 0 · · · unn

83
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

 
l11 u11 l11 u12 ... l11 u1n
 l21 u11 l21 u12 + l22 u22 l21 u1n + l22 u2n 
A= .. .. ..
 
. . .

 
ln1 u11 ln1 u12 + ln2 u22 · · · ln1 u1n + ln2 u2n + · · · + lnn unn
Igualando las componentes de las matrices se obtiene:

a11 = l11 u11 a12 = l11 u12 . . . a1n = l11 u1n


a21 = l21 u11 a22 = l21 u12 + l22 u22 . . . a2n = l21 u1n + l22 u2n
.. .. ..
. . .
an1 = ln1 u11 an2 = ln1 u12 + ln2 u22 . . . ann = ln1 u1n + ln2 u2n + . . . + lnn unn

Este es un sistema de n2 ecuaciones con n2 + n elementos desconocidos:


lij , i = 1, 2, . . . , n ; uij , j = 1, 2, . . . , n, para que el sistema tenga solución
única se deben especicar n elementos.
El método de factorización en el que se especica que l11 = l22 = l33 =
. . . = lnn = 1 se llama método Doolittle. Si se especica que u11 = u22 =
u33 = . . . = unn = 1 el método se llama Crout, si se especíca lii = uii el
método se llama Choleski (A simetrica)[1].
Ejemplo 3.12. Halle la factorización de la matriz A, con el método Doolittle
y con el método de Choleski.
1. Método de Doolitle (lii = 1)
    
60 30 20 1 0 0 u11 u12 u13
 30 20 15  =  l21 1 0  0 u22 u23 
20 15 12 l31 l32 1 0 0 u33

Multiplicando las matrices e igualando las componentes se obtiene:


u11 = 60 l21 u11 = 30 l31 u11 = 20
u12 = 30 l21 u12 + u22 = 20 l31 u12 + l32 u22 = 15
u13 = 20 l21 u13 + u23 = 15 l31 u13 + l32 u23 + u33 = 12
u11 = 60 l21 = 1/2 u22 = 5
u12 = 30 l31 = 1/3 u23 = 5
u13 = 20 l32 = 1 u33 = 1/3

84
Métodos Numéricos con MATLAB

Así, la factorización de A es:

    
60 30 20 1 0 0 60 30 20
 30 20 15  =  1/2 1 0  0 5 5 
20 15 12 1/3 1 1 0 0 1/3

2. Método de Choleski (lii = uii)


    
60 30 20 l11 0 0 l11 u12 u13
 30 20 15  =  l21 l22 0  0 l22 u23 
20 15 12 l31 l32 l33 0 0 l33

Multiplicando las matrices e igualando se obtiene que la factorización


Choleski para A es:

   √  √ √ √ 
60 30 20 √ 60 √0 0 60 60/2
√ 60/3

 30 20 15  =  60/2 5 0  0 5 5 
√ √ √  √ 
20 15 12 60/3 5 3 3 0 0 3 3

A continuación se presentan algunos resultados que relacionan sistemas


lineales y factorización de matrices. La demostración de algunos resultados
no se incluye en este texto.

Teorema 3.2. Si se puede efectuar el proceso de eliminación gaussiana en el


sistema Ax = b sin intercambio de renglones, entonces la matriz A se puede
factorizar como el producto de una matriz triangular inferior L, y una matriz
triangular superior U .

Teorema 3.3. Si A es no singular, en el proceso de eliminación gaussiana


para resolver Ax = b se puede presentar un intercambio de renglones. Esto
signica que existe una matriz de permutación P para la cual se puede re-
solver el sistema P Ax = P b sin intercambio de renglones, luego se puede
factorizar P A como P A = LU . Como P −1 = P t entonces A = P −1 LU =
(P t L)U pero P t L no es triangular inferior.

85
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

Proof. Ver q
MATLAB posee la función [L,U,P] = lu(A), que dada una matriz cuadrada
A, genera tres matrices, L, U y P , tales que: P A = LU . Si la eliminación se
presenta sin intercambio de renglones, P es la matriz identidad.
Denición 3.6. La matriz An×n es estrictamente dominante en sentido di-
n
agonal (o diagonalmente dominante, EDD) si |aii | > |aij | i=1, 2, 3,. . . ,
P
j=1
n
Ejemplo 3.13. Sea
 
8 −4 0
A= 2 5 1 
3 −7 −12

|8| > | − 4| + |0|


|5| > |2| + |1|
| − 12| > |3| + | − 7|
A es estrictamente dominante.
Algoritmo 8 (Algoritmo matriz EDD). Dada una matriz cuadrada A.
[m,n]=size(A);
for i=1:n
D(i,i)=A(i,i);
A(i,i)=0;
if abs(D(i,i))>max(A(i,1:end))
r=1;
else
r=0;
break
end
end
Sí r=1 la matriz es EDD.
Teorema 3.4. Si una matriz es estrictamente dominante en sentido diago-
nal es no singular y se puede realizar la eliminación gaussiana de cualquier
sistema lineal de la forma Ax = b sin intercambio de renglones.

86
Métodos Numéricos con MATLAB

3.5 Métodos iterativos para sistemas lineales


El método de eliminación gaussiana y sus variantes (pivoteo, factorización
LU ) son conocidos como métodos directos para resolver un sistema lineal
Ax = b; se ejecutan a través de un número nito de pasos y generan una
solución x que sería exacta si no fuera por los errores de redondeo. Un
método iterativo para resolver un sistema lineal Ax = b comienza con una
aproximación
 (K) ∞ inicial x(0) a la solución x, y genera una sucesión de vectores
x K=0
que idealmente converge a la solución.
El cálculo se detiene cuando se cuenta con una solución aproximada con
cierto grado de precisión especicado de antemano ó después de cierto número
de iteraciones.
Los métodos iterativos convierten el sistema Ax = b en otro sistema
equivalente de la forma x = T x + c, donde T es una matriz ja y x un
vector jo; la sucesión de vectores x(K) de la solución aproximada se genera
calculando

x(K) = T x(K−1) + C

Para k = 1, 2, 3, . . . y x(0) la aproximación inicial.


Dado un sistema lineal de ecuaciones Ax = b. Sí se puede expresar
la matriz A en terminos de otras matrices y generar una representación del
sistema original, de la forma x = T x+c, entonces se puede denir la sucesión
iterativa x(k) = T x(k−1) +c para k > 1. Esta sucesión se conoce con el nombre
de metodo iterativo asociado al sistema Ax = b.

Teorema 3.5. Suponga que x = T x + c es un sistema equivalente de Ax = b,


con A invertible. ∞
Para cualquier X (0) ∈ Rn , la sucesión x(k) k=0 denida por


x(k) = T x(k−1) + C , para k > 1 converge a la solución única de Ax = b si y


sólo si ρ(T ) < 1. ρ(T ) es el radio espectral de la matriz T . [5].

El resultado anterior garantiza la convergencia del método iterativo sin


importar la condición inicial que se elija. Se debe conocer el sistema equiv-
alente que genera la sucesión. Se estudiará la representación de los métodos
de Jacobi y Gauss-Seidel.

87
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

Sea A = (aij ) matriz de orden n, D = (dij ), U = (uij ) y L = (lij ) con


i, j ∈ {1, 2, . . . , n}, dadas por:
(
aij si i = j
dij =
0 en otro caso

(
aij si i < j
uij =
0 en otro caso
(
aij si i > j
lij =
0 en otro caso
Claramente, A = D+L+U . Considerando el sistema Ax = b y reemplazando,
se obtiene

Ax = b
(D + L + U )x = b
Dx + (L + U )x = b
Dx = b − (L + U )x
x = D−1 (b − (L + U )x)
x = D−1 (−(L + U )x) + D−1 b

Así, un sistema equivalente para Ax = b es: x = Tj X + cj donde


Tj = −D−1 (L + U ) y cj = D−1 b. El sistema x = Tj x + cj es la rep-
resentación matricial del método de Jacobi y genera la sucesión iterativa
x(k) = Tj X (k−1) + cj .
Trabajando con las mismas matrices D, L y U denidas anteriormente, se
puede contruir otro sistema equivalente a Ax = b:

Ax = b
(D + L + U )x = b
(D + L)x + U x = b
(D + L)−1 x = b − U x
x = (D + L)−1 (b − U x)
x = (D + L)−1 (−U x) + (D + L)−1 b

88
Métodos Numéricos con MATLAB

Este sistema genera la representación matricial del método de Gauss-


Seidel, donde x = Tg x + cg y Tg = −(D + L)−1 U , cg = (D + L)−1 b. En
algunos textos evitan el signo menos de las matrices Tj y Tg , anteponiendo
un signo menos a la deción de las matrices U y L, sin embargo este cambio
no altera el valor del radio espectral, la justicación se deja como ejercicio
para el lector.

Ejemplo 3.14. Considere el sistema lineal.

6x1 − x2 + 2x3 = 21
4x1 − 8x2 + x3 = 5
−3x1 + 4x2 + 10x3 = 48

las matrices involucradas en los métodos de Jacobi y Gauss-Seidel son:


     
6 0 0 0 0 0 0 −1 2
D =  0 −8 0  , L =  4 0 0 , U = 0 0 1 
0 0 10 −3 4 0 0 0 0

El teórema anterior garantiza la convergencia de un método iterativo x =


T x + C , si el radio espectral de la matriz T es menor que 1. Para el método
de Jacobi Tj = −D−1 (L + U )
 −1   
6 0 0 0 0 0 0 −1 2
Tj = −  0 −8 0   4 0 0  0 0 1 
0 0 10 −3 4 0 0 0 0
 −1  
6
0 0 0 −1 2
Tj =  0 18 0   4 0 1 
0 0 −110
−3 4 0
1 −1
 
0 6 3
1 1 
Tj = 
2
0 8
3 −2
10 5
0

para calcular el radio espectral de Tj con MATLAB, se puede utilizar los


comandos:
Tj =

89
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

0 -1/6 1/3
-1/2 0 -1/8
-3/10 2/5 0
>> radio=max(abs(eig(Tj)))

radio =

0.447015782662384
Por lo tanto, para toda condición inicial, el método de Jacobi converge. Para
el método de Gauss-Seidel Tg = −(D + L)−1 U

   −1  
6 0 0 0 0 0 0 −1 2
Tg = −   0 −8 0  +  4 0 0   0 0 1 
0 0 10 −3 4 0 0 0 0
 1  
6
0 0 0 −1 2
1 −1
Tg = 
12 8
0   0 0 1 
1 1 1
60 20 10
0 0 0

Calculando Tg y su radio espectral en MATLAB, se obtiene

>> Tg=(-1)*inv(D+L)*U

Tg =

0 1/6 -1/3
0 1/12 -1/24
0 1/60 -1/12

>> radio=max(abs(eig(Tg)))

radio =

57/721

El radio espectral se calculó utilizando el comando format rat que hace que
MATLAB exprese los resultados en terminos de fracciones, si se desea cono-
cer el valor del radio se utiliza format long y se obtiene:

90
Métodos Numéricos con MATLAB

>> format long


>> radio=max(abs(eig(Tg)))

radio =

0.079056941504209
Así, el método de Gauss-Seidel converge para todo condición inicial que se
tome.
Si se desea trabajar con matrices de un tamaño considerable, se presentara
un problema al calcular el radio espectral, ya que el computo del mismo,
representa un problema. El siguiente teorema garantiza que para cierto tipo
de matrices, es suciente examinar si la matriz A asociada al sistema de
ecucaciones, es es estrictamente dominante en sentido diagonal (EDD).
Teorema 3.6. Si A es estrictamente dominante en sentido diagonal, en-
tonces con cualquier elección de x(0) , 
tanto el método de Jacobi como el de

Gauss-Seidel dan origen a sucesiones x(k) k=1 que convergen a la solución
única de Ax = b. [3].
Aunque esta condición parece ser muy restrictiva varios sistemas lineales
poseen esta propiedad.
Por ejemplo, el sistema

6x1 − 2x2 + x3 = 11
x1 + 2x2 − 5x3 = −1
−2x1 + 7x2 + 2x3 = 5
no tiene una matriz A diagonalmente dominante

 
6 −2 1
A= 1 2 −5 
−2 7 2
Sin embargo, si se reordenan las ecuaciones, resulta un sistema lineal de
modo que la matriz de coecientes es diagonalmente dominante. En este caso
intercambiando las las 2 y 3

91
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

6x1 − 2x2 + x3 = 11  
6 −2 1
−2x1 + 7x2 + 2x3 = 5 A =  −2 7 2 
1 2 −5
x1 + 2x2 − 5x3 = −1

En la sección de ejercicios se trabajaran diferentes ejemplos que estudian


la relación entre la velocidad de los métodos de Jacobi y Gauss-Seidel y el
valor del radio espectral de las matrices Tj y Tg . Además se mostrara que no
necesariamente, si un método converge el otro debe hacerlo.
A continuación se muestra el codigo de una función en MATLAB, que dada
una matriz A, un vector b, una condición inicial x0 y una tolerancia tol;
calcula la solución del sistema Ax = b utilizando el método de Jacobi. El
codigo para el método de Gauss-Seidel se deja como un ejercicio para el
lector.

Algoritmo 9 (Algoritmo de Jacobi). El argumento de salida de la función


Jacobi es un vector x

function x=Jacobi(A,b,x0,tol)
n=length(b);
D=zeros(n);
L=zeros(n);
U=zeros(n);
for i=1:n
D(i,i)=A(i,i);
for j=1:n
if j>i
U(i,j)=-A(i,j);
elseif j<i
L(i,j)=-A(i,j);
end
end
end
Tj=inv(D)*(L+U);
Cj=inv(D)*b;
x=Tj*x0+Cj;
while abs(norm(x)-norm(x0))>tol

92
Métodos Numéricos con MATLAB

x0=x;
x=Tj*x0+Cj;
end

3.6 Ejercicios
1. Usando eliminación gaussiana, resuelva el sistema

x + 1/2y + 1/3z = 8
1/2x + 1/3y + 1/4z = 8
1/3x + 1/4y + 1/5z = 7

(a) Manejando números como fracciones


(b) Usando aritmética a dos dígitos
(c) Usando aritmética a tres dígitos
(d) Usando aritmética a seis dígitos

2. Use la eliminación gaussiana y la aritmética de corte de tres dígitos para


resolver los siguientes sistemas lineales. Después compare las aproxi-
maciones con la solución real.

(a)

58.9x1 + 0.03x2 = 59.2


−6.10x1 + 5.31x2 = 47.0

Solución real x1 = 1, x2 = 10
(b)

3.03x1 − 12.1x2 + 14x3 = −119


−3.03x1 + 12.1x2 − 7x3 = 120
6.11x1 − 14.2x2 + 21x3 = −139

Solución real x1 = 0, x2 = 10, x3 = 1/7

i) Repita el ejercicio 2 usando la aritmética de redondeo a tres dígitos.

93
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

ii) Repita el ejercicio 2 usando la eliminación gaussiana con pivoteo


parcial.
iii) Repita el ejercicio 2 usando la eliminación gaussiana con pivoteo
parcial escalado.

3. Supóngase que se quiere resolver el sistema Az = b, donde las aij , zi


y bi son números complejos. Demuestre que lo anterior se puede hacer
usando sólo aritmética real.
(Indicación : A puede volver a escribirse como B + Ci).
4. (a) Demuestre que el sistema
    
3 + i 1 + 2i z1 6 + 2i
=
−3i 2 + i z2 1−i
Puede escribirse como
    
3 1 −1 −2 x1 6
 0
 2 3 −1   x2
    1 
= 
 1 2 3 1   y1   2 
−3 1 0 2 y2 −1
(b) Resuelva el sistema del inciso a) y luego encuentre z1 y z2 .
5. Use el algoritmo de la eliminación gaussiana para resolver los sistemas
lineales siguientes, de ser posible, y determine si se requieren intercam-
bios de renglón:
a) x1 − x2 + 3x3 = 2 b) 2x1 − l.5x2 + 3x3 = l
3x1 −3x2 +x3 = −l −x1 + 2x3 = 3
x1 + x2 = 3 4x1 − 4.5x2 + 5x3 = 1

6. Use el algoritmo de Choleski y obtenga una factorización de la forma


A = LLt para las matrices:
 
  4 1 −1 0
2 −1 0  1 3 −1 0 
a) A=  −1 2 −1  b) A=  −1 −1

5 2 
0 −1 2
0 0 2 4

94
Métodos Numéricos con MATLAB

7. Resuelva los sistemas lineales usando Factorización de Choleski y Fac-


torización de Crout

(a)

2x1 − x2 = 3
−x1 + 2x2 − x3 = −3
−x2 + 2x3 = 1

(b)

4x1 + x2 − x3 =7
x1 + 3x2 − x3 =8
−x1 − x2 + 5x3 + 2x4 = −4
2x3 + 4x4 =6
 
0 1
8. Demuestre que la matriz A = no tiene una factorización LU .
1 1
 
1 5
9. Determine la factorización LU de la matriz en la que L y
3 16
U tienen elementos diagonales unitarios.
 
6 10 0
10. Determine la factorización LU de la matriz  12 26 4  en donde
0 9 12
L es una matriz triangular inferior con doses en su diagonal principal.

11. Una matriz que es simétrica y denida positiva (SPD) tiene una raíz
cuadrada X que es SPD.
De este modo X 2 = A. Encuentre X si

 
13 10
A=
10 17

12. Encuentre la matriz de permutación P , tal que P A se pueda factor-


izar en el producto LU , donde L es triangular inferior con unos en su
diagonal y donde U es triangular superior.

95
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

 
1 2 −1
A= 2 4 0 
0 1 −1

13. Obtenga factorizaciones de la forma A = P t LU para las siguientes


matrices.

(a)
 
0 2 3
 1 1 −1 
0 −1 1

(b)
 
1 2 −1
 1 2 3 
2 −1 4
 
1 0 −1
14. Sea A =  0 1 1 , Calcule todos los valores de α para los cuales
−1 1 α
(a) A es singular
(b) A es estrictamente dominante en sentido diagonal
(c) A es simétrica
15. Para los vectores en los incisos a) y b), evalúe las normas k∗kp , p =
1, 2, ∞. Para las matrices en los incisos c) y d), evalúe las normas para
p = 1, 2, ∞.

a) x = [2.15, −3.1, 10.0, 2.2] b) y = [−4, −5, 0, 3, −7]


   
−9 5 −9 8 −2 1
c) A =  −2 7 5  d) B =  −2 2 −1 
5 1 8 −2 4 −3
e) Encuentre las normas de B 2 , A + B , AB .
f) ¾Se cumple la desigualdad del triángulo para A + B ?

96
Métodos Numéricos con MATLAB

16. Considere las siguientes matrices:


 
  2 1 0
2 −1
a) b)  1 2 0 
−1 2
0 0 3

i. Calcule los valores característicos (o autovalores)


ii. Calcule el radio espectral.
iii. Obtenga k·k2

17. Demuestre que las siguientes sucesiones son convergentes y encuentre


sus límites.

(a) x(k) = (1/k + 2, e1−k , − 2/k 2 )


2 √
(b) x(k) = (ke−k , (cos k)/k , k 2 + k − k)

18. Resuelva el sistema

9x + 4y + z = −17
x − 2y − 6z = 14
x + 6y = 4

(a) Usando el método de Jacobi.


(b) Usando el método de Gauss-Seidel. ¾Cuánto más rápida es la
convergencia que en el inciso a)?

19. Aplique el método de Jacobi para resolver los sistemas lineales, con una
tolerancia o error de 10−3 en la norma innito. Use x(0) = 0.

a) 3x1 − x2 + x3 = 1 b) 10x1 − x2 = 9
3x1 + 6x2 + 2x3 = 0 −x1 + 10x2 − 2x3 = 7
3x1 + 3x2 + 7x3 = 4 −2x2 + 10x3 = 6

20. Repita el ejercicio anterior utilizando el algoritmo de Gauss-Seidel.

21. Calcule los números de condición de las siguientes matrices en relación


con la norma innito.

97
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

(a)
1 1
 
2 3
1 1
3 4

(b)
 
1 −1 −1
 0 1 −1 
0 0 −1

(c)
 
4 2 2
 2 5 1 
2 1 6

22. (a) Calcule la inversa de la matriz


 
1 2
1 2+ε

(b) Determine para cual ε la siguiente matriz está mal condicionada.

 
1 2
1 2+ε

23. Demuestre las siguientes desigualdades para el número de condición.

(a) κ(AB) ≤ κ(A)κ(B)


(b) κ(λA) = κ(A) (λ 6= 0)
24. Calcule los números de condición usando las normas kAk1 , kAk2 , kAk∞ .
     
a+1 a 0 1 α 1
a) b) c)
a a−1 −2 0 1 1
25. Considere el sistema lineal

    
1 2 x1 3
= , para una pequeña δ > 0
1+δ 2 x2 3+δ

98
Métodos Numéricos con MATLAB

(a) Usando la solución aproximada x = (0, 3)t , compare la norma


innito del vector residual y la norma innito del vector de error.
¾Que concluye con esto?
(b) Determine el número condición k∞ (A) ¾qué sucede conforme δ se
hace pequeña?
(c) Lleve a cabo un paso de mejoramiento iterativo basándose en la
solución aproximada x.

26. Este problema muestra como la solución de un sistema de ecuaciones


puede ser inestable en relación a pequeñas perturbaciones en los datos.
Resuelva Ax = b con cada una de las siguientes matrices, con b =
(100, 1)t
   
1 1 1 1
A1 = A2 =
1 0 1 0.01

27. Para decidir qué computador comprar, sí el C1 o el C2 , una compañía


ha decidido evaluar la precisión con la que cada uno de estos modelos
resuelve el sistema.
34x + 55y − 21 = 0
55x + 89y − 34 = 0

El computador C1 da como solución x = −0.11 e y = 0.45 y, para


comprobar su exactitud se sustituye en el sistema y se obtiene

34(−0.11) + 55(0.45) − 21 = 0.01


55(−0.11) + 89(0.45) − 34 = 0.00

El computador C2 da como solución x = −0.99 e y = 1.01 y, para


comprobar su exactitud se sustituye en el sistema y se obtiene

34(−0.99) + 55(1.01) − 21 = 0.89


55(−0.99) + 89(1.01) − 34 = 1.44

¾Qué computador da mejor respuesta? ¾Por qué?

99
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

28. Demuestre que si A es simetrica, entonces kAk2 = ρ (A)


29. Demuestre que si A es diagonalmente dominante estricta, entonces
kTj k∞ < 1
30. Encuentre la solucion de los sistemas lineales AX = b utilizando los
metodos de Jacobi y Gauss-Seidel con un errror de 10−5

(a)


 4 cuando j= i y i = 1, 2, . . . , 16



 
 j = i + 1 y i = 1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15
j =i−1 y i = 2, 3, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16
 
aij = −1 cuando

 
 j =i+4 y i = 1, 2, . . . , 12
j =i−4 y i = 5, 6, . . . , 16

 


0 en otro caso

(1.902207, 1.051143, 1.175689, 3.480083, 0.819600, −0.264419,


b = −0.412798, 1.175689, 0.913337, −0.150209, −0.264419,
1.051143, 1.966694, 0.91337, 0.819600, 1.902207)T

(b)
4 j= i i = 1, 2,. . . , 25

 cuando y


 1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14,

 
 j =i+1 y i=
 16, 17, 18, 19, 21, 22, 23, 24

 


 

2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15,
 
aij = −1 cuando j =i−1 y i=

 
 17, 18, 19, 20, 22, 23, 24
j =i+5 y i = 1, 2, . . . , 20

 


 

j =i−5 y i = 6, 7 . . . , 25

 


0

en otro caso

y
b = (1, 0, −1, 0, 2, 1, 0, −1, 0, 2, 1, 0, −1, 0, 2, 1, 0, −1, 0, 2, 1, 0, −1, 0, 2)T
(c)
2i cuando y i = 1, 2, . . . , 40

 j= i
j = i + 1 y i = 1, 2, . . . , 39


aij = i cuando
 j = i − 1 y i = 2, 3, . . . , 40
0 en otro caso

100
Métodos Numéricos con MATLAB

y
bi = 1.5i − 6 para cada i = 1, 2, . . . , 40
(d)

2i cuando y

 j= i i = 1, 2, . . . , 80
y i = 1, 2, . . . , 78

j =i+2

 0.75i cuando


y i = 3, 4, . . . , 80

aij =  j =i−1
j =i+4 y i = 1, 2, . . . , 76
0.5i cuando

y i = 5, 6, . . . , 80

j =i−4



en otro caso

0

y
bi = π para cada i = 1, 2, . . . , 80

31. Utilizando los metodos de Jacobi y Gauss-Seidel para los siguientes


sistemas de ecuaciones, Responda:

(a)  
1 0 1
A1 = −1 1 0 
1 2 −3
b1 = (2, 0, 0)T
Que sucede con la convergencia de los metodos para el sistema
A1 x = b1 ?
Que tiene de especial la matriz A1 ?
Se podria diseñar un sistema de las mismas caracteristicas del
sistema A1 x = b1 ?
(b)  
8 0 0 3 5
0 6 0 0 6
 
0
A2 =  1 8 0 7 
0 0 0 7 7
1 2 3 4 10
b2 = (0, 0, 0, 0, 2)T
Que sucede con la convergencia de los metodos para el sistema
A2 x = b1 ?

101
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

Que tiene de especial la matriz A2 ?


Se podria diseñar un sistema de las mismas caracteristicas del
sistema A2 x = b2 ?

102
Capitulo 4
Interpolación y Ajustes de Curvas
En este capítulo, se pretende resolver el siguiente problema: Dados n+1 pun-
tos del plano (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), xi 6= xj donde xi y yi son números
reales, encontrar un polinomio P tal que P (xi ) = yi , al polinomio P se le
llama polinomio de interpolación. Por otro lado, se aplicara este resultado
para aproximar una función, es decir, dada una función f (x) denida en un
intervalo [a, b] y una partición del intervalo {x0 , x1 , . . . , xn }, encontrar un
polinomio P (x), tal que P (xi ) = f (xi ).
Una razón importante por la que se considera un polinomio en la aproxi-
mación de una función es porque, además de ser fácil de evaluar, la derivada
y la integral indenida de un polinomio son fáciles de determinar y también
son polinomios. Otra razón para emplear polinomios está justicada por el
teorema de Weierstrass, el cual establece que, sobre un intervalo nito cer-
rado, una función continua dada, se puede aproximar tan cerca como se desee
por un polinomio. ¾Cómo hallar el polinomio de interpolación?

El siguiente teorema muestra una relación sobre el grado del polinomio y


el número de puntos a interpolar. Además garantiza la unicidad del mismo.

Teorema 4.1 (Teorema de Interpolación ). Sean x0 , x1 , . . . xn , n+1 números


reales distintos. Entonces, para valores reales arbitrarios y0 , y1 , . . . , yn existe
un único polinomio

P (x) = an xn + an−1 xn−1 + · · · + a1 x + a0

De grado a lo sumo n tal que P (xi ) = yi para i = 0, 1, 2, . . . , n

103
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

A continuación se presentan diferentes métodos para hallar el polinomio


de interpolación, teniendo en cuenta que pueden diferir en su presentación,
pero dado un conjunto de puntos existe un único polinomio interpolador, no
importa que método se utilice para calcularlo.

4.1 Método Directo


Si (xi , yi ) para i = 0, 1, 2, . . . , n, son n + 1 puntos dados, entonces se busca
un polinomio de la forma:

P (x) = an xn + an−1 xn−1 + · · · + a1 x + a0 (4.1)


Puesto que P (x) debe pasar por los puntos, se tienen n + 1 ecuaciones
algebraicas lineales P (xi ) = yi para los n + 1 coecientes desconocidos ai de
P (x). Las ecuaciones son:

P (x0 ) = an xn0 + an−1 x0n−1 + · · · + a1 x0 + a0 = y0


P (x1 ) = an xn1 + an−1 x1n−1 + · · · + a1 x1 + a0 = y1
.. (4.2)
.
n n−1
P (xn ) = an xn + an−1 xn + · · · + a1 xn + a0 = yn

Este sistema se puede escribir como:

xn0 an + x0n−1 an−1 + · · · + x0 a1 + a0 = y0


xn1 an + x1n−1 an−1 + · · · + x1 a1 + a0 = y1
.. (4.3)
.
n n−1
xn an + xn an−1 + · · · + xn a1 + a0 = yn

ó de forma matricial V x = b:
    
xn0 xn−1
0 · · · x0 1 a0 y0
 xn xn−1 · · · x1 1   a1   y1 
 1 1
.. .. = .. (4.4)
   
. . .
  
    
n n−1
xn xn · · · xn 1 an yn

104
Métodos Numéricos con MATLAB

El sistema tiene una solución única para las incógnitas ai , i = 0, 1, 2, . . . , n


si y sólo si el determinante de la matriz V de los coecientes de las incógnitas
es distinto de cero.

xn xn−1 · · · x0 1
0 0
xn xn−1 · · · x1 1
1 1
V = .. (4.5)

.


n n−1
xn xn · · · xn 1
V se conoce como matriz de Vandermonde y (4.5) como determinante de
Vandermonde, este es distinto de cero si y solo si los xi 6= xj para todo i 6= j .
Luego el sistema tiene solución única y esto muestra que solamente existe un
único polinomio P tal que P (xi ) = yi , i = 0, 1, 2, . . . , n.
Algoritmo 10 (Algoritmo de interpolación directa). La siguiente función de
MATLAB, encuentra un vector de coecientes Z = (ai ), generando la matriz
V denida en (4.5). Los argumentos de entrada, son dos vectores columna X
y Y, que representan las componentes de los puntos que se quieren interpolar.
function Z=inter_Directo(X,Y)
n=length(X);
V=[];
for i=0:n-1
V=[V,(X).^(i))];
end
Z=V\Y;
MATLAB posee la función alternativa V=vander(x), que retorna la matriz
de Vandermonde, contruida con el vector x.
MATLAB posee la función p=polyfit(x,y,n), que dados dos vectores
x,y, que representan parejas de puntos del plano y un número natural n,
encuentra los coecientes p del polinomio de grado n que mejor aproxima los
datos. Sí n es la longitud de x menos uno, calcula el polinomio interpolador
de forma directa.

4.2 Polinomio de Newton


La forma general del polinomio interpolante de Newton para n + 1 puntos
del plano

105
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) tal que xi 6= xj es:

Pn (x) = c0 + c1 (x − x0 )+c2 (x − x0 )(x − x1 ) + · · ·


(4.6)
cn (x − x0 )(x − x1 ) · · · (x − xn−1 )

Aparentemente, el polinomio de Newton no tiene ninguna relación con


el polinomio denido en (4.1), sin embargo, el teorema de interpolación [3]
garantiza la existencia de un único polinomio interpolador, para un conjunto
de puntos del plano, por lo tanto, aplicando simplicaciones sobre se puede
demostrar que ambos polinomios son iguales. El verdadero problema se en-
cuentra en el calculo de los coeentes ci .

4.2.1 Forma matricial


Los coecientes ci se pueden representar de forma matricial por un sistema
Lx = b, donde L es una matriz triangular inferior, b(i) = fi y X(i) = ci .
 
1 0 0 0 0

 1 (x1 − x0 ) 0 0 0 

L=
 1 (x2 − x0 ) (x2 − x0 )(x2 − x1 ) 0 0 
(4.7)
.. .. .. ..

 .. 
 . . . . . 
Qn−1
1 (xn − x0 ) (xn − x0 )(xn − x1 ) . . . i=0 (xn − xi )

Se deja como ejercicio para el lector generar un codigo en MATLAB, que


dados un par de vectores x y y , genere la matriz denida en (4.7) y solucione
el sistema asociado, encontrando los coeencientes del polinomio de Newton.

4.2.2 Número condicional


Las secciones anteriores describen dos formas distintas de encontrar el poli-
nomio que interpola un conjunto de puntos del plano. El método directo
es una solución natural del problema, pero genera una matriz de Vander-
monde V y con frecuencia esta matriz está mal condicionada y por tal razón
los coecientes ai del polinomio podrían no quedar determinados con pre-
cisión cuando se resuelva el sistema (4.3). El polinomio de Newton y su
representación matricial (4.7) generan una matriz triangular inferior, facíl
de resolver por sustitución progresiva. Se podria pensar que esta matriz no
tiene problemas de condicionamiento, pero el siguiente ejemplo muestra que

106
Métodos Numéricos con MATLAB

ambos métodos presentan problemas con el número condicional.


Considere una partición equiespaciada con n puntos, del intervalo [0, 1].
Suponga que se calcula el número condicional denido en (3.4), a las ma-
trices V y L y que se varia n.

Figure 4.1: Número condicional de las matrices asociadas al método directo


y la forma matricial de Newton.

La gura 4.1 muestra como varia el número condicional κ a medida que


se aumenta el número de puntos n. El número condicional se incrementa
considerablemente en ambos casos. Por lo tanto, si el número de puntos es
grandre, no se recomienda utilizar los dos métodos anteriores para calcular
el polinomio interpolador.

4.2.3 Método de diferencias divididas


Los coecientes ci tambien se pueden obtener, calculando un conjunto de can-
tidades denominadas diferencias divididas. La notación para las diferencias

107
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

divididas de una función f (x) está dada por:

f [xi ] = f (xi )
f [xi+1 ] − f [xi ]
f [xi , xi+1 ] =
xi+1 − xi
f [xi+1 , xi+2 ] − f [xi , xi+1 ]
f [xi , xi+1 , xi+2 ] =
xi+2 − xi
f [xi+1 , xi+2 , xi+3 ] − f [xi , xi+1 , xi+2 ]
f [xi , xi+1 , xi+2 , xi+3 ] =
xi+3 − xi
Las diferencias divididas de orden superior se forman de acuerdo con la
siguiente regla recursiva:
  f [xi+1 , xi+2 , . . . , xi+j ] − f [xi , xi+1 , . . . , xi+j−1 ]
f xi , xi+1 , . . . , x(i+j)−1 , xi+j =
xi+j − xi

Retomando el polinomio interpolante de Newton:


Pn (x) = c0 + c1 (x − x0 ) + c2 (x − x0 )(x − x1 ) + · · · + cn (x − x0 )(x − x1 ) · · · (x − xn−1 ) (4.8)

Observe que Pn (x0 ) = c0 . Como Pn (x) interpola los valores en (xi , yi ),


i = 0, 1, 2, . . . , n entonces P (xi ) = yi , en particular Pn (x0 ) = y0 = c0 .
Si se usa la notación de diferencia dividida c0 = f [x0 ]. Ahora, Pn (x1 ) =
c0 + c1 (x1 − x0 ), como Pn (x1 ) = y1 y c0 = y0 , entonces reemplazando, se
tiene: y1 = y0 + c1 (x1 − x0 ) de donde
y1 − y0
c1 =
x1 − x0
Usando la notación de diferencia dividida, c1 = f [x0 , x1 ].
De manera analoga cuando se evalúa Pn (x) en x = x2 se obtiene c2 =
f [x0 , x1 , x2 ]. En general

ci = f [x0 , x1 , x2 , . . . , xi ]

y el polinomio interpolante de Newton se puede escribe como:

Pn (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + f [x0 , x1 , x2 ](x − x0 )(x − x1 ) + · · ·


(4.9)
+ f [x0 , x1 , . . . , xn ](x − x0 )(x − x1 ) · · · (x − xn−1 )

108
Métodos Numéricos con MATLAB

En la siguiente tabla se muestra la construcción iterativa que se debe


realizar, para calcular las diferencias divididas que involucran el calculo de
los coeentes ci . Se construyo para 4 puntos (xi , yi ), i = 0, 1, 2, 3.

x0 f [x0 ] f [x0 , x1 ] f [x0 , x1 , x2 ] f [x0 , x1 , x2 , x3 ]


x1 f [x1 ] f [x1 , x2 ] f [x1 , x2 , x3 ]
x2 f [x2 ] f [x2 , x3 ]
x3 f [x3 ]
los elementos de la primera la de la tabla anterior, son los coecientes
ci del polinomio interpolante de Newton.
Ejemplo 4.1. Halle el polinomio que interpola los datos:
xi 1 2 3 5
yi 4 3.5 4 5.6
El polinomio interpolante de Newton es de grado menor o igual que 3 ya
que se tienen 4 puntos, usando la fórmula (4.9) se obtiene el polinomio:

P3 (x) = f [x0 ] + f [x0 , x1 ](x − x0 )+f [x0 , x1 , x2 ](x − x0 )(x − x1 ) + · · ·


f [x0 , x1 , x2 , x3 ](x − x0 )(x − x1 )(x − x2 )

En este caso x0 = 1, x1 = 2, x2 = 3 y

P3 (x) = f [x0 ] + f [x0 , x1 ](x − 1)+f [x0 , x1 , x2 ](x − 1)(x − 2) + · · ·


f [x0 , x1 , x2 , x3 ](x − 1)(x − 2)(x − 3)

Para determinar el valor de los coecientes, se construye la tabla de difer-


encias divididas.
xi yi
1 4 −0.5 0.5 −0.1
2 3.5 0.5 0.1
3 4 0.8
5 5.6
Luego P3 (x) = 4 − 0.5(x − 1) + 0.5(x − 1)(x − 2) − 0.1(x − 1)(x − 2)(x − 3)
Observe que P3 (1) = 4, P3 (2) = 3.5, P3 (3) = 4, P3 (5) = 5.6

109
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

Algoritmo 11 (Algoritmo de Polinomio de Newton). El codigo de la sigu-


iente función, calcula un vector c, que contiene los coecientes ci del poli-
nomio de Newton, que interpola una tabla de datos x y y que se ingresan
como vectores la.

function c=Newton_divididas(x,y)
n=length(x);
M=zeros(n);
M(1:end,1)=x';
M(1:end,2)=y';
u=1;
for j=3:n+1
for i=1:n-u
M(i,j)=divididas(M(i+1,j-1),M(i,j-1),M(j+i-2,1),M(i,1));
end
u=u+1;
end
c=M(1,2:end);

La construcción de la función auxiliar d=divididas(y0,y1,x0,x1), que cal-


cula f [x0 , x1 ], se deja como ejercicio para el lector.

4.3 Polinomio de Lagrange


El matemático francés Joseph Louis Lagrange descubrió que se puede en-
contrar un polinomio de grado a lo más n tal que Pn (xi ) = yi , para i =
0, 1, 2, . . . , n usando una estrategia diferente a la expuesta anteriormente.
Por ejemplo, para 3 puntos (x0 , y0 ), (x1 , y1 ) y (x2 , y2 ), el polinomio interpo-
lador de Lagrange de grado 2 es:

(x − x1 ) (x − x2 ) (x − x0 ) (x − x2 )
P2 (x) = y0 + y1 +
(x0 − x1 ) (x0 − x2 ) (x1 − x0 ) (x1 − x2 )
(x − x0 ) (x − x1 )
y2
(x2 − x0 ) (x2 − x1 )

110
Métodos Numéricos con MATLAB

(x0 − x1 ) (x0 − x2 ) (x0 − x0 ) (x0 − x2 )


P2 (x0 ) = y0 + y1 +
(x0 − x1 ) (x0 − x2 ) (x1 − x0 ) (x1 − x2 )
(x0 − x0 ) (x0 − x1 )
y2
(x2 − x0 ) (x2 − x1 )
Observe que:

P2 (x0 ) = 1 ∗ y0 + 0 ∗ y1 + 0 ∗ y2 = y0 ,
P2 (x1 ) = 0 ∗ y0 + 1 ∗ y1 + 0 ∗ y2 = y1
P2 (x2 ) = 0 ∗ y0 + 0 ∗ y1 + 1 ∗ y2 = y2
El polinomio P2 (x) se escribe en forma simplicada como

P2 (x) = L0 (x)y0 + L1 (x)y1 + L2 (x)y2


2
X
= Li (x)yi
i=0

donde

(x − x1 ) (x − x2 )
L0 (x) =
(x0 − x1 ) (x0 − x2 )
(x − x0 ) (x − x2 )
L1 (x) =
(x1 − x0 ) (x1 − x2 )
(x − x0 ) (x − x1 )
L2 (x) =
(x2 − x0 ) (x2 − x1 )
(
1 si k = i
observe que Lk (xi ) =
0 si k 6= i
La forma general del polinomio de Lagrange P (x) de grado menor o igual
a n y que pasa por los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) es dado por
la ecuación:

Pn (x) = L0 (x)y0 + L1 (x)y1 + · · · + Ln (x)yn


Xn
= Li (x)yi
i=0

111
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

Donde Lk (x) se llaman polinomios coecientes de Lagrange o funciones


cardinales y se denen como:

(x − x0 ) (x − x1 ) · · · (x − xk−1 ) (x − xk+1 ) · · · (x − xn )
Lk (x) =
(xk − x0 ) (xk − x1 ) · · · (xk − xk−1 ) (xk − xk+1 ) · · · (xk − xn )

Observe que hay n factores en el numerador, de modo que cada Lk (x) es


un polinomio de grado n. En Lk (x) está ausente el factor (x − xk ) en el
numerador; el denominador es el numerador evaluado en x = xk .

(
1 si i = k
Lk (xi ) =
0 si i =
6 k

Ejemplo 4.2. Encuentre el polinomio de interpolación para los siguientes


puntos y encuentre P (3.5).

xi 1 2 3 5
yi 4 3.5 4 5.6

En este caso y0 = 4, y1 = 3.5, y2 = 4 y y3 = 5.6. El polinomio de Lagrange


P3 (x) tiene la forma:

P3 (x) = L0 (x)y0 + L1 (x)y1 + L2 (x)f2 + L3 (x)y3


= L0 (x)4 + L1 (x)3.5 + L2 (x)4 + L3 (x)5.6

Ahora se calcula L0 (x), L1 (x), L2 (x) y L3 (x) con x0 = 1, x1 = 2, x2 =


3, x3 = 5

112
Métodos Numéricos con MATLAB

(x − x1 )(x − x2 )(x − x3 ) (x − 2)(x − 3)(x − 5)


L0 (x) = =
(x0 − x1 )(x0 − x2 )(x0 − x3 ) (1 − 2)(1 − 3)(1 − 5)
x3 − 10x2 + 31x − 30
=
−8
(x − x0 )(x − x2 )(x − x3 ) (x − 1)(x − 3)(x − 5)
L1 (x) = =
(x1 − x0 )(x1 − x2 )(x1 − x3 ) (2 − 1)(2 − 3)(2 − 5)
x3 − 9x2 + 23x − 15
=
3
(x − x0 )(x − x1 )(x − x3 ) (x − 1)(x − 2)(x − 5)
L2 (x) = =
(x2 − x0 )(x2 − x1 )(x2 − x3 ) (3 − 1)(3 − 2)(3 − 5)
x3 − 8x2 + 17x − 10
=
−4
(x − x0 )(x − x1 )(x − x2 ) (x − 1)(x − 2)(x − 3)
L3 (x) = =
(x3 − x0 )(x3 − x1 )(x3 − x2 ) (5 − 1)(5 − 2)(5 − 3)
x3 − 6x2 + 11x − 6
=
24

Luego

x3 − 10x2 + 31x − 30
 3
x − 9x2 + 23x − 15
  
P3 (x) = 4+ 3.5
−8 3
 3
x − 8x2 + 17x − 10
 3
x − 6x2 + 11x − 6
 
+ 4+ 5.6
−4 24
P3 (x) = − 0.1x3 + 1.1x2 − 3.1x + 6.1

Vericación:
P (1) = −0.1 + 1.1 − 3.1 + 6.1 = 4
P (2) = −0.8 + 4.4 − 6.2 + 6.1 = 3.5
P (3) = −2.7 + 9.9 − 9.3 + 6.1 = 4
P (5) = −12.5 + 27.5 − 15.5 + 6.1 = 5.6

Para encontrar P (3) se utiliza P3 (x) = −0.1x3 + 1.1x2 − 3.1x + 6.1


P (3.5) = −0.1(3.5)3 + 1.1(3.5)2 − 3.1(3.5) + 6.1 = 4.4375

Si se desea aproximar una función f (x) por medio de un polinomio inter-


polador, existe un error al hacerlo, el siguiente teorema muestra una expresión
para el error.

113
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

Teorema 4.2. Si x0 , x1 . . . , xn son números distintos en el intervalo [a, b]


y f ∈ C n+1 [a, b], entonces para cada x en [a, b] existe un número z (que
depende de x) en (a, b) tal que

f (z)(n+1)
f (x) = Pn (x) + (x − x0 )(x − x1 )(x − x2 ) · · · (x − xn )
(n + 1)!

donde Pn (x) es el polinomio interpolante de Lagrange [3].

El teorema establece que el error al aproximar una función f (x) por un


polinomio de Lagrange Pn (x), viene dado por:

f (z)(n+1)

(4.10)

|f (x) − Pn (x)| = E =
(x − x0 )(x − x1 ) · · · (x − xn )
(n + 1)!

Observe que la forma del error del polinomio de Lagrange se parece mucho
a la del polinomio de Taylor. El polinomio de Taylor de grado n alrededor
de x0 concentra toda la información conocida en x0 y tiene un término de
error de la forma

f (z)(n+1)
(x − x0 )n+1
(n + 1)!
donde z esta entre x0 y x
El polinomio de Lagrange de grado n utiliza la información en todos los
números distintos x0 , x1 , . . . xn y en lugar de (x − x0 )n+1 , su fórmula de error
utiliza un producto de n + 1 términos (x − x0 ), (x − x1 ), . . . , (x − xn ) (ver
(4.10)).

Ejemplo 4.3. Hallar una cota para el error al aproximar ln(1.2) usando un
polinomio de Lagrange de grado 3 en los puntos:

xi 1 1.1 1.3 1.4


f (xi ) 0 0.0953118 0.262364 0.336472

Se aplica la fórmula (4.10) con n = 3, f (x) = ln x y x = 1.2, f (4) (x) =

114
Métodos Numéricos con MATLAB

−6/x4 .

f (z)(4)


E= (x − x0 )(x − x1 )(x − x2 )(x − x3 ) x0 < z < xn
4!

−6
1 < z < 1.4 (4.11)

E = (1.2 − 1)(1.2 − 1.1)(1.2 − 1.3)(1.2 − 1.4)
24z 4
 
1 1 1
Porque 4 < 4 = 1

E 6 (0.2)(0.1)(0.1)(0.2)
4 z 1

Por lo tanto E 6 10−4 = 0.1 × 10−3


Esto indica que si se aproxima ln(1.2) con los datos de la tabla usando
un polinomio de grado tres, entonces la aproximación tiene tres decimales
exactos. Recuerde que si x es una aproximación de x y |x − x̄| < 0.5 × 10−t ,
entonces x̄ aproxima a x con t decimales exactos.
El uso de los polinomios de Lagrange plantea dos problemas. El primero
es que si se desea sumar o restar un punto del conjunto de puntos usados
para obtener el polinomio, esencialmente deben volver a empezarse los cál-
culos ya que no se dispone de un procedimiento simple que permita medir la
contribución de cualquier punto particular al polinomio.
El segundo problema es que pueden ocurrir grandes oscilaciones en el
polinomio, de modo que entre los puntos (datos) no se representa en forma
realista la función que originó los datos. En la sección de ejercicios de este
capitulo, se presenta un ejemplo de este comportamiento.

Algoritmo 12 (Algoritmo de interpolación de Lagrange). El siguiente código,


toma como valores de entrada,x y y que son los puntos a interpolar y un
número b, que representa el número de puntos equiespaciados entre el mín-
imo y el máximo de los valores de x, que se van a evaluar. El código además
graca el polinomio. La variable de salida es yf, que representa las imágenes
de los puntos evaluados en el polinomio.
function yf=Lagrange(x,y,b)
x1=linspace(min(x),max(x),b);
yf=zeros(1,length(x1));
for i=1:length(x)
p=x;
p(i)=[];

115
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

y1=[];
for j=1:length(x1)
s=1;
n=1;
for k=1:length(p)
s=s*(x1(j)-p(k));
n=n*(x(i)-p(k));
end
y1(j)=s/n;
end
y1;
plot(x1,y1)
hold on
yf=yf+y(i).*y1;
end
plot(x1,yf)
hold on
plot(x,y,'o')
end

4.4 El fenómeno de Runge


Al inicio del capitulo se planteo el problema de aproximar una función f (x)
denida en un intervalo [a, b], por medio de un polinomio P (x). Ya se ha
utilizado la interpolación para aproximar el valor de una función en un punto
x por medio de un polinomio interpolador, obteniendo buenos resultados.
Surge la pregunta ¾ Cómo se puede aproximar una función en un intervalo
dado por un polinomio?. Una solución a este problema, es hacer una partición
equiespaciada del intervalo [a, b] y encontrar el polinomio que interpola el
conjunto de puntos. Sea Q = {x0 , x1 , . . . , xn } una partición del intervalo
[a, b] tal que: a = x0 < x1 < · · · < xn = b y h = xi − xi−1 es constante para
todo i = 1, 2, . . . , n. Se dice que Q es una partición equiespaciada de [a, b].
Se puede calcular el polinomio interpolador de Newton para el conjunto de
puntos (xi , f (xi )) y examinar que tan buena es la aproximación a la función.

Ejemplo 4.4. Aproximar la función f (x) = e−(x2 ) en el intervalo [−2, 2]


utilizando una partición equiespaciada de N = 5, 10, 15 puntos.

116
Métodos Numéricos con MATLAB

Figure 4.2: Nodos o puntos equiespaciados. N = 5

Figure 4.3: Nodos o puntos equiespaciados. N = 10

117
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

Figure 4.4: Nodos o puntos equiespaciados. N = 15

El ejemplo anterior muestra un buen comportamiento de la aproximación


polinomial, ya que con solo 15 puntos en el intervalo [−2, 2] se pudo obtener
2
una aproximación considerablemente buena de la función f (x) = e−(x ) . Este
resultado numérico podria hacer pensar que a medida que aumento en número
de puntos equiespaciados en el intervalo, el error entre la función y el poli-
nomio tiende a cero.

Ejemplo 4.5. Aproximar la función f (x) = 1/(1 + 12x2 ) en el intervalo


[−1, 1] utilizando una partición equiespaciada de n = 5, 15, 30 puntos.
El anterior comportamiento es conocido como fenómeno de Runge, el cual
se dene como la falta de convergencia cuando el máximo termino del error
EN (x) crece cuando el número de puntos N → ∞.

4.5 Nodos de Chebyshev


Los nodos de Chevishev son las raices de los polinomios de Chebyshev {Tn+1 (x)}
que se encuentran denidos en el intervalo [−1, 1]. Estos polinomios se

118
Métodos Numéricos con MATLAB

Figure 4.5: Nodos o puntos equiespaciados. n = 5

Figure 4.6: Nodos o puntos equiespaciados. n = 15

119
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

Figure 4.7: Nodos o puntos equiespaciados. n = 30

pueden generar tomando T0 (x) = 1 y T( 1)(x) = x y usando la ecuación


recursiva
Ti+1 (x) = 2xTi−1 (x) − Ti−2 (x) para i = 2, 3, . . .
Además, se pueden expresar de forma trigonometrica, Tn+1 (x) = cos((n +
1) arccos(x)). Estos polinomios tienen propiedades muy interesantes, las
cuales no se trataran en este texto. La única propiedad que estudiaremos es
la convergencia a cero que presenta el error entre una función y el polinomio
interpolador calculado con los nodos de Chebyshev. n nodos de Chebyshev
vienen dados por la expresión
 
(2i + 1)π
xi = cos para i = 0, 1, . . . , n − 1
2n
Los xi generan una partición de n puntos del intervalo [−1, 1]. Puede probarse
que si f (x) y f 0 (x) son continuas en [−1, 1], los nodos de Chebyshev generan
un polinomio interpolador que converge a f (x) a medida que el número de
nodos tiende a innito. En otras palabras, el error entre la función y el
polinomio, tiende a cero cuando el número de nodos de Chebyshev tiende a
innito.

120
Métodos Numéricos con MATLAB

Ejemplo 4.6. Conside la función f (x) = 1/(1+12x2 ) en el intervalo [−1, 1].


Utilice una partición de Chebyshev de 15 puntos y calcule el polinomio inter-
polador.
Primero se generan los 15 nodos de Chebyshev

>> n=15;
>> i=0:n-1;
>> x=cos(((2*i+1).*pi)./(2*n));
>> y=1./(1+12*x.^2);

Figure 4.8: Nodos de Chebyshev. n = 15

Como se dijo anteriormente, los nodos de Chebyshev xk se encuentran


distribuidos sobre el intervalo [−1, 1]. Sí se desea trabajar en un intervalo
general [a, b] se utiliza la relación

b−a
     
(2i + 1)π a+b
xi = cos + para i = 0, 1, . . . , n − 1.
2 2n 2

121
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

4.6 Interpolación polinomial a trozos


Frecuentemente la interpolación polinomial para un conjunto numeroso de
n + 1 datos (xi , yi ), 0 6 i 6 n, resulta ser muy poco satisfactoria debido a
que el polinomio interpolante de grado n puede exhibir fuertes oscilaciones
cuando se usan polinomios de alto grado . Por ejemplo, supóngase que los
puntos de datos son aproximaciones a una recta. Al forzar un polinomio de
alto grado a pasar por varios puntos, la curva producida se puede desviar
signicativamente de la recta. Para aliviar estas condiciones indeseables una
opción es ir enlazando, una detrás de otra, las grácas de unos polinomios de
grado bajo Sj (x) que sólo interpolan entre dos nodos o puntos consecutivos
(xj , yj ) y (xj+1 , yj+1 ). Las porciones adyacentes de la curva y = Sj (x) e
y = Sj+1 (x), que se construyen sobre los intervalos [xj , xj+1 ] y [xj+1 , xj+2 ],
respectivamente, se enlazan una con la otra en el punto (xj+1 , yj+1 ) y el
conjunto de funciones Sj (x) forma una curva polinomial a trozos o cercha (
en ingles, spline) que se denota por S(x).
Sí se usa un polinomio Sj (x) de grado 1 se llama spline lineal y presenta
el problema que la pendiente es discontinua en los puntos (nodos). Si se
usa un spline cuadrático, este tiene derivada continua en [x0 , xn ] pero pre-
senta el problema que cuando hay que especicar las condiciones referentes
a la derivada en los extremos x0 y xn , no hay constantes sucientes para
cerciorarse de que se satisfacen las condiciones. Si se usan polinomios cúbi-
cos entonces tanto la primera derivada como la segunda son continuas en el
intervalo, y en este caso se la llama trazador cúbico.

4.6.1 Trazador Cúbico


Se desea dibujar una curva que pase por una serie de puntos, cuyas coorde-
nadas se conocen con precisión, y que sea suave. Matemáticamente es posible
construir una función cúbica Sj (x) en cada intervalo [xj , xj+1 ] de manera que
la curva denida a trozos y = S(x) que resulta, es dos veces derivable y la se-
gunda derivada es continua en el intervalo completo [x0 , xn ]. La continuidad
0
de Sj (x) signica que la curva de ecuación y = S(x) no tiene picos o
00
esquinas, la continuidad de Sj (x) signica que el radio de curvatura está
denido en cada punto.

122
Métodos Numéricos con MATLAB

Figure 4.9: Interpolación polinomial a trozos. Trazador cubico.


S0 (x),
 si x0 ≤ x ≤ x1
si x1 ≤ x ≤ x2

S1 (x),



 ...



S(x) =
 Sj (x), si xj ≤ x ≤ xj+1
.

..






Sn−1 (x), si xn−1 ≤ x ≤ xn

A continuación se hara la construcción de un trazador cubico para una


función f (x) denida en un intervalo [a, b] y una partición del intervalo:
a = x0 < x1 < · · · < xn = b.
Denición 4.1. Dada una función f denida en [a, b] y un conjunto de
nodos a = x0 < x1 < · · · < xn = b, un trazador cúbico (ó spline cúbico) S(x)
para f es una función que cumple con las siguientes condiciones:
i. S(xj ) = f (xj ) = yj para j = 0, 1, 2, . . . , n (indica que el trazador se
ajusta a cada uno de los puntos).

123
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

ii. Sj (xj+1 ) = Sj+1 (xj+1 ) para j = 0, 1, 2, . . . , n − 2 (indica que el trazador


es continuo).

iii. Sj (xj+1 ) = Sj+1 (xj+1 ) para j = 0, 1, 2, . . . , n−2 (indica que la pendiente


0 0

es continua).

iv. Sj (xj+1 ) = Sj+1 (xj+1 ) para j = 0, 1, 2, . . . , n−2 (indica que la curvatura


00 00

es continua).

v. Se satisface uno de los siguientes conjuntos de condiciones de frontera:

a) S (x0 ) = S (xn ) = 0, en este caso el trazador se llama libre o


00 00

natural.
b) S 0 (x0 ) = f 0 (x0 ) y S (xn ) = f (xn ), el trazador se llama sujeto. ([3])
0 0

¾Cómo hallar el trazador cúbico de una función f ?


Primero se supone que Sj (x), xj 6 x 6 xj+1 es de la forma:

Sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3 (4.12)
para j = 0, 1, 2, . . . , n − 1. Por la condición I

Sj (xj ) = aj = f (xj ) = yj
(4.13)
Sj+1 (xj+1 ) = aj+1 = yj+1

Si se aplica la condición II.

Sj+1 (xj+1 ) = Sj (xj+1 )


(4.14)
aj+1 = aj + bj (xj+1 − xj ) + cj (xj+1 − xj )2 + dj (xj+1 − xj )3

Haciendo hj = xj+1 − xj para j = 0, 1, 2, . . . , n − 1, obtenemos

aj+1 = aj + bj hj + cj h2j + dj h3j (4.15)

Observe que Sj0 (x) = bj + 2cj (x − xj ) + 3dj (x − xj )2 y evaluando en xj y xj+1

Sj0 (xj ) = bj
0
Sj+1 (xj+1 ) = bj+1

124
Métodos Numéricos con MATLAB

Aplicando la condición III

0
Sj+1 (xj+1 ) = Sj0 (xj+1 )
bj+1 = bj + 2cj (xj+1 − xj ) + 3dj (xj+1 − xj )2 (4.16)

bj+1 = bj + 2cj hj + 3dj h2j

La segunda derivada en cada intervalo viene dada por Sj00 (x) = 2cj +6dj (x−xj )
y valuando en xj y xj+1

Sj00 (xj ) = 2cj


00
Sj+1 (xj+1 ) = 2cj+1

Por la condición IV.

00
Sj+1 (xj+1 ) = Sj00 (xj+1 )
2cj+1 = 2cj + 6dj (xj+1 − xj ) (4.17)

cj+1 = cj + 3dj hj

Al despejar dj en (4.17) resulta

cj+1 − cj
dj = (4.18)
3hj

Sí se sustituye dj en la ecuación (4.15) y (4.16) obtenemos:

h2j
aj+1 = aj + bj hj + (2cj + cj+1 ) (4.19)
3
bj+1 = bj + (cj + cj+1 )hj (4.20)
bj = bj−1 + (cj−1 + cj )hj−1 (4.21)

(4.21) se obtiene de (4.20) con el índice reducido en 1. Al despejar bj en la


ecuación (4.19) se tiene que

aj+1 − aj hj
bj = − (2cj + cj+1 ) y (4.22)
hj 3
aj − aj−1 hj−1
bj−1 = − (2cj−1 + cj ) (4.23)
hj−1 3

Reemplazando bj y bj−1 en la ecuación 4.21 se obtiene:

125
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

aj+1 − aj hj aj − aj−1 hj−1


− (2cj + cj+1 ) = − (2cj−1 + cj ) + (cj−1 + cj )hj−1
hj 3 hj−1 3
(aj+1 − aj ) (aj − aj−1 )
3 − (2cj + cj+1 )hj = 3 − (2cj−1 + cj )hj−1 + 3(cj−1 + cj )hj−1
hj hj−1
(aj+1 − aj ) (aj − aj−1 )
3(cj−1 + cj )hj−1 − (2cj−1 + cj )hj−1 + (2cj + cj+1 )hj = 3 −3
hj hj−1
(aj+1 − aj ) (aj − aj−1 )
hj−1 cj−1 + 2(hj−1 + hj )cj + hj cj+1 = 3 −3
hj hj−1

Así

(aj+1 − aj ) (aj − aj−1 )


hj−1 cj−1 + 2(hj−1 + hj )cj + hj cj+1 = 3 −3 (4.24)
hj hj−1

para j = 1, 2, . . . , n − 1
El sistema (4.24) tiene sólo como incógnitas a cj , ya que los valores de hj están
dados por el espaciado de los nodos xj (recuerde que hj = xj+1 − xj ) y los valores
de aj son los valores de f en los xj (aj = f (xj ) por la condición I.)

Si en la ecuación (4.24) se reemplaza j = 1, 2, . . . , n − 1 se obtiene el


sistema
3 3
h0 c0 + 2(h0 + h1 )c1 + h1 c2 = (a2 − a1 ) − (a1 − a0 )
h1 h0
3 3
h1 c1 + 2(h1 + h2 )c2 + h2 c3 = (a3 − a2 ) − (a2 − a1 )
h2 h1
.
.
.

3 3
hn−2 cn−2 + 2(hn−2 + hn−1 )cn−1 + hn−1 cn = (an − an−1 ) − (an−1 − an−2 )
hn−1 hn−2

00 00
Si el trazador es natural entonces S (x0 ) = 0 = S (xn ) y teniendo en
cuenta que Sj00 (x) = 2cj + 6dj (x − xj )

00 00
S0 (x0 ) = 2c0 + 6d0 (x0 − x0 ) Sn (xn ) = 2cn + 6dn (xn − xn )
0 = 2c0 0 = 2cn

de donde c0 = 0 y cn = 0. El sistema anterior junto con las ecuaciones c0 = 0

126
Métodos Numéricos con MATLAB

y cn = 0 se puede escribir de la forma Ax = b, donde


 
1 0 0 ··· 0
 h0 2(h0 + h1 ) h 1 0 
..
 
 0 h1 2(h1 + h2 ) h2 .
 
 (4.25)

A=
 0 . .. . .. 
 .
 
 ..

hn−2 2(hn−2 + hn−1 ) hn−1 
0 ··· 0 0 1
 
  0
c0  3 3 
 c1
 (a2 − a1 ) − (a1 − a0 ) 
h1 h0
  
..
x =  ...
   
b = .
   
 
   
 cn−1   3 3 
 hn−1 (an − an−1 ) − hn−2 (an−1 − an−2 )
 
cn 
0

La matriz del sistema es estrictamente dominante en sentido diagonal


por lo tanto el sistema lineal tiene una única solución para c0 , c1 , c2, . . . , cn .
Además se pueden aplicar los métodos iterativos vistos en el capitulo anterior,
es decir, para toda condición inicial que se elija el metodo de Jacobi y Gauss-
Seidel convergen a la solución de Ax = b.
n−1
Una vez que se hallan los valores de {cj }j=0 , se encuentran los {bj }n−1 j=0
n−1
usando la ecuación (4.23) y los {dj }j=0 usando la ecuación (4.18). Finalmente
n−1
es fácil construir los polinomios cúbicos {Sj (x)}j=0 .
Ejemplo 4.7. Hallar el trazador cúbico natural que pasa por los puntos dados
en la tabla de abajo y aproximar f (0).
xj -3 -2 1 4
f (xj ) 2 0 3 1
En este caso x0 = −3, x1 = −2, x2 = 1, x3 = 4; f (x0 ) = 2, f (x1 ) =
0, f (x2 ) = 3, f (x3 ) = 1
h0 = x1 − x0 = 1 h1 = x2 − x1 = 3 h2 = x3 − x2 = 3
a0 = f (x0 ) = 2 a1 = f (x1 ) = 0 a2 = f (x2 ) = 3 a3 = f (x3 ) = 1

127
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

El sistema lineal para hallar {cj }3j=0 es:


0
    
1 0 0 0 c0
3 3
 h0 2 (h0 + h1 )
 h1 0  c1
   
= h1 (a2 − a1 ) − h0 (a1 − a0 ) 

3 3
 0 h1 2 (h1 + h2 ) h2  c2  
h2 (a3 − a2 ) − h1 (a2 − a1 ) 
0 0 0 1 c3 0
   
1 0 0 0 c0 0
 1 8 3 0   c1   9  41

 0
 = 
  −5  c0 = 0, c1 = 29 , c2 = − 67
87 , c3 = 0
3 12 3  c2
0 0 0 1 c3 0

aj+1 − aj hj
Calculando bj = − (2cj + cj+1 ) para j = 0, 1, 2
hj 3

a1 − a0 h0 215
b0 = − (2c0 + c1 ) =−
h0 3 87
a2 − a1 h1 92
b1 = − (2c1 + c2 ) =−
h1 3 87
a3 − a2 h2 76
b2 = − (2c2 + c3 ) =
h2 3 87
cj+1 − cj
y los dj = para j = 0, 1, 2
3hj
c1 − c0 41
d0 = =
3h0 87
c2 − c1 190
d1 = =−
3h1 783
c3 − c2 67
d2 = =
3h2 783
Los polinomios cúbicos son de la forma:
Sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3 j = 0, 1, 2

S0 (x) = a0 + b0 (x − x0 ) + c0 (x − x0 )2 + d0 (x − x0 )3 =
215 41
2− (x + 3) + (x + 3)3
87 87

128
Métodos Numéricos con MATLAB

S1 (x) = a1 + b1 (x − x1 ) + c1 (x − x1 )2 + d1 (x − x1 )3 =
92 41 190
− (x + 2) + (x + 2)2 − (x + 2)3
87 29 783

S2 (x) = a2 + b2 (x − x2 ) + c2 (x − x2 )2 + d2 (x − x2 )3 =
76 67 67
3 + (x − 1) − (x − 1)2 + (x − 1)3
87 87 783
Por lo tanto el trazador cúbico S(x) para f en [−3, 4] es:

215 41
2− (x + 3) + (x + 3)3 , −3 6 x 6 −2




 87 87
92 41 190

S(x) = − (x + 2) + (x + 2)2 − (x + 2)3 , −2 6 x 6 1

 87 29 783
3 + 76(x − 1) − 67(x − 1)2 + 67(x − 1)3 , 1 6 x 6 4



87 87 83
Para aproximar f (0) se toma S1 (x), ya que x = 0 esta en el intervalo [−2, 1].
92 190
Luego f (0) ≈ S1 (0) = − (0 + 2) + 41
29
(0 + 2)2 − (0 + 2)3
87 783
f (0) ≈ 1.6 (redondeando la respuesta a un decimal).

Algoritmo 13 (Algoritmo de Splines cúbico Natural). El siguiente código


tiene como entradas los vectores x y y, que representan los puntos del plano,
para los cuales se quiere construir el interpolador. La variable de salida F
contiene los coecientes de los polinomios cúbicos que interpolan los puntos
del plano (x,y).
function F=Spline(x,y)
close all
y2=y;
%-----Construcción DE A-----------------------
n=length(x);
x1(1)=1;
x1(n)=1;
%------Calculo de H-------
H=[];
for i=1:n-1
H(i)=x(i+1)-x(i);

129
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

end
%---------------------
H;
%------Diagonal Principal-----
for i=2:n-1
x1(i)=2.*(H(i-1)+H(i));
end
A=diag(x1,0);
%---------Diagonal superior---
H1=H;
H1(1)=0;
A=A+diag(H1,1);
%---------Diagonal inferior---
H2=H;
H2(end)=0;
A=A+diag(H2,-1);
%---------Construcción DE b---
b(1)=0;
b(n)=0;
for i=2:n-1
b(i)=((3/(H(i))*(y(i+1)-y(i))))-((3/(H(i-1))*(y(i)-y(i-1))));
end
b=b'
%Se traspone el vector b para introducirlo en la
%función de Jacobi que se trabajó en el capitulo 3
%---------Solucion de Sistema por jacobi-----
cj=Jacobi(A,b,zeros(length(b),1),0.001);
%-------------Construcción de dj y Cj-----------
for i=1:n-1
bj(i)=((y(i+1)-y(i))/H(i))-(H(i)/3)*(2*cj(i)+cj(i+1));
dj(i)=(cj(i+1)-cj(i))/3*H(i);
end
%----------------MATRIZ F--------------
cj(end)=[];
y(end)=[];
F=[y',bj',cj,dj'];
end

130
Métodos Numéricos con MATLAB

MATLAB posee la función yy = spline(x,y,xx) que calcula el spline


cubico natural para el conjunto de puntos del plano (x,y), además evalua el
spline en xx, que puede ser vector o escalar.

4.7 Ajuste de curvas por mínimos cuadrados

En la ciencia y la ingeniería se da, a menudo, el caso de que un experimento


produce un conjunto de datos (x1 , y1 ), (x2 , y2 ), . . . , (xn , yn ). El objetivo en
esta sección es determinar una fórmula y = f (x) que relacione las variables.
Generalmente se dispone de un conjunto de variables previamente estableci-
das, y lo que hay que hallar son los valores más adecuados de unos coecientes
o de unos parámetros para estas fórmulas. Aunque existen muchas funciones
que se pueden usar, suele ocurrir que existe un modelo matemático suby-
acente, basado en la situación física que se esté estudiando y determina la
forma de la función salvo algunos coecientes.

Si la relación entre xi e yi para 1 6 i 6 n, es lineal, entonces la función


que mejor se ajusta a los datos es una línea de aproximación de la forma:
y = ax + b (ver gura 4.10).

131
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

(xN , yN )

(xi , yi )

(xi , axi + b)

(x1 , y1 )

x
x1 x2 xi xN −1 xN

Figure 4.10

Una forma para encontrar la recta optima es el método de los mínimos


cuadrados y consiste en hallar el valor de las constantes a y b de tal manera
que reduzcan al mínimo la suma de los cuadrados de los errores entre los
valores yi dados y los valores y(xi ) = axi + b en la línea de aproximación.

n
X
(yi − axi − b)2 (4.26)
i=1

La expresion (4.26) se puede considerar una función de dos variables en


ayb

n
X
F (a, b) = (yi − axi − b)2
i=1

a la que se le quiere hallar un mínimo. Para que ocurra un mínimo es


∂F ∂F
necesario que las derivadas parciales y sean cero. Observe que las xi
∂a ∂b

132
Métodos Numéricos con MATLAB

e yi son valores conocidos.



∂F n
P
=0 2(yi − axi − b)(−xi ) = 0


∂a

i=1
∂F Pn
2(yi − axi − b)(−1) = 0


 =0
∂b i=1
Al dividir entre −2 cada una de estas ecuaciones y desarrollar las sumatorias
se obtienen las llamadas ecuaciones normales.
n n n
x2i + b
P P P
a xi = xi yi
i=1 i=1 i=1
(4.27)
n
P n
P
a xi + bn = yi
i=1 i=1
La solución del sistema (4.27), de dos ecuaciones con dos incógnitas es:
n   n  n 
P P P
n xi y i − xi yi
i=1 i=1 i=1
a=  n   n 2 ,
P 2 P
n xi − xi
i=1 i=1

      (4.28)
n n n n
x2i
P P P P
− yi xi y i xi
i=1 i=1 i=1 i=1
b=  n   n 2
P 2 P
n xi − xi
i=1 i=1

Por lo tanto la recta que mejor se ajusta a los datos (xi , yi ), 1 6 i 6 n


relacionados en forma lineal es y = ax + b con a y b dados por (4.28).
El problema de aproximar un conjunto de datos (xi , yi ), 1 6 i 6 n con un
polinomio algebraico Pm (x) de grado m < n − 1 mediante el procedimiento
de mínimos cuadrados, es similar al de y = ax + b (Ver ejercicio 23 de este
capítulo).
En muchos casos los datos provenientes de pruebas experimentales no
son lineales por lo que es necesario ajustarlos a una función que no sea un
polinomio de primer grado. Algunas veces conviene suponer que los datos
tienen una relación exponencial. Para ello, la función de aproximación debe
tener la forma:

y = Beax o bien (4.29)

133
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

y = Bxa para algunas constantes a y B. (4.30)


Es posible desarrollar ecuaciones normales para éstas de manera análoga
al desarrollo precedente para una recta por mínimos cuadrados si las derivadas
parciales se igualan a cero. Tales ecuaciones no lineales son mucho más difí-
ciles de resolver que las ecuaciones lineales. Por esta razón el método que
suele utilizarse cuando se sospecha que los datos tienen una relación expo-
nencial, consiste en considerar el logaritmo de la ecuación de aproximación:

y = Beax
ln y = ln (Beax )
(4.31)
ln y = ln B + ln eax
ln y = ax + ln B
y = Bxa
ln y = ln (Bxa )
(4.32)
ln y = ln B + ln xa
ln y = a ln x + ln B
((4.31) y (4.32) se conocen como formas linealizadas). Observe que en (4.31)
se presenta una relación lineal entre x y ln y, por lo que se pueden usar las
fórmulas dadas en (4.28) para resolver el problema lineal cambiando yi por
ln yi y b por ln B . En (4.32) también se presenta una relación lineal entre
ln x y ln y , aquí el problema se resuelve usando las fórmulas dadas en (4.28)
cambiando xi por ln xi , yi por ln yi y b por ln B .
Ejemplo 4.8. Ajustar los datos de la siguiente tabla a funciones de la forma
y = ax + b y y = Beax ¾Qué función aproxima mejor?
xi 1 2 4
yi 3 5.1 8.8

Para este caso se tienen tres datos, luego n = 3. Se construye una tabla
con los datos que se necesitan en las fórmulas (4.28). Las últimas dos colum-
nas son los errores al cuadrado para los modelos lineal y exponencial.
Para el modelo lineal:
3
P 3
P 3
P
3· xi yi − xi yi
i=1 i=1 i=1 3 (48.4) − 7 (16.9)
a= 2 = = 1.92143
3 (21) − (7)2
3
 3
x2i −
P P
3· xi
i=1 i=1

134
Métodos Numéricos con MATLAB

xi yi x2i xiyi ln yi xi ln yi (yi − axi − (yi − Beaxi )2


b)2
1 3 1 3 1.0986 1.0986 5.1022 × 0.52558 ×
2 5.1 4 10.2 1.6292 3.2584 10−3 10−1
4 8.8 16 35.2 2.1748 8.6992 0.11479 × 0.28485
10−1 0.10911
1.2759 ×
10−3
Σ 7 16.9 21 48.4 4.9026 13.0562 0.0178571 0.446518

3 3 3 3
x2i
P P P P
yi − xi yi xi
i=1 i=1 i=1 i=1 21 (16.9) − 48.4 (7)
b= 2 = = 1.15
3 (21) − (7)2
3
 3
x2i −
P P
3· xi
i=1 i=1

y = ax + b
y = 1.92143x + 1.15
Si se evalúa la recta en x3 = 4, resulta y = 1.92143(4) + 1.15 = 8.83572,
el error al cuadrado entre la aproximación dada por la recta y el valor real
es,
(y3 − ax3 − b)2 = (8.8 − 8.83572)2 = 1.2759 × 10−3 .
Para el modelo exponencial.
3
P P3 P 3
3· xi ln yi − xi ln yi
i=1 i=1 i=1 7 (13.0562) − 7 (4.9026)
a= 2 = 2 = 0.34645

 
3 3 3 (21) (7)
x2i −
P P
3· xi
i=1 i=1

3 3 3 3
x2i
P P P P
ln yi − xi ln yi xi
i=1 i=1 i=1 i=1 21 (4.9026) − 13.0562 (7)
ln B = 2 = = 0.8258
3 3 3 (21) − (7)2

x2i −
P P
3· xi
i=1 i=1

ln B = 0.8258,
B = e0.8258 ≈ 2.28371

y = Beax
y = 2.28371e0.34645x

135
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

Para los datos de este ejercicio, aproxima mejor el modelo lineal, porque
la suma de los errores al cuadrado en el lineal, es menor que la suma de los
errores al cuadrado que en el modelo exponencial (véase la tabla anterior).
Algoritmo 14 (Algoritmo de mínimos cuadrados). En esta función se in-
gresan los vectores de datos X y Y. Las variables de salida son a y b, donde
la recta de mínimos cuadrados tiene ecuación y=ax+b.
function [a,b]=minimosCuadrados(X,Y);
s=0;
x=0;
x2=0;
y=0;
n=length(X);
for i=1:n
s=s+(X(i)*Y(i));
x=x+X(i);
y=y+Y(i);
x2=x2+(X(i)^(2));
end
a=(n*s-x*y)/((n*x2)-x^(2));
b=(1/n)*(y-a*x);
x=linspace(min(X),max(X),200);
y=a*x+b;
plot(x,y)

4.8 Ejercicios
1. Encuentre un polinomio que tome los siguientes valores:

x 1 2 0 3
y 3 2 -4 5

2. Encuentre los polinomios de interpolación de Lagrange y de Newton


para los siguientes datos:

x -2 0 1
f (x) 0 1 -1

136
Métodos Numéricos con MATLAB

Escriba ambos polinomios en la forma a+bx+cx2 con el n de vericar


que son idénticos como funciones.

3. La ecuación x − 9−x = 0 tiene una solución en el intervalo [0, 1]. En-


cuentre el polinomio de interpolación sobre x0 = 0.5, x2 = 1 para la
función en el lado izquierdo de la ecuación. Igualando a cero el poli-
nomio de interpolación y resolviendo dicha ecuación, encuentre una
solución aproximada de la ecuación.

4. La tabla

x 0 0.1 1
f (x) 0 1 0

Pudo crearse a partir de la función f (x) = sen(5πx), cuya magnitud


nunca excede a 1.

a) Obtenga el polinomio de interpolación p(x) para esta tabla.


b) Demuestre que p(0.5) = 25/9, que es mucho más grande que cualquier
valor tabulado de f (x).
c) ¾Qué ilustra este ejemplo?

5. Si se interpola la función f (x) = ex−1 con un polinomio p de grado 12,


utilizando 13 nodos en [−1, 1], ¾cuál es una buena cota superior para
|f (x) − p(x)| en [−1, 1]?

6. Para las funciones dadas f (x), sean x0 = 0, x1 = 0.6 y x2 = 0.9.


Construya polinomios de interpolación de grados uno y dos a lo máximo
para aproximar f (0.45), y calcule el error real.

(a) f (x) = cos x


(b) f (x) = ln(x + 1)

7. Calcule la cota de error en las aproximaciones del ejercicio 6.



8. Sean f (x) = x − x2 y P2 (x) el polinomio interpolante en x0 = 0,
x1 , y x2 = 1 Calcule el valor más grande de x1 en (0, 1) para el cual
f (0.5) − P2 (0.5) = −0.25.

137
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

9. Escriba el polinomio de interpolación de Newton para los siguientes


datos:

x 4 2 0 3
f(x) 63 11 7 28

10. El polinomio p(x) = 2 − (x + 1) + x(x + 1) − 2x(x + 1)(x − 1) interpola


los primeros cuatro puntos de la tabla.

x -1 0 1 2 3
y 2 1 2 -7 10

Aada un término a p de modo que el polinomio que resulte interpole a


la tabla entera.

11. a) Aproxime f (0.05) mediante los siguientes datos y la fórmula de


diferencias divididas progresivas de Newton:
x 0.0 0.2 0.4 0.6 0.8
f 1.00000 1.22140 1.49182 1.82212 2.22554
(x)
b) Use la fórmula de las diferencias divididas regresivas de Newton
para aproximar f (0.65).

12. Con una función f las diferencias divididas progresivas están dadas por

x0 = 0.0 f [x0 ]
f [x0 , x1 ]
x1 = f [x1 ] f [x0 , x1 , x2 ] =
50
0.04 7
f [x1 , x2 ] =
10
x2 = 0.7 f [x2 ] =
6

Determine los datos que faltan en la tabla.

13. Se tienen los siguientes datos para un polinomio P (x) de grado de-
sconocido.

138
Métodos Numéricos con MATLAB

x 0 1 2
P (x) 2 -1 4

Determine el coeciente de x2 en P (x) si todas las diferencias progre-


sivas de tercer orden son 1.
14. Si se tiene:

Pn (x) = f [x0 ] + f [x0 , x1 ](x − x0 ) + a2 (x − x0 )(x − x1 )


+ a3 (x − x0 )(x − x1 )(x − x2 ) + . . . + an (x − x0 ) . . . (x − xn−1 ).
Use Pn (x2 ) para demostrar que a2 = f [x0 ,x1 ,x2 ].
15. Determine si el spline cúbico natural que interpola la tabla

x 0 1 2 3
y 1 1 0 10

Coincide o no con la función



3
1 + x − x ,
 x ∈ [0, 1]
f (x) = 1 − 2 (x − 1) − 3 (x − 1)2 + 4 (x − 1)3 x ∈ [1, 2]
4 (x − 2) + 9 (x − 2)2 − 3 (x − 2)3

x ∈ [2, 3] .

16. Determine si la siguiente función es un spline cúbico natural:


 3
2 (x − 1) + (x − 1)
 x ∈ [−1, 0]
f (x) = 3 + 5x + 3x2 x ∈ [0, 1]
11 + 11 (x − 1) + 3 (x − 1)2 − (x − 1)3

x ∈ [1, 2].

17. ¾Qué valor de a, b, c, d hace de la siguiente función un spline cúbico?


(
x3 x ∈ [−1, 0]
f (x) = 2 3
a + bx + cx + dx x ∈ [0, 1]

18. Determine los coecientes a, b, c, d de manera que la función



1 − 2x
 x ∈ (−∞, −3]
2 3
S (x) = a + bx + cx + dx x ∈ [−3, 4]

157 − 32x x ∈ [4, +∞]

Sea un spline cúbico natural en el intervalo [−3, 4].

139
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

19. Determinar el trazador cúbico sujeto S que interpola los datos f (0) = 0,
f (1) = 1, f (2) = 2 y que satisface s0 (0) = s0 (2) = 1.

20. Un trazador cúbico sujeto S de f está denido en [1, 3] por


(
s0 (x) = 3 (x − 1) + 2 (x − 1)2 − (x − 1)3 , 1 6 x < 2,
S (x) = 2 3
s1 (x) = a + b (x − 2) + c (x − 2) + d (x − 2) , 2 6 x 6 3.

Dadas f 0 (1) = f 0 (3), encuentre a, b, c, y d.

21. Construya un trazador cúbico libre para aproximar f (x) = e−x por
medio de los valores dados por f (x) en x = 0, 0.25, 0.75, y 1.0. Integre
el trazador en [0, 1] y compare el resultado con:
Z1
e−x dx = 1 − 1/e.
0
Mediante las derivadas del trazador aproxime f 0 (0.5) y f 00 (0.5) y com-
pare las aproximaciones con los valores reales.

140
Métodos Numéricos con MATLAB

22. Determine la recta óptima en el sentido de los mínimos cuadrados cor-


respondiente a los siguientes datos.

xi yi
-2 1
-1 2
0 3
1 3
2 4

23. Encuentre el valor de a, b, y c si se quiere ajustar los datos (xi , yi ) i =


1, 2, . . . n a una función de la forma y = ax2 + bx + c.
n
2
Sugerencia: minimice F (a, b, c) = (yi − ax2i − bxi − c)
P
i=1

24. Determine la parábola óptima en el sentido de los mínimos cuadrados


de la forma y = ax2 + bx + c para los siguientes datos.

xi -2 -1 0 1 2
yi -5.8 1.1 3.8 3.3 -1.5

141
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

25. La siguiente tabla muestra cambios de variable para linealizar datos.
Justique cada cambio.

Función Linealización Cambios


y=f(x) Y = AX + B
A 1 1
y = +B y =A +B X = ,Y = y
x x x
X = xy, Y = y
D −1 D −1 −B
y= y= (xy) + C= ,D =
x+C C C A A
1 1 1
y= = Ax + B X = x, Y =
Ax + B y y
x 1 1 1 1
y= =A +B X = ,Y =
Ax + B y x x y
y = AIn (x) + B y = AIn (x) + B X = In(x), Y = y
X = x, Y = In(y)
y = CeAx In(y) = Ax + In(C) C = eB
X = In(x), Y = In(y)
y = CxA In(y) = AIn(x) + In(C) C = eB
y = (Ax + B)−2 y −1/2
=!Ax + B X = x, Y = y −1/2 !
y y
y = Cxe−Dx In = −Dx + In(C) X = x, Y = In
x x
B
! C = e , D = −A !
L L L
y= In − 1 = Ax + In(C) X = x, Y = In −1
1 + CeAx y y
C = B
(Mathews, p. 292)

26. Para el conjunto de datos que se muestra al nal del enunciado, deter-
mine la curva de cada familia que mejor se les ajusta en el sentido de
los mínimos cuadrados.

a) y = CeAx
b) y = CxA
n
c) Use la suma de los cuadrados de los errores E = e2i para deter-
P
i=1
minar cuál de las dos curvas se les ajusta mejor.

142
Métodos Numéricos con MATLAB

xi yi
1 0.6
2 1.9
3 4.3
4 7.6
5 12.6

27. Para el conjunto de datos que se muestra al nal del enunciado, deter-
mine la curva de cada familia que mejor se les ajusta en el sentido de
los mínimos cuadrados.

a) y = CeAx
b) y = 1/(Ax + B)
c) y = (Ax + B)−2 .
d) Use la suma de los cuadrados de los errores para determinar cuál
de las curvas se les ajusta mejor.
xi -1 0 1 2 3
yi 6.62 3.94 2.17 1.35 0.89

28. Cuando una población P (t) no puede crecer más halla de un cierto
límite L, la gráca de la función P (t) es una curva, llamada curva
logística, de ecuación P (t) = L/(1 + CeAt ).
Calcule A y C para los siguientes datos, siendo L = 100.
t 0 1 2 3 4
P (t) 200 400 650 850 950

143
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS

144
Bibliografía

[1] T. Akai. Métodos Numéricos aplicados a la Ingeniería. Limusa, 1999.

[2] R. Brent. Algorithms for Minimization Without Deriviatives. Prentice-


Hall, 1973.

[3] R. Burden and F. Douglas. Métodos Numéricos aplicados a la Ingeniería.


Limusa, 1999.

[4] Kincaid D. and Cheney W. Análisis Numérico. Addison  Wesley


Iberoamericana, 1994.

[5] James W Demmel. Applied Numerical Linear Algebra. SIAM, 1997.

[6] R.A. Horn and C.R. Johnson. Matrix Analysis. Cambridge University
Press, Cambridge, 1985.

[7] MathWorks. http://www.mathworks.com/help/matlab/., 2012.

[8] Lloyd N. and David Bau. Numerical Linear Algebra. SIAM, 1997.

[9] J.F Traub. Iterative methods for the solutions of equations. Prentice-Hall,
New Jersey, 1964.

145
Índice alfabético

aritmética de precisión nita, 12 Triangular inferior, 76, 82


Triangular superior, 74, 82
Algoritmo
Matriz Diagonal, 74 Newton, 36
triangular superior, 75 Newton-Raphson, 36
Algoritmo de Bisección, 34 notación cientíca, 4
Algoritmo Newton, 43 notación cientíca
Algoritmo Punto jo, 55 base 10, 4
Algoritmo Regula Falsi, 36 base 2, 4
Algoritmo Secante, 46
precisión doble, 5, 7
bin2dec(binario), 5 precisión simple, 7
precisión simple , 5
cero, 27
Punto jo, 47
Eliminación Gaussiana, 78, 81 punto otante, 5
error absoluto, 14
Regula Falsi, 34
error de redondeo, 14
error relativo, 14 Secante, 44
exponente sesgado, 8 sistema binario, 2
Factorización LU, 82 sistema decimal, 2
Falsa posición, 34 sistema hexadecimal, 3
sistema octal, 3
método de bisección, 28 sobreujo, 9
mantisa, 5 subujo, 9
Matriz Sustitución
Diagonal, 74 hacia adelante, 76

146
Métodos Numéricos con MATLAB

hacia atras, 75

147

Potrebbero piacerti anche