Anda di halaman 1dari 223

ANLISIS NUMRICO CON

MATLAB

Andres Felipe Amador Rodriguez


Jorge Hernando Figueroa Jimenez
Daniel Suescun Diaz

Ponticia Universidad Javeriana, Cali. 2013

ii

Contenido
Contenido

iii

1. Representaciones de Nmeros y Errores


1.1.

Representacin de un nmero real en una mquina

1.2.

Aritmtica de precisin nita

1
. . . . . .

. . . . . . . . . . . . . . . . . .

12

1.3.

Arimtica en una Mquina . . . . . . . . . . . . . . . . . . . .

15

1.4.

Prdida de dgitos o cifras signicativas . . . . . . . . . . . . .

17

1.5.

Ejercicios

20

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. Ceros de Funciones
2.1.

2.2.

Mtodo de Biseccin

. . . . . . . . . . . . . . . . . . . . . . .

28

2.1.1.

. . . . . . . . . . . . . . . . . . . . . . .

31

. . . . . . . . . . . . . . . . . . . .

35

. . . . . . . . . . . . . . . . . . . . . . .

36

. . . . . . . . . . . . . . . . . . . . . . . .

37

. . . . . . . . . . . . . . . . . . . . . . .

40

Mtodo de la Secante . . . . . . . . . . . . . . . . . . . . . . .

45

2.5.

2.4.1.

2.6.

Convergencia

Mtodo de Newton
2.3.1.

2.4.

Convergencia

Mtodo de la Regula Falsi


2.2.1.

2.3.

27

Convergencia

. . . . . . . . . . . . . . . . . . . . . . .

47

Mtodo del punto jo . . . . . . . . . . . . . . . . . . . . . . .

Convergencia

48

2.5.1.

. . . . . . . . . . . . . . . . . . . . . . .

51

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

Convergencia

Ejercicios

3. Sistemas de Ecuaciones Lineales

63

3.1.

Sistemas fciles de resolver . . . . . . . . . . . . . . . . . . . .

63

3.2.

Mtodos Directos de Solucin

66

iii

. . . . . . . . . . . . . . . . . .

CONTENIDO

3.3.
3.4.

3.2.1.

Mtodo de la Inversa . . . . . . . . . . . . . . . . . . .

66

3.2.2.

Mtodo de Cramer

67

3.2.3.

Mtodo de Eliminacin Gaussiana . . . . . . . . . . . .

68

3.2.4.

Factorizacin LU

. . . . . . . . . . . . . . . . . . . . .

74

Normas Vectoriales y Matrices . . . . . . . . . . . . . . . . . .

79

Mtodos iterativos para sistemas lineales

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . .

83

3.4.1.

Mtodo de Jacobi . . . . . . . . . . . . . . . . . . . . .

83

3.4.2.

mtodo de Gauss-Seidel

. . . . . . . . . . . . . . . . .

85

3.5.

Representacin matricial . . . . . . . . . . . . . . . . . . . . .

88

3.6.

Nmero Condicional y Renamiento Iterativo

. . . . . . . . .

94

3.7.

Precondicionamiento o Equilibracin de una Matriz . . . . . .

98

3.7.1.

Precondicionamiento mediante equilibracin de las . .

98

3.7.2.

Precondicionamiento mediante equilibracin de Columnas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

3.8.

Ejercicios

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

4. Interpolacin y Ajustes de Curvas


4.1.
4.2.

111

Mtodo Directo . . . . . . . . . . . . . . . . . . . . . . . . . . 112


Polinomio de Newton

. . . . . . . . . . . . . . . . . . . . . . 113

4.2.1.

Forma matricial . . . . . . . . . . . . . . . . . . . . . . 114

4.2.2.

Nmero condicional . . . . . . . . . . . . . . . . . . . . 114

4.2.3.

Mtodo de diferencias divididas

. . . . . . . . . . . . . 115

4.3.

Polinomio de Lagrange . . . . . . . . . . . . . . . . . . . . . . 118

4.4.

El fenmeno de Runge

4.5.

Nodos de Chebyshev

4.6.

Interpolacin polinomial a trozos


4.6.1.

. . . . . . . . . . . . . . . . . . . . . . 124

. . . . . . . . . . . . . . . . . . . . . . . 126

Trazador Cbico

. . . . . . . . . . . . . . . . 130

. . . . . . . . . . . . . . . . . . . . . 130

4.7.

Ajuste de curvas por mnimos cuadrados

4.8.

Ejercicios

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

5. Integracin y Diferenciacin Numrica


5.1.

5.2.

. . . . . . . . . . . . 139

153

Integracin numrica . . . . . . . . . . . . . . . . . . . . . . . 153


5.1.1.

Regla del trapecio . . . . . . . . . . . . . . . . . . . . . 153

5.1.2.

Regla de Simpson . . . . . . . . . . . . . . . . . . . . . 154

5.1.3.

Regla compuesta del Trapecio . . . . . . . . . . . . . . 159

5.1.4.

Regla compuesta de Simpson

5.1.5.

Mtodos adaptativos

Diferenciacin numrica

. . . . . . . . . . . . . . 162

. . . . . . . . . . . . . . . . . . . 165

. . . . . . . . . . . . . . . . . . . . . 169

iv

Anlisis Numrico con MATLAB


5.3.

Ejercicios

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

6. Ecuaciones diferenciales ordinarias

179

6.1.

Mtodo de la serie de Taylor . . . . . . . . . . . . . . . . . . . 179

6.2.

Mtodo de Euler mejorado . . . . . . . . . . . . . . . . . . . . 184

6.3.

Mtodo de Runge-Kutta
6.3.1.

6.4.

6.5.

Mtodos Multipasos Predictor-Corrector

. . . . . . 190

. . . . . . . . . . . . 191

6.4.1.

Mtodo de Adams-Bashforth-Moulton

6.4.2.

Mtodo de Milne-Simpson

. . . . . . . . . . . . . . . . 194

6.4.3.

. . . . . . . . . 192

Comparacin de Mtodos

. . . . . . . . . . . . . . . . 204

Mtodo de Hamming . . . . . . . . . . . . . . . . . . . . . . . 205


6.5.1.

Esquema Predictor-Corrector

6.5.2.

Generalizacin del Corrector de Hamming

6.5.3.

Estabilidad del Corrector Generalizado del Mtodo de


Hamming

6.5.4.
6.6.

. . . . . . . . . . . . . . . . . . . . . 186

Mtodo de Runge-Kutta-Felhberg (RKF45)

. . . . . . . 206

. . . . . . . . . . . . . . . . . . . . . . . . . 210

Caso II (Mtodo de Hamming)

Ejercicios

. . . . . . . . . . . . . . 205

. . . . . . . . . . . . . 212

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

Bibliografa

215

ndice alfabtico

216

CONTENIDO

vi

Capitulo

Representaciones de Nmeros y
Errores
La mayora de las computadoras hacen los clculos aritmticos usando el
sistema binario (base

2)

troducen nmeros en base


base

(o quizs en base

10,

16),

Cuando se in-

la computadora los convierte en nmeros en

2 y nalmente
10. La computadora al convertir el nmero en

lleva a cabo los clculos en base

presenta los resultados en base


base

10).

y no el sistema decimal (base

10 a base 2 utiliza la llamada representacin de punto otante y en mu-

chos casos trabaja con aproximaciones de los nmeros que quiere representar
dando lugar a errores en los clculos.
Antes de presentar la representacin de punto otante de un nmero real,
se realizar un breve repaso sobre sistemas numricos y notacin cientca.
Si

es un nmero real entonces la representacin de

en una base

es:

x = en en1 e0 .d1 d2 d3 dk dk+1


donde

ei

dj

son dgitos entre

Si el valor de

b 1.

se escribe en forma explcita entonces el valor de

es:

x =en bn + en1 bn1 + + e1 b1 + e0 b0 + d1 b1 + d2 b2


+ + dk bk + dk+1 b(k+1) +
A continuacin, se escriben los nmeros

10, 2, 8

16.
1

x = 13.625

y = 401.3

en base

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

Ejemplo 1.0.1 (Sistema decimal o base 10). Para representar un nmero


en el sistema decimal se utilizan potencias de 10 junto con los dgitos del 0
al 9.
a) Representacion de x en sistema decimal
x = 13.625
= 1 101 + 3 100 + 6 101 + 2 102 + 5 103

b) Representacion de y en sistema decimal


y = 401.3
= 4 102 + 0 101 + 1 100 + 3 101 + 3 102 + 3 103 +

Ejemplo 1.0.2

(Sistema binario o base

2). Para representar un nmero en

sistema binario se usan los dgitos 0 y 1.

a) Representacion de x en sistema binario


x = 13.625
= 8 + 4 + 1 + 0.5 + 0.125
= 23 + 22 + 20 + 21 + 23
= 1 23 + 1 22 + 1 20 + 1 21 + 1 23
= 1 23 + 1 22 + 0 21 + 1 20 + 1 21 + 0 22 + 1 23

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


sistema binario se tiene (13.625)10 = (1101.101)2 . Donde los subndices
10 y 2 indican la base en la que se encuentra el nmero.
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 22 + 1 24 +

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


se relacionan como antes. (401.333 )10 = (110010001.0101 )2 .
2

Anlisis Numrico con MATLAB

Ejemplo 1.0.3

(Sistema octal o base

dgitos del 0 al 7.

8). El nmero se escribe usando los

a) Representacion de x en sistema octal.


x = 13.625
= 8 + 5 + 0.625
= 1 81 + 5 80 + 5 81

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 81 + 4 82 +

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

Ejemplo 1.0.4

16). Para representar un nmero en hexadecimal se usan los dgitos del 0 al 9 y las letras A, B, C, D, E
y F en lugar de los nmeros 10, 11, 12, 13, 14 y 15 respectivamente.
(Sistema hexadecimal o base

a) Representacion de x en sistema hexadecimal.


x = 13.625
= 13 + 0.625
= 13 160 + 10 161
= D 160 + A 161

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


b) Representacion de y en sistema hexadecimal.
y = 401.3
= 256 + 144 + 1 + 0.3125 + 0.01953125 +
= 1 162 + 9 161 + 1 160 + 5 161 + 5 162 +

Luego (401.333 )10 = (191.55 )16


3

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

Denicin 1.1

(Notacin cientica en base 10). Un nmero real x se dice


que est escrito en notacin cientca en base 10 si se puede representar de
la siguiente 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
caracterstica.

Ejemplo 1.0.5. Representacion cientica en base de 10 para x = 1231 y


y = 0.0000738.

x = 1231 = 1.231 103


y = 0.0000738 = 7.38 105
De la misma forma, se puede utilizar la notacin cientca en el sistema
n
binario. En este caso x = M 2 donde 1 6 M < 2 (si x 6= 0) y n es un
entero.
Por ejemplo

x = (1101.101)2

3
= (1.101101)2 2 .

dec2base(d,b), que convierte un entero


no negativo d en base 10 a una base dada b. El nmero d no puede ser mayor
52
de 2
y b debe ser un entero entre 2 y 36.
MATLAB [9] posee la funcin

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


>> n1= dec2base(13, 2)
n1 =
1101
>> n2= dec2base(13, 5)
n2 =
23
>> n3= dec2base(13, 16)
n3 =
D
4

Anlisis Numrico con MATLAB


MATLAB tambin posee la funcin
binario en su equivalente en base

bin2dec , que transforma un nmero

10.

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


n =
29

1.1. Representacin de un nmero real en una


mquina
Una mquina generalmente no almacena una cantidad matemtica

una aproximacin binaria a


denotada por

llamada representacin de

(x) que toma la siguiente forma:

x sino

punto otante,

x (x) = 1 d1 d2 d3 dk 2n
donde

di

es un dgito binario

x (x) = (1)s 1 f 2n ,
La cantidad

donde

f = d1 d2 d3 dk

indica el signo del nmero, la cantidad

mantisa y se encuentra en base

2,

y la cantidad

1f

se denomina

es el exponente.

La mquina utiliza un formato (longitud de palabra) para almacenar un


nmero real. Constan de mltiplos de

bits, donde cada posicin contiene

un dgito binario o bit.

precisin simple usa 32 bits, para almacenar un nmero


precisin doble 64 bits y el extendido 128 bits. MATLAB usa

El formato de
real, el de

de precisin doble [9].

precisin simple (32 bits), el primer bit est reservado


para el signo del nmero denotado por s en la ecuacin (1.1) (1 para negativo
En el formato de

para positivo ya que

(1)1 = 1

(1)0 = 1);

los ocho bits siguientes

se utilizan para almacenar un patrn de bits que representan al exponente

n;

los 23 bits restantes se usan para la mantisa, pero slo se almacena la parte
de la mantisa denotada por

por que el dgito principal siempre es

1.

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

1 bit

8 bits

23 bits

Signo del nmero

Exponente

Mantisa. Parte fraccionaria

Figura 1.1: Distribucin de 32 bits

En la gura 1.1 se muestra la distribucin de los

32

bits en un formato

de precisin simple.
El valor del exponente de

255

8 bits vara de (00000000)2 = 0 a (11111111)2 =

para enteros positivos y no permitira representar exponentes negativos;

por esta razn 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


La relacin del exponente
es:

n = c b.

en trminos del valor almacenado

Para el caso del formato de

Por ejemplo, si el exponente

es

2,

32

bits

entonces

c.

c y el sesgo b

b = 127.
n = c b, 2 = c 127,

c = 129.
En lugar de almacenar el exponente

n = 2 = (00000010)2

se almacena

c = 129 = (10000001)2 .
Si el exponente

es

En lugar de almacenar

5, entonces n = c b, 5 = c 127, c = 122


n = 5 = (00000101)2 , se almacena c = 122 =

(01111010)2 .
En la gura 1.2 se muestra el valor real del exponente
valor del exponente sesgado

n y el correspondiente

que se almacenara en el formato.


(Valor real del exponente n)

- 127

-5

122

128

127 129

255

(Valor del exponente sesgado c


almacenado en el formato)

Figura 1.2: Valores de los exponentes

Ejemplo 1.1.1. Represente en formato de precisin simple los siguientes


nmeros.

Primero se escribe el nmero en notacin de punto otante base 2 de la


forma (1.1) f l(x) = (1)s (1.f ) 2n y luego se lo almacena en el formato.
6

Anlisis Numrico con MATLAB

a) Formato de precisin 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 nmero 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 representacin de x = 13.625 en el formato de precisin simple es:
0

10000010

Signo del nmero

Exponente

10110100000000000000000
Parte fraccionaria

de la mantisa

b) Formato de precisin simple para y = 0.375


y = 0.375 = (0.011)2
= (1.1)2 22
f l(y) = (1)1 (1.1) 22

Como el nmero 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 representacin de y = 0.375 en el formato de precisin
simple es:
1

01111101

Signo del nmero

Exponente

10000000000000000000000
Parte fraccionaria

de la mantisa

En el formato de precisin doble de (64 bits), el primer bit est reservado


para el signo del nmero; los

11

bits siguientes se usan para almacenar el

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.
exponente sesgado, y los

Por ejemplo, el nmero real que representa el formato de precisin doble


(64 bits).

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

(Valor real del exponente


- 1023

n)

1024
(Valor del exponente sesgado
almacenado en el formato)
2047

1023

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

10000001001

Signo del nmero

Exponente

10011000. . . 0
Parte fraccionaria

de la mantisa

Corresponde a un nmero positivo, el valor del exponente sesgado es

c = (10000001001)2 = 1033
n = c b, n = 1033 1023 = 10 y la parte
fraccionaria de la mantisa es f = 10011. Por lo tanto el nmero que representa

luego el exponente real es


es:

(1.10011)2 210 = (1 20 + 1 21 + 0 22 + 0 23 + 1 24 + 1 25 ) 210


= 210 + 29 + 26 + 25
= 1632
Los nmeros que representa una mquina estn dentro de un rango numrico 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 nmero real se puede representar. Para un formato
de precisin simple (32 bits) el mximo nmero positivo (Mnp) es aproxima38
damente 3 10
y el mnimo nmero positivo (mnp) es aproximadamente
1038 . El mnimo nmero negativo (mnn) es 3 1038 y el mximo nmero
38
negativo (Mnn) es 3 10
. En la Figura 1.4 se ilustran los intervalos de
nmeros representables en el formato de precisin simple.
Cuando el nmero que se quiere representar es
los

31

0,

se iguala a

cada uno de

ltimos bits, de modo que el esquema descrito en la ecuacin (1.1) se

omite en este caso. El bit de signo puede ser

0 1. La magnitud ms pequea

diferente de 0 que se puede almacenar es limitada por esta excepcin y es


2126 1038 [1].

Anlisis Numrico con MATLAB

Figura 1.4: Intervalos de nmeros representables

Cuando se hacen clculos en una mquina que usa un formato de pre38


cisin simple y la magnitud del nmero resultante es menor que 10
se
produce un subdesbordamiento o subujo (underow) y suele drsele el va38
lor de cero; los nmeros que tengan una magnitud mayor a 3 10
producen
un desbordamiento o sobreujo (overow) y los clculos se interrumpen. En
la gura 1.5 se ilustran los intervalos donde ocurre un overow o underow.

Figura 1.5: Overow o underow

El rango numrico para una mquina que usa un formato de precisin


10308 y 10308 .

doble (64 bits) comprende nmeros cuya magnitud est entre

Los nmeros en una mquina no estn uniformemente distribuidos; adems no todo nmero real que se encuentre en el rango numrico de la mquina
se puede representar exactamente.

39.9, tiene una mantisa que es


(39.9 = 1.0011111100 25 ) que

Por ejemplo el nmero

una sucesin binaria

innitamente larga

se debe reducir a

23

bits (en precisin simple) para poder almacenarlo.


El mtodo de reduccin dictado por la norma IEEE es el redondeo estadstico en el que se redondea hacia arriba si el valor ms all del bit 23
24
24
de
excede a 2
, se redondea hacia abajo si es menor que 2
, y se re24
dondea al siguiente valor par o impar si es exactamente 2
. Para 39.9,

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

f l(39.9) = 1.00111111001100110011010 25 se redonde hacia


valor del nmero almacenado es 39.90000152587890625 [1].

arriba. El

Para ilustrar esta situacin considere una mquina que maneja nmeros
de la forma:

1 d1 d2 2n

donde

n = 1, 0, 1.

Los nmeros positivos que maneja esta mquina son:

1.00 21
1.01 21
1.10 21
1.11 21
1.00 20
1.01 20
1.10 20
1.11 20
1.00 21
1.01 21
1.10 21
1.11 21

= (1 20 + 0 21 + 0 22 ) 21 = 0.5
= 0.625
= 0.75
= 0.875
=1
= 1.25
= 1.5
= 1.75
=2
= 2.5
=3
= 3.5

Observe que a medida que los nmeros se alejan de cero la distancia entre
ellos aumenta; para el primer grupo la distancia es
grupo es de

0.25

y para el tercer grupo es de

0.125,

para el segundo

0.5.

El rango numrico de la mquina que se est considerando se encuentra


entre

0.5

3.5

para nmeros positivos, y entre

3.5

0.5

para nmeros

negativos. Observe que no todos los nmeros reales que se encuentran en el


intervalo cerrado

[0.5, 3.5] se pueden representar en esta mquina,


2.1 se almacenara como 2 (por qu?).

por ejem-

plo el nmero real

En general en el sistema numrico de una mquina hay huecos o discontinuidades.


En la recta real, dado cualquier nmero real no existe el siguiente nmero
real ms pequeo ni el siguiente nmero ms grande; pero en el sistema
numrico de una mquina si existe. Para ilustrar esta situacin considere el
nmero de una mquina de precisin simple
El nmero es positivo, el exponente sesgado es

10

(10001111)2 = 143,

el

Anlisis Numrico con MATLAB


0

exponente real es

10001111

16

10010000000000000000001

y la mantisa es:

(1.100100000000000000000001)2 .

El

nmero que representa la mquina es:

(1.100100000000000000000001)2 216 = 102400.0078125


El siguiente nmero ms grande en la mquina se halla sumando
la mantisa (o un

223

al ltimo dgito de la mantisa por qu?)

1.10010000000000000000001
+
1
1.10010000000000000000010
Luego, el nmero siguiente ms grande en la mquina es:

(1.1001 . . . 010)2 216 = (1 20 + 1 21 + 1 24 + 1 222 ) 216


= 102400.015625
El siguiente nmero ms pequeo en la mquina se halla restando

223

la mantisa,

1.10010000000000000000001

1
1.10010000000000000000000
El nmero siguiente ms pequeo en la mquina es:

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


En la gura 1.6,

es el nmero y

xp

xg

denotan respectivamente el

siguiente nmero ms pequeo y el siguiente nmero ms grande.


Se observa que el nmero original de la mquina no slo representa a

102400.0078125

sino a muchos nmeros reales que se hallen entre este nmero y sus nmeros
ms cercanos. En otras palabras el nmero original de la mquina representa
cualquier nmero real en el intervalo
la funcin

eps

[102400, 102400.015625). En MATLAB


1 al siguiente nmero en punto

representa la distancia de

11

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

Figura 1.6: Overow o underow

otante. En el formato IEEE el valor de


16
aproximado es: 2.2204 10
.

64

eps

es:

252

y el valor decimal

Como se dijo anteriormente, MATLAB usa el sistema punto-otante IEEE30


22
bits para representar todo nmero [9]. S x = 2 , r1 = 2
, r2 = 223 y

construimos una sentencia logica de igualdad a


MATLAB asumira que

x 6= x + r1

pero

entre;

x = x + r2 .Por

x + r1

x + r2 ,

Qu?

1.2. Aritmtica de precisin nita


La aritmtica de precisin nita signica que los clculos se hacen con un
nmero constante de dgitos, as por ejemplo: si se quiere sumar

x = 12.16
es x + z =

z = 8.7243 usando aritmtica de corte a 3 dgitos, el resultado


12.1 + 8.72 = 20.8; ahora si x y z se suman usando aritmtica de redondeo
a tres dgitos, el resultado es x + z = 12.2 + 8.72 = 20.9. Observe que el
y

resultado que se obtiene en ambos casos es una aproximacin al valor exacto

x + z = 20.8843.
En general, cuando se usa aritmtica a

dgitos lo primero que se hace

es escribir los nmeros en la forma:

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


despus se aproxima

por

f l(x) = 0 d1 d2 d3 . . . dk 10n
Si se usa corte y redondeo,

se aproxima por

f l(x) = 0 d1 d2 d3 . . . k 10n
donde

k = dk

si

dk+1

es

0, 1, 2, 3, 4

k = dk + 1
12

si

dk+1

es

5, 6, 7, 8, 9.

Anlisis Numrico con MATLAB

Ejemplo 1.2.1. El nmero 22/7 tiene una expansin decimal de la forma:


22
= 3.142857 = 0.3142857 101
7

La representacin de punto otante de



fl

22
7

22
7

usando corte a 4 dgitos es

= 0.3142 101 = 3.142

Si se usa redondeo a 4 dgitos



fl

22
7

= 0.3143 101 = 3.143

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


dgito en la expansin de 22/7 es 8 y como 8 es mayor que 5 se le suma 1 al
cuarto dgito.

Ejemplo 1.2.2. Escribir el nmero x = 148.17 en la forma de punto otante

usando corte y redondeo a 4, 3 y 2 dgitos.

x = 148.17 = 0.14817 103

corte

redondeo

4 dgitos f l(x) = 0.1481 10 = 148.1 f l(x) = 0.1482 103 = 148.2


3 dgitos f l(x) = 0.148 103 = 148
f l(x) = 0.148 103 = 148
2 dgitos f l(x) = 0.14 103 = 140
f l(x) = 0.15 103 = 150
3

El error que resulta al reemplazar un nmero cualquiera

x por su forma de

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 continuacin se dene el error absoluto y el error relativo . Si x
es una
aproximacin de x entonces el error absoluto es | x x
| y el error relativo


x x


es
, x 6= 0.
x
punto otante

Ejemplo 1.2.3. Error absoluto y error relativo para varios x y x


x = 104
x = 1.04
x = 0.0104

x = 103
x = 1.03
x = 0.0103

Error absoluto Error relativo


1
0.009615384
0.01
0.009615384
0.0001
0.009615384
13

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

Observe que el error relativo es el mismo en los tres casos, pero el error
absoluto es distinto en cada caso. Es aconsejable como una medida de precisin trabajar con el error relativo ya que el error absoluto puede ser engaoso.
Un error de slo un metro al determinar la distancia entre la tierra y Jpiter
sera algo asombroso, pero no sera algo aceptable que un cirujano cometiera
un error de esa magnitud al efectuar una incisin [4].

Ejemplo 1.2.4. Si f l(x) es una aproximacin de x con corte a k dgitos.

Demuestre que el error relativo que se comete al reemplazar x por f l(x) est
acotado por 10k+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 . . . 10k
6 1 10k = 10 10k = 10k+1
=
0 d1 d2 dk dk+1 dk+2 . . . 0.1

Luego


x f l(x)


6 10k+1



x

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


10 es 0.99 . . . 10k 6 1 10k , y una fraccin alcanza su valor ms
grande cuando el denominador es el ms pequeo, en este caso el valor ms
pequeo para 0 d1 d2 . . . dk dk+1 dk+2 . . . es 0.1).
k

Ejercicio 1. Demuestre que el error relativo que se comete al reemplazar x


por (x) usando redondeo a k dgitos est acotado por 1/2 10k+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 + 10nk .
14

Anlisis Numrico con MATLAB

Denicin 1.2. Se dice que el nmero x aproxima a x con t dgitos (o cifras)


signicativos, si t es el entero no negativo ms grande para el cual,


x x
t


x < 5 10

Ejemplo 1.2.5. 1) Si x = 3.141592 y x = 3.1




x x
2


< 5 102
x = 0.013239147 = 1.3239147 10
x aproxima a x con 2 cifras signicativas.

2) Si x = 100000 y x = 99994


x x
4


< 5 104
x = 0.00006 = 0.6 10
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

< 5 101
x = 0.16 = 1.6 10
x aproxima a x con 1 cifra signicativa

1.3. Arimtica en una Mquina


Para analizar los errores que surgen al efectuar clculos en una mquina
debido a la limitante de la longitud de palabra (precisin simple, precisin
doble etc.) se supondr una mquina que opera en decimal y trabaja aritmtica a 5 dgitos usando redondeo. Si

f l(x) y f l(z) son las representaciones

15

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

para

z,

y adems

, ,

denotan las operaciones suma, resta,

multiplicacin y divisin en la mquina entonces:

xz
x z
xz
x z

= f l(f l(x) + f l(z))


= f l(f l(x) f l(z))
= f l(f l(x) f l(z))
= f l(f l(x) f l(z))

Ejemplo 1.3.1. 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

xz
x z
xz
x z

= f l(0.66667 + 3.1429) = f l(3.80957) = 3.8096 = 0.38096 101


= f l(0.66667 3.1429) = f l(2.47623) = 2.4762 = 0.24762 101
= f l(0.66667 3.1429) = f l(2.095277143) = 2.0953 = 0.20953 101
= 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


mquina, los valores reales y el error relativo en cada operacin.

Operacin Resultados
Valor real Error relatien la mquivo
na
xz
x z
xz
x z

3.8096
2.4762
2.0953
0.21212

80/21
52/21
44/21
7/33

0.200 104
0.385 105
0.295 104
0.571 105

Como el error relativo ms grande en las operaciones es


4
resultados tienen 5 dgitos signicativos ya que 0.295 10
5
5 10 .

16

0.295 104 los


= 2.95 105 <

Anlisis Numrico con MATLAB

1.4. Prdida de dgitos o cifras signicativas


Se presenta cuando se restan cantidades casi iguales en una mquina, por
ejemplo, si

x = 2.1784301 y z

= 2.1765628 se restan en una mquina decimal

que maneja 5 dgitos y usa redondeo se tendra 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 102
Observe que para representar a

x z

en su forma de punto otante se

necesito desplazar dgitos en la mantisa aadiendo tres ceros en el lado derecho, estos ceros carecen de sentido y no representan una exactitud adicional
ya que slo sirven para denotar el lugar decimal.
El valor real de

xz

es 0.0018673 y el error relativo es de 0.036041.

El valor dado por la mquina tiene 2 cifras signicativas ya que 0.036041 =


3.6041 102 < 5 102 . En este caso, aunque se trabaja con 5 dgitos, el
2
nmero 0.18000 10
slo tiene 2 cifras signicativas, ya que las primeras
tres cifras de

coinciden, su diferencia

xz

slo contiene 2 cifras deci-

males.
Para apreciar la prdida de dgitos signicativos cuando se restan nmeros
casi iguales suponga que

son nmeros reales tales que

x > z,

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 mquina decimal que usa una mantisa a

dgitos (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,

k 10n
f l(x) f l(z) = 0.000
| {z 0}|p+1 p+2
{z
}
p cifras

k - p cifras

x y = f l(f l(x) f l(z)) = 0. p+1 p+2 k 10np


|
{z
}
k - p cifras

17

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

Por lo tanto el nmero que se usa para representar a

kp

xz

tendr solamente

cifras signicativas.

La prdida de dgitos signicativos debido al error de redondeo a veces


se puede evitar reformulando el problema o reordenando los clculos o reemplazando en el caso de haber una funcin por un polinomio de Taylor.

perdida de cifras signiEjemplo 1.4.1. El enunciado x2 + 1 1 implica

cativas para valores de x cercanos a 0 ya que x2 + 1 1 para x 0 , y se


restaran dos nmeros casi iguales.
Si se evala en x = 0.1 y se usa aritmtica a 6 dgitos usando redondeo
se tiene:

x2 = 0.01 = 0.1 101


x2 + 1 = 0.1 101 + 1 = 1.01 = 0.101 101
x2 + 1 = 1.004987562 = 0.1004987562 101
x2 + 1 1.00499 (redondeo a 6 dgitos)

x2 + 1 1 1.00499 1
x2 + 1 1 0.00499 = 0.499 102 .

Para
evitar la prdida de dgitos signicativos el enunciado

2
x + 1 1 se puede presentar tambin como

 x2 + 1 + 1

x2
=
x2 + 1 1 =
x2 + 1 1
x2 + 1 + 1
x2 + 1 + 1
0.01
x2
0.01

=
= 0.498756 102

2
1.00499 + 1
2.00499
x +1+1

(redondeo a 6 dgitos)

El valor real de x2 + 1 1 enx = 0.1 es 0.498756211 102 .


El error relativo con la expresin x2 + 1 1 es:
4.88793913 104 < 5 104 . (cuatro cifras signicativas).
El error relativo con la expresin

x2
es:
x2 + 1 1

4.230523758 107 < 5 107 (siete cifras signicativas).

Ejemplo 1.4.2. El valor del polinomio 3.5x2 4.9x evaluado en x = 5.8 es


89.32.
Si se usa aritmtica de 3 dgitos redondeo, se tiene x2 33.6, 3.5x2 118,
18

Anlisis Numrico con MATLAB


4.9x 28.4. Luego 3.5x2 4.9x 89.6, el error relativo es aproximadamente
3.135 103 .
Si el polinomio se escribe como x(3.5x 4.9) y se evala en x = 5.8 usando
aritmtica de 3 dgitos 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 reducido porque en la segunda parte se ha disminuido el nmero de clculos, en la
primera se necesitan 3 multiplicaciones y una resta. En la segunda slo dos
multiplicaciones y una resta.
En general los polinomios deben expresarse en forma anidada antes de realizar una evaluacin, porque as se disminuye al mnimo la cantidad de clculos
aritmticos.
Si el polinomio ax3 +bx2 +cx+d se expresa como x[x(ax+b)+c]+d Cuntas
operaciones necesita cada expresin para su evaluacin?

1
presenta prdida de cifras
4.0000000024 2

Ejemplo 1.4.3. La cantidad

signicativas por que se restan nmeros casi iguales.


Una forma alternativa para aproximar esta cantidad es la siguiente.

El polinomio de Taylor de grado 1 para la funcin 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

4.0000000024 2 +

1
1
(4.0000000024 4) = 2 + (0.0000000024)
4
4

1
=2+
24 1010
4
= 2 + 6 1010

Luego
1
1
1
1

=
= 1010
10
10
2 + 6 10
2
6 10
6
4.0000000024 2
19

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

Los tres primeros dgitos signicativos son 1.67 109 .


Encuentre en diferentes calculadoras o en un computador el nmero igual
1
a
Qu puede concluir?
4.0000000024 2

1.5. Ejercicios
1. Escriba los nmeros
2. Halle en decimal

275.5, 79.625

22

210

en base

2, 8

16.

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

3. Escriba los nmeros del ejercicio 1 en la notacin cientca en el sistema


binario.
4. Veamos cmo hallar el nmero racional en base 10 representada por el
nmero binario

(0.01)2

Escribindolo en forma desarrollada:

(0.01)2 = (0 21 ) + (1 22 ) + (0 23 ) + (1 24 ) +

X
X
2 k
=
(2 ) = 1+
(22 )k
k=1

k=0

= 1 +

1
= 1 + 4/3 = 1/3.
1 1/4

Es una serie geomtrica de razn 1/4 y primer trmino 1.


Muestre que

(0.0011)2 =

5. Represente los nmeros

1
5

= 0.2

7.2

y que

8/7

(0.001)2 = 17 .

en un formato de precisin simple

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


6. Obtenga el equivalente decimal de los nmeros dados en los siguientes
formatos

a)

Precisin simple
0

b)

10011111

01110000000000000000101

Precisin doble

20

Anlisis Numrico con MATLAB


1

01111111

11000000000000000000000

00001111111

100000000 . . . 00000000011

7. Encuentre en decimal el nmero siguiente y el anterior a los nmeros


del ejercicio 6 a).
8. Demuestre que

4/5

no se puede representar de manera exacta en una

mquina que tiene un formato de precisin simple. Cul es el nmero


de mquina ms cercano?.
9. Es

2/3 (1 224 ) un nmero que se puede representar de manera exac-

ta en un formato de precisin simple?


10. Cules de los siguientes nmeros se pueden representar exactamente
en un formato de precisin simple?

1040 , 21 , 1/5, 1/3

1/256.

x = 216 + 28 + 29 + 210 . Si x denota el nmero de mquina


ms cercano a x en un formato de precisin simple Cul es el valor de
|x x |?.

11. Sea

12. Convierta los siguientes nmeros binarios en su forma decimal.

a)

1.0110101

b)

11.0010010001

13. Los nmeros del ejercicio anterior son aproximadamente

Halle

el error de dichas aproximaciones; es decir, halle

a)

2 1.0110101

b ) 11.0010010001

(use

2=1.41421356237309

(use

...)

=3.14159265358979

...)

1
+ 13 + 14 . . . es divergente. Escriba un programa
2
que evale esta suma. Es divergente la serie de la computadora? En

14. La serie innita

1+

caso negativo, por qu no?

21

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

15. El trmino

epsilon de la mquina

es el menor valor positivo tal que la

mquina es capaz de distinguir entre (1 + ) y 1. Este valor depende


del hardware y de cmo el compilador de un lenguaje de programacin
almacena la mantisa de un nmero de punto otante. El epsilon de la
mquina para una mantisa normalizada (1 f ) donde f se almacena en
n
ubicaciones de n bits es igual a 2
. Para una mantisa no normalizada
(1f ) que se almacena en ubicaciones de n bits, el epsilon de la mquina
1n
es 2
. El error al almacenar una cantidad x tiene una cota superior

 |x|.

 (Akai, p. 60-61).Determine el epsilon de su mquina.

16. El epsilon de la mquina (ver el problema 15) permite estimar una
cota superior para el error en una operacin. Sea

f (x, y)el

resultado

x y y y sea  el epsilon de la mquina.


E al calcular y almacenar f (x, y) est acotado por



f f
E 6 B = |f (x, y) | + (1 + ) x + y
x
y

verdadero de una operacin sobre


El error

Los trminos con las derivadas parciales explican los errores en la operacin debidos a representaciones inexactas de
por (1 +

)

y la adicin de

 |f (x, y)|

y;

la multiplicacin

explica los errores al almacenar

el resultado.
Con el resultado del problema 15 (o un valor cticio de 10

),

estimar la cota superior

para el error en

para

en las operaciones

siguientes. (Akai, p. 61).

a)
b)
c)
d)

z = 1.897 + 9.635
z = 4.058 13.27
z = 2.345

19.28

z = 19.28 2.345

17. Aplique la aritmtica de redondeo a tres dgitos para realizar los siguientes clculos. Calcule los errores absolutos y relativos con el valor
exacto determinado por lo menos a 5 dgitos.

a ) (121 0.327) 119


b)

67
2e 5.4
13
14

22

Anlisis Numrico con MATLAB

c)

22
7

1
17

18. Repita el ejercicio anterior aplicando la aritmtica de corte a 3 dgitos.

19. Sea

x cos x sen x
x sen x

f (x) =

a)

Encuentre

b)

Aplique la aritmtica de redondeo a cuatro dgitos para evaluar

lim f (x)

x0

f (0.1).

c)

Reemplace las funciones trigonomtricas 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
y que

y1 6= y0 .

(x0 , y0 )

(x1 , y1 )

se encuentran en una recta

Se cuenta con dos frmulas para hallar la interseccin

de la lnea:

x=

x0 y1 x1 y0
y1 yo

x = x0

(x1 x0 )y0
y1 yo

a)

Demuestre que ambas frmulas son algebraicamente correctas.

b)

Use los datos

(x0 , y0 ) =(1.31,

3.24),

(x1 , y1 ) =(1.93,

4.26) y la

aritmtica de redondeo a tres dgitos para calcular la interseccin

x en ambas frmulas Cul de los mtodos es mejor?

(Burden, p.

28).

21. El polinomio de Taylor de grado

para

f (x) = e

es

n
X
xi

i!

i=0
Use este polinomio y la aritmtica de corte a tres dgitos para encontrar
5
una aproximacin a e
mediante cada uno de los siguientes mtodos.

5
) e

9
X
(5)i
i=0

i!

9
X
(1)i 5i
i=0

i!
23

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

b ) e5 = 1/e5

1
9
X
(5)i
i=0

i!

Cul frmula da mayor exactitud?.


22. Sugiera cmo se podra evitar la prdida de dgitos signicativos en los

x 0:

siguientes clculos si

a ) x2 + 1 x
b ) x3 (sen x x)
c ) (cos x ex )/ sen x
d ) senh x tanh x
23. Suponga que

0.

a 6= 0 y que b2 4ac > 0 y conside la ecuacin ax2 +bx+c =

Sus races se pueden hallar mediante la conocida frmula:

a)
x1 = (b +

b2 4ac)/(2a)

x2 =(b

b2 4ac)/(2a)

Pruebe que estas races pueden calcularse mediante las frmulas


equivalentes

b)


b ) x1 = (2c)/ b +

b2

4ac

2
x2 = (2c)/ b b 4ac


Indicacin : Racionalice el numerador.

Observacin: Cuando b2 4ac |b|, hay que proceder con cuidado


para evitar la prdida de precisin por cancelacin. Si

x1

debera ser calculado con la segunda frmula y

frmula; mientras si
primera frmula y

b < 0,

x2

entonces

x1

b > 0,

x2

entonces

con la primer

debera ser calculado usando la

debera ser calculado usando la segunda.

24. Use la frmula adecuada para calcular

x1

x2 ,

tal como se explica en

el anterior ejercicio, para hallar las races de las siguientes ecuaciones


de segundo grado. (Use aritmtica de corte a

24

dgitos).

Anlisis Numrico con MATLAB

a ) x2 1000.001x + 1 = 0
b ) x2 + 10000.0001x + 1 = 0
25. Determine los tres primeros dgitos signicativos de los nmeros

a ) [(8.0000000025)1/3 2]1
Sugerencia : Utilice serie de Taylor para aproximar (8 + x)1/3
b)

1015
1015 ln(1 + 1015 ) 1

Sugerencia : Utilice la serie de Taylor para aproximar ln(1 + x)


c)

0.13 1015
cos(1010 ) 1

use radianes.

Sugerencia : Utilice serie de Taylor para aproximar cos x

25

CAPITULO 1. REPRESENTACIONES DE NMEROS Y ERRORES

26

Capitulo

Ceros de Funciones
En este capitulo se estudia el problema de encontrar los valores que hacen
que una funcin de una variable se anule (Figura 2.1), es decir; dada una

f : R R, debemos encontrar los valores de x para los cuales


f (x) = 0. Dada una funcin f , una raz o cero de f , es un nmero c tal que
f (c) = 0.
funcin

Figura 2.1: Puntos de corte con el eje

para la funcin

f (x)

A continuacin se consideran varios de los mtodos clasicos para resolver

27

CAPITULO 2. CEROS DE FUNCIONES

este problema.

2.1. Mtodo de Biseccin


Si

es una funcin continua sobre el intervalo

entonces

debe tener por lo menos un cero o raz

[a, b] y si f (a) f (b) < 0,


en (a, b) (Figura 2.2).

f(a)

]
b

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

Figura 2.2: Mtodo de biseccin

Este resultado es consecuencia del teorema del valor intermedio para fun-

[a, b] y si k es un
numero entre f (a) y f (b), entonces existe por lo menos un c (a, b) tal que
f (c) = k . Para el caso en que f (a)f (b) < 0 se escoge k = 0, luego f (c) = 0
con c (a, b).
El mtodo de biseccin consiste en dividir el intervalo en 2 subintervalos
de igual magnitud, reteniendo el subintervalo en donde f cambia de signo,

ciones continuas, que establece que si

es continua en

para conservar al menos una raz o cero, y repetir el proceso varias veces.

[a, b].
a+b
Primero se calcula el punto medio del intervalo c =
, despes se
2
examin el signo de f (a)f (c). Si f (a)f (c) < 0, entonces f tiene un cero en
[a, c].
A continuacion se renombra a c como b y se comienza una vez mas con el
nuevo intervalo [a, b], cuya longitud es igual a la mitad del intervalo original.
Por ejemplo, suponga que

tiene un cero en el intervalo

28

Anlisis Numrico con MATLAB


Si
como

f (a)f (c) > 0,


a.

entonces

f (c)f (b) < 0

y en este caso se renombra 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 }

{cn }

(gura 2.3). Se deja

como ejercicio para el lector demostrar que las dos primeras son monotonas
crecientes y decrecientes respectivamente, adems se encuentran acotadas, lo
cual garantiza la convergencia de ambas sucesiones.

Figura 2.3: Representacin graca sucesiones generadas en el mtodo de Biseccin

Ejemplo 2.1.1. La funcin f (x) = x sin x 1 tiene un cero en el intervalo


[0, 2], porque f (0) = 1 y f (2) = 0.818595.
29

CAPITULO 2. CEROS DE FUNCIONES

Figura 2.4: Graca de la funcin

f (x) = x sin x 1

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 funcin 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 esta en el
intervalo [a2 , c2 ] = [1, 1.5] y se renombra como [a3 , b3 ]

En la tabla de abajo se muestran las primeras nueve iteraciones del mtodo


de biseccin para f (x) = x sen x 1 con a = 0 y b = 2.
Finalmente tenemos que c = 1.114157141 es el cero de f (x) = x sen x 1.
Para detener el mtodo de biseccin y dar una aproximacin del cero de

una funcin se pueden usar varios criterios, los cuales son conocidos como
criterios de parada.

|f (cn )| < , donde es


= 103 ). Otro criterio

Uno de los criterios de parada consiste en examinar si


una tolerancia previamente establecida (por ejemplo
que se puede utilizar es examinar s

|bn an | /2 < .

Tambin se puede usar como criterio de parada el error relativo entre dos

f , |(cn cn1 )/cn | < .


el ejemplo anterior si = 0.005, el procedimiento
iteracin con el criterio |f (cn )| < , ya que:

aproximaciones del cero de


En
octava

30

se parara en la

Anlisis Numrico con MATLAB


n

Extremo Extremo Punto


izquierdo derecho medio
an

bn

Valor de la Error Relativo


funcin

cn

f (cn )

|(cn cn1 )/(cn )|

0.158529

1.5

0.496242

0.333333

1.5

1.25

0.186231

0.2

1.25

1.125

0.015051

0.111111

1.125

1.0625

-0.071827

0.0588235

1.0625

1.125

1.09375

-0.028362

0.0285714

1.09375

1.125

1.109375

-0.006643

0.0140845

1.1093750

1.125

1.1171875

0.004208

0.0069930

1.1093750

1.1171875

1.11328125 -0.001216

0.0035087

|f (c8 )| = |f (1.1171875)| = 0.004208 < = 0.005


pero si se usa el criterio

|(cn cn1 )/cn | < , el procedimiento se detendra

en la novena iteracin porque:




c9 c8 1.11328125 1.1171875

= 0.0035087 < = 0.005


c9 =
1.11328125
Cuando se generan aproximaciones por medio de una computadora, se
recomienda jar un nmero mximo de iteraciones

que debera realizar la

mquina. Esto con el n de contar con un resguardo para evitar la posibilidad


de que el proceso de clculo caiga en un ciclo innito cuando la sucesin
diverge (o cuando el programa no esta codicado correctamente).

2.1.1. Convergencia
Teorema 2.1

(Convergencia Biseccin). Supongamos que f es continua en


[a, b] y f (a)f (b) < 0. Sea {cn }
n=0 la sucesin de puntos medios de los intervalos generados por el mtodo de biseccin. Entonces {cn } converge a un
punto c [a, b] tal que f (c) = 0 y, adems

|cn c| 6

ba
,
2n
31

n>1

CAPITULO 2. CEROS DE FUNCIONES

Demostracin.
c [a, b]

El teorema del valor intermedio garantiza la existencia de

tal que

f (c) = 0.

Por construccin del mtodo, para todo

tiene que

b n an =
Adems

esta en cada intervalo

ba
2n1

(an , bn ).

n > 1,

se

(2.1)

La distancia entre

cn

no puede

superar la mitad de la longitud de cada intervalo, es decir

|c cn | 6

b n an
2

De (2.1) se tiene que

|c cn | 6
Aplicando limite cuando

n ,

ba
2n1

ba
2n

(2.2)

en la desigualdad anterior se tiene que

la sucesin de puntos medios converge a la raz

c.
q

Utilizando (2.1) se puede demostrar que las sucesiones


a

an

bn

convergen

c.
De acuerdo con el teorema anterior, en el mtodo de biseccin es posible

determinar cuantas iteraciones son necesarias para aproximar el cero de una


funcin con una exactitud especca, ya que el error despus de
n
es |c cn | 6 (b a)/2 .

n iteraciones

Ejemplo 2.1.2. Para determinar el nmero de iteraciones necesarias para

aproximar el cero de f (x) = x sen x 1 con una exactitud de 102 en el


intervalo [0, 2], se debe hallar un nmero n tal que:
|c cn | 6

ba
< 102
n
2

Es decir (2 0)/(2n ) < 102 , n > 7.643 . . .. Se necesitan aproximadamente unas 8 iteraciones.
Observe en la tabla de aproximaciones que el cero de f (x) = x sen x 1
es c = 1.114157141 y c8 = 1.1171875.
El error real es |c c8 | = 0.003030359 3 103 . El error real es menor
que el error dado por el teorema; en la mayora de casos la cota de error
dada por el teorema es mayor que el nmero de iteraciones que realmente se
necesitan. Para este ejemplo, |c c7 | = 0.004782141 < 102 = 0.01.
32

Anlisis Numrico con MATLAB


El mtodo de biseccin tiene la desventaja que es lento en cuanto a con-

n grande para que |c cn | sea pequeo.

vergencia, es decir que se necesita un

Otros mtodos requieren menos iteraciones para alcanzar la misma exactitud, pero entonces no siempre se conoce una cota para la precisin.
El mtodo de biseccin suele recomendarse para encontrar un valor aproximado del cero de una funcin, y luego este valor se rena por medio de
mtodos ms ecaces. La razn es porque la mayora de los otros mtodos
para encontrar ceros de funciones requieren un valor inicial cerca de un cero;
al carecer de dicho valor, pueden fallar por completo.

x
Resolver una ecuacin en una variable como por ejemplo: xe = 1 es
x
equivalente a resolver la ecuacin xe 1 = 0, o a encontrar el cero de
x
la funcin f (x) = xe 1. Para aproximar el cero de f o la raz de la
ecuacin, se puede hacer la grca de

y determinar un intervalo donde

tenga un cero. Tambin se pueden probar nmeros 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

tiene un cero en el intervalo

tomamos valores no apropiados para

b,

[0, 1].

Pero si

es posible que el criterio que se

construyo falle y no se detecte la raiz que se busca (Figura 2.5)

Figura 2.5: Intervalo de busqueda erroneo para la funcin


Cuando hay races de mltiplicidad diferente de

33

f (x) = xex 1

1, el mtodo de biseccin

CAPITULO 2. CEROS DE FUNCIONES

quiz no sea vlido, ya que la funcin podra no cambiar de signo en puntos


situados a cualquier lado de sus races (Figura 2.6)

Figura 2.6: Raices mltiples

La grca es fundamental para aclarar la situacin. En este caso sera


0
posible hallar los ceros o races trabajando con la derivada f (x), que es cero
en una raz multiple.
A continuacin se da un codigo basico en MATLAB, que implementa el
mtodo de Biseccin, Se deja como ejercicio para el lector, cambiar el codigo
para que dada una tolerancia, calcule el nmero de iteraciones necesarias
para que la aproximacin al cero, cumpla con la tolerancia (2.2).

Algoritmo 1 (Algoritmo Biseccin). Dada una funcin continua f, dos nmeros 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;
34

Anlisis Numrico con MATLAB

else
b=c;
end
end

2.2. Mtodo de la Regula Falsi


f (x) es continua en un intervalo [a, b] con f (a).f (b) < 0.
f (x) por una recta que une
(a, f (a)) y (b, f (b)). El corte c de la recta con el eje X se usa para generar
dos subintervalos, [a, c] y [c, b], donde:
Supongamos que

El mtodo consiste en aproximar la grca de

ba
c =b f (b)
f (b) f (a)
af (b) bf (a)
=
f (b) f (a)

Se escoge el intervalo que contenga la raz , examinando los productos;


f (a)f (c) y f (c)f (b) y se repite el proceso anterior. La Figura 2.7 muestra la
evolucin geometrica de las rectas secantes que se van generando. El mtodo
anterior es conocido como mtodo de la Falsa posicin o Regula Falsi.

35

>%%,-5)?) 5)& &%()$'%& -*. .%(')& @% ,%$*. %$(%..)@) %$'.% @*& +'%.)@*& &7(%&+B*&2
CAPITULO 2. CEROS DE FUNCIONES

#&'% ,<
%

,* %5 ,<
%'*

87% %5 *.@%

>%/%.%$

"

!"# $%&' (
567" .-) 8
,%-:: NCO:

Figura 2.7: Interpretacin geomtrica del Mtodo de la Regula Falsi.

Para detener el mtodo se pueden utilizar los criterios de parada del


metodo de biseccin.

Ejercicio 2. Efecte tres iteraciones del mtodo de la Regula Falsi para la


funcin f (x) = x sen x 1 con x0 = 1 y x1 = 2.

2.2.1. Convergencia
Teorema 2.2

. Sea f una funcin dos veces

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


(Convergencia Regula Falsi)

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

M=

%*

w
2

00

f (x)

<1
max 0
x[a,b] f (x)

(2.3)

1 el mtodo
! de !la 1
con92
w = b o!"#$
w =1
a segn el caso, entonces
Regula Falsi!2
converge a .
!

Demostracin.

;2

#%&"

+!

Ver referencia [11].

$ 1

36

M2 3+ &+E$*

%!!

)@%,<
)& &+E$*

$
+!

%
+

"1 &+E$*
#

"

#%&"

$ !!: A)(%.

!! 1 &+E$*

!! A

Anlisis Numrico con MATLAB


La siguiente rutina describe la iteracin basica del mtodo de la Regula
Falsi. El valor absoluto de la funcin evaluada en cada iteracion, es utilizado
como criterio de parada. Se deja como ejercicio para el lector la implementacin de otros criterios de parada, y codigos que permitan visualizar la
funcin.

Algoritmo 2 (Algoritmo Regula Falsi). Dada una funcin f dos veces dife-

renciable, dos nmeros 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. Mtodo de Newton


El mtodo de Newton o tambin llamado mtodo de Newton-Raphson,
es uno de los mtodos mas tiles y mejor conocido para aproximar el cero de
una funcin.
Suponga que
aproximacin de

x0

c es un cero de f , es decir, f (c) = 0 y que x0 es una


c. El polinomio de Taylor de grado uno para f alrededor de

y su correspondiente residuo es:

f 00 (z)
(x x0 )2 ,
f (x) = f (x0 ) + f (x0 )(x x0 ) +
2
0

esta entre

x0

x.
37

(2.4)

CAPITULO 2. CEROS DE FUNCIONES

Si en la ecuacin (2.4) se reemplaza

x por c y usando el hecho que f (c) = 0,

se obtiene:

0 = f (x0 ) + f 0 (x0 )(c x0 ) +

f 00 (z)
(c x0 )2
2

(2.5)

est sucientemente cerca de c, entonces en el ltimo sumando de la


2
ecuacin (2.5) el trmino (c x0 ) ser pequeo, comparado con la suma de
si

x0

los dos primeros trminos.


Si se desprecia este trmino se puede usar la expresin (2.5) para encontrar
una aproximacin al cero de

f.

0 f (x0 ) + f 0 (x0 )(c x0 )

Despejando

(2.6)

en la ecuacin (2.6), se obtiene:

c x0 f (x0 )/f 0 (x0 )

El mtodo de Newton comienza con una aproximacin inicial


de la funcin a partir de la cual se dene una sucesin

x0

del cero

{xn } de aproximaciones

denidas por:

xn+1 = xn

f (xn )
, n > 0
f 0 (xn )

(2.7)

Desde un punto de vista geomtrico, lo que hace el mtodo de Newton


es construir la recta tangente a la grca de
y encontrar el cero de la recta tangente,

x2

x1

en un punto cercano

es el cero de la recta tangente a la grca de

sucesivamente.

38

x0

( gura 2.8). La aproximacin

en el punto

x1

y as

Anlisis Numrico con MATLAB

Figura 2.8: Interpretacin geomtrica

Ejemplo 2.3.1. Para aproximar una solucin de la ecuacin 3x+sen x = ex ,

se puede tomar f (x) = 3x + sen x ex . Observe que f (0) = 1 y f (1) =


1.123189, segn el teorema del valor intermedio existe un cero de f en el
intervalo [0, 1].
Si se aplica el mtodo de Newton comenzando con x0 = 0 se tiene:
f (x) = 3x + sen x ex
0

f (x) = 3 + cos x ex

f (x0 )
(1)
1
=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 104
x3 = x2 0
= 0.360170713
= 0.33357967
f (x2 )
2.502262549

x1 = x0

Para esta funcin |(x3 x2 )/x3 |


= 6.96 104 < 103 , |f (x3 )| = 5.744
7
10 < 10 y |x3 x2 | = 2.50967 104 < 103 .
8

39

CAPITULO 2. CEROS DE FUNCIONES

Los criterios de parada mencionados en el mtodo de biseccin tambin


pueden ser utilizados en el mtodo de Newton. A continuacin se estudiara
la convergencia, expandiendo

f (x)

alrededor de

f (x) = f (xn ) + (x xn )f 0 (xn ) +


Haciendo

x=c

xn :

(x xn )2 00
f (zn ),
2

y teniendo en cuenta que

f (c) = 0

zn (xn , x)

se tiene,

(c xn )2 00
f (zn ),
2
00
f (xn )
2 f (zn )
0= 0
+ (c xn ) + (c xn )
f (xn )
2f 0 (xn )
00
f (xn )
2 f (zn )
+ (c xn )
c = xn + 0
f (xn
2f 0 (xn )


00
f (xn )
2 f (zn )
c = xn 0
+ (c xn )
f (xn )
2f 0 (xn )
0 = f (xn ) + (c xn )f 0 (xn ) +

zn (xn , c)

Usando (2.7) se obtiene

f (xn )
xn 0
f (xn

00

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

n-esmo
 00

f (zn )
2
= en
,
2f 0 (xn )

S se dene el error en el paso

en+1

por:

e n = x n c,

zn (xn , c)

entonces

(2.8)

2.3.1. Convergencia
Teorema 2.3 (Convergencia Newton). Sea f una funcin dos veces diferen-

ciable en un intervalo alrededor de c con f (c) = 0 y f 0 (c) 6= 0. Si x0 esta lo


sucientemente cerca a c, la iteracin (2.7) del mtodo de Newton converge
a c.
40

Anlisis Numrico con MATLAB

Demostracin.

I = [c , c + ],


f 00 (x)
1


M = max 0
2 xI f (x)

Considere un intervalo

Una condicin inicial

x0 I

tal que

M |0 | < 1.

con

> 0.

Se toma

Usando (2.8) se tiene que

|1 | M |0 |2 = M |0 ||0 | < |0 |
luego

x1 I ,

ya que:

|1 | <
|x1 c| <
< x1 c <
+ c < x1 < + c
x1 [c , c + ]
Adems,

M |1 | M 2 |0 |2 < 1
M |1 | (M |0 |)2 < 1
Suponga que

xn I

M |n | < 1,

entonces

|n+1 | M |n |2 = M |0 ||0 | < |n |


Por lo tanto

xn+1 I

M |n+1 | (M |n |)2 < 1


Se tiene que

xn I

M |n | < 1

para todo

n.

(2.9)

Adems, de (2.9) se tiene


n

M |n+1 | (M |0 |)2
1
n
(M |0 |)2
|n+1 |
M
Al ser

M |0 | < 1, lmn n = 0

(2.8)

y por lo tanto

x n c.

Tomando limites en

n+1
f 00 (c)
=
n 2
2f 0 (c)
n
porque zn c cuando n
lm

Por la continuidad de

f 00

q
41

CAPITULO 2. CEROS DE FUNCIONES

La convergencia del mtodo se puede garantizar, si

M |x0 c| = M |0 | < 1
es decir, si

|x0 c| <

1
1
2

00
(x)
maxxI ff 0 (x)

lo cual indica, que tan cerca debe estar

x0

de la raz

c.

La estructura de la

condicin anterior, indica que el mtodo presentara problemas de convergencia, si una de las iteraciones se anula en la primera o segunda derivada de

f.

Ms adelante se trabajar un algunas ejemplos donde el mtodo de Newton


no converge.
Por otro lado, la relacin 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 aproximacin del cero de

con

dgito

correcto, despus de una iteracin se tendra dos dgitos correctos; despus


de dos iteraciones cuatro dgitos correctos; y despus de tres iteraciones ocho
dgitos correctos, etc.

Ejemplo 2.3.2. Halle una expresin para aproximar


la raz cuadrada de un
nmero R > 0. Use la expresin para aproximar

x= R
x2 = R
x2 R = 0, x

5.

es la raz cuadrada de

Se puede aplicar el mtodo de Newton a la funcin f (x) = x2 R.


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

Para aproximar
entonces

5, se usa la frmula con R = 5 y si se toma x0 = 2

42

Anlisis Numrico con MATLAB

1
5
x1 =
x0 +
2
x0

5
1
x1 +
x2 =
2
x1

= 2.25
= 2.236111111 . . .

!
1
5
x3 =
x2 +
= 2.236067978 . . .
2
x2

en una calculadora 5 = 2.236067977 . . .


Existen funciones y puntos iniciales para los que el mtodo de Newton
fracasa. La Figura 2.9 muestra una funcin en la que la grca tiene una
forma especial y la cual genera que la sucesin entre en un ciclo innito, es
decir, diverge.
La Figura 2.10 muestra una funcin y una condicin inicial

x0 ,

que hace que

el mtodo se indetermine. Porque divergen las iteraciones anteriores ?

Figura 2.9: Divergencia mtodo de Newton.

43

CAPITULO 2. CEROS DE FUNCIONES

Figura 2.10: Divergencia mtodo de Newton.

En el mtodo de Newton hay que evaluar dos funciones en cada iteracin,


f (xn ) y f 0 (xn ). Para algunas funciones f 0 (xn ) no es una expresin sencilla y
se requieren ms operaciones aritmticas para evaluarla que para la funcin.
Esto hace que el mtodo de Newton sea ms costoso, por ejemplo que el
mtodo de biseccin, en el que en cada iteracin la funcin se evala una vez.
La siguiente rutina describe la iteracin basica mtodo de Newton. El
valor absoluto de la funcin evaluada en cada iteracion, es utilizado como
criterio de parada. Se deja como ejercicio para el lector la implementacin de
otros criterios de parada, y codigos que permitan visualizar las rectas que se
van generando. Adems, es importante implementar algunas restriccin, ya
que si la funcin no cumple con las condiciones de convergencia del mtodo,
el denominador se puede indeterminar o se puede entrar en un ciclo innito.

Algoritmo 3 (Algoritmo Newton). Dada una funcin f, su derivada g, una


condicin inicial x0 y una tolerancia tol> 0.
c=x0-(f(x0)/g(x0));
44

Anlisis Numrico con MATLAB

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

2.4. Mtodo de la Secante


El mtodo de la secante, es otro mtodo para aproximar el cero de una
funcin en el que en cada iteracin se evala la funcin y no la derivada. A
continuacin se presenta este mtodo.
Utiliza la misma frmula del Mtodo de Newton:

xn+1 = xn

Pero en lugar de utilizar la derivada

f 0 (xn )

f (xn )
f 0 (xn )

f 0 (xn ),

este valor se aproxima por

f (xn ) f (xn1 )
xn xn1

Al reemplazar esta aproximacin de

f (xn )

en la frmula de Newton se

obtiene:

xn+1 = xn
Ya que el clculo de

xn+1

f (xn )(xn xn1 )


f (xn ) f (xn1 )
requiere conocer

principio dos aproximaciones iniciales

x0

n > 1,
xn

xn1 ,

(2.10)

se debe dar al

x1 .

La interpretacin geomtrica del mtodo de la secante es similar a la del


mtodo de Newton. La recta tangente a la curva se reemplaza por una recta

f , ( Figura
(4.10)). Si x0 y x1 son las aproximaciones iniciales, la aproximacin x2 es
la interseccin de la recta que une los puntos (x0 , f (x0 )) y (x1 , f (x1 )). La
aproximacin x3 es la interseccin de la recta que une los puntos (x1 , f (x1 ))
y (x2 , f (x2 )) y as sucesivamente.

secante. El cero de

se aproxima por el cero de la recta secante a

45

CAPITULO 2. CEROS DE FUNCIONES

Figura 2.11: Interpretacin geomtrica del Mtodo de la secante.

Ejemplo 2.4.1. Efecte tres iteraciones del mtodo de la secante para la

funcin f (x) = x sen x 1 con x0 = 1 y x1 = 2.

f (x1 )(x1 x0 )
f (x1 ) f (x0 )
(2 sen 2 1)(2 1)
=2
= 1.162240449
(2 sen 2 1) (sen 1 1)
f (x2 )(x2 x1 )
x 3 = x2
= 1.236422098
f (x2 ) f (x1 )
f (x3 )(x3 x2 )
x4 = x3
= 1.113511445
f (x3 ) f (x2 )
x2 = x1

Para este caso

f (x4 ) = 0.000896772969,

ademas

|f (x4 )| < 0.0009.

Este ejercicio se resolvi con el mtodo de biseccin en la seccin anterior


y en la novena iteracin

|f (x9 )| = 0.001216 . . .
46

Anlisis Numrico con MATLAB

2.4.1. Convergencia
Teorema 2.4

(Convergencia Secante). Sea f una funcin dos veces diferenciable en un intervalo que contiene a una raz c de f y supongamos que
f 0 (c) 6= 0. Si x0 y x1 estan lo sucientemente proximos a c, entoces la sucesin denida en (2.10) converge a c.

Demostracin.

Los detalles de la demostracin se pueden encontrar en [2].

De la demostracin extraemos algunos aspectos importantes. Dado un


y un intervalo

>0

I = [c , c + ].

x0 y x1 estan lo
|0 | , |1 | ,

sucientemente proximos a

c,

si

M max{|0 |, |1 |} < 1

donde


00
f (x)
M = max 0
xI 2f (x)
q


f 00 (c)


Si
es grande, habra que tomar x0
0
2f (c)

x1

muy proximos a

c, adems

si la primera o segunda derivada se anula, el mtodo no funciona bien.


El mtodo de la secante converge a la solucin ms lentamente que el mtodo
de Newton, pero tiene la ventaja de no usar la derivada en cada iteracin.

A continuacin se describe un codigo para el mtodo de la Secante. Se


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

Algoritmo 4

(Algoritmo Secante)

. Dada una funcin 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
47

CAPITULO 2. CEROS DE FUNCIONES

2.5. Mtodo del punto jo


f (p) = p.
Geomtricamente un punto jo representa el corte entre la graca de f y la
recta y = x. La gura 6.2 muestra una funcin f (x) que posee 5 puntos jos.
Dada una funcin

f (x),

se dice que

es un punto jo de

f,

y=x

f (x)

Figura 2.12: Representacin graca del punto jo.

El Mtodo de Punto Fijo (tambin conocido como iteracin de punto


jo), es otro mtodo 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

es un cero de

Para aproximar un cero de

f (x), f (c) = 0

c = g(c).

se utiliza la iteracin de punto jo

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

(2.11)

Anlisis Numrico con MATLAB


donde

x0

es una aproximacin inicial del cero de

f.

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


Supngase 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 iteracin de punto jo 2.11, los


valores sucesivos de x son:
x0 = 4
x1 = g(x0 ) =

2(4) + 3 = 3.31662

x2 = g(x1 ) =

2(3.31662) + 3 = 3.10375

x3 = g(x2 ) =

2(3.10375) + 3 = 3.03439

x4 = g(x3 ) =

2(3.03439) + 3 = 3.01144

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
x=
49

3
= g(x)
x2

CAPITULO 2. CEROS DE FUNCIONES

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


x0 = 4
3
= 1.5
42
3
= g(x1 ) =
= 6
1.5 2
3
= g(x2 ) =
= 0.375
6 2
= 1.263158
= 0.919355
= 1.02762
= 0.990877
= 1.00305

x1 = g(x0 ) =
x2
x3
x4
x5
x6
x7
x8

Parece que ahora x converge al otro cero de f , x = 1. Considrese un


tercer reordenamiento
x2 2x 3 = 0
2x = x2 3
x2 3
= g(x)
x=
2

Comenzando de nuevo con x0 = 4 se obtiene:


x0
x1
x2
x3

=4
= 6.5
= 19.625
= 191.070

Resulta evidente que las iteraciones son divergentes.


La diferencia en el comportamiento de los tres reordenamientos se puede

x = g(x)
y = g(x). En la gura 6.1
eje x con x0 , se efecta un

apreciar considerando las grcas en los tres casos. El punto jo de


es la interseccin de la recta

y = x,

y la curva

se presentan los tres casos. Se comienza en el

desplazamiento vertical hacia la curva, luego uno horizontal hacia la recta

50

Anlisis Numrico con MATLAB


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
Cuando se tiene la ecuacin
narla en la forma

x=

1)

f (x) = 0,

existen muchas formas de reordeg(x), por ejemplo para la ecuacin anterior x2 2x3 =

otras alternativas son:

x 2x 3 = 0

x2 2x 3 = 0

x2 = 2x + 3

x(x 2) = 3

x3 = 2x2 + 3x
p
3
x = 2x2 + 3x
= g1 (x)

3
x2=
x
3
x= +2
x
= g2 (x)

x2 2x 3 = 0
x2 2x 3
=0
2x 2
(x2 2x 3)
x
=x
2x 2
= g3 (x)

g3 (x), es el mtodo de Newton aplicado a g(x)


Una pregunta que surge en este momento es cul de las funciones g sirve
para aproximar el punto jo de g ? (o en forma equivalente el cero de f ).
Observe que la iteracin de

A continuacin se presenta un teorema que da condiciones sucientes para


la existencia y unicidad del punto jo de una funcin.

2.5.1. Convergencia
Teorema 2.5. 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 adems 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.
Demostracin.

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
Si

51

CAPITULO 2. CEROS DE FUNCIONES

c (a,b) tal que t(c) = 0, es decir g(c) c = 0,


g.
6 K < 1 y que c1 y c2 son dos puntos
c1 =
6 c2 , por el teorema del valor medio, existe un

del valor intermedio existe un

g(c) = c,

es un punto jo de
0
Si se supone adems que |g (x)|

jos de
nmero

luego

g en [a, b] con
z entre c1 y c2 tal

que

g(c2 ) g(c1 )
= g 0 (z)
c2 c1

|g(c2 ) g(c1 )| = |g 0 (z)||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 contradiccin, por lo tanto el
punto jo de g en [a, b] es nico.
q

Ejemplo 2.5.2. La funcin 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], adems |g 0 (x)| > 1. (ya que g 0 (x) = x y x (2, 4) ).

El ejemplo anterior muestra que las hiptesis del teorema 2.5.1 son sucientes 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 produzcan sucesiones que converjan a un punto jo.

Teorema 2.6

. Sea g una funcin continua en

(Convergencia Punto jo)

[a, b] tal que g(x) [a, b] para toda x en [a, b]. Adems 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 sucesin denida por xn+1 = g(xn ), converge al
nico punto jo x en [a, b].

Demostracin.
|xn x| = |g(xn1 ) g(x)|
= |g 0 (z)||g(xn1 ) g(x)| (Por el teorema del valor
|xn x| 6 K|xn1 x|( porque |g 0 (x)| 6 K, x (a, b))
52

medio)

Anlisis Numrico con MATLAB


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 |xn1 x| 6 K 2 |xn2 x| 6 6 K n |x0 x|


|xn x| 6 K n |x0 x|
lm |xn x| lm K n |xo x| = 0

porque si

|k| < 1, lmn K n = 0.

Luego

{xn }

converge a

x.

Como consecuencia inmediata del teorema tenemos.

Corolario 2.1. S g satisface las hiptesis 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 }

Demostracin.

|xn x| 6 K n |x0 x|.


como x [a, b], |x0 x| 6 m
ax {x0 a, b x0 }.
n
Luego, |xn x| 6 K m
ax {x0 a, b x0 }.
Por el teorema anterior

La iteracin del punto jo, presenta dos conguraciones geometricas. La


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

53

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

C! "'1 # ,

$#!&

$#! ,

CEROS DE
FUNCIONES
B/ .420'&2 #('41(#32 # CAPITULO
4'.4'&')(14&'
5'2-;'(4#01-')('
! , $# 2.! .+'@'
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

" !!"

!
" !!"

# # " !$" # $
!

" !$" % $

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

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

Figura 2.13: Ejemplo de iteracin en escalera.

IJ

54

Anlisis Numrico con MATLAB

" !$" #

" !!"

" !!"

# # " !$" # $
!

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


!" !$"! % #

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


!" !$"! # #

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


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

Ejemplo 2.5.3.
Aplique
el
Teorema
2.6
para
demostrar
que
g(x)
=
2x + 3
"

tiene
jo
la cantidad
' nico
# " #en$[2, 4]. Use" !el3 corolario
42 #un
" # punto
$
# "!#para("estimar
)
!" ' #
2
de iteraciones necesarias para lograr una exactitud de 10 y despus compare esta estimacin terica con!la
& cantidad que realmente se requiere, use
#
"
#
$
3
# "!# !*"*
-2
#
"
#
$
x0 = 3.5
"
"
"

"

funcin
y creciente. Basta evag(x) = &2x! +
" !!
! #continua
' 3 en [2, 4] es+ una
#
"
#
$
3
#
"
!
#
$
( y por lo tanto su
52
#
"
#
$
luar g en los! extremos
del intervalo
g es creciente
"!
"
"! " por
! #que

valor mnimo
y su valor mximo se encuentran en los extremos del intervalo.

!"

g 0 (x) = 1/( 2x + 3) > 0

#$%&'(') *&%+,&*-') (% '+(%. )/0%+*'+!

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

7!&#.0# 51<#"#.-1!4$# # -#"-! 5#g(4)


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

61

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


3 $! 10#"!-18(.
"&$

$ #"

"#

&$(

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


,-./

""#

! ! $ ,-./
!
"
" ! !#

"&$

"

"#

'"&$ # #!% "!#


$
'!"
$0

CAPITULO 2. CEROS DE FUNCIONES

Adems
|g 0 (x)| =

1
0.378
<p
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 nmero de iteraciones necesarias
para lograr una exactitud de 102 se usa el corolario,
|xn x| 6 k n max {x0 a, b x0 }
|xn x| 6 (0.378)n max {1.5, 0.5}
|xn x| 6 (0.378)n (1.5)

con

a = 2, b = 4, x0 = 3.5

k = 0.378

Como el error debe ser menor que 102 entonces


(0.378)n (1.5) < 102
n > 5.15042 . . .

Por lo tanto se necesitan unas seis iteraciones para lograr una aproximacin exacta dentro de 102 .
x5 =
|x5 x| = |3.00381 3| = 0.00381 <

Este ejercicio ya se resolvi al comienzo de esta seccin y se obtuvo

3.00381. Observe
102 = 0.01.

que el error real

Cabe sealar que el corolario no da ms que una cota del nmero de


iteraciones necesarias. En la mayora de casos se requiere un nmero menor
de iteraciones.
El siguiente codigo en MATLAB describe la iteracin 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 gracacin. Por otro lado se puede
implementar en el algoritmo, la cota de error del Colorario 2.1.

Algoritmo 5

(Algoritmo Punto jo). Dada una funcin continua f, una


condicin inicial x0 y una tolerancia tol> 0.
56

Anlisis Numrico con MATLAB

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 races de la ecuacin

a)

x3 +

x=6

Mediante evaluaciones en enteros determine un intervalo de longitud 1 que contenga una raz.

b)

Aplique tres iteraciones del mtodo de biseccin para reducir la


longitud de este intervalo en un factor de

2. Sea

f (x) = (x + 2)(x + 1)2 x(x 2).

0.125.

En cul cero de

converge el

mtodo de biseccin 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 mtodo de biseccin) para obtener una cota


del nmero de iteraciones que se requieren para alcanzar una aproxi3
3
macin con una exactitud de 10
a la solucin de x + x 4 = 0 que
se encuentra en el intervalo

[1, 4]. Obtenga una aproximacin de la raz

con este grado de exactitud.


4. Verdadero o falso?

a)
b)
c)

Si

g(19.6) = 19.6,

La funcin
Si

entonces

x2 + 2 x

f (a) = 1
a y b.

19.6

se denomina punto jo de

g.

tiene exactamente dos ceros reales.

f (b) = 2,

entonces

f (x)

tiene al menos un cero

entre

d)

Despus de siete iteraciones del mtodo de biseccin, el intervalo


en curso tiene una longitud menor que el
intervalo original.

57

1%

de la longitud del

CAPITULO 2. CEROS DE FUNCIONES

e)

Diez iteraciones del mtodo de biseccin reducen la longitud L1


1/102 , as la

del intervalo que contenga una raz por un factor de


longitud es

f)

L1 /100.

La ecuacin

(ex )2 = 4

tiene exactamente dos soluciones (reales).

5. Determine cuntas races tiene

ex (x2 1)(x2 4) = 0.

6. Aplique el mtodo de Newton para obtener soluciones con una exacti5


tud de 10
para:

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


b ) sen x ex = 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 mtodo de NewtonRaphson para resolver f (x)=0
1/2
siendo f (x)=(x-3)
tomando x0 = 4 como valor inicial? por qu?.
8. Suponga que

a)
b)

es un nmero real y positivo.

Pruebe que

1/4 6 q < 1

puede escribirse como

A = q 22m ,

siendo

un entero.

Use el apartado a) para probar que la raz cuadrada de

1/2

=q

1/2

es

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


y se usa la frmula de Newton, entonces despus de tres ite1/2
raciones, x3 ser una aproximacin a q
con 24 cifras binarias de precisin. Este es el algoritmo que los computadores
usan habitualmente para hallar races cuadradas. (Mathews,
p.96).
9. Halle, con una precisin de diez cifras decimales, el valor de

para el

que es mnima la distancia vertical entre las grcas de las funciones


f (x) = x2 + 2 y g(x) = (x/5) sen(x).
10. Se construye una caja sin tapa a partir de una hoja metlica rectangular
que mide

10 por 16 centmetros. Cul debe ser el lado de los cuadrados

que hay que recortar en cada esquina para que el volumen de la caja
sea

100

centmetros cbicos? Precisin:

58

0.000000001

centmetros.

Anlisis Numrico con MATLAB


11. La funcin descrita por

f (x) = ln(x2 + 1) e0.4x cos x

tiene una can-

tidad innita de ceros.

a)

Determine, con una exactitud de

b)

Determine, con una exactitud de

106
106

el nico cero negativo.


los cuatro ceros positivos

ms pequeos.
12. El valor acumulado de una cuenta de ahorros que se basa en pagos
peridicos puede calcularse con la ecuacin de anualidad vencida.

A=
En esta ecuacin,

es el monto de la cuenta,

deposita peridicamente e

P
[(1 + i)n 1]
i

es la cantidad que se

es la tasa de inters por periodo para los

periodos de depsito. A un ingeniero le gustara tener una cuenta de

750000 dlares al momento de retirarse dentro de 20 aos, y puede depositar $ 1500 dlares mensuales para lograr

ahorros con un monto de $

dicho objetivo. Cul es la tasa mnima de inters a que puede invertirse


este dinero, suponiendo que es un inters compuesto mensual?.
13. 

Un mtodo de Newton-Raphson

p es una raz
q(p) 6= 0.

a)
b)

de multiplicidad

Pruebe que

M,

para races mltiples. Si


f(x)= (x - p)M q(x), donde

modicado
entonces

h(x) = f (x)/f 0 (x)

tiene una raz simple en

p.

Pruebe que si se aplica el mtodo de Newton-Raphson para hallar


p de h(x), entonces se obtiene g(x) = x h(x)/h0 (x)

la raz simple

que, en este caso, es

g(x) = x

c)

f (x)f 0 (x)
(f 0 (x))2 f (x) f 00 (x)

f (x) = sen(x3 ) tiene en p = 0 un cero triple. Partiendo


de p0 = 1 calcule p1 , p2 y p3 usando el mtodo de Newton-Raphson
La funcin

modicado. (Mathews, p.97).

59

CAPITULO 2. CEROS DE FUNCIONES

14. Aplique el mtodo de la secante para obtener soluciones con una exac3
titud de 10
para las ecuaciones dadas.

a ) x3 2x2 5 = 0, x [1, 4]
b ) x cosx = 0, x [0, /2]
ex = cos x

15. La ecuacin

tiene una raz cerca de 1.29. Diga cul de

las tres funciones siguientes sera preferible utilizar como funcin de


iteracin a n de localizar la raz

g1 (x) = cos1 (ex )


g2 (x) = ln(sec x) = ln(cos x)
g3 (x) = x 0.01(ex cos x)
16. Use el manejo algebraico para demostrar que las siguientes funciones
tienen un punto jo en
x4 + 2x2 x 3.

exactamente cuando

f (p) = 0,

donde

f (x) =

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


b ) g2 (x) =
c ) g3 (x) =
d ) g4 (x) =
i.

3x4 + 2x2 + 3
4x3 + 4x 1

Efecte cuatro iteraciones, si es posible hacerlo, en las funciones

g.
ii.

!1/2
x + 3 x4
2
!1/2
x+3
x2 + 2

Use

x0 = 1.

Cul funcin, a su juicio, dar la mejor aproximacin a la solucin?

17. Aplique el teorema de punto jo para demostrar que

0.5 sen(x/2)

tiene un punto jo nico en

[0, 2].

g(x) = +

Use la iteracin de

punto jo para obtener una aproximacin al punto jo con una exac2
titud de 10 . Use el corolario para estimar la cantidad de iteraciones

60

Anlisis Numrico con MATLAB


necesarias para lograr una exactitud de

102

y despus compare esta

estimacin terica con la cantidad que realmente se requiere.


18. En cada una de las siguientes ecuaciones, determine un intervalo

[a, b]

para la cual la iteracin de punto jo converge. Estime la cantidad de


iteraciones necesarias para obtener aproximaciones con una exactitud
5
de 10
y realice los clculos.

2 e x + x2
3
!1/2
ex
b) x =
3

a) x =

c ) x = 5x

61

CAPITULO 2. CEROS DE FUNCIONES

62

Capitulo

Sistemas de Ecuaciones Lineales


Se considera un sistema de ecuaciones lineales con

ecuaciones y

in-

cognitas, de la forma:

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


a21 x1 + a22 x2 + a23 x3 . . . + a2n xn = b2
.
.
.

an1 x1 + an2 x2 + an3 x3 . . . + ann xn = bn


con forma representacin matricial

AX = b

nn
donde A R
,
X Rn tal que AX

a11 a12 . . . a1n


a21 a22 . . . a2n

..
.
.
..
.
.
.
.
.
.
an1 an2 . . . ann
b Rn .
= b.

x1
b1
x2 b2

.. = ..
. .
xn
bn

Solucionar el sistema (3), es hallar un vector

3.1. Sistemas fciles de resolver


Consideremos

(3.1)

una matriz diagonal.

63

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

a11 0 0
0 a22 0

A = ..
.
.
..
.
.
.
.
.
.
0
0 ann
Entonces el sistema

AX = b

tiene la siguiente foma

a11 x1 = b1
a22 x2 = b2
.
.
.

ann xn = bn
La solucin es

xi = (bi )/aii ,

para

i = 1, 2, . . . , n

con

aii 6= 0.

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


lineal 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

es Triangular Superior (A no singular).

a11 a12 a1n


0 a22 a2n

A = ..
.
.
..
.
.
.
.
.
.
0
0 ann
Entonces el sistema

AX = b

que resulta es:

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


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

ann xn = bn
64

Anlisis Numrico con MATLAB


El sistema se resuelve con sustitucin hacia atrs. Se llama sustitucin
hacia atrs por que el primer valor que se halla es

xn ,

luego

xn1

y as hasta

x1 .

xn =

bn
ann

bi

aij xj

j=i+1

xi =

Algoritmo 7

n
P

para

aii

i = n 1, n 2, . . . , 1 (aii 6= 0).

(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

es Triangular inferior.

a11 0 . . . 0
a21 a22 . . . 0

A = ..
.
.
..
.
.
.
.
.
.
an1 an2 . . . ann

El sistema resultante es:

a11 x1
a21 x1 + a22 x2

= b1
= b2

.
.
.

.
.
.

an1 x1 + an2 x2 +an3 x3 + . . . + ann xn = bn


El sistema se resuelve con sustitucin hacia adelante

65

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

x1 =

b1
a11
bi

xi =

i1
P

aij xj

j=1

para

aii

i = 2, 3, . . . , n (aii 6= 0).

Ejercicio 3. Construya el codigo de una funcin en MATLAB que dado un


sistema de ecuaciones lineal con matriz de coecientes triangular inferior,
calcule el vector solucin X .

Una matriz A es ortogonal si su inversa es igual a su transpuesta; es decir


1
A = At . En este caso, el sistema AX = b tiene como solucin X = At b, ya
que si

AX = b

entonces:

AX = AAt b
= AA1 b
= Ib
=b

3.2. Mtodos Directos de Solucin


Un mtodo directo se reere a un procedimiento para calcular una solucin a partir de una forma que es matemticamente exacta; los mtodos
directos proporcionan una respuesta en un nmero jo de pasos, y slo estn
sujetos a errores de redondeo.

3.2.1. Mtodo de la Inversa


La solucin del sistema

Ax = b es x = A1 b (A no singular). El clculo de

la matriz inversa involucra muchas operaciones. MATLAB posee la funcin

inv

que calcula la inversa de una matriz cuadrada.

Ejemplo 3.2.1. La matriz de Hilbert H de tamao m n, esta dada por:


Hij = 1/(i + j 1) i {1, 2, . . . , m},

El codigo en MATLAB que la genera:


66

j {1, 2, . . . , n}

Anlisis Numrico 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 solucin 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 operacin.

3.2.2. Mtodo de Cramer


La solucin es

a11
a21

..
.

A=

xi = |Ai | / |A|, i = 1, 2, . . . n.

a12 . . . a1n
a22 . . . a2n

..
.

..
.

a11
a21

Ai =

..
.

Donde

a12 . . . b1 . . . a1n
a22 . . . b2 . . . a2n

..
.

..
.

..
.

an1 an2 . . . bn . . . ann

an1 an2 . . . ann

(n + 1) determinantes y el costo de operaciones de un determin requiere de aproximadamente n! multiplicaciones divisiones


y sumas/restas. MATLAB posee la funcin det que encuentra el determinanSe necesitan

nante de orden

te de una matriz cuadrada.

67

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

3.2.3. Mtodo de Eliminacin Gaussiana


Dados dos sistemas de ecuaciones. Diremos que ellos son equivalentes, si
poseen el mismo conjunto solucion. Iniciamos introduciendo las operaciones
elementales entre las. Son transformaciones que admite la matriz aumentada
de un sistema y que generan un sistema equivalente.
La ecuacin

Ei

(o la la

i)

puede multiplicarse por una constante

tinta de cero. Esta operacin se denota por


La ecuacin

Ej

(o la la

j)

puede multiplicarse por una constante

de cero y sumarse a la ecuacin

Ei

(o la

dis-

Ei Ei .

i).

distinta

Esta operacin se denota por

(Ei + Ej ) Ei .
El orden de las ecuaciones

Ei

Esta operacin se denota por

Ej ( o la i y la la j ) puede intercambiarse.


Ei Ei .

El Mtodo de Eliminacin Gaussiana consiste en transformar mediante


.
.
operaciones elementales entre las a la matriz aumentada del sistema [A.b]
0 .. 0
0
en una matriz de la forma [A .b ], donde A es una matriz triangular superior
0
0
y as el sistema AX = b se transforma en un sistema equivalente A X = b
que es un sistema fcil de resolver ya que es triangular superior y se puede
resolver con sustitucin hacia atrs.

Ejemplo 3.2.2. Resolver el sistema lineal usando el mtodo de eliminacin


gaussiana.

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

La matriz aumentada del sistema es:

..
E1 1 2 1 . 5
..

E2
2 0 4 . 22
E3
4 2 2 .. 18
.
a11 = 1 es el elemento pivote, para anular los elementos que estn debajo de la primera columna se usan los multiplicadores. Los multiplicadores son los nmeros por los que se multiplica la la pivote para restarla de las correspondientes las posteriores. M21 = a21 /a11 = 2/1 = 2 y
M31 = a31 /a11 = 4/1 = 4.

68

Anlisis Numrico con MATLAB

..
. 5
1
2
1

E2 2E1 0 4
2 ... 12
E3 4E1
0 6 2 .. 2
.

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

E3 1.5E2
0
0 5 .. 20
.

Finalmente se obtiene el sistema:


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

usando sustitucin hacia atrs se tiene que x3 = 4, x2 = 1 y x1 = 3, luego


la solucin del sistemas es X = (3, 1, 4).

Ejemplo 3.2.3. Resolver el sistema


0.03x1 + 58.9x2 = 59.2
5.31x1 6.10x2 = 47.0

a) Usando eliminacin Gaussiana.


E1
E2

0.03
58.9 .. 59.2
5.31 6.10 ... 47.0

El multiplicador M21 = 5.31/0.03 = 177


.

E2 177E1

0.03
58.9 .. 59.2
0 10431.4 ... 10431.4
69

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

El sistema triangular que resulta es:


0.03x1 + 58.9x2 = 59.2
10431.4x2 = 10431.4

La solucin exacta del sistema es X = (x1 , x2 ) = (10, 1).


b) Usando eliminacin Gaussiana y aritmtica de 3 dgitos por corte.
Para resolver el sistema usando eliminacin gaussiana y corte a tres dgitos, primero se escribe la matriz aumentada del sistema con los nmeros
a tres dgitos usando corte (en este caso queda igual) y despus se aplica eliminacin gaussiana ( en cada operacin se trabaja con tres dgitos
usando corte).
E1
E2

0.03
58.9 .. 59.2
5.31 6.10 ... 47.0

El multiplicador es M21 = 5.31/0.03 = 177

0.03
E2 177E1

58.9
10400

!
..
.
59.2
0.03x1 + 58.9x2 59.2
..
. 10300 10400x2 10300

Si X denota la solucin aproximada del sistema, entonces


X = (x1 , x2 ) = (30, 0.99)
c) Usando eliminacin gaussiana y artmtica de 3 dgitos por redondeo.
Para resolver el sistema usando eliminacin gaussiana y redondeo a 3
dgitos, primero se escribe la matriz aumentada del sistema redondeando
los nmeros a tres dgitos, pero en este caso queda igual ya que slo tienen
tres dgitos, luego se aplica eliminacin gaussiana. (en cada operacin se
trabaja con tres dgitos usando redondeo).
.

0.03
58.9 .. 59.2
5.31 6.10 ... 47.0
70

!
,

Anlisis Numrico con MATLAB

El multiplicador es 177.

E2 177E1

!
..
0.03
58.9 .
59.2
0 10400 ... 10500

0.03x1 + 58.9x2 59.2


10400x2 10500

Si X denota la solucin aproximada del sistema entonces X = (x1 , x2 ) =


(10, 1.01)
Observe que en b) y c) aunque los clculos 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 independientemente si en los clculos se usa corte o redondeo. Como las computadoras
usan aritmtica cuya precisin esta jada de antemano, es posible que cada
vez que se realice una operacin aritmtica se introduzca un pequeo error.
El ejemplo anterior pone de maniesto que la eliminacin gaussiana puede
llevar aparejado un error apreciable en la solucin de un sistema de ecuaciones lineales cuando se resuelve en un computador.
A continuacin, se discutir cmo minimizar los efectos del redondeo y se
evitarn condiciones que pueden provocar la amplicacin de los errores de
redondeo.
Si, en el proceso de eliminacin 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 estn 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.2.4. Dado un sistema de ecuaciones AX = b y se desea resolver

en MATLAB utilizando eliminacin Gaussiana, se utiliza la notacin X =


A\b. Este metodo es mucho ms rapido que el calculo de la inversa. Si se
considera una matriz de Hilbert H de orden 4 y el vector columna b = (1111).
71

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

>> tic,
Elapsed
>> tic,
Elapsed

x=inv(H)*b; , toc
time is 0.000109 seconds.
x=H\b; , toc
time is 0.000101 seconds.

Ejercicio 4. Explore la funcin rref de MATLAB que trabaja con la ma-

triz aumentada B = (A b) asociada a un sistemas de ecuaciones AX = b.


Determine para una matriz de Hilbert de orden 5, las diferencias de tiempo
de trabajo de esta funcin, con las funciones antes mesionadas.

Estrategias de pivoteo para reducir errores


La estrategia de Pivoteo Parcial (o pivoteo de columna mxima) consiste en comparar el tamao de todos los elementos de la columna

j,

desde

el que est en la diagonal hasta el de la ultima la y escoger el elemento que


est debajo de la diagonal y que tiene el mximo valor absoluto; es decir el
elemento pivote es:

max |aij |.

j6i6n

p es la que tiene el elemento ms grande entonces se intercambia


p con la la j y se utiliza esa la como la pivote.

Si la la
la la

Ejemplo 3.2.5. Resolver el sistema usando eliminacin gaussiana con pivoteo parcial y aritmtica de redondeo a tres dgitos.
0.03x1 + 58.9x2 = 59.2
5.31x1 6.10x2 = 47.0

En este caso max{|a11 | , |a21 |} = max{|0.03| , |5.31|} = 5.31


Se efecta la operacin E2 E1 para obtener el sistema.
5.31x1 6.1x2 = 47.0
0.03x1 + 58.9x2 = 59.2

El multiplicador es M21 = a21 /a11 = 0.03/5.31 = 0.00565 la operacin


E2 0.00565E1 reduce el sistema a
5.31x1 6.10x2 = 47.0
58.9x2 58.9
72

Anlisis Numrico con MATLAB

Si se resuelve con sustitucin hacia atrs la solucin es x1 = 10, x2 = 1.


Observe que aunque se trabaja a 3 dgitos, la respuesta que se obtiene es la
solucin real (no siempre es asi).
Otro metodo para reducir errores, es el

Pivoteo parcial escalonado. En

este metodo se elige como pivote al elemento que tiene mayor tamao relativo
con respecto a los elementos de la la. El primer paso del procedimiento es
buscar el elemento que tiene el mximo valor absoluto de cada la. Para el
pivote

k.
Si = max {|aij |}
j=1,2,...,n

el segundo paso es dividir cada elemento de la columna en valor absoluto


por el mximo de cada la, por ejemplo en la columna

|an1 |
|a11 | |a21 |
,
,...,
S1 S2
Sn
La la

1.

|ai1 |
i = 1, 2, . . . , n
Si

escogida como pivote es aquella que

|ap1 |
|ai1 |
= max
i=1,2,...,n Si
Sp

Ejemplo 3.2.6. Resolver el sistema usando eliminacin gaussiana con pivoteo parcial escalado y aritmtica de corte a tres dgitos
30x1 + 58900x2 = 59200
5.31x1 6.1x2 = 47.0

Se escribe el sistema con los nmeros a tres dgitos usando corte


30x1 + 58900x2 = 59200
5.31x1 6.1x2 = 47.0
S1 = max |30|, |58900| = 58900
S2 = max |5.31|, | 6.10| = 6.10
73

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

Luego
|a11 |
30
=
= 0.000509 . . .
S1
58900
|a21 | 5.31
=
= 0.870 . . .
S2
6.10

La la que se escoge para pivote es la segunda y se efecta la operacin

E2 E1 para obtener el sistema

5.31x1 6.1x2 = 47.0


30x1 + 58900x2 = 59200

El multiplicador es: M21 = a21 /a11 = 30/5.31 = 5.64


La operacin E2 5.64E1 reduce el sistema a:
5.31x1 6.1x2 = 47.0
58900x2 = 58900

Si se resuelve con sustitucin hacia atrs la solucin es x1 = 10, x2 = 1.


Si el sistema anterior se resuelve con eliminacin gaussiana y aritmtica de
corte a tres dgitos (sin usar Pivoteo), la solucin aproximada que se obtiene
es x1 30 y x2 0.99 que no es una buena aproximacin. Ya que la solucin
exacta del sistema es x1 = 10, x2 = 1.
En los ejemplos anteriores, se han considerado sistemas de dos ecuaciones
con dos incgnitas slo con el propsito de hacer una presentacin clara y
con la mnima cantidad de notacin. Pero no importa que tan grande sea el
sistema y tampoco cuantos dgitos se utilicen en los clculos, hay sistemas
que comparten las mismas propiedades cualitativas que las presentadas en
los ejemplos.

3.2.4. Factorizacin LU
A como el producto de
L y una matriz triangular superior U ; y despus

El objetivo de este mtodo es factorizar la matriz


un matriz triangular inferior

74

Anlisis Numrico con MATLAB


resolver el sistema

AX = b

en dos etapas como se muestra a continuacin

AX = b,
(LU )X = b
L(U X) = b,
LY = b.

como A=LU

si se toma

entonces

UX = Y

resulta

Entonces para encontrar la solucin X del sistema primero se resuelve el

LY = b y luego el
sistema LY = b es un

UX = Y .

sistema

sistema

El

sistema fcil de resolver ya que

es una matriz

triangular inferior y se resuelve con sustitucin hacia delante.


El sistema

UX = b

tambin es un sistema fcil de resolver ya que

matriz triangular superior y se resuelve con sustitucin hacia atrs.

Ejemplo 3.2.7. Resuelva el sistema usando factorizacin


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


1 0 0
60 30 20
60 30 20
30 20 15 = 1/2 1 0 0 5
5
1/3 1 1
0 0 1/3
20 15 12
{z
} |
{z
}|
{z
}
|

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
y1 = 180
1/2y1 + y2 = 115
1/3y1 + y2 + y3 = 86
75

es una

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

Usando sustitucin 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 sustitucin hacia atrs se obtiene x3 = 3, x2 = 2, x1 = 1. Por lo


tanto la solucin del sistema es:

1
X= 2
3
Ann comatriz Unn

La pregunta que surge ahora es cmo factorizar una matriz


mo el producto de una matriz

Lnn

(triangular inferior) y una

(triangular superior)?

A = LU , entonces

. . . a1n
l11 0 0
0
l21 l22 0
. . . a2n
0

=

.
.
.
..
.
.
.
..
..
.
.
.
0
. . . ann
ln1 ln2 lnn

Si se supone que

a11 a12
a21 a22

..
.
.
.
.
an1 an2

u11 u12 . . . u1n


0 u22 . . . u2n

.
..
.
0
.
0
.
0
0 unn

l11 u11
l11 u12
...
l11 u1n
l21 u11 l21 u12 + l22 u22
l
u
21 1n + l22 u2n

A = ..
.
.
.
.
.
.
.
ln1 u11 ln1 u12 + ln2 u22 ln1 u1n + ln2 u2n + + lnn unn
76

Anlisis Numrico con MATLAB


Igualando las componentes de las matrices se obtiene:

a11 = l11 u11


a21 = l21 u11

a12 = l11 u12


a22 = l21 u12 + l22 u22

.
.
.

.
.
.

. . . a1n = l11 u1n


. . . a2n = l21 u1n + l22 u2n
.
.
.

an1 = ln1 u11 an2 = ln1 u12 + ln2 u22 . . . ann = ln1 u1n + ln2 u2n + . . . + lnn unn
n2 ecuaciones con n2 + n elementos desconocidos:
lij , i = 1, 2, . . . , n ; uij , j = 1, 2, . . . , n, para que el sistema tenga solucin
nica se deben especicar n elementos.
El mtodo de factorizacin en el que se especica que l11 = l22 = l33 =
. . . = lnn = 1 se llama mtodo Doolittle. Si se especica que u11 = u22 =
u33 = . . . = unn = 1 el mtodo se llama Crout, si se especca lii = uii el
mtodo se llama Choleski (A simetrica)[1].
Este es un sistema de

Ejemplo 3.2.8. Halle la factorizacin de la matriz A, con el mtodo Doolittle


y con el mtodo de Choleski.

1. Mtodo 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
u12
u13
u11
u12
u13

= 60
= 30
= 20
= 60
= 30
= 20

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

As, la factorizacin 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
77

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

2. Mtodo 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 factorizacin


Choleski para A es:


60
0
0
60
60/2
60/3
60 30 20

0
30 20 15 = 60/2
5
5

5 0

20 15 12
60/3
5
3 3
0
0
3 3

A continuacin se presentan algunos resultados que relacionan sistemas


lineales y factorizacin de matrices. La demostracin de algunos resultados
no se incluye en este texto.

Teorema 3.1. Si se puede efectuar el proceso de eliminacin 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.2. Si A es no singular, en el proceso de eliminacin gaussiana

para resolver AX = b se puede presentar un intercambio de renglones. Esto


signica que existe una matriz de permutacin P para la cual se puede resolver 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.
Demostracin.

Ver

[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 eliminacin se presenta sin intercambio de renglones, P es la matriz identidad.
MATLAB posee la funcin

Denicin 3.1. La matriz Ann es estrictamente dominante en sentido diagonal (o diagonalmente dominante, EDD) si |aii | >
n
78

n
P

j=1

|aij | i=1, 2, 3,. . . ,

Anlisis Numrico con MATLAB

Ejemplo 3.2.9. Sea

8 4
0
5
1
A= 2
3 7 12
|8| > | 4| + |0|
|5| > |2| + |1|
| 12| > |3| + | 7|
A es estrictamente dominante.

Algoritmo 8

. Dada una matriz cuadrada A.

(Algoritmo matriz EDD)

[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.3. Si una matriz es estrictamente dominante en sentido diago-

nal es no singular y se puede realizar la eliminacin gaussiana de cualquier


sistema lineal de la forma AX = b sin intercambio de renglones.

3.3. Normas Vectoriales y Matrices


Al analizar elementos como los vectores y las matrices a menudo se requiere una forma para expresar sus magnitudes, alguna medida de grandeza
o pequeez. Para los nmeros el valor absoluto indica que tan grande es un

79

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

nmero, pero para vectores y matrices hay muchas componentes, cada una
de las cuales puede ser pequea grande en magnitud.
Para discutir los errores en problemas numricos que manejan vectores y
matrices resulta til recurrir a las normas, ya que son un medio, que permite
medir la distancia entre los vectores y entre las matrices.

Denicin 3.2. Una norma vectorial en Rn es una funcin, k k , de Rn en


R que satisface las siguientes propiedades.
i.
ii.
iii.

kXk > 0 y kXk = 0

si y slo si

X = 0.

kXk = ||kXk, R y X Rn
kX + Y k 6 kXk + kY k, X, Y Rn

(Desigualdad del tringulo).

kXk se llama magnitud longitud del vector X . Una distanX e Y de Rn respecto a la norma es kX Y k.
X = (x1 , x2 , . . . , xn ) entonces algunas normas son:

La cantidad

cia entre los vectores


Si

Norma 1: kXk1 =
Norma 2: kXk2 =

n
P

|xi |

(Suma de las magnitudes )

i=1

n
P

x2i

1/2
(Norma Euclideana)

i=1

Norma : kXk = i=1,


max {|xi |}
..., n

(Norma innita norma mxima mag-

nitud).

Ejemplo 3.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
1 Esta es la norma que corresponde al concepto intuitivo de longitud o distancia respecto
al origen.

80

Anlisis Numrico con MATLAB

norm(X,opciones), donde X puede ser un


opciones respresenta diferentes tipos de
examine el help de MATLAB.

MATLAB posee la funcin

argumento vectorial o matricial y


normas, para ms detalles

n
Denicin 3.3. Se dice que una sucesin de vectores {X (k) }
k=1 en R con-

verge a X si



lm X (k) X = 0

Ejemplo 3.3.2. Tomemos


X (K) =

!
1
1 4k + 1
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 lmite de la sucesin X K respecto a
la norma innita.2

Denicin 3.4. Una norma matricial sobre el conjunto de las matrices nn


es una funcin de valor real, k k, denida en este conjunto y que satisface
para todas las matrices A y B de n n y todos los nmeros reales las
siguientes propiedades [8]:
i.

kAk > 0 y kAk = 0

si y slo si

ii.

kAk = || kAk, R

iii.

kA + Bk 6 kAk + kBk

iv.

kABk 6 kAk kBk

Una distancia entre las matrices


matricial es

A=0

de

nn

respecto a esta norma

kA Bk.

A continuacin se dan ejemplos de normas.

2 En un espacio de dimensin nita dos normas cualesquiera conducen al mismo con

cepto de convergencia. As en este ejemplo se puede concluir que


cualquier norma sobre

R3 ,

X (K) X 0

pero no para la rata de convergencia. [3]

81

para

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

Norma 1:

Norma

kAk1 = max

16j6n

: kAk = max
16i6n

Norma 2:

Norma de Frobenius:

kAk2 = []1/2 ,

kAkF =

n
X

!
|aij |

(mxima suma en las columnas )

i=1
n
X

!
|aij |

(mxima suma en las las )

j=1

donde

n P
n
P

es el radio espectral de

At A

!1/2
a2ij

i=1 j=1

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

3 1 4
A = 5 0 2
1 2 6

Columnas
3
P
|ai1 | = |3| + | 5| + |1| = 9

F ilas
3
P
|a1j | = |3| + | 1| + |4| = 8

i=1
3
P

j=1
3
P

i=1
3
P

|ai2 | = | 1| + |0| + | 2| = 3

j=1
3
P

|ai3 | = |4| + |2| + |6| = 12

i=1

|a2j | = | 5| + |0| + |2| = 7


|a3j | = |1| + | 2| + |6| = 9

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
82

Anlisis Numrico con MATLAB

3.4. Mtodos iterativos para sistemas lineales


El mtodo de eliminacin gaussiana y sus variantes (pivoteo, factorizacin

LU ) son conocidos como mtodos directos para resolver un sistema lineal


AX = b; se ejecutan a travs de un nmero nito de pasos y generan una
solucin X que sera exacta si no fuera por los errores de redondeo. Un
mtodo iterativo para resolver un sistema lineal AX = b comienza con una
(0)
aproximacin inicial X
a la solucin X , y genera una sucesin de vectores
 (K)
X
que idealmente converge a la solucin.
K=0
El clculo se detiene cuando se cuenta con una solucin aproximada con
cierto grado de precisin especicado de antemano despus de cierto nmero
de iteraciones.

3.4.1. Mtodo de Jacobi


Considere el sistema lineal.

6x1 x2 + 2x3 = 21
4x1 8x2 + x3 = 5
3x1 + 4x2 + 10x3 = 48
Un procedimiento consiste en despejar

xi

de la i-sima ecuacin as:

1
1
7
x2 2x3 + 21
= x2 x3 +
6
6
3
2
4x1 x3 + 5
1
1
5
x2 =
= x 1 + x3
8
2
8
8
3x1 4x2 + 48
3
2
24
x3 =
= x1 x2 +
10
10
5
5

x1 =

La sucesin de vectores

X (K)

(K1)

(K)

x1

(K)

x2

(K)

X3

estara dada por

(K1)

2x3
+ 21
6
(K1)
(K1)
x3
+5
4x1
=
8
(K1)
(K1)
3x1
4x2
+ 48
,
=
10
=

x2

83

k = 1,

2, 3, . . .

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

Si se toma como aproximacin inicial


entonces la primera aproximacin

(0)

(1)

X (1)



(0)
(0)
(0)
X (0) = x1 , x2 , x3
= (0, 0, 0)

es:

(0)

0 2(0) + 21
x2 2x3 + 21
=
= 3.5
6
6
(0)
(0)
4x1 x3 + 5
4(0) 0 + 5
=
=
= 0.625
8
8
(0)
(0)
3x1 4x2 + 48
3(0) 4(0) + 48
=
=
= 4.8
10
10

x1 =
(1)

x2

(1)

x3

X (1)

(1)

x1
3.5

0.625
= x(1)
2 =
(1)
4.8
x3

La segunda aproximacin

(1)

(2)
x1
(2)

x2

(2)

x3

X (2)

es:

(1)

x2 2x3 + 21 0.625 2(4.8) + 21


=
=
= 1.79583
6
6
(1)
(1)
4x1 x3 + 5 4(3.5) (4.8) + 5
=
=
= 1.725
8
8
(1)
(1)
3x1 4x2 + 48 3(3.5) 4(0.625) + 48
=
=
= 6.1
10
10

(2)
x1
1.79583

1.725
= x(2)
=
2
(2)
6.1
x3

X (2)

A continuacin se muestran los resultados de las cinco primeras iteracio-

6 dgitos usando corte.




(5)
Para este sistema X
X (4) = (0.12148, 0.217328, 0.19154) y X (5) X (4) =
0.217328, el error relativo entre x(5) y x(4) en la norma innito es:
nes con aritmtica de

(5)

X X (4)
0.217328

=
= 0.0425831
(5)
kX k
5.10362
84

Anlisis Numrico con MATLAB


K
(K)
x1
(K)
x2
(K)
x3

3.5

1.79583

1.75416

2.12298

-0.625

1.725

1.03541

0.833172

4.8

6.1

4.64874

4.91208

La solucin exacta del sistema es


X (5) es:

X = (2, 1, 5)

2.00150
1.0505
5.10362

y el error relativo con la

aproximacin



X X (5)
0.10362

=
= 0.020724
kXk
5

mtodo

El procedimiento que se acaba de presentar se conoce como el


(0)
. Inicialmente se elige X
como la mejor suposicin disponible

de Jacobi

simplemente se toma como el vector

0.

El proceso se repite un nmero

preescrito de veces hasta que se alcance lo que se considera una buena




(K)
(K)
precisin en el vector X
o hasta que X
X (K1) / X (K) < ,
donde

es una tolerancia o margen de error previamente establecida.




(K)
En el ejemplo anterior, se iter hasta que X
X (k 1) / X (K)

<

= 0.05
En general cuando se aplica el mtodo de Jacobi a un sistema lineal de

n n, se despeja xi en la i -sima ecuacin:


ai1 x1 + ai2 x2 + + aii xi + + ain xn = bi

tamao

xi =

bi (ai1 x1 + ai2 x2 + + ain xn )


,
aii

bi

j=1, i6=j

xi =
y se calcula

n
P

aii
(k)

xi

aii 6= 0

aij xj
para

i = 1, 2, . . . , n. aii 6= 0

a partir de las componentes

(k1)

x1

(k1)

, x2

(k1)

, . . . , xn

3.4.2. mtodo de Gauss-Seidel


El mtodo de Jacobi se puede modicar de la siguiente manera. Cuando
(k)
(k)
xi en la k-sima iteracin, ya se han calculado x1 ,

se est calculando

85

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

(k)

(k)

(k)
entonces se reemplazan estos valores en xi
ya que se espera
(k1)
(k1)
(k1)
que sean mejores aproximaciones que x1
, x2
, . . . , xi1 .
Por ejemplo para el sistema lineal anterior

x2 , . . . , xi1

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

6x1 x2 + 2x3 = 21

x1 =

4x1 8x2 + x3 = 5
3x1 + 4x2 + 10x3 = 48
con


(0)
x1
0
(0)
0
= x2 =
(0)
0
x3

X (0)

La primera aproximacin

(0)

(1)
x1
(1)

x2

(1)

x3

X (1)

que resulta con la modicacin es:

(0)

x 2x3 + 21
0 2(0) + 21
= 2
=
= 3.5
6
6
(1)
(0)
4x1 x3 + 5
4(3.5) 0 + 5
=
=
= 1.125
8
8
(1)
(1)
3x 4x2 + 48
3(3.5) 4(1.125) + 48
= 1
=
= 5.4
10
10
(1)

x1
3.5


1.125
X (1) = x(1)
=
2
(1)
5.4
x3

La segunda aproximacin es:

(1)

(2)

(1)

x2 2x3 + 21
1.125 2(5.4) + 21
=
= 1.8875
6
6
(2)
(1)
4x1 x3 + 5
4(1.8875) 5.4 + 5
=
=
= 0.99375
8
8
(2)
(2)
3x1 4x2 + 48
3(1.8875) 4(0.99375) + 48
=
= 4.96875
=
10
10

x1 =
(2)

x2

(2)

x3

86

Anlisis Numrico con MATLAB

X (2)

(2)
x1
1.8875


0.99375
= x(2)
=
2
(2)
4.96875
x3

De la misma forma la tercera aproximacin es

X (3)

2.00937
= 1.00077
5.00250

X (3) y X (2) usando la norma innito es X (3) X (2) =


(0.12187, 0.00702, 0.03375)
El error relativo entre


(3)
X X (2)
0.12187

= 0.0243618.
=
kX (3) k
5.00250
La solucin exacta del sistema es
y

X = (2, 1, 5), el error relativo entre X (3)

usando la norma innito es:



X X (3)
0.00937

= 0.001874
=
kX k
5
El mtodo con el que se resolvi el sistema anterior se conoce como el

mtodo de Gauss-Seidel.

Para este sistema, el mtodo de Gauss-Seidel

converge a la solucin ms rpido que el mtodo de Jacobi.


Observe que, en contraste con un mtodo directo, la aproximacin a la
solucin que se obtiene depende del momento en que se detenga el proceso.
En forma general, cuando se aplica el mtodo de Gauss-Seidel a un sistema
lineal

nn

se despeja

bi
xi =

xi

en la i-sima ecuacin,

n
P
j=1 j6=i

aii

aij xj
para

87

i = 1, 2, . . . , n,

aii 6= 0

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

(k)
(k)
a partir de las componentes x1 , x2 , . . . ,
(k1)
(k1)
(valores mas recientes) y xi+1 , . . . , xn
(valores anteriores), luego
y se genera cada

bi
(k)

xi

(k)

xi

i1
P

(k)

aij xj

j=1

n
P

(k)

xi1

(k1)

aij xj

j=i+1

para

aii

i = 1, 2, . . . , n.

3.5. Representacin matricial


AX = b

Los mtodos iterativos convierten el sistema

X = T X + C,
(K)
de vectores X

en otro sistema

es una matriz ja y

equivalente de la forma

donde

un

vector jo; la sucesin

de la solucin aproximada se genera

calculando

X (K) = T X (K1) + C
Para

k = 1, 2, 3, . . .

X (0)

la aproximacin inicial.

Dado un sistema lineal de ecuaciones


matriz

AX = b.

S se puede expresar la

en terminos de otras matrices y generar una representacin del

sistema original, de la forma X =


(k)
sucesin iterativa X
= T X (k1) +
con el nombre de metodo iterativo

T X + C , entonces se puede
C para k > 1. Esta sucesin
asociado al sistema AX = b.

denir la
se conoce

Teorema 3.4. Suponga que X = T X + C es un sistema equivalente de

AX = b, con A invertible.


Para cualquier X (0) Rn , la sucesin X (k) k=0 denida por
X (k) = T X (k1) + C , para k > 1 converge a la solucin nica de AX = b si
y slo si (T ) < 1. (T ) es el radio espectral de la matriz T . [6].
El resultado anterior garantiza la convergencia del mtodo iterativo sin

importar la condicin inicial que se elija. Se debe conocer el sistema equivalente que genera la sucesin. Se estudiara la representacin de los mtodos
de Jacobi y Gauss-Seidel.

A = (aij ) matriz
i, j {1, 2, . . . , n}, dadas
Sea

de orden

n, D = (dij ), U = (uij )

por:

(
aij
dij =
0

si

i=j

en otro caso

88

L = (lij )

con

Anlisis Numrico con MATLAB

(
aij
uij =
0
(
aij
lij =
0
Claramente,

si

i<j

en otro caso
si

i>j

en otro caso

A = D+L+U . Considerando el sistema Ax = b y reemplazando,

se obtiene

AX
(D + L + U )X
DX + (L + U )X
DX
X
X

=b
=b
=b
= b (L + U )X
= D1 (b (L + U )X)
= D1 ((L + U )X) + D1 b

As, un sistema equivalente para AX = b es: X = Tj X + Cj donde


Tj = D1 (L + U ) y Cj = D1 b. El sistema X = Tj X + Cj es la representacin matricial del mtodo de Jacobi y genera la sucesin iterativa
X (k) = Tj X (k1) + Cj .

D, L y U denidas
equivalente a AX = b:

Trabajando con las mismas matrices


puede contruir otro sistema

AX
(D + L + U )X
(D + L)X + U X
(D + L)1 X
X
X

anteriormente, se

=b
=b
=b
= b UX
= (D + L)1 (b U X)
= (D + L)1 (U X) + (D + L)1 b

Este sistema genera la representacin matricial del mtodo de Gauss1


1
Seidel, donde X = Tg X + Cg y Tg = (D + L) U , Cg = (D + L) b. En
algunos textos evitan el signo menos de las matrices
un signo menos a la decin de las matrices

L,

Tj

Tg ,

anteponiendo

sin embargo este cambio

no altera el valor del radio espectral, la justicacin se deja como ejercicio


para el lector.

89

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

Ejemplo 3.5.1. Considere el sistema lineal.


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

las matrices involucradas en los mtodos de Jacobi y Gauss-Seidel son:

6 0 0
D = 0 8 0 ,
0 0 10

0 0 0
L = 4 0 0 ,
3 4 0

0 1 2
U = 0 0 1
0 0 0

El terema anterior garantiza la convergencia de un mtodo iterativo X =


T X + C , si el radio espectral de la matriz T es menor que 1. Para el mtodo
de Jacobi Tj = D1 (L + U )
1
6 0 0
Tj = 0 8 0
0 0 10

1
0
0 0
6
1

4
0 8 0
Tj =
3
0 0 1
10

1
0 6 1
3
1
Tj = 12 0
8
3
2
0
10
5

0 0 0
0 1 2
4 0 0 0 0 1
3 4 0
0 0 0

1 2
0 1
4 0

para calcular el radio espectral se puede utilizar la siguiente serie de funciones


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

1/3
-1/8
0

radio =
0.447015782662384
90

Anlisis Numrico con MATLAB

Por lo tanto, para toda condicin inicial, el mtodo de Jacobi converge. Para
el mtodo de Gauss-Seidel Tg = (D + L)1 U


6 0 0
0
Tg = 0 8 0 + 4
0 0 10
3

1
0 0
0 1 2
6
1
1
0 0 1
0
Tg = 12
8
1
1
1
0 0 0
60
20
10

0 0
0 1 2
0 0 0 0 1
4 0
0 0 0

Calculando Tg y su radio espectral en MATLAB, se obtiene


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

1/6
1/12
1/60

-1/3
-1/24
-1/12

>> radio=max(abs(eig(Tg)))
radio =
57/721

El radio espectral se calculo utilizando el comando format rat que hace que
MATLAB exprese lo resultados en terminos de fracciones, si se desea conocer
el valor del radio se utiliza format long y se obtiene:
>> format long
>> radio=max(abs(eig(Tg)))
radio =
0.079056941504209

As, el mtodo de Gauss-Seidel converge para todo condicin inicial que se


tome.
91

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

Si se desea trabajar con matrices de un tamao 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

asociada al sistema de

ecucaciones, es es estrictamente dominante en sentido diagonal (EDD).

Teorema 3.5. Si A es estrictamente dominante en sentido diagonal, en-

tonces con cualquier eleccin de X (0) ,tanto el mtodo de Jacobi como el de

Gauss-Seidel dan origen a sucesiones X (k) k=1 que convergen a la solucin


nica de AX = b. [3].

Aunque esta condicin 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

diagonalmente dominante

6 2 1
2 5
A= 1
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

6x1 2x2 + x3 = 11

6 2 1
2
A = 2 7
1
2 5

2x1 + 7x2 + 2x3 = 5


x1 + 2x2 5x3 = 1

En la seccin de ejercicios se trabajaran diferentes ejemplos que estudian


la relacin entre la velocidad de los mtodos de Jacobi y Gauss-Seidel y el

92

Anlisis Numrico con MATLAB


valor del radio espectral de las matrices

Tj

Tg .

Adems se mostrara que no

necesariamente, si un mtodo converge el otro debe hacerlo.


A continuacin se muestra el codigo de una funcin en MATLAB, que dada
una matriz

A,

un vector

b,

una condicin inicial

calcula la solucin del sistema

AX = b

x0

y una tolerancia

tol;

utilizando el mtodo de Jacobi. El

codigo para el mtodo de Gauss-Seidel se deja como un ejercicio para el


lector.

Algoritmo 9

. El argumento de salida de la funcin

(Algoritmo de Jacobi)

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
x0=x;
x=Tj*x0+Cj;
end
93

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

3.6. Nmero Condicional y Renamiento Iterativo


Denicin 3.5. Sea X una aproximacin del sistema lineal AX = b. El
vector residual de X respecto a este sistema es r = b AX .

Ejemplo 3.6.1. El sistema lineal AX = b dado por




1 1.01
0.99 1



x1
x2


=

2.01
1.99

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

Tiene solucin X = (1, 1).


La aproximacin X = (0, 2) tiene vector residual


2.01
1.99

1 1.01
r = b A
x=

0.99 1

 

2.01
2.02
=

1.99
2


0.01
=
0.01



0
2

Observe que aunque la norma del vector residual es pequea (krk



0.01), la aproximacin X = (0, 2) es muy deciente ya que X X = 1.
satisfacen AX = b y AX
= b (A invertible).
Si suponemos que X y X
en trminos absolutos y relativos? AX = b, AX
= b,
Cunto dieren X y X
= A1b ya que A es invertible. Ahora,
X = A1 b, X



= A1 b A1b
X X


= A1 (b b)



A1 (b b)
Luego una medida para la perturbacin sobre

94

(3.2)

es



kA1 k b b .

Anlisis Numrico con MATLAB


Para obtener una estimacin del error relativo
hecho que:



X X / kXk,

AX = b, kAXk = kbk, kAXk / kbk = 1,

se usa el

junto con la desigualdad

(ecuacion anterior), de donde:





A1 b b
X X

kAXk 1

X X
A b b
kbk




1 b b
kAk kXk A
X X
kbk




X X
b b

kAk A1
kXk
kbk

(3.3)





X X
b b
(A)
kXk
kbk

(3.4)



(A) = kAk A1

(3.5)

donde:

El nmero

(A) se llama nmero condicional de la matriz A o nmero de

condicin [10]. Como se observa en la desigualdad (organizar numeracion),


si el nmero de condicin es pequeo, entonces pequeas perturbaciones en

X . Es decir, el error relativo en X


(A) y el residual de esta aproximacin. Como r = b AX
AX = b entonces r = b b y la desigualdad (organizar) se transforma en

conducen a pequeas perturbaciones en

esta acotado por


y



X X
krk
(A)
kXk
kbk
I = AA1 , kIk = kAA1 k, 1 = kAA1 k kAk kA1 k =
(A) 1.

Si A es invertible,

(A).

Luego

Denicin 3.6. 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.6.2. Determine si la matriz A esta bien o mal condicionada


95

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES


A=

1 1.01
0.99
1

La inversa de la matriz A es:


1


=

10000 10100
9900
10000

El nmero condicional (A) = ||A|| ||A1 || = (2.01)(20100) = 40401,


como (A) es mucho mayor que 1, A es una matriz mal condicionada.
Ejemplo 3.6.3. Considere una matriz de Hilbert H de orden 7(utilice el
codigo que se dio en una seccin pasada para calcular H). MATLAB posee la
funcin cond(H) que calcula el nmero condicional de una matriz H
H =
Columns 1 through 4
1.000000000000000
0.500000000000000
0.333333333333333
0.250000000000000
0.200000000000000
0.166666666666667
0.142857142857143

0.500000000000000
0.333333333333333
0.250000000000000
0.200000000000000
0.166666666666667
0.142857142857143
0.125000000000000

0.333333333333333
0.250000000000000
0.200000000000000
0.166666666666667
0.142857142857143
0.125000000000000
0.111111111111111

0.166666666666667
0.142857142857143
0.125000000000000
0.111111111111111
0.100000000000000
0.090909090909091
0.083333333333333

0.142857142857143
0.125000000000000
0.111111111111111
0.100000000000000
0.090909090909091
0.083333333333333
0.076923076923077

0.250000000000000
0.200000000000000
0.166666666666667
0.142857142857143
0.125000000000000
0.111111111111111
0.100000000000000

Columns 5 through 7
0.200000000000000
0.166666666666667
0.142857142857143
0.125000000000000
0.111111111111111
0.100000000000000
0.090909090909091
>> 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 operacin det(H)det(H 1 ) se obtiene:
96

Anlisis Numrico con MATLAB

>> 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.000000000014552
0
0
0
0
0

0.000000000010004
0.000000000112095 0.000000000170530
1.000000000000000 -0.000000000429281 -0.000000000662112
-0.000000000232831 1.000000000000000
0
-0.000000001862645
0
0.999999999534339
-0.000000001862645 -0.000000002793968
0.000000001396984
0.000000003259629
0.000000002793968
0.000000000931323
-0.000000001164153 -0.000000001164153 -0.000000000232831

Columns 5 through 7
0.000000000199634
-0.000000000785803
0
-0.000000001164153
0.999999999534339
0
0
>> inv(inv(H))-H

0.000000000213390
0.000000000216460
-0.000000000829459 -0.000000000844011
-0.000000000232831 -0.000000000116415
0.000000001396984
0.000000000931323
-0.000000000931323
0.000000000465661
1.000000000931323
0.000000000931323
-0.000000000349246 1.000000000116415

ans =
1.0e-009 *
Columns 1 through 4
0.417044176970194
0.309773096063282
0.243009445899389
0.198075555957189
0.166084868080674
0.142322653662319

0.309773096063282
0.231859420551928
0.182352688504750
0.148906637020829
0.125064070211067
0.107339692689834
97

0.243009445899389
0.182352688504750
0.138721201192737
0.109691755678654
0.089554696991456
0.074980521791446

0.198075555957189
0.148906637020829
0.109691755678654
0.083905271619500
0.066400301923508
0.054010421135509

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

0.124077359497932

0.093719920712942

0.064051625114914

0.142322653662319
0.107339692689834
0.074980521791446
0.054010421135509
0.040173669946242
0.030678654061589
0.023924029424194

0.124077359497932
0.093719920712942
0.064051625114914
0.044915834940262
0.032411018313638
0.023924029424194
0.017956455766743

0.044915834940262

Columns 5 through 7
0.166084868080674
0.125064070211067
0.089554696991456
0.066400301923508
0.050933271489306
0.040173669946242
0.032411018313638
En la matriz

del ejemplo anterior, se evidencia una caracteristica fun-

damental de las matrices mal condicionadas. S una matriz


cionada y se desea solucionar un sistema

AX = b,

es mal condi-

el error que se comete al

calcular su inversa, hace que la solucin que se obtiene por mtodos directos
este cargada de error nmerico. En el caso en que el sistema que se desea resolver, tenga asociada una matriz mal condicionada, es recomendable buscar
soluciones mediante mtodos iterativos o por precondicionamiento matricial.

3.7. Precondicionamiento o Equilibracin de una


Matriz
Para resolver sistemas de ecuaciones lineales en casos crticos, se puede
aadir un cierto nmero de pasos a los procedimientos de eliminacin gaussiana ( o factorizacin) y de clculo de soluciones mencionados anteriormente.

3.7.1. Precondicionamiento mediante equilibracin de


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

por

ri =

1
max |aij |

16j6n
Por ejemplo si

98

Anlisis Numrico con MATLAB


A=

1 108
2
0


,


=

1/2
5 109

108

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


mal condicionada.
Para equilibrar la matriz, primero se calcula

(r1 = 1/108 , r2 = 1/2).



A=

1 108
2 0

Si se denota como

ri , para i = 1, 2. En este caso


i por ri

Luego se multiplica la la

1/108

1/2

a la matriz

A =


1 108
2 0


=

108 1
1
0

precondicionada entonces

108
1


1
0

0
1
= (1 + 108 )(1 +
y ahora K (A)
1 108
108 ) = 1.00000002. Luego A es una matriz bien condicionada.
Cuando se va a resolver un sistema AX = b, la equilibracin por las se
Observe que

A 1 =

escribe como:


(RA)X = Rb,

donde

R = [Rij ], Rij =

ri ,
0,

i=j
i 6= j

Por ejemplo el sistema:

1 108
2 0



x1
x2


=

3
5

mediante la equilibracin por las se convierte en:



1 108
1/108 0
2l 0
0
1/2
{z
}|
{z
}|
|
R
A
 8

10
1
1
0

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

8
x1
3/10
=
5/2
x2

99

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

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

= b donde
A , este sistema se puede escribir en forma matricial como Ax
b1 = b1 /r1 y b 2 = b2 /r2

como

3.7.2. Precondicionamiento mediante equilibracin de


Columnas
Es un proceso similar al de las, excepto
 que ahora
 se trata con columnas.

Se multiplica la columna

por

Cj = 1/

max |aij |

16i6n

Para la matriz


A=

1 108
2 0

1/10

1/2


A=

1 108
2 0

Si se denota como

1 108
2 0
A

a la matriz

A 1 =
y ahora

C2 = 1/108

C1 = 1/2,


=

1/2 1
1 0

precondicionada por columnas,

0
1
1 1/2

= (1/2 + 1)(1 + 1/2) = 2.25.


K (A)

Luego

es una matriz bien

condicionada.
Si se va ha resolver un sistema

AX = b,

el equilibrio por columnas se

escribe como:

(AC)(C


X) = b,

3 Se coloca los nmeros

Cj

donde

C = [Cij ], Cij =

Cj ,
0,

i=j
i 6= j

encima de cada columna slo para indicar por que nmero

se multiplica cada columna.

100

Anlisis Numrico con MATLAB


Por ejemplo el sistema:


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

Mediante la equilibracin por columnas se convierte en




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


  
1/2 1
2x1
3
=
8
1 0
10 x2
5
El sistema que resulta se puede escribir en forma matricial como
(donde x
1 = 2x1 y x 2 = 108 x2 ).

A X = b

AX = b y se equilibra por

AX = b o A X = b y este se

En general, cuando se va a resolver un sistema


las o columnas resulta un sistema de la forma

puede resolver por eliminacin gaussiana o factorizacin.

3.8. Ejercicios
1. Usando eliminacin 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)
b)
c)
d)

Manejando nmeros como fracciones


Usando aritmtica a dos dgitos
Usando aritmtica a tres dgitos
Usando aritmtica a seis dgitos

2. Use la eliminacin gaussiana y la aritmtica de corte de tres dgitos para


resolver los siguientes sistemas lineales. Despus compare las aproximaciones con la solucin real.

101

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

a)
58.9x1 + 0.03x2 = 59.2
6.10x1 + 5.31x2 = 47.0
Solucin real

x1 = 1, x2 = 10

b)
3.03x1 12.1x2 + 14x3 = 119
3.03x1 + 12.1x2 7x3 = 120
6.11x1 14.2x2 + 21x3 = 139
Solucin real

x1 = 0, x2 = 10, x3 = 1/7

i) Repita el ejercicio 2 usando la aritmtica de redondeo a tres dgitos.

ii) Repita el ejercicio 2 usando la eliminacin gaussiana con pivoteo


parcial.

iii) Repita el ejercicio 2 usando la eliminacin gaussiana con pivoteo


parcial escalado.
3. Supngase que se quiere resolver el sistema
y

bi

Az = b,

donde las

son nmeros complejos. Demuestre que lo anterior se puede hacer

usando slo aritmtica real.

Indicacin : A puede volver a escribirse como B + Ci).

(
4.

a)

aij , zi

Demuestre que el sistema

3 + i 1 + 2i
3i 2 + i



z1
z2


=

6 + 2i
1i

Puede escribirse como

3
0

1
3

1 1 2
x1
x2
2
3 1

2
3
1 y1
1
0
2
y2
102

6
1
=

2
1

Anlisis Numrico con MATLAB

b)

Resuelva el sistema del inciso a) y luego encuentre

z1

z2 .

5. Use el algoritmo de la eliminacin gaussiana para resolver los sistemas


lineales siguientes, de ser posible, y determine si se requieren intercambios de rengln:
a)

x1 x2 + 3x3 = 2
3x1 3x2 +x3 = l
x1 + x2 = 3

2x1 l.5x2 + 3x3 = l


x1 + 2x3 = 3
4x1 4.5x2 + 5x3 = 1

b)

6. Use el algoritmo de Choleski y obtenga una factorizacin de la forma


A = LLt para las matrices:

a)

4
1 1 0
1
3 1 0

A=
1 1
5 2
0
0
2 4

2 1
0

1
2 1
A=
0 1
2

b)

7. Resuelva los sistemas lineales usando Factorizacin de Choleski y Factorizacin de Crout

a)
2x1 x2 = 3
x1 + 2x2 x3 = 3
x2 + 2x3 = 1

b)
4x1 + x2 x3
x1 + 3x2 x3
x1 x2 + 5x3 + 2x4
2x3 + 4x4

8. Demuestre que la matriz

A=

0 1
1 1

103

=7
=8
= 4
=6


no tiene una factorizacin

LU .

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES


9. Determine la factorizacin

LU

de la matriz

1 5
3 16


en la que

tienen elementos diagonales unitarios.

10. Determine la factorizacin

LU

de la matriz

6 10 0
12 26 4
0 9 12

en donde

es una matriz triangular inferior con doses en su diagonal principal.

11. Una matriz que es simtrica y denida positiva (SPD) tiene una raz
cuadrada

que es SPD.

De este modo

X 2 = A.

Encuentre

13 10
10 17

A=

12. Encuentre la matriz de permutacin


zar en el producto
diagonal y donde

LU ,

donde

si

P,

tal que

PA

se pueda factori-

es triangular inferior con unos en su

es triangular superior.

1 2 1
0
A= 2 4
0 1 1
13. Obtenga factorizaciones de la forma

A = P t LU

matrices.

a)

0
2
3
1
1 1
0 1
1

b)

1
2 1
1
2
3
2 1
4
104

para las siguientes

Anlisis Numrico con MATLAB

14.

1 0 1
0 1
1 , Calcule todos los valores de para los cuales
Sea A =
1 1

a ) A es singular
b ) A es estrictamente dominante en sentido diagonal
c ) A es simtrica
15. Para los vectores en los incisos a) y b), evale las normas

1, 2, . Para
p = 1, 2, .

a)

c)

kkp , p =

las matrices en los incisos c) y d), evale las normas para

x = [2.15, 3.1, 10.0, 2.2]

9 5 9
A = 2 7 5
5 1 8

e) Encuentre las normas de

b)

d)

y = [4, 5, 0, 3, 7]

8 2 1
B = 2 2 1
2 4 3

B 2 , A + B , AB .

f ) Se cumple la desigualdad del tringulo para

A + B?

16. Considere las siguientes matrices:

2 1
1
2

a)


b)

2 1 0
1 2 0
0 0 3

i. Calcule los valores caractersticos (o autovalores)


ii. Calcule el radio espectral.
iii. Obtenga

kk2

17. Demuestre que las siguientes sucesiones son convergentes y encuentre


sus lmites.

a ) x(k) = (1/k + 2, e1k , 2/k 2 )


b ) x(k) = (kek

(cos k)/k ,

k 2 + k k)

105

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

18. Resuelva el sistema

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

a)
b)

Usando el mtodo de Jacobi.


Usando el mtodo de Gauss-Seidel. Cunto ms rpida es la convergencia que en el inciso a)?

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

3x1 x2 + x3 = 1
3x1 + 6x2 + 2x3 = 0
3x1 + 3x2 + 7x3 = 4

b)

10x1 x2 = 9
x1 + 10x2 2x3 = 7
2x2 + 10x3 = 6

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


21. Calcule los nmeros de condicin de las siguientes matrices en relacin
con la norma innito.

a)


1
2
1
3

1
3
1
4

b)

1 1 1
0 1 1
0 0 1

c)

4 2 2
2 5 1
2 1 6
106

Anlisis Numrico con MATLAB


22.

a)

Calcule la inversa de la matriz

b)

Determine para cual

1
2
1 2+

la siguiente matriz est mal condicionada.

1
2
1 2+

23. Demuestre las siguientes desigualdades para el nmero de condicin.

a ) (AB) (A)(B)
b ) (A) = (A)
( 6= 0)
24. Calcule los nmeros de condicin usando las normas


a)

a+1
a
a
a1


b)

0 1
2 0

kAk1 , kAk2 , kAk .




1
c)
1 1

25. Considere el sistema lineal

a)

1 2
1+ 2



x1
x2


=

3
3+

Usando la solucin aproximada


, para

una pequea

x = (0, 3)t ,

>0

compare la norma

innito del vector residual y la norma innito del vector de error.


Que concluye con esto?

b)

Determine el nmero condicin

k (A)

qu sucede conforme

se

hace pequea?

c)

Lleve a cabo un paso de mejoramiento iterativo basndose en la


solucin aproximada

x.

26. Este problema muestra como la solucin de un sistema de ecuaciones


puede ser inestable en relacin a pequeas perturbaciones en los datos.
Resuelva

Ax = b

con cada una de las siguientes matrices, con

(100, 1)t

A1 =

1 1
1 0


A2 =

107

1 1
1 0.01

b =

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

27. Para decidir qu computador comprar, s el

C1

o el

C2 ,

una compaa

ha decidido evaluar la precisin con la que cada uno de estos modelos


resuelve el sistema.

34x + 55y 21 = 0
55x + 89y 34 = 0
El computador

C1

da como solucin

x = 0.11

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 solucin

x = 0.99

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?
28. Demuestre que si

29. Demuestre que si

kAk2 = (A)

es simetrica, entonces

es diagonalmente dominante estricta, entonces

kTj k < 1
AX = b utilizando
5
errror de 10

30. Encuentre la solucion de los sistemas lineales


metodos de Jacobi y Gauss-Seidel con un

los

a)

4 cuando

aij =
1 cuando

0 en otro caso

j=i
y

j
=
i
+
1

j =i1
j
=i+4

j =i4

108

i = 1, 2, . . . , 16
i = 1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15
i = 2, 3, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16
i = 1, 2, . . . , 12
i = 5, 6, . . . , 16

y
y
y
y

Anlisis Numrico con MATLAB


y

(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
cuando

aij =
1
cuando

0 en otro caso

j= i
y
j =i+1

j =i1

j =i+5

j =i5

i = 1, 2,. . . , 25
1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14,
y i=
 16, 17, 18, 19, 21, 22, 23, 24
2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15,
y i=
17, 18, 19, 20, 22, 23, 24
y i = 1, 2, . . . , 20
y i = 6, 7 . . . , 25

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

i
aij =

j= i
y
j =i+1
j =i1

cuando
cuando

i = 1, 2, . . . , 40
y i = 1, 2, . . . , 39
y i = 2, 3, . . . , 40

en otro caso

bi = 1.5i 6

para cada

i = 1, 2, . . . , 40

d)

aij =

2i

0.75i

cuando

0.5i

cuando

j= i
y
j =i+2
j
 =i1
j =i+4
j =i4

cuando

i = 1, 2, . . . , 80
y
i = 1, 2, . . . , 78
y
i = 3, 4, . . . , 80
y
i = 1, 2, . . . , 76
y
i = 5, 6, . . . , 80

en otro caso

bi =

para cada

109

i = 1, 2, . . . , 80

CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES

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 disear un sistema de las mismas caracteristicas del


sistema

A1 x = b1 ?

b)

8
0

A2 =
0
0
1

0
6
1
0
2

0
0
8
0
3

3 5
0 6

0 7

7 7
4 10

b2 = (0, 0, 0, 0, 2)T
Que sucede con la convergencia de los metodos para el sistema

A2 x = b1 ?
Que tiene de especial la matriz

A2 ?

Se podria disear un sistema de las mismas caracteristicas del


sistema

A2 x = b2 ?

110

Capitulo

Interpolacin y Ajustes de Curvas


En este captulo, se pretende resolver el siguiente problema:
Dados

n+1

xi

son nmeros reales,

yi

polinomio

(x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), xi 6= xj donde


encontrar un polinomio P tal que P (xi ) = yi , al

puntos del plano

se le llama polinomio de interpolacin. Por otro lado, se aplicara

f (x)
{x0 , x1 , . . . , xn },

este resultado para aproximar una funcin, es decir, dada una funcin
denida en un intervalo
encontrar un polinomio

[a, b] y una particin del intervalo


P (x), tal que P (xi ) = f (xi ).

Una razn importante por la que se considera un polinomio en la aproximacin de una funcin es porque, adems de ser fcil de evaluar, la derivada y
la integral indenida de un polinomio son fciles de determinar y tambin
son polinomios. Otra razn para emplear polinomios est justicada por el
teorema de Weierstrass, el cual establece que, sobre un intervalo nito cerrado, una funcin continua dada, se puede aproximar tan cerca como se desee
por un polinomio. Cmo hallar el polinomio de interpolacin?
El siguiente teorema muestra una relacin sobre el grado del polinomio y
el nmero de puntos a interpolar. Adems garantiza la unicidad del mismo.

Teorema 4.1 (Teorema de Interpolacin ). Sean x0 , x1 , . . . xn , n+1 nmeros


reales distintos. Entonces, para valores reales arbitrarios y0 , y1 , . . . , yn existe
un nico polinomio
P (x) = an xn + an1 xn1 + + a1 x + a0

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


111

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

A continuacin se presentan diferentes mtodos para hallar el polinomio


de interpolacin.

4.1. Mtodo 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 + an1 xn1 + + a1 x + a0


Puesto que

(4.1)

P (x) debe pasar por los puntos, se tienen n + 1 ecuaciones


P (xi ) = yi para los n + 1 coecientes desconocidos ai de

algebraicas lineales

P (x).

Las ecuaciones son:

P (x0 ) = an xn0 + an1 x0n1 + + a1 x0 + a0 = y0


P (x1 ) = an xn1 + an1 x1n1 + + a1 x1 + a0 = y1
.
.
.

(4.2)

P (xn ) = an xnn + an1 xnn1 + + a1 xn + a0 = yn


Este sistema se puede escribir como:

xn0 an + x0n1 an1 + + x0 a1 + a0 = y0


xn1 an + x1n1 an1 + + x1 a1 + a0 = y1

(4.3)

.
.
.

xnn an + xn1
n an1 + + xn a1 + a0 = yn
de forma matricial

V x = b:

xn0 xn1
x0
0
xn xn1 x1
1
1

.
.

.
n
n1
xn xn
xn


1
a0
y0

1 a1 y 1
.. = ..
. .
an
yn
1

El sistema tiene una solucin nica para las incgnitas


si y slo si el determinante de la matriz

112

(4.4)

ai , i = 0, 1, 2, . . . , n

de los coecientes de las incgnitas

Anlisis Numrico con MATLAB


es distinto de cero.

V =


xn xn1 x0
0
0
xn xn1 x1
1
1

.
.

.
n n1
xn xn
xn

1
1

(4.5)

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 solucin nica y esto muestra que solamente existe un
nico polinomio

tal que

P (xi ) = yi ,

i = 0, 1, 2, . . . , n.

Algoritmo 10 (Algoritmo de interpolacin directa). La siguiente funcin 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 funcin alternativa V=vander(X), que retorna la matriz


de Vandermonde, contruida con el vector X.
MATLAB posee la funcin

x,y,

p=polyfit(x,y,n),

que dados dos vectores

n,
p del polinomio de grado n que mejor aproxima los
longitud de x menos uno, calcula el polinomio interpolador

que representan parejas de puntos del plano y un nmero natural

encuentra los coecientes


datos. S

es la

de forma directa.

4.2.

Polinomio de Newton

La forma general del polinomio interpolante de Newton para


del plano

113

n + 1 puntos

CAPITULO 4. INTERPOLACIN 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 ) +


cn (x x0 )(x x1 ) (x xn1 )

(4.6)

Aparentemente, el polinomio de Newton no tiene ninguna relacin con


el polinomio denido en (4.1), sin embargo, el teorema de interpolacin [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
encuentra 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

es una matriz triangular inferior,

1
0
1 (x1 x0 )
1 (x2 x0 )

0
0
(x2 x0 )(x2 x1 )

0
0
0

b(i) = fi
0
0
0

X(i) = ci .

L=
..
..
..
..
...
.
.
.
.
Qn1
1 (xn x0 ) (xn x0 )(xn x1 ) . . .
i=0 (xn xi )

(4.7)

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


dados un par de vectores

Y , genere la matriz denida en (4.7) y solucione

el sistema asociado, encontrando los coeencientes del polinomio de Newton.

4.2.2. Nmero condicional


Las secciones anteriores describen dos formas distintas de encontrar el
polinomio que interpola un conjunto de puntos del plano. El mtodo directo
es una solucin natural del problema, pero genera una matriz de Vandermonde

y con frecuencia esta matriz est mal condicionada y por tal razn los

coecientes

ai

del polinomio podran no quedar determinados con precisin

cuando se resuelva el sistema (4.3). El polinomio de Newton y su representacin matricial (4.7) generan una matriz triangular inferior, facl de resolver
por sustitucin progresiva. Se podria pensar que esta matriz no tiene problemas de condicionamiento, pero el siguiente ejemplo muestra que ambos

114

Anlisis Numrico con MATLAB


mtodos presentan problemas con el nmero condicional.
Considere una particin equiespaciada con

puntos, del intervalo

[0, 1].

Su-

ponga que se calcula el nmero condicional denido en (3.5), a las matrices

y que se varia

n.

Figura 4.1: Nmero condicional de las matrices asociadas al mtodo directo


y la forma matricial de Newton.

La gura 4.1 muestra como varia el nmero condicional


se aumenta el nmero de puntos

n.

a medida que

El nmero condicional se incrementa

considerablemente en ambos casos. Por lo tanto, si el nmero de puntos es


grandre, no se recomienda utilizar los dos mtodos anteriores para calcular
el polinomio interpolador.

4.2.3. Mtodo de diferencias divididas


Los coecientes

ci

tambien se pueden obtener, calculando un conjunto de

cantidades denominadas diferencias divididas. La notacin para las diferen-

115

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

cias divididas de una funcin

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+j1 ]
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 xn1 )

(4.8)

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


P (xi ) = yi , en particular Pn (x0 ) = y0 = c0 .
Si se usa la notacin 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
Observe que

i = 0, 1, 2, . . . , n

entonces

c1 =

y1 y0
x1 x0
c1 = f [x0 , x1 ].
Pn (x) en x = x2

Usando la notacin de diferencia dividida,


De manera analoga cuando se evala

f [x0 , x1 , x2 ].

se obtiene

c2 =

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 ) +


+ f [x0 , x1 , . . . , xn ](x x0 )(x x1 ) (x xn1 )
116

(4.9)

Anlisis Numrico con MATLAB


En la siguiente tabla se muestra la construccin iterativa que se debe
realizar, para calcular las diferencias divididas que involucran el calculo de
los coeentes

ci .

x0
x1
x2
x3

Se construyo para

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

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

puntos

(xi , yi ), i = 0, 1, 2, 3.

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

f [x0 , x1 , x2 , x3 ]

los elementos de la primera la de la tabla anterior, son los coecientes

ci

del polinomio interpolante de Newton.

Ejemplo 4.2.1. Halle el polinomio que interpola los datos:


1
4

xi
yi

2
3.5

3
4

5
5.6

El polinomio interpolante de Newton es de grado menor o igual que 3 ya


que se tienen 4 puntos, usando la frmula (4.9) obtenemos 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 diferencias divididas.


xi
1
2
3
5

yi
4
3.5
4
5.6

0.5
0.5
0.8

0.5
0.1

0.1

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
117

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

Algoritmo 11 (Algoritmo de Polinomio de Newton). El codigo de la siguiente funcin, calcula un vector c, que contiene los coecientes ci del polinomio
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 construccin de la funcin auxiliar d=divididas(y0,y1,x0,x1), que calcula f [x0 , x1 ], se deja como ejercicio para el lector.

4.3. Polinomio de Lagrange


El matemtico francs Joseph Louis Lagrange descubri que se puede
encontrar un polinomio de grado a lo ms

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 interpolador
de Lagrange de grado 2 es:

P2 (x) =

(x x1 ) (x x2 )
(x x0 ) (x x2 )
y0 +
y1 +
(x0 x1 ) (x0 x2 )
(x1 x0 ) (x1 x2 )
(x x0 ) (x x1 )
y2
(x2 x0 ) (x2 x1 )
118

Anlisis Numrico con MATLAB

P2 (x0 ) =

(x0 x1 ) (x0 x2 )
(x0 x0 ) (x0 x2 )
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 )
(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
n y que pasa por los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) es dado por
L0 (x) =

la ecuacin:

Pn (x) = L0 (x)y0 + L1 (x)y1 + + Ln (x)yn


n
X
=
Li (x)yi
i=0
119

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

Donde

Lk (x)

se llaman polinomios coecientes de Lagrange o funciones

cardinales y se denen como:

Lk (x) =

(x x0 ) (x x1 ) (x xk1 ) (x xk+1 ) (x xn )
(xk x0 ) (xk x1 ) (xk xk1 ) (xk xk+1 ) (xk xn )

Observe que hay

Lk (x)
factor (x xk ) en
en x = xk .

factores en el numerador, de modo que cada

un polinomio de grado

n.

En

Lk (x)

est ausente el

numerador; el denominador es el numerador evaluado

(
1
Lk (xi ) =
0

si
si

es
el

i=k
i 6= k

Ejemplo 4.3.1. Encuentre el polinomio de interpolacin para los siguientes


puntos y encuentre P (3.5).

xi
yi

1
4

2
3.5

3
4

5
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
120

Anlisis Numrico con MATLAB

L0 (x) =
=
L1 (x) =
=
L2 (x) =
=
L3 (x) =
=

(x x1 )(x x2 )(x x3 )
(x0 x1 )(x0 x2 )(x0 x3 )
x3 10x2 + 31x 30
8
(x x0 )(x x2 )(x x3 )
(x1 x0 )(x1 x2 )(x1 x3 )
x3 9x2 + 23x 15
3
(x x0 )(x x1 )(x x3 )
(x2 x0 )(x2 x1 )(x2 x3 )
x3 8x2 + 17x 10
4
(x x0 )(x x1 )(x x2 )
(x3 x0 )(x3 x1 )(x3 x2 )
x3 6x2 + 11x 6
24

(x 2)(x 3)(x 5)
(1 2)(1 3)(1 5)

(x 1)(x 3)(x 5)
(2 1)(2 3)(2 5)

(x 1)(x 2)(x 5)
(3 1)(3 2)(3 5)

(x 1)(x 2)(x 3)
(5 1)(5 2)(5 3)

Luego

 3

x 9x2 + 23x 15
x3 10x2 + 31x 30
4+
3.5
P3 (x) =
8
3
 3

 3

x 8x2 + 17x 10
x 6x2 + 11x 6
+
4+
5.6
4
24


P3 (x) = 0.1x3 + 1.1x2 3.1x + 6.1

Vericacin:
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 funcin

f (x) por medio de un polinomio inter-

polador, existe un error al hacerlo, el siguiente teorema muestra una expresin


para el error.

121

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

Teorema 4.2. Si x0 , x1 . . . , xn son nmeros distintos en el intervalo [a, b] y

f C n+1 [a, b], entonces para cada x en [a, b] existe un nmero z (que depende
de x) en (a, b) tal que

f (x) = Pn (x) +

f (z)(n+1)
(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 funcin
polinomio de Lagrange

Pn (x),

f (x)

por un

viene dado por:



f (z)(n+1)


|f (x) Pn (x)| = E =
(x x0 )(x x1 ) (x xn )
(n + 1)!

(4.10)

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

x0

concentra toda la informacin conocida en

x0

n alrededor de

y tiene un trmino de error

de la forma

f (z)(n+1)
(x x0 )n+1
(n + 1)!
donde

esta entre

x0

El polinomio de Lagrange de grado

utiliza la informacin en todos los


n+1
nmeros distintos x0 , x1 , . . . xn y en lugar de (x x0 )
, su frmula de error
utiliza un producto de

n+1

trminos

(x x0 ), (x x1 ), . . . , (x xn )

(ver

(4.10)).

Ejemplo 4.3.2. Hallar una cota para el error al aproximar ln(1.2) usando
un polinomio de Lagrange de grado 3 en los puntos:
xi
f (xi )

1
0

1.1
0.0953118

1.3
0.262364

1.4
0.336472

Se aplica la frmula (4.10) con n = 3, f (x) = ln x y x = 1.2, f (4) (x) =


122

Anlisis Numrico 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
E =
(1.2

1)(1.2

1.1)(1.2

1.3)(1.2

1.4)

24z 4





1
1
1
Porque
E 6 (0.2)(0.1)(0.1)(0.2)
< 4 =1
4
z4
1

(4.11)

Por lo tanto E 6 104 = 0.1 103


Esto indica que si se aproxima ln(1.2) con los datos de la tabla usando
un polinomio de grado tres, entonces la aproximacin tiene tres decimales
exactos. Recuerde que si x es una aproximacin de x y |x x| < 0.5 10t ,
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 clculos ya que no se dispone de un procedimiento simple que permita medir la
contribucin 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 funcin que origin los datos. En la seccin de ejercicios de este
capitulo, se presenta un ejemplo de este comportamiento.

Algoritmo 12 (Algoritmo de interpolacin de Lagrange). El siguiente cdi-

go, toma como valores de entrada,x y y que son los puntos a interpolar y un
nmero b, que representa el nmero de puntos equiespaciados entre el mnimo y el mximo de los valores de x, que se van a evaluar. El cdigo adems
graca el polinomio. La variable de salida es yf, que representa las imgenes
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)=[];
123

CAPITULO 4. INTERPOLACIN 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

end
plot(x1,yf)
hold on
plot(x,y,'o')

4.4. El fenmeno de Runge


Al inicio del capitulo se planteo el problema de aproximar una funcin

f (x) denida en un intervalo [a, b], por medio de un polinomio P (x). Ya se ha


utilizado la interpolacin para aproximar el valor de una funcin en un punto

por medio de un polinomio interpolador, obteniendo buenos resultados.

Surge la pregunta Cmo se puede aproximar una funcin en un intervalo


dado por un polinomio?.
Una solucin a este problema, es hacer una particin equiespaciada del in-

[a, b] y encontrar el polinomio que interpola el conjunto de puntos.


Q = {x0 , x1 , . . . , xn } una particin del intervalo [a, b] tal que: a = x0 <
x1 < < xn = b y h = xi xi1 es constante para todo i = 1, 2, . . . , n.
Se dice que Q es una particin equiespaciada de [a, b]. Se puede calcular el
polinomio interpolador de Newton para el conjunto de puntos (xi , f (xi )) y
tervalo
Sea

examinar que tan buena es la aproximacin a la funcin.

Ejemplo 4.4.1. Aproximar la funcin f (x) = e(x2 ) en el intervalo [2, 2]


utilizando una particin equiespaciada de N = 5, 10, 15 puntos.
124

Anlisis Numrico con MATLAB

Figura 4.2: Nodos o puntos equiespaciados.

Figura 4.3: Nodos o puntos equiespaciados.

125

N =5

N = 10

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

Figura 4.4: Nodos o puntos equiespaciados.

N = 15

El ejemplo anterior muestra un buen comportamiento de la aproximacin


polinomial, ya que con solo

15

puntos en el intervalo

[2, 2]

ner una aproximacin considerablemente buena de la funcin

se pudo obte2
f (x) = e(x ) .

Este resultado numrico podria hacer pensar que a medida que aumento en
nmero de puntos equiespaciados en el intervalo, el error entre la funcin y
el polinomio tiende a cero.

Ejemplo 4.4.2. Aproximar la funcin f (x) = 1/(1 + 12x2 ) en el intervalo


[1, 1] utilizando una particin equiespaciada de n = 5, 15, 30 puntos.

El anterior comportamiento es conocido como fenmeno de Runge, el cual


se dene como la falta de convergencia cuando el mximo termino del error

EN (x)

crece cuando el nmero 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

126

[1, 1].

Estos poli-

Anlisis Numrico con MATLAB

Figura 4.5: Nodos o puntos equiespaciados.

Figura 4.6: Nodos o puntos equiespaciados.

127

n=5

n = 15

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

Figura 4.7: Nodos o puntos equiespaciados.

nomios se pueden generar tomando

T0 (x) = 1

n = 30

T( 1)(x) = x

para

i = 2, 3, . . .

y usando la

ecuacin recursiva

Ti+1 (x) = 2xTi1 (x) Ti2 (x)

Adems, se pueden expresar de forma trigonometrica,

Tn+1 (x) = cos((n +

1) arc cos(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 funcin y el polinomio
interpolador calculado con los nodos de Chebyshev.

nodos de Chebyshev

vienen dados por la expresin


xi = cos

(2i + 1)
2n


para

i = 0, 1, . . . , n 1

xi generan una particin de n puntos del intervalo [1, 1]. Puede probarse
0
que si f (x) y f (x) son continuas en [1, 1], los nodos de Chebyshev generan
un polinomio interpolador que converge a f (x) a medida que el nmero de
Los

nodos tiende a innito. En otras palabras, el error entre la funcin y el


polinomio, tiende a cero cuando el nmero de nodos de Chebyshev tiende
a innito.

128

Anlisis Numrico con MATLAB

Ejemplo 4.5.1. Conside la funcin f (x) = 1/(1 + 12x2 ) en el intervalo

[1, 1]. Utilice una particin de Chebyshev de 15 puntos y calcule el polino-

mio interpolador.
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);

Figura 4.8: Nodos de Chebyshev.

n = 15

Como se dijo anteriormente, los nodos de Chebyshev


distribuidos sobre el intervalo
general

[a, b]


xi =

[1, 1].

xk

se encuentran

S se desea trabajar en un intervalo

se utiliza la relacin

ba
2


cos

(2i + 1)
2n


+

a+b
2

129


para

i = 0, 1, . . . , n 1.

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

4.6. Interpolacin polinomial a trozos


Frecuentemente la interpolacin 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, supngase 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
opcin es ir enlazando, una detrs de otra, las grcas de unos polinomios de

Sj (x) que slo 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).
grado bajo

Si 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 cuadrtico, este tiene derivada continua en

[x0 , xn ] pero presenta el

problema que cuando hay que especicar las condiciones referentes a la derivada en los extremos

x0

xn ,

no hay constantes sucientes para cerciorarse

de que se satisfacen las condiciones. Si se usan polinomios cbicos entonces


tanto la primera derivada como la segunda son continuas en el intervalo, y
en este caso se la llama

trazador cbico.

4.6.1. Trazador Cbico


Se desea dibujar una curva que pase por una serie de puntos, cuyas coordenadas se conocen con precisin, y que sea suave.

Sj (x) en cada introzos y = S(x) que

Matemticamente es posible construir una funcin cbica


tervalo

[xj , xj+1 ]

de manera que la curva denida a

resulta, es dos veces derivable y la segunda derivada es continua en el in0

[x0 , xn ]. La continuidad de Sj (x)


y = S(x) no tiene picos o esquinas;

tervalo completo
ecuacin

signica que la curva de


la continuidad de

signica que el radio de curvatura est denido en cada punto.

130

00

Sj (x)

Anlisis Numrico con MATLAB

Figura 4.9: Interpolacin polinomial a trozos. Trazador cubico.

S(x) =

S0 (x),

S1 (x),

...

si

x0 x x1
x1 < x x2

si

xj < x xj+1

si

xn1 < x xn

si

Sj (x),

Sn1 (x),

A continuacin se hara la construccin de un trazador cubico para una

f (x) denida en un
a = x0 < x1 < < xn = b.
funcin

intervalo

[a, b]

y una particin del intervalo:

Denicin 4.1. Dada una funcin f denida en [a, b] y un conjunto de

nodos a = x0 < x1 < < xn = b, un trazador cbico ( spline cbico) S(x)


para f es una funcin 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).
131

CAPITULO 4. INTERPOLACIN 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).

S (xj+1 ) = Sj+1 (xj+1 ) para j = 0, 1, 2, . . . , n2 (indica que la pendiente

iii.

es continua).

iv.

Sj (xj+1 ) = Sj+1 (xj+1 ) para j = 0, 1, 2, . . . , n 2 (indica que la curva00

00

tura 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
natural.
00

00

b) S 0 (x0 ) = f 0 (x0 ) y S (xn ) = f (xn ), el trazador se llama sujeto.


([3])
0

Cmo hallar el trazador cbico de una funcin


Primero se supone que

Sj (x), xj 6 x 6 xj+1

f?

es de la forma:

Sj (x) = aj + bj (x xj ) + cj (x xj )2 + dj (x xj )3
para

j = 0, 1, 2, . . . , n 1.

Por la condicin

(4.12)

Sj (xj ) = aj = f (xj ) = yj
Sj+1 (xj+1 ) = aj+1 = yj+1

(4.13)

Si se aplica la condicin II.


Sj+1 (xj+1 ) = Sj (xj+1 )
aj+1 = aj + bj (xj+1 xj ) + cj (xj+1 xj )2 + dj (xj+1 xj )3

(4.14)

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
132

Anlisis Numrico con MATLAB


Aplicando la condicin III
0
Sj+1
(xj+1 ) = Sj0 (xj+1 )

bj+1 = bj + 2cj (xj+1 xj ) + 3dj (xj+1 xj )2


bj+1 = bj + 2cj hj +

(4.16)

3dj h2j

La segunda derivada en cada intervalo viene dada por Sj00 (x) = 2cj +6dj (xxj )
y valuando en xj y xj+1
Sj00 (xj ) = 2cj
00
Sj+1
(xj+1 ) = 2cj+1

Por la condicin 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 dj =


(4.14) y (4.16) obtenemos:

cj+1 cj
, si se sustituye dj en la ecuacin
3hj

aj+1 = aj + bj hj + (2cj + cj+1 )

h2j
3

bj+1 = bj + (cj + cj+1 )hj


bj = bj1 + (cj1 + cj )hj1

(4.18)
(4.19)
(4.20)

(4.20) se obtiene de (4.19) con el ndice reducido en 1. Al despejar bj en la


ecuacin (4.18) se tiene que
hj
aj+1 aj
(2cj + cj+1 )
y
hj
3
aj aj1
hj1
bj1 =
(2cj1 + cj )
hj1
3

bj =

Reemplazando bj y bj1 en la ecuacin 4.20 se obtiene:


133

(4.21)
(4.22)

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

aj+1 aj
hj
hj1
aj aj1
(2cj + cj+1 ) =
(2cj1 + cj )
+ (cj1 + cj )hj1
hj
3
hj1
3
(aj aj1 )
(aj+1 aj )
(2cj + cj+1 )hj = 3
(2cj1 + cj )hj1 + 3(cj1 + cj )hj1
3
hj
hj1
(aj+1 aj )
(aj aj1 )
3(cj1 + cj )hj1 (2cj1 + cj )hj1 + (2cj + cj+1 )hj = 3
3
hj
hj1
(aj+1 aj )
(aj aj1 )
hj1 cj1 + 2(hj1 + hj )cj + hj cj+1 = 3
3
hj
hj1

As
hj1 cj1 + 2(hj1 + hj )cj + hj cj+1 = 3

(aj+1 aj )
(aj aj1 )
3
hj
hj1

(4.23)

para j = 1, 2, . . . , n 1
El sistema (4.23) tiene slo como incgnitas a cj , ya que los valores de hj estn
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 condicin I.)
Si en la ecuacin (4.23) se reemplaza

j = 1, 2, . . . , n 1

se obtiene el

sistema

3
(a2 a1 )
h1
3
h1 c1 + 2(h1 + h2 )c2 + h2 c3 = (a3 a2 )
h2
h0 c0 + 2(h0 + h1 )c1 + h1 c2 =

3
(a1 a0 )
h0
3
(a2 a1 )
h1

.
.
.

hn2 cn2 + 2(hn2 + hn1 )cn1 + hn1 cn =

natural

Si el trazador es
00
cuenta que Sj (x) = 2cj

entonces

hn1
00

(an an1 )
00

3
hn2

S (x0 ) = 0 = S (xn )

(an1 an2 )

y teniendo en

+ 6dj (x xj )

00

00

S0 (x0 ) = 2c0 + 6d0 (x0 x0 )


0 = 2c0
de donde

Sn (xn ) = 2cn + 6dn (xn xn )


0 = 2cn

c0 = 0 y cn = 0. El sistema anterior junto con las ecuaciones c0 = 0


134

Anlisis Numrico con MATLAB


y

cn = 0

se puede escribir de la forma

AX = b,

donde

1
0
0

0
h0 2(h0 + h1 )
h
0
1

.
0
h1
2(h1 + h2 ) h2
.

A=
..
..
.
.
0
.
..
hn2 2(hn2 + hn1 ) hn1
0

0
0
1

c0
c1

X = ...

cn1
cn

(4.24)

3
3

(a2 a1 ) (a1 a0 )

h1
h0

.
.
b =
.

3
3

hn1 (an an1 ) hn2 (an1 an2 )


0

La matriz del sistema es estrictamente dominante en sentido diagonal


por lo tanto el sistema lineal tiene una nica solucin para

c0 , c1 , c2, . . . , cn .

Adems se pueden aplicar los mtodos iterativos vistos en el capitulo anterior,


es decir, para toda condicin inicial que se elija el metodo de Jacobi y Gauss-

AX = b.
n1
n1
Una vez que se hallan los valores de {cj }j=0 , se encuentran los {bj }j=0
n1
usando la ecuacin (4.22) y los {dj }j=0 usando la ecuacin (4.20). Finalmente
n1
es fcil construir los polinomios cbicos {Sj (x)}j=0 .
Seidel convergen a la solucin de

Ejemplo 4.6.1. Hallar el trazador cbico natural que pasa por los puntos
dados en la tabla de abajo y aproximar f (0).
xj
f (xj )

-3
2

-2
0

1
3

4
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
135

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

El sistema lineal para hallar {cj }3j=0 es:

1
0
0
0
c0
h0 2 (h0 + h1 )

h
0
1

c1
0
h1
2 (h1 + h2 ) h2 c2
0
0
0
1
c3

1
1

0
0

0 0 0
c0
c1
8 3 0

3 12 3 c2
0 0 1
c3

Calculando bj =

0
9
=

5
0

3
h1
3
h2

0
(a2 a1 )
(a3 a2 )
0

3
h0
3
h1

(a1 a0 )

(a2 a1 )

c0 = 0,

c1 =

41
29 ,

c2 = 67
87 ,

hj
aj+1 aj
(2cj + cj+1 )
para j = 0, 1, 2
hj
3
h0
215
a1 a0
(2c0 + c1 )
=
h0
3
87
a2 a1
92
h1
b1 =
=
(2c1 + c2 )
h1
3
87
a3 a2
h2 76
=
(2c2 + c3 )
b2 =
h2
3
87
b0 =

y los dj =

cj+1 cj
para j = 0, 1, 2
3hj
c1 c0 41
=
3h0
87
c2 c1
190
d1 =
=
3h1
783
c3 c2
67
d2 =
=
3h2
783

d0 =

Los polinomios cbicos 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
136

c3 = 0

Anlisis Numrico 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 =
67
67
76
(x 1)2 +
(x 1)3
3 + (x 1)
87
87
783

Por lo tanto el trazador cbico S(x) para f en [3, 4] es:

215
41

2
(x + 3) + (x + 3)3 ,
3 6 x 6 2

87
87

41
190
92
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].
190

92

(0 + 2)2
(0 + 2)3
Luego f (0) S1 (0) = (0 + 2) + 41
29
87
783
f (0) 1.6 (redondeando la respuesta a un decimal).

Algoritmo 13

(Algoritmo de Splines cubico Natural). El siguiente cdigo


tiene como entradas los vectores x y y, que representan los puntos del plano,
para los cuales se quiere construit el interpolador. La variable de salida F
contiene los coecientes de los polinomios cubicos que interpolan los puntos
del plano (x,y).

function F=Spline(x,y)
close all
y2=y;
%-----Construccin 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);
137

CAPITULO 4. INTERPOLACIN 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);
%---------Construccin 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
%funcin de Jacobi que se trabaj en el capitulo 3
%---------Solucion de Sistema por jacobi----cj=Jacobi(A,b,zeros(length(b),1),0.001);
%-------------Construccin 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

138

Anlisis Numrico con MATLAB


MATLAB posee la funcin

yy = spline(x,y,xx) que calcula el spline


(x,y), adems evalua el

cubico natural para el conjunto de puntos del plano


spline en

xx,

que puede ser vector o escalar.

4.7. Ajuste de curvas por mnimos cuadrados

En la ciencia y la ingeniera se da, a menudo, el caso de que un experimento produce un conjunto de datos

(x1 , y2 ), (x2 , y2 ), . . . , (xn , yn ). El


y = f (x) que relacione

objetivo en esta seccin es determinar una frmula

las variables. Generalmente se dispone de un conjunto de variables previamente establecidas, y lo que hay que hallar son los valores ms adecuados de
unos coecientes o de unos parmetros para estas frmulas. Aunque existen
muchas funciones que se pueden usar, suele ocurrir que existe un modelo
matemtico subyacente, basado en la situacin fsica que se est estudiando
y determina la forma de la funcin salvo algunos coecientes.

Si la relacin entre

xi

yi

para

1 6 i 6 n,

es

lineal, entonces la funcin

que mejor se ajusta a los datos es una lnea de aproximacin de la forma:

y = ax + b

(ver gura 4.10).

139

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

(xN , yN )
(xi , yi )
(xi , axi + b)
(x1 , y1 )
x
x1

x2

xi

xN 1

xN

Figura 4.10

Una forma para encontrar la recta optima es el mtodo de los mnimos


cuadrados y consiste en hallar el valor de las constantes a y b de tal manera
que reduzcan al mnimo la suma de los cuadrados de los errores entre los
valores

yi

dados y los valores

y(xi ) = axi + b
n
X

en la lnea de aproximacin.

(yi axi b)2

(4.25)

i=1
La expresion (4.25) se puede considerar una funcin de dos variables en

b
F (a, b) =

n
X

(yi axi b)2

i=1
a la que se le quiere hallar un mnimo. Para que ocurra un mnimo es
necesario que las derivadas parciales

F
a
140

F
b

sean cero. Observe que las

xi

Anlisis Numrico con MATLAB


e

yi

son valores conocidos.

n
F
P

=0
2(yi axi b)(xi ) = 0

a
i=1
n
F
P

=0
2(yi axi b)(1) = 0
b
i=1
Al dividir entre 2 cada una de estas ecuaciones y desarrollar las sumatorias
se obtienen las llamadas ecuaciones normales.

n
P

x2i + b

n
P

xi =

i=1

i=1

n
P

xi yi

i=1
(4.26)

n
P

n
P

xi + bn =

i=1

yi

i=1

La solucin del sistema (4.26), de dos ecuaciones con dos incgnitas es:


n

n
P



n
P

n
P

xi y i
xi
yi
i=1
i=1
,
 n   n 2
P 2
P
n
xi
xi

i=1

a=

i=1

i=1
(4.27)


b=

n
P

x2i



i=1

n
P



n
P

xi y i
i=1
 n   n 2
P 2
P
n
xi
xi
yi

i=1

i=1

n
P


xi

i=1

i=1

Por lo tanto la recta que mejor se ajusta a los datos (xi ,yi ),
relacionados en forma lineal es

y = ax + b

con

El problema de aproximar un conjunto de datos


polinomio algebraico

Pm (x)

16i6n

b dados por (4.27).


(xi , yi ), 1 6 i 6 n con un

m < n 1 mediante el procedimiento


de y = ax + b (Ver ejercicio 23 de este

de grado

de mnimos cuadrados, es similar al


captulo).

En muchos casos los datos provenientes de pruebas experimentales no


son lineales por lo que es necesario ajustarlos a una funcin que no sea un
polinomio de primer grado. Algunas veces conviene suponer que los datos
tienen una relacin exponencial. Para ello, la funcin de aproximacin debe
tener la forma:

y = Beax

o bien

141

(4.28)

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

y = Bxa

para algunas constantes

B.

(4.29)

Es posible desarrollar ecuaciones normales para stas de manera anloga


al desarrollo precedente para una recta por mnimos cuadrados si las derivadas parciales se igualan a cero. Tales ecuaciones no lineales son mucho ms
difciles de resolver que las ecuaciones lineales. Por esta razn el mtodo que
suele utilizarse cuando se sospecha que los datos tienen una relacin exponencial, consiste en considerar el logaritmo de la ecuacin de aproximacin:

y = Beax
ln y = ln (Beax )
ln y = ln B + ln eax
ln y = ax + ln B

(4.30)

y = Bxa
ln y = ln (Bxa )
ln y = ln B + ln xa
ln y = a ln x + ln B

(4.31)

((4.30) y (4.31) se conocen como formas linealizadas). Observe que en (4.30)


se presenta una relacin lineal entre

ln y,

por lo que se pueden usar las

frmulas dadas en (4.27) para resolver el problema lineal cambiando

ln yi y b por ln B . En (4.31) tambin se presenta


ln x y ln y , aqu el problema se resuelve usando las
cambiando xi por ln xi , yi por ln yi y b por ln B .

yi

por

una relacin lineal entre


frmulas dadas en (4.27)

Ejemplo 4.7.1. Ajustar los datos de la siguiente tabla a funciones de la


forma y = ax + b y y = Beax Qu funcin aproxima mejor?
xi
yi

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 frmulas (4.27). Las ltimas dos
columnas son los errores al cuadrado para los modelos lineal y exponencial.
Para el modelo lineal:
3
a=

3
P

xi yi

i=1

3
P
i=1

3
P

xi

i=1


x2i

3
P

3
P
i=1

yi

2 =

xi

3 (48.4) 7 (16.9)
= 1.92143
3 (21) (7)2

i=1
142

Anlisis Numrico con MATLAB


x2i

xi yi

xiyi ln yi

xi ln yi (yi axi
b)2
3
1.0986 1.0986 5.1022
10.2 1.6292 3.2584 103
35.2 2.1748 8.6992 0.11479
101
1.2759
103

1 3
1
2 5.1 4
4 8.8 16

16.9 21 48.4 4.9026 13.0562 0.0178571

3
P

b=

x2i

i=1

3
P

yi

3
P

i=1

i=1

3
P


x2i

i=1

3
P

xi yi

3
P

xi

i=1
2

xi

(yi Beaxi )2

0.52558
101

0.28485
0.10911

0.446518

21 (16.9) 48.4 (7)


= 1.15
3 (21) (7)2

i=1

y = ax + b
y = 1.92143x + 1.15

Si se evala la recta en x3 = 4, resulta y = 1.92143(4) + 1.15 = 8.83572,


el error al cuadrado entre la aproximacin dada por la recta y el valor real
es,
(y3 ax3 b)2 = (8.8 8.83572)2 = 1.2759 103 .
Para el modelo exponencial.
3
a=

3
P

3
3
P
P
xi ln yi
xi ln yi
7 (13.0562) 7 (4.9026)
i=1
i=1
i=1
= 0.34645
=


2
2
3
3
P
P
3
(21)

(7)
3
x2i
xi
i=1

3
P

ln B =

i=1

x2i

i=1

3
P

ln yi

i=1

3
P
i=1

3
P

xi ln yi

i=1

x2i

3
P

3
P

i=1
2

xi
=

xi

i=1

ln B = 0.8258,
B = e0.8258 2.28371

y = Beax
y = 2.28371e0.34645x
143

21 (4.9026) 13.0562 (7)


3 (21) (7)2

= 0.8258

CAPITULO 4. INTERPOLACIN 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 (vase la tabla anterior).

Algoritmo 14

. En esta funcin se in-

(Algoritmo de mnimos cuadrados)

gresan los vectores de datos X y Y. Las variables de salida son a y b, donde


la recta de mnimos cuadrados tiene ecuacin 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
y

-4

2. Encuentre los polinomios de interpolacin de Lagrange y de Newton


para los siguientes datos:

x
f (x)

-2

-1

144

Anlisis Numrico con MATLAB


Escriba ambos polinomios en la forma

a+bx+cx2

con el n de vericar

que son idnticos como funciones.


3. La ecuacin

x 9x = 0

[0, 1]. Enx0 = 0.5, x2 = 1 para la

tiene una solucin en el intervalo

cuentre el polinomio de interpolacin sobre

funcin en el lado izquierdo de la ecuacin. Igualando a cero el polinomio de interpolacin y resolviendo dicha ecuacin, encuentre una
solucin aproximada de la ecuacin.
4. La tabla

x
f (x)

0.1

Pudo crearse a partir de la funcin

f (x) = sen(5x),

cuya magnitud

nunca excede a 1.
a)

Obtenga el polinomio de interpolacin

b)

Demuestre que
quier valor

c)

p(0.5) = 25/9,
tabulado de f (x).

p(x)

para esta tabla.

que es mucho ms grande que cual-

Qu ilustra este ejemplo?

f (x) = ex1 con un polinomio p de grado 12,


[1, 1], cul es una buena cota superior para

5. Si se interpola la funcin
utilizando 13 nodos en

|f (x) p(x)|

en

[1, 1]?

6. Para las funciones dadas

f (x),

sean

x0 = 0, x1 = 0.6

x2 = 0.9.

Construya polinomios de interpolacin de grados uno y dos a lo mximo


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.

f (x) = x x2 y P2 (x) el
x1 , y x2 = 1 Calcule el valor ms
f (0.5) P2 (0.5) = 0.25.

8. Sean

145

polinomio interpolante en
grande de

x1

en

(0, 1)

x0 = 0 ,

para el cual

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

9. Escriba el polinomio de interpolacin de Newton para los siguientes


datos:

x
f(x)
10. El polinomio

63

11

28

p(x) = 2 (x + 1) + x(x + 1) 2x(x + 1)(x 1)

interpola

los primeros cuatro puntos de la tabla.

x
y

-1

-7

10

Aada un trmino a

de modo que el polinomio que resulte interpole a

la tabla entera.
11. a)

Aproxime

f (0.05)

mediante los siguientes datos y la frmula de

diferencias divididas progresivas de Newton:

x
f

0.0

0.2

0.4

0.6

0.8

1.00000

1.22140

1.49182

1.82212

2.22554

(x)
b)

Use la frmula de las diferencias divididas regresivas de Newton


para aproximar

12. Con una funcin

x0 = 0.0

f (0.65).

las diferencias divididas progresivas estn dadas por

f [x0 ]
f [x0 , x1 ]

x1
0.04

= f [x1 ]

f [x0 , x1 , x2 ]
f [x1 , x2 ]
10

x2 = 0.7

50
7

f [x2 ] =
6

Determine los datos que faltan en la tabla.


13. Se tienen los siguientes datos para un polinomio
nocido.

146

P (x)

de grado desco-

Anlisis Numrico con MATLAB


x
P (x)
Determine el coeciente de

-1

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 xn1 ).
Use

Pn (x2 )

para demostrar que

a2 = f [x0 ,x1 ,x2 ].

15. Determine si el spline cbico natural que interpola la tabla

x
y

10

Coincide o no con la funcin

1 + x x ,
f (x) = 1 2 (x 1) 3 (x 1)2 + 4 (x 1)3

4 (x 2) + 9 (x 2)2 3 (x 2)3

x [0, 1]
x [1, 2]
x [2, 3] .

16. Determine si la siguiente funcin es un spline cbico natural:

2 (x 1) + (x 1)
f (x) = 3 + 5x + 3x2

11 + 11 (x 1) + 3 (x 1)2 (x 1)3
17. Qu valor de

x [1, 0]
x [0, 1]
x [1, 2].

a, b, c, d hace de la siguiente funcin un spline


(
x3
x [1, 0]
f (x) =
2
3
a + bx + cx + dx x [0, 1]

a, b, c, d de manera que la funcin

x (, 3]
1 2x
2
3
S (x) = a + bx + cx + dx x [3, 4]

157 32x
x [4, +]

18. Determine los coecientes

Sea un spline cbico natural en el intervalo

147

[3, 4].

cbico?

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

19. Determinar el trazador cbico sujeto S que interpola los datos


f (1) = 1, f (2) = 2 y que satisface s0 (0) = s0 (2) = 1.
20. Un trazador cbico sujeto

de

est denido en

[1, 3]

f (0) = 0,

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 ,

d.

21. Construya un trazador cbico libre para aproximar


dio de los valores dados por
trazador en
Z1

[0, 1]

f (x)

en

x = 0,

f (x) = ex

por me-

0.25, 0.75, y 1.0. Integre el

y compare el resultado con:

ex dx = 1 1/e.

0
Mediante las derivadas del trazador aproxime
pare las aproximaciones con los valores reales.

148

f 0 (0.5)

f 00 (0.5)

y com-

Anlisis Numrico con MATLAB


22. Determine la recta ptima en el sentido de los mnimos cuadrados correspondiente a los siguientes datos.

xi

yi

-2

-1

a, b, y c si se quiere ajustar los datos (xi , yi ) i =


1, 2, . . . n a una funcin de la forma y = ax2 + bx + c.
n
P
2
Sugerencia: minimice F (a, b, c) =
(yi ax2i bxi c)

23. Encuentre el valor de

i=1
24. Determine la parbola ptima en el sentido de los mnimos cuadrados
2
de la forma y = ax + bx + c para los siguientes datos.

xi
yi

-2

-1

-5.8

1.1

3.8

3.3

-1.5

149

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

25. La siguiente tabla muestra cambios de variable para linealizar datos.
Justique cada cambio.

Funcin

Linealizacin

y=f(x)

Y = AX + B

y=

A
+B
x

D
x+C
1
y=
Ax + B
x
y=
Ax + B
y = AIn (x) + B
y=

y = CeAx
y = CxA
y = (Ax + B)2
y = CxeDx

y=

L
1 + CeAx

Cambios

1
y =A +B
x

1
X = ,Y = y
x
X = xy, Y = y
1
D
1
B
y=
(xy) +
C=
,D =
C
C
A
A
1
1
= Ax + B
X = x, Y =
y
y
1
1
1
1
=A +B
X = ,Y =
y
x
x
y
y = AIn (x) + B
X = In(x), Y = y
X = x, Y = In(y)
In(y) = Ax + In(C)
C = eB
X = In(x), Y = In(y)
In(y) = AIn(x) + In(C)
C = eB
1/2
y
=!Ax + B
X = x, Y = y 1/2 !
y
y
In
= Dx + In(C)
X = x, Y = In
x
x
B
C = e , D = A
!
!
L
L
In
1 = Ax + In(C) X = x, Y = In
1
y
y
C = B

(Mathews, p. 292)

26. Para el conjunto de datos que se muestra al nal del enunciado, determine la curva de cada familia que mejor se les ajusta en el sentido de
los mnimos cuadrados.
a)

y = CeAx

b)

y = CxA

c)

Use la suma de los cuadrados de los errores

E=

n
P

e2i

i=1
minar cul de las dos curvas se les ajusta mejor.

150

para deter-

Anlisis Numrico con MATLAB


xi

yi

0.6

1.9

4.3

7.6

12.6

27. Para el conjunto de datos que se muestra al nal del enunciado, determine la curva de cada familia que mejor se les ajusta en el sentido de
los mnimos 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 cul


de las curvas se les ajusta mejor.

xi
yi

-1

6.62

3.94

2.17

1.35

0.89

28. Cuando una poblacin


lmite

L,

t
P (t)

no puede crecer ms halla de un cierto

P (t) es una
P (t) = L/(1 + CeAt ).

la grca de la funcin

logstica, de ecuacin
Calcule

P (t)

para los siguientes datos, siendo

200

400

650

850

950

151

curva, llamada curva

L = 100.

CAPITULO 4. INTERPOLACIN Y AJUSTES DE CURVAS

152

Capitulo

Integracin y Diferenciacin Numrica


En este captulo se estudia el siguiente problema. Dados algunos valores
de una funcin

en ciertos puntos, cmo usar esta informacin para obtener


Zb

una estimacin de su derivada

f 0 (c)

f (x)dx.

o una integral

5.1. Integracin numrica


El objetivo de esta seccin es aproximar la integral denida de una funcin
Zb

f (x)

en un intervalo

[a, b]

f (x)dx.

es decir

f (x) es difcil o imf (x) esta dada como un conjunto

Los mtodos de integracin numrica se usan cuando


posible de integrar analticamente, o cuando

de valores tabulados. La estrategia acostumbrada para desarrollar frmulas


para la integracin numrica consiste en hacer pasar un polinomio por puntos denidos de la funcin y luego integrar la aproximacin polinomial de la
funcin.

5.1.1. Regla del trapecio


Considrese la funcin f en el intervalo [a, b], con los puntos (a, f (a)) y
(b, f (b)) se construye el polinomio de Lagrange de grado uno. f (x) = P1 (x) +
153

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

E,

donde

f (x) =

es el error en la aproximacin

(x b)
(x a)
f 00 (z)
f (a) +
f (b) +
(x a)(x b),
ab
ba
2

a<z<b

ahora,

Zb

Zb 
f (x)dx =


Zb 00
(x a)
f (z)
(x b)
f (a) +
f (b) dx +
(x a) (x b)dx
ab
ba
2
a

# b

 b


(x b)2
(x a)2
f 00 (z) x3 (b + a) 2

=
f (a) +
f (b) +

x + abx

2 (a b)
2 (b a)
2
3
2
a
a


(a b)
(b a)
f (b)
f (a) 0 +
= 0+
2
2


a3 (b + a) 2
f 00 (z) b3 (b + a) 2
2
2

b + ab
+
a a b
2
3
2
3
2
"
#
(b a)
f 00 (z)
(b a)3
=
[f (b) + f (a)] +

2
2
6
"

Zb

(b a)
f (x)dx
[f (b) + f (a)],
2

00

f (z)

3

E=
(b a)
12

a<z<b

Zb
si

h = b a,

entonces



h3
h

00
f (x)dx [f (b) + f (a)], E = f(z)

12
2

a
La expresin que aproxima el valor de la integral se conoce como

regla

del trapecio, porque geomtricamente se puede interpretar que se aproxima


el rea bajo la curva por el rea bajo un polinomio de grado uno

P1 (x)

y la

gura que resulta es un trapecio. En la gura 5.1 se observa la interpretacin


geometrica de la regla del Trapecio.

5.1.2. Regla de Simpson


Una forma evidente de mejorar la aproximacin de una integral es con
una mejor aproximacin para el integrando
un polinomio de grado

2.

f (x).

Esto se puede lograr con

La parabola que aproxima el area, se puede ver en

la gura 5.2.

154

Anlisis Numrico con MATLAB

f
P1

x
a = x0

x1 = b

Figura 5.1: Ilustracin de la Regla del Trapecio

Considrese la funcin

f (x)

en el intervalo

[a, b]

x0 = a, x1 = x0 + h,

ba
. Con los puntos (x0 , f (x0 )), (x1 , f (x1 )) y (x2 , f (x2 ))
2
polinomio de Lagrange de grado 2,

x2 = b, donde h =
se construye el

P2 (x) =

ahora

R x2
x0

(x x1 ) (x x2 )
(x x0 ) (x x2 )
f (x0 ) +
f (x1 )+
(x0 x1 ) (x0 x2 )
(x1 x0 ) (x1 x2 )
(x x0 ) (x x1 )
f (x2 )
(x2 x0 ) (x2 x1 )

f (x)dx

R x2
x0

P2 (x) dx. La integral del polinomio se resuelve usan155

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

f
P2

x
a = x0

x1

x2 = b

Figura 5.2: Ilustracin de la Regla de Simpson

do el mtodo de integracin por partes y resulta:

Zx2
x0

"
#
f (x0 )
(x x1 ) (x x2 )2 (x x2 )3
P2 (x) dx =

(x0 x1 ) (x0 x2 )
2
6
"
#
f (x1 )
(x x2 )2 (x x2 )3
+

(x x0 )
(x1 x0 ) (x1 x2 )
2
6
"
# x2
f (x2 )
(x x1 )2 (x x1 )3
+
(x x0 )



(x2 x0 ) (x2 x1 )
2
6
x0

156

Anlisis Numrico con MATLAB


"

#
(x0 x1 ) (x0 x2 )2
(x0 x2 )3
= f (x0 )
+
2 (x0 x1 ) (x0 x2 ) 6 (x0 x1 ) (x0 x2 )
"
#
(x0 x2 )3
+ f (x1 )
6 (x1 x0 ) (x1 x2 )
#
"
(x2 x0 ) (x2 x1 )2
(x2 x1 )3
(x0 x1 )3
+ f (x2 )

+
2 (x2 x0 ) (x2 x1 ) 6 (x2 x0 ) (x2 x1 ) 6 (x2 x0 ) (x2 x1 )
"
#
(x0 x2 )
(x0 x2 )2
= f (x0 )
+
2
6 (x0 x1 )
"
#
(x0 x2 )3
+ f (x1 )
+
6(x1 x0 ) (x1 x2 )
"
#
(x2 x1 )
(x2 x1 )2
(x0 x1 )3
f (x2 )

+
2
6 (x2 x0 ) 6 (x2 x0 ) (x2 x1 )
reemplazando

x1 = x0 + h, x2 = x0 + 2h:
Zx2

h
4
h
P2 (x)dx = f (x0 ) + f (x1 ) h + f (x2 )
3
3
3

x0

Zx2
Luego,

h
P2 (x)dx = [f (x0 ) + 4f (x1 ) + f (x2 )]
3

Por lo tanto,

x0

Zx2

h
f (x)dx [f (x0 ) + 4f (x1 ) + f (x2 )],
3

h=

ba
2

(5.1)

x0
Esta expresin se conoce como Regla de Simpson.
El error en la aproximacin es



h5



E = f (z)(4) ,
90

Ejemplo 5.1.1. Aproximar

Z2

x0 < z < x2

3
dx usando:
4x

a) La regla del Trapecio.


157

(5.2)

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

b) La regla de Simpson.
Encuentre tambin una cota para el error en cada aproximacin.
a) Para la regla del trapecio.

Zb
f (x)dx

(b a)
(f (a) + f (b)),
2

entonces

Z2

3
(2 0)
dx
4x
2

3 3
+
4 2


= 2.25

0
Cota para el error:


00

f (z)
3
3

(b a) , a < z < b f (x) =
E=
12
4x




6
3
E =
(2

0)
, 0 < z < 2
12(4 z)3


1
1
E 6 0.5
porque
6 3,0 < z < 2
(4 z)3
2

00

f(x) =

0.5
(4 x)3

b) Para la regla de Simpson


Zx2
f (x) dx =

h
[f (x0 ) + 4f (x1 ) + f (x2 )],
3

x0

h=

ba
= 1,
2
Z2

a = x0 = 0,

b = x2 = 2

x1 = x 0 + h = 1



3
1 3
3 3
dx
+4 +
2.0833
4x
3 4
3 2

0
Cota para el error:

5

h (4)
3
E = f(z) , x0 < z < x2 f (x) =
90
4x
5

1

72
E =
0<z<2
90 (4 z)5
158

(4)

f(x) =

72
(4 x)5

Anlisis Numrico con MATLAB





1
1
E 6 0.025
porque
6 5,
0<z<2
(4 z)5
2
Z2
3
dx = 3 ln |4 x||20
El valor real de la integral es
4x
0

2.07944

f (x) = mx + c ya
que el trmino de error contiene f (z) y en este caso f (x) = 0 y el error sera
La regla del trapecio es exacta para funciones lineales
00

00

cero. Por otro lado, la regla de Simpson es exacta para funciones polinmicas
(4)
de grado menor o igual a 3, ya que el error contiene f(z) y la cuarta derivada
de un polinomio de grado menor o igual que 3 es cero.

Una manera de mejorar la aproximacin de una integral denida de una


funcin

en un intervalo

[a, b],

consiste en dividir el intervalo

[a, b]

en varios

subintervalos y aplicar en cada subintervalo la regla del trapecio o la regla de


Simpson. Estos mtodos se conocen como regla compuesta o extendida del
trapecio y de Simpson respectivamente.

5.1.3. Regla compuesta del Trapecio


Suponga que se quiere aproximar

Rb

f (x)dx. Primero se divide el intervalo

a
ba
y luego se aplica la regla
n
del trapecio en cada subintervalo (gura 5.3) Generando los puntos xi =

[a, b]

en

subintervalos de igual longitud

a + i h = x0 + i h

con

Zb
a

i = 0, 1, 2, . . . , n
Zx2

Zx1
f (x)dx =

Zb
f (x)dx + +

f (x)dx +
a

h=

x1

f (x)dx

xn1

Cada una de las integrales del lado derecho se puede aproximar usando

159

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

Figura 5.3: Ilustracin de la regla compuesta del Trapecio

la regla del trapecio,

Zb
f (x)dx

h
h
h
[f (a) + f (x1 )] + [f (x1 ) + f (x2 )] + + [f (xn1 ) + f (b)]
2
2
2

Zb
a

"
#
n1
X
h
f (x)dx
f (a) + f (b) + 2
f (xi )
2
i=1
h=

ba
,
n

xi = a + ih,

i = 1, 2, . . . , n

A esta frmula se la conoce como regla compuesta del trapecio. Para


hallar el error

en la aproximacin, se deben tener en cuenta los errores en

cada subintervalo, es decir:

n
h3 00
h3 00
h3 00
h3 X 00
E = f (z1 ) f (z2 ) f (zn ) =
f (zi )
12
12
12
12 i=1
160

(5.3)

Anlisis Numrico con MATLAB


a < z1 < x1 ,
en general

x1 < z2 < x2 ,
xi1 < zi < xi

Si la segunda derivada de

...

xn1 < zn < b


i = 1, 2, . . . , n
continua en [a, b],

para

es

entonces por el teorema

00

del valor extremo f tiene un valor mximo y un valor mnimo en [a, b], y
se cumple m
n{f 00 (x)} 6 f 00 (z) 6 max{f 00 (x)} para x [a, b], y para cada
subintervalo

mn{f 00 (x)} 6 f 00 (z1 ) 6 max{f 00 (x)},

para

z1 [x0 , x1 ]

para

z1 [xn1 , xn ]

.
.
.

mn{f 00 (x)} 6 f 00 (zn ) 6 max{f 00 (x)},


En los

subintervalos se tiene que:

n(min{f 00 (x)}) 6
mn{f 00 (x)} 6

n
X

f 00 (zi ) 6 n(max{f 00 (x)})

i=1
n
X

1
f 00 (zi ) 6 max{f 00 (x)}
n i=1

Por el teorema del valor intermedio existe un

(a, b)

1 X 00
f () =
f (zi ),
n i=1
00

luego

00

nf () =

tal que

n
X

f 00 (zi ).

i=1

Si esta expresin se reemplaza en el error de la frmula compuesta del trapecio:

E=

como
que:

h=

n
h3 X
h3
f 00 (zi ) = n(f 00 ()),
12 i=1
12

a<<b

ba
ba
, n =
y reemplazando este valor en
n
h


(b a)



2 00
E=
h f () ,
a<<b
12

161

el error, se tiene

(5.4)

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

5.1.4. Regla compuesta de Simpson


Si se quiere aproximar

Rb

f (x)dx

a
luego se divide el intervalo [a, b] en

primero se selecciona un entero

par,

subintervalos y se aplica la regla de

Simpson en cada par consecutivo de subintervalos (vase gura 5.4).

Figura 5.4: Ilustracin de la regla compuesta de Simpson

Cada una de las integrales del lado derecho se puede aproximar usando
la regla de simpson.

162

Anlisis Numrico con MATLAB

Zb
f (x)dx

h
h
[f (x0 ) + 4f (x1 ) + f (x2 )] + [f (x2 ) + 4f (x3 ) + f (x4 )] +
3
3

+
Zb
f (x)dx

h
[f (xn2 ) + 4f (xn1 ) + f (xn )]
3
h
[f (x0 ) + f (xn ) + 2f (x2 ) + 2f (x4 ) +
3

+ 2f (xn2 ) + 4f (x1 ) + 4f (x3 ) + + 4f (xn1 )]


Luego,

Zb
f (x)dx
a

n
1
2

n
2

X
X
h
f (x0 ) + f (xn ) + 2
f (x2i ) + 4
f (x2i1 )
3
i=1
i=1

(5.5)

A la ecuacin (5.5) se le conoce como regla compuesta de Simpson.


El error en la aproximacin esta dado por:
n
2
h5 X
h5
h5
h5
f (4) (zi )
E = f (4) (z1 ) f (4) (z2 ) f (4) (z n2 ) =
90
90
90
90 i=1

x0 < z1 < x2 , x2 < z2 < x4 , xn2 < z n2 < xn , x2i2 < zi < x2i
n
para i = 1, 2, 3, . . . ,
2
Si la cuarta derivada de f en [a, b] es continua, entonces por el teorema
(4)
del valor extremo f
tiene un valor mximo y un valor mnimo en [a, b].
Con un procedimiento analogo al expuesto en el error de la regla compuesta del trapecio se muestra que:
n
2
 X
n
n
(4)
mn{f (x)} 6
f (4) (zi ) 6 (max{f (4) (x)})
2
2
i=1

x [a, b]

mn{f

(4)

2
2X
(x)} 6
f (4) (zi ) 6 max{f (4) (x)}
n i=1

Por el teorema del valor intermedio existe un


n
2

f (4) () =

(a, b)
n
2

2 X (4)
f (zi ),
n i=1

tal que:

X
n (4)
f () =
f (4) (zi ).
2
i=1
163

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

Si esta expresin se reemplaza en el error de la frmula compuesta de Simpson, entonces resulta:

h5 n (4)
ba
f (),
a < < b,
como n =
90 2
h
5
4
h (b a) (4)
h
E=
f () =
(b a)f (4) ()
90 2h
180

E=

Por lo tanto el error en la regla compuesta de Simpson es:

4

h

(4)

E=
(b a)f () ,
180

Ejemplo 5.1.2. Aproximar

Z2

3
4x

a<<b

(5.6)

dx usando la regla compuesta del trapecio

con n = 4. Halle una cota para el error en la aproximacin.


3
f (x) =
4x
Zb
a

Z2

a=0
b=2
n=4

h=

ba
n

h=

2
= 0.5
4

"
#
"
#
n1
3
X
X
h
h
f (x)dx
f (a) + f (b) + 2
f (xi ) =
f (a) + f (b) + 2
f (xi )
2
2
i=1
i=1




3
0.5 3 3
3
3
3
dx
+ +2
+ +
4x
2 4 2
3.5 3 2.5

Z2

3
dx 2.091
4x

El error en la aproximacin es:


2

h

6
00
E = (b a)f () , a < < b
f 00 () =
12
(4 )3


2
(0.5)

6
, 0 < < 2
E =
(2 0)
12
(4 )3
1
E6
= 0.03125.
32
164

Anlisis Numrico con MATLAB

Ejemplo 5.1.3. Determine los valores de n y h que se requieren para aproximar

Z2

3
dx con un error no mayor de 104 usando la regla compuesta
4x

de Simpson.
4

h

(4)

E=
(b a)f () , a < < b.
180

4

2

72


E = n (2 0)
,
5
180
(4 )
E6

2
,
5n4

a=0
b=2
ba
h=
n

0<<2

f (x) =
h=

3
4x

2
n

f (4) (x) =

72
(4 x)5

como el error debe ser menor o igual a 104 entonces:


2
6 104 , n > 7.952 . . . ,
4
5n

se puede tomar n > 8; y h =

2 2
= = 0.25.
n 8

5.1.5. Mtodos adaptativos


Suponga que se desea calcular una estimacin numrica

de la integral

denida

Zb
I=

f (x)dx
a

tal que el error

E = |I Q| sea menos que cierta tolerancia prejada. Para

esto se desarrolla un esquema de integracin que surge teniendo presente que


en aquellas regiones del intervalo de integracin donde el integrando

no

presenta grandes variaciones se pueden tomar subintervalos grandes y que


en regiones donde la variacin de

esgrande podemos tomar subintervalos

pequeos de manera tal que la suma de las contribuciones al error total


sea menor que la tolerancia prejada. Los procedimientos de integracin que
adaptan la longitud de los subintervalos al comportamiento del integrando
se llaman, mtodos adaptativos de cuadratura. El mtodo adaptativo que
se desarrollara en esta seccin se contruyo a partir de la regla de Simpson

165

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

denida en (5.1).

a+b
ba
y h =
entonces, la regla de Simpson calculada entre
2
2
se denotara por S(a, b).
sea

c=

S(a, b) =

h
(f (a) + 4f (c) + f (b))
3

Adems, la aproximacin a la integral, junto con el termino de error dado en


(5.2), permite expresar la integral de la forma:

Zb
f (x)dx = S(a, b)

h5 (4)
f (z)
90

(5.7)

a
Tomando n = 4 en la formula de Simpson compuesta dada en (5.5), se
Rb
tiene que
f (x)dx es igual a:
a

 
h
2




 

 
h
3h
ba
f (a) + 2f (a + h) + 4 f a +
+f a+
+ f (b)
h4 f (4) (z1 )
3
2
2
180
 
 
h 
h 





   4
h
3h
h h (4)
2
2
=
f (z1 )
f (a) + 4f a +
+ f (a + h) +
f (a + h) + 4f a +
+ f (b)
3
2
3
2
90 16
=

As

Zb


f (x)dx = S(a, c) + S(c, b)

1
16

h5 (4)
f (z1 )
90

(5.8)

a
Haciendo

z = z1

e igualando (5.7) y (5.8),

  5
h5 (4)
1 h (4)
S(a, b) f (z) = S(a, c) + S(c, b)
f (z)
90
16 90
  5
1 h (4)
1 5 (4)
S(a, b) S(a, c) S(c, b) = h f (z)
f (z)
90
16 90
  5
15 h (4)
S(a, b) S(a, c) S(c, b) =
f (z)
16 90
de donde

h5 (4)
f (z) =
90

16
15


(S(a, b) S(a, c) S(c, b))
166

(5.9)

Anlisis Numrico con MATLAB


Reemplazando (5.9) en (5.8) se obtiene:

Zb


f (x)dx = S(a, c) + S(c, b)

1
16



16
15


(S(a, b) S(a, c) S(c, b))

b

Z
 


f (x)dx S(a, c) S(c, b) = 1 |S(a, b) S(a, c) S(c, b)|


15


a

por lo tanto, si

para algn

> 0,

1
15


|S(a, b) S(a, c) S(c, b)| <

se garantiza que

b

Z



f (x)dx S(a, c) S(c, b) <




a

S(a, c)+S(c, b) es una aproximacin de la integral de f (x)entre


b, controlada por el valor que se le de a .

de esta forma

Algoritmo 15 (Algoritmo de integracin adaptativa). La siguiente funcin

tiene como valores en entrada: a, b que son las cordenadas donde se desea
aproximar la integral de la funcin F(x) y la tolerancia tol. La variable de
salida es A y representa la aproximacin del area.
function A=quadratura(a,b,tol)
x=linspace(a,b,1000);
y=F(x);
plot(x,y)
grid on
hold on
axis([a,b,0,max(y)])
t=15*tol;
parar=0;
A=0;
in=a;
fi=b;
167

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

end

h=(b-a)/2;
k=1;
int=1;
while parar<(b-a)
x1=[in,(in+fi)/2,fi];
x2=[in,(in+x1(2))/2,x1(2)];
x3=[x1(2),(x1(2)+fi)/2,fi];
c=abs(simpson(x1)-simpson(x2)-simpson(x3));
if c>t
in=x1(1);
fi=x1(2);
h=h/2;
int=1;
else
A=A+simpson(x2)+simpson(x3);
y1=F(x1);
plot(x1,y1,'.r')
H(k)=2*h;
k=k+1;
parar=parar+x1(3)-x1(1);
in=x3(3);
if int==0
h=h*2;
end
fi=x3(3)+2*h;
int=0;
end
end

Ejemplo 5.1.4. Considere la funcin f (x) = sin2

en el intervalo [0.1, 2]
con una tolerancia
R = .001. Utilice el Algoritmo anterior para calcular una
aproximacin de ab f (x)dx y modique el algoritmo para que calcule la graca
de la funcin y los intervalos generados por el mtodo adaptativo.
Se generan los subintervalos:
[0.1, 0.1297], [0.1297, 0.1594], [0.1594, 0.2187], [0.2187, 0.3375], [0.3375, 0.575],
[0.575, 1.05], [1.05, 2]. En cada subintervalo se calcula el metodo de Simpson
y luego se suman los resultados. El area aproximada es: A = 1.0321.
168

1
x

Eje Y

Anlisis Numrico con MATLAB

Eje X

Figura 5.5:

f (x) = sin2 ( x1 )

MATLAB posee la funcin


cin

un intervalo

[a, b]

en el intervalo

[0.1, 2]

A = quad('F',a,b,tol),

= .001

que dada una fun-

y una tolerancia, calcula el area aproximada

A,

utilizando el mtodo adaptativo antes descrito. Si utilizamos los valores del


ejemplo anterior, obtenemos:

>> A = quad('F',.1,2,0.001)
A =
1.0315

5.2. Diferenciacin numrica


En los cursos de clculo se dene la derivada de

f (x0 + h) f (x0 )
x0
h

f 0 (x0 ) = lm

169

en

x0

como
(5.10)

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

Una manera razonable de aproximar la derivada, es tomar un

sucien-

temente pequeo y calcular (5.10).

f 0 (x0 )

f (x0 + h) f (x0 )
h

Para el caso de una funcin lineal,

f (x) = ax + b,

(5.11)

la aproximacin dada por

la expresin (5.11) resulta exacta para cualquier valor de


Pero para cualquier funcin

distinto de cero.

en general no siempre resulta exacta.

A continuacin se hace una estimacin del error asociado a la aproximacin dada por (5.11) usando el teorema de Taylor con un polinomio de grado

1.
f (x) = f (x0 )+f 0 (x0 )(xx0 )+
si

x = x0 + h, x x0 = h,

f 00 (z)
(xx0 )2 ,
2

f 00 (z) 2
h,
f (x0 + h) = f (x0 ) + f (x0 )h +
2

f 0 (x0 ) =

f 0 (x0 )

(5.12)

reemplazando en (5.12), obtenemos:

si se despeja

x0 < z < x

x0 < z < x0 + h

entonces:

f (x0 + h) f (x0 ) f 00 (z)

h,
h
2

x0 < z < x0 + h

(5.13)

Observe que la ecuacin (5.13) es ms til que la ecuacin (5.11), ya que


tiene un trmino que cuantica el error y este se conoce como trmino de
error.

f (x0 + h) f (x0 )
f (x0 )
h
0

00

f (z)
E =
h :
2

error

Ejemplo 5.2.1. Si se utiliza la frmula (5.11) para calcular la derivada de


f (x) = senx en
x = 4 y con h = 0.01. Cul es la respuesta y cul es su grado de precisin

o error?

170

Anlisis Numrico con MATLAB

f (x) = sen x
x0 = 4 , h = 0.01


sen 4 + 0.01 sen 4
f (x0 + h) f (x0 )
f (x0 )
=
= 0.703559491
h
0.01
f 0 (x) = cos x
f 00 (x) = sen x
00

0.01
f (z) sen z



E=
h =
(0.01) 6
= 0.005 (Porque |sen z| 6 1)
2
2
2
0

Se puede obtener una cota ms precisa usando el hecho que


x0 < z < x0 + h

< z < 4 + 0.01, de modo que | sen z| < 0.714142376 y la cota sera
4
0.714142376
sen z


(0.01) <
(0.01) = 0.003570712
E=
2
2

Observe que si f (x) = sen x, f (x) = cos x entonces f 0 (x0 ) = f 0 (/4) =


cos 4 = 0.707106781. El error real es: 0.7071067810.703559491 = 0.003547290186.
0

Se puede obtener otra frmula para aproximar la derivada usando la ecuacin (5.12),

f (x) = f (x0 ) + f 0 (x0 ) (x x0 ) +


si

x = x0 h, x x0 = h,

reemplazando el valor de

f (x0 h) = f (x0 ) f 0 (x0 )h +


si se despeja

f (x0 )

f 00 (z)
(x x0 )2
2

f 00 (z) 2
h,
2

se tiene:

x0 h < z < x0 ,

resulta:

f (x0 ) f (x0 h) f 00 (z)


f (x0 ) =
+
h
h
2
00

f (z)
f (x0 ) f (x0 h)
0

f (x0 )
E=
h
h
2
0

A la aproximacin (5.11) se le llama frmula de

lante

(5.14)

diferencia hacia de-

y a la aproximacin dada por (5.14) se le conoce como frmula de

171

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

diferencia hacia atrs, ambas frmulas presentan el mismo error. Se puede obtener otra frmula para aproximar la derivada con un error que involucre
h2 usando un polinomio Taylor de grado 2 as:

f (x) = f (x0 ) + f 0 (x0 )(x x0 ) +


x = x0 + h

Si se reemplaza

f 00 (x0 )
f 000 (z)
(x x0 )2 +
(x x0 )3
2
6

x = x0 h

(5.15)

en (5.15) resulta:

f 00 (x0 ) 2 f 000 (z1 ) 3


h +
h,
2
6
f 00 (x0 ) 2 f 000 (z2 ) 3
h
h,
f (x0 h) = f (x0 ) f 0 (x0 )h +
2
6
f (x0 + h) = f (x0 ) + f 0 (x0 )h +

x0 < z1 < x0 + h
x0 h < z2 < x0

Si se restan las anteriores ecuaciones, se tiene:

1
f (x0 + h) f (x0 h) = 2f 0 (x0 )h + h3 (f 000 (z1 ) + f 000 (z 2 )),
6
x0 h < z2 < x0 < z1 < x0 + h.
Ahora se despeja

f (x0 )

y se obtiene:

f (x0 + h) f (x0 h) 1 2 000 1


h f (z) x0 h < z < x0 + h. (5.16)
2h
6


f 000 (z)
f
(x
+
h)

f
(x

h)
0
0


x0 h < z < x0 + h
f 0 (x0 )
E=
h2 ,


2h
6
La anterior frmula para aproximar la derivada de f se la conoce como dif 0 (x0 ) =

ferencia centrada.

A continuacin se muestra el anlisis de los errores por truncamiento y


redondeo que ocurren al aproximar la derivada.
Considere la ecuacin de diferencias centradas (5.16).

f 0 (x0 ) =
1 Si

000

000

f (x0 + h) f (x0 h) 1 2 000


h f (z)
2h
6

es continua en
000

[x0 h, x0 + h],

dado que

x0 h < z < x0 + h
000

000

1/2[f (z1 ) + f (z2 )]

se encuentra

f (z1 ) y f (z2 ), el teorema del valor intermedio garantiza que existe un numero z
000
000
000
entre z2 y z1 y por lo tanto en (x0 h, x0 + h) que satisface f (z) = 1/2[f (z1 ) + f (z2 )].
entre

172

Anlisis Numrico con MATLAB


La aproximacin a la derivada es f (x0 + h) f (x0
h2 000
aproximacin es
f (z). El error se denomina

h)/2h,

y el error en la

error por truncamiento

por que es provocado por el truncamiento de la serie de Taylor. La precisin


nita de la mquina produce otro error denominado

error por redondeo.

f (x + h) f (x h) en el numerador
evaluar f (x + h) y f (x h) se encuentra

Este error aparece en el clculo de


de la aproximacin ya que si al
que

e(x0 + h)

e(x0 h)

calculados en la mquina

son los errores del redondeo, entonces los valores

f (x + h)

f (x h)

se relacionan con los valores

verdaderos por las ecuaciones:

f (x0 + h) = f (x0 + h) + e(x0 + h),


f (x0 h) = f (x0 h) + e(x0 h)
f (x0 + h) f (x0 h) e(x0 + h) e(x0 h)
f (x0 + h) f (x0 h)
=
+
2h
2h
2h
Luego el error total en la aproximacin es:

f 0 (x0 )

e(x0 + h) e(x0 h)
f (x0 + h) f (x0 h)
=

2h
2h
|
{z
}
error por redondeo

h2 000
f (z)
|6 {z }

error por truncamiento

Como se puede apreciar, tiene una parte debida al error del redondeo y otra
al error de truncamiento. Si se supone que los errores de redondeo
estn acotados por algn nmero
acotada por

M > 0,

> 0

y la tercera derivada

e(x0 h)
de f esta

entonces:


2


h 000 h2
e(x0 + h) e(x0 h) 2

6



2h = h y 6 f (z) 6 6 M

2h



h2
f
(x
+
h)

f
(x

h)
0
0
0

por lo tanto f (x0 )
6 + M.

h
2h
6
Si la cota para el error se denota con e(h), entonces:
e(h) =

h2
+ M
h
6

Si se quisiera reducir el error de truncamiento


de

pequeo, pero al mismo tiempo un

173

h2 000
f (z)
6

se escogera un valor

pequeo hace que el error por

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

sea grande. En la prctica muy pocas veces se elige un h muy


h
pequeo. Si se analiza la expresin e(h), se puede usar el clculo para vericar

redondeo

3 3
h=
(Ver ejercicio 5 de este captulo).
M
Como los valores de f se dan normalmente con t cifras decimales se puede
t
suponer que el error de redondeo est acotado por = 0.5 x 10 .
En la prctica no es posible calcular un valor ptimo h ya que slo se
conocen algunos valores de f y no se conoce la tercera derivada. Lo que se
debe tener presente es que con la reduccin de h no siempre se mejora la

que hay un mnimo en

aproximacin.

5.3. Ejercicios
1. Use las frmulas de diferencia progresiva y de diferencia regresiva para
determinar las aproximaciones con que se completarn las siguientes
tablas.

a) x

f (x)

(x)

b) x

f (x)

0.5

0.4794

0.0

0.00000

0.6

0.5646

0.2

0.74140

0.7

0.6442

0.4

1.3718

(x)

2. Los datos del ejercicio 1 se tomaron de las siguientes funciones. Calcule


los errores reales del ejercicio 1 y obtenga las cotas de error por medio
de las frmulas de error.

a ) f (x) = sen x
b ) f (x) = ex 2x2 + 3x 1
0
3. Use los datos del ejercicio 1 a) y aproxime f (0.6) y con los datos del
0
ejercicio 1 b) aproxime f (0.2) usando la frmula de diferencia centradas. Obtenga las cotas de error por medio de la frmula de error.
4. Analice los errores de redondeo, para la frmula

f (x0 + h) f (x0 ) h 00
f (z)
h
2
ptimo de h en funcin de M, una cota

f 0 (x0 ) =
Encuentre el valor

(x0 , x0 + h)
174

para

f 00

en

Anlisis Numrico con MATLAB


5. Examine detenidamente la funcin

e (h) =

h2
+ M
h
6

M es una cota depla tercera derivada de una funcin, demuestre


e(h) es mnimo en 3 3/M

Donde
que

E = E(t) en un circuito elctrico obedece la ecuacin E(t) =


L(dI/dt) + RI(t), donde R es la resistencia, L es la inductancia e I es
la intensidad de corriente. Considere L = 0.05 henrios, R = 2 ohmios
y los valores de la intensidad I(t), en amperios, que se relacionan en la

6. El voltaje

tabla siguiente.

I(t)

1.0

8.2277

1.1

7.2428

1.2

5.9908

1.3

4.5260

1.4

2.9122

a)

Determine

I 0 (1.2)

mediante derivacin numrica y use este valor

para calcular E(1.2). Use la frmula de diferencia centrada.

b)

Compare su respuesta con la que se obtiene sabiendo que la ext/10


presin de I(t) es I(t) = 10e
sen(2t).

7. Demuestre que

f 0 (x0 )

se puede aproximar por

f (x0 + 2h) + 8f (x0 + h) 8f (x0 h) + f (x0 2h)


12h


h4 f (5)
(z)

error en la aproximacin es E =

30

f 0 (x0 )

y que el

Sugerencia: Suponga que

se puede derivar cinco veces y use la frmula

f alrededor de x0 para f (x0 + h),


f (x0 + h) - f(x 0 h) y f (x0 + 2h) - f(x 0 2h).

de Taylor de cuarto orden para

f(x 0 h).

Calcule

Multiplique la primera expresin por 8 y reste la segunda expresin


para eliminar la tercera derivada.

175

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

fx (x, y) de f (x, y) con respecto a x se obtiene manx. Anlogamente, fy (x, y) se


manteniendo x jo y derivado con respecto a y . La frmula de

8. La derivada parcial
teniendo
obtiene

jo y derivando con respecto a

diferencias centradas puede adaptarse para calcular derivadas parciales:

fx (x, y)

f (x+h,y)f (xh,y)
2h

fy (x, y)

f (x,y+h)f (x,yh)
2h

(i)

a)

f (x, y) = xy/(x + y). Calcule aproximaciones a fx (2, 3) y


fy (2, 3) usando las frmulas de la relacin (I)
con h = 0.1, h = 0.01 y h = 0.001. Compare los valores obtenidos
Sea

con los exactos.

b)

z = f (x, y) = arctan(y/x) con z medido en radianes. Calcule


fx (3, 4) y fy (3, 4) usando las frmulas dadas en
con h = 0.1, h = 0.01 y h = 0.001. Compare los resultados

Sea

aproximaciones a

obtenidos con los valores exactos.


9. Aproxime las siguientes integrales aplicando la regla del trapecio

Z1.5
a)
x2 In x dx
1
/4

b)

e3x sen 2x dx

0
10. Obtenga una cota del error en el ejercicio 9 aplicando la frmula de
error y comprela con el error real.
11. Repita el ejercicio 9 aplicando la regla de Simpson.
12. Repita el ejercicio 10 usando la regla de Simpson y los resultados del
ejercicio 11
13. La regla del trapecio aplicada a

R2

f (x) dx da el
f (1)?

0
Simpson da el valor 2. Cul es el valor de

valor 4 y la regla de

14. Aplique la regla compuesta del trapecio con los valores indicados de
para aproximar las siguientes integrales.

176

Anlisis Numrico con MATLAB

a)
b

R2

2
dx, n = 6
0 x2 +4
R5 1

)
dx, n = 8
3
x2 4

15. Aplique la regla compuesta de Simpson para aproximar las integrales


del ejercicio 14.
16. Determine los valores de

Z2

que se requieren para aproximar

e2x sen 3x dx

0
Con una exactitud de

a)
b)

104 .

Aplique la regla compuesta del trapecio.


Aplique la regla compuesta de Simpson.

17. Determine los valores de


Con una exactitud de

a)
b)

n y h que se requieren para aproximar

105

R2

1
dx
0 x+4

y calcule la aproximacin.

Aplique la regla compuesta del trapecio.


Aplique la regla compuesta de Simpson.

6
18. Determine con una exactitud de 10 , la longitud de la grca de la
2
2
elipse de ecuacin 4x + 9y = 36.

177

CAPITULO 5. INTEGRACIN Y DIFERENCIACIN NUMRICA

178

Capitulo

Ecuaciones diferenciales ordinarias


En este captulo se pretende hallar una aproximacin

y(t)

del problema de

valor inicial.

dy
= f (t, y),
dt
y(a) =

a6t6b

Al calcular soluciones numricas de ecuaciones diferenciales no se espera hallar una aproximacin continua a la solucin del problema de valor inicial,
si no aproximaciones en algunos puntos especcos. Si se requieren valores
intermedios se puede usar interpolacin de Lagrange, ajuste de curvas, etc.

6.1. Mtodo de la serie de Taylor


Suponga que
se divide en

y(t) es la solucin del problema (6.6) y que el intervalo [a, b]

subintervalos de longitud constante.

179

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

h=

ba
n

ti = a + ih,

De acuerdo con el teorema de Taylor, si

y(x) = y(x0 ) + y 0 (x0 )(x x0 ) +


Si se reemplaza

por

ti+1 , x0

por

Taylor de

i = 0,1,2 . . . , n 1.
grado 1, entonces

Si

tiene derivadas continuas,

y(x0 )(x x0 )2 y 000 (x0 )(x x0 )3


+
+ ...
2!
3!
ti

y(ti+1 ) = y(ti ) + y 0 (ti )h +


para cada

i = 0, 1, 2..., n

ti+1 ti

por

h,

obtenemos:

y(ti ) 2 y 000 (ti ) 3


h +
h +
2!
3!

y(ti+1 )

(6.1)

se aproxima con un polinomio de

y(ti+1 ) y(ti ) + y 0 (ti )h


pero

y 0 (ti ) =

dy(ti )
= f (ti , y(ti ))
dt

por (6.6), luego

y(ti+1 ) y(ti ) + f (ti , y(ti ))h


Usando la notacin

yi = y(ti )

y0 = y(t0 ) = ,

la solucin

y(t)

se puede

aproximar por

yi+1 = yi + hf (ti , yi ),
y0 =

para

180

i = 0, 1, 2, 3 . . . , n 1

(6.2)

Anlisis Numrico con MATLAB


Este mtodo se conoce como el

mtodo de Euler o mtodode Taylor de

1 ( mtodo de las tangentes). Observe que y1 = y0 + hy00 , y2 = y1 + hy10


0
0
0
0
donde y0 = y (t0 ), y1 = y (t1 ).

orden

En la gura

?? se muestran varios pasos del mtodo de Euler. Los puntos

(t1 , y1 ), (t2 , y2 ), . . . , (tn , yn ) son aproximaciones a los puntos


(t1 , y(t1 )), (t2 , y(t2 )), . . . , (tn , y(tn )) en la curva solucin y(t).

Figura 6.1: Mtodo de Euler


Si en la ecuacin (6.1)
grado

y(ti+1 ) se aproxima por un polinomio de Taylor de

resulta:

y(ti ) 2
h , como y 0 = f (t, y) y y = f 0 (t, y) entonces,
2
h2
y(ti+1 ) y(ti ) + hf (ti , y(ti )) + f 0 (ti , y(ti ))
2
y(t) se puede aproximar ahora por:

y(ti+1 ) y(ti ) + y 0 (ti )h +

La solucin

h2 0
yi+1 = yi + hf (ti , yi ) + f (ti , yi ) , para i = 0, 1, 2, ..., n 1
2
y =
0
Este mtodo se conoce como

el mtodo de Taylor de orden 2.


181

(6.3)

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

Ejemplo 6.1.1. La ecuacin diferencial,


dy
= 2ty,
dt
y(1) = 1

1 6 t 6 1.5

Tiene como solucin exacta o analtica a y(t) = et

2 1

, ya que

dy
2
= 2tet 1 = 2ty = f (t, y), adems y(1) = 1.
dt
Si se quiere aproximar la solucin con n = 5, entonces h = 0.1, ti =
1 + 0.1i, f (ti , yi ) = 2ti yi

Si se utiliza el mtodo de Euler entonces:




yi+1 = yi + hf (ti , yi )
y0 =

yi+1 = yi + h(2ti yi )
y0 = 1

y1
y2
y3
y4
y5

i = 0, 1, 2, 3, 4 ti = 1 + 0.1i

= y0 + h(2t0 y0 ) = 1 + 0.1(2(1)(1)) = 1.2


= y1 + h(2t1 y1 ) = 1.2 + 0.1(2(1.1)(1.2)) = 1.4640
= y2 + h(2t2 y2 ) = 1.8154
= y3 + h(2t3 y3 ) = 2.2874
= y4 + h(2t4 y4 ) = 2.9278.

Si se utiliza el mtodo de Taylor de orden 2,




yi+1 = yi + hf (ti , yi ) +
y0 =

h2 0
f (ti , yi )
2

En este ejemplo,
f (t, y) = 2ty
f 0 (t, y) = 2y + 2ty 0 , recuerde que y = y(t)
f 0 (t, y) = 2y + 2t(2ty) = 2y(1 + 2t2 )

,y

dy
= y 0 = f (t, y)
dt

Luego,


yi+1 = yi + h(2ti yi ) + h2 yi (1 + 2t2i ), i = 0, 1, 2, 3, 4;


y0 = 1

y1
y2
y3
y4

= y0 + h(2t0 y0 ) + h2 y0 (1 + 2t20 ) = 1 + 0.1(2(1)(1)) + (0.1)2 (1)(1 + 2(1)2 ) = 1.23


= y1 + h(2ti yi ) + h2 y1 (1 + 2t21 ) = 1.5427
= 1.9728
= 2.5721
182

ti = 1 + 0.1i

Anlisis Numrico con MATLAB


y5 = 3.4188

En la tabla que se presenta a continuacin se muestra la comparacin entre


los valores aproximados en ti y los valores reales y(ti ).
ti

1
1.1
1.2
1.3
1.4
1.5

Euler

Taylor

Valor

Error en

Error

yi

Orden

exacto

Euler

Taylor orden

y(ti )
2
eti 1

|y(ti ) yi |

0.0000
0.0337
0.0887
0.1784
0.3244
0.5625

0.0000
0.0037
0.0100
0.0210
0.0396
0.0715

1.0
1.2
1.4640
1.8154
2.2874
2.9278

yi

1.0
1.23
1.5427
1.9728
2.5721
3.4188

1.0000
1.2337
1.5527
1.9937
2.6117
3.4904

con

|y(ti ) yi |

Si se quiere encontrar una aproximacin a un punto intermedio de la


tabla, por ejemplo en t = 1.35 se puede usar interpolacin lineal en las aproximaciones dadas por el mtodo de Euler o Taylor de orden dos en t = 1.3 y
t = 1.4.
La aproximacin a la solucin en t = 1.35 usando interpolacin lineal y
los resultados del mtodo de Taylor de orden 2 es:
(t 1.3)
(t 1.4)
1.9728 +
2.5721
1.3 1.4
1.4 1.3
(1.35 1.4)
(1.35 1.3)
y(1.35)
1.9728 +
2.5721 = 2.2725.
1.3 1.4
1.4 1.3

y(t)

Algoritmo 16

(Algoritmo de Euler). function [tr,yr]=euler(f,c0,tf,M)


tr(1)=c0(1);
yr(1)=c0(2);
h=(tf-tr(1))/M;
syms t;
syms y;
for i=2:M+1
tr(i)=tr(i-1)+h;
yr(i)=yr(i-1)+h*subs(f,{t,y},{tr(i-1),yr(i-1)});
end
plot(tr,yr,'g')

183

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

6.2. Mtodo de Euler mejorado


La frmula

"

f (ti , yi ) + f (ti+1 , yi+1


)
yi+1 = yi + h
2

donde yi+1 = yi + hf (ti , yi )

#
(6.4)

frmula de Euler mejorada

Se conoce como
. Los valores f (ti , yi ) y

f (ti+1 , y1+1 ) son aproximaciones a la pendiente de la curva en (ti , y(ti )) y

(ti+1 , y(ti+1 ))

por consiguiente el cociente

f (ti , yi ) + f (ti+1 , y1+1


)
2
puede interpretarse como una pendiente promedio en el intervalo entre

ti

ti+1 .
Las ecuaciones en (6.4) pueden visualizarse fcilmente. En la gura 6.2

se muestra el caso en el que i = 0, obsrvese que f (t0 , y0 ) y f (t1 , y1 ) son


pendientes de las rectas que se indican, las cuales pasan por los puntos (t0 , y0 )

y (t1 , y1 )respectivamente.
Tomando un promedio de estas pendientes se obtiene la pendiente de las rec-

tas oblicuas punteadas. En vez de seguir la recta de pendiente m = f (t0 , y0 )

hasta el punto de ordenada y1 obtenida mediante el mtodo de Euler normal, se contina la recta por (t0 , y0 ) con pendiente mprom hasta llegar a t1 ,

examinando la gura parece razonable admitir que y1 es una mejora de y1 .

Se puede decir que el valor de y1 = y0 + hf (t0 , y0 ) predice el valor de


[f (t0 , y0 ) + f (t1 , y1 )]
corrige esta estimacin.
y(t1 ), en tanto que y1 = y0 + h

Ejemplo 6.2.1. Use la frmula de Euler mejorada para aproximar la solucin de

y 0 = 2ty
y(1) = 1

1 6 t 6 1.5,

1 Tomado de Zill, p.371

184

h = 0.1

Anlisis Numrico con MATLAB

Figura 6.2: Mtodo de Euler mejorado

h[f (t0 , y0 ) + f (t1 , y1 )]


2
[2(1)(1) + 2(1.1)(1.2)]
= 1 + 0.1
= 1.232
2
= 1.5479
= 1.9832
= 2.5908
= 3.4509

y1 = y0 + hf (t0 , y0 )

y1 = y0 +
y1
y2
y3
y4
y5

Algoritmo 17

(Algoritmo de Euler mejorado)

function Heun(f,ci,tf,M)
c=0;
yr(1)=ci(2);
[tr,pr]=euler(f,ci,tf,M,c);
h=(tf-tr(1))/M;
syms t;
syms y;
185

y1 = 1 + 0.1(2(1)(1)) = 1.2

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

for i=2:M+1
yr(i)=yr(i-1)+h/2*(subs(f,{t,y},{tr(i-1),yr(i-1)})+subs(f,{t,y},{tr(i),pr(
end
plot(tr,yr,'k')

6.3. Mtodo de Runge-Kutta


Uno de los mtodos numricos ms utilizado y preciso para obtener soluciones aproximadas de las ecuaciones diferenciales es el mtodo de RungeKutta de cuarto orden. Este mtodo consiste en determinar apropiadamente
constantes de manera que una frmula

yi+1 = yi + ak1 + bk2 + ck3 + dk4


h4 , es decir hasta el quinto
termino. Las ki son constantes mltiplos de f (x, y) evaluadas en ciertos punCoincida con un desarrollo de Taylor hasta

tos. El mtodo de cuarto orden de Runge-Kutta simula la presicin de Taylor


4
hasta h y consiste en calcular la aproximcin yi+1 hallando los coecientes

a, b, c, d, m, n

para que las frmulas de Runge-Kutta,

k1 = hf (ti , y)
k2 = hf (ti + mh, y + mk1 )
k3 = hf (ti + nh, y + nk2 )
k4 = hf (ti + ph, y + pk3 )
y(ti + h) y(ti ) ak1 + bk2 + ck3 + dk4 .
Reproduzca Taylor hasta el trmino en

h4 .

(6.5)

Observe que la ltima frmula,

aunque no es una aproximacin polinmica, se encuentra cerca del polinomio


de Taylor de cuarto grado. Observe que
y as sucesivamente. Adems

k2

k3

k2

depende de

k1 ; k3

depende de

k2

implican aproximaciones a la pendiente

en el punto medio del intervalo entre

ti

ti+1 = ti + h.

Teorema 6.1. Dado de valor inicial.


dy
= f (t, y),
dt
y(a) =
186

a6t6b

(6.6)

Anlisis Numrico con MATLAB

Las ecuaciones de Runge-Kutta de orden 4 vienen dadas por:

yi+1
k1
k2
k3
k4

Demostracin.

= yi + 1/6(k1 + 2k2 + 2k3 + k4 )


= hf (ti , yi )
= hf (ti + 1/2h, yi + 1/2k1 )
= hf (ti + 1/2h, yi + 1/2k2 )
= hf (ti + h, yi + k3 )

(6.7)

Sea

F1 = ft + f fy , F2 = ftt + 2f fty + f 2 fyy , F3 = fttt + 3f ftty + 3f 2 ftyy + f 3 fyyy .


y 0 = f (t, y)

Entonces, diferenciando la ecuacin

por Taylor para hallar

y (2) = ft + fy y 0 = ft + fy f = F1
2
y (3) = ftt + 2f fty + fyy
+ fy (ft + f fy ) = F2 + fy F1

y (4) = fttt + 3f ftty + 3f 2 ftyy + f 3 fyyy + fy (ftt + 2f fty + fty2 + f 2 fyy )


+ 3(ft + f fy )(fty + f fyy ) + fy2 (ft + f fy )
= F3 + fy F2 + 3F1 (fty + f fyy ) + fy2 F1 .
Luego la serie de Taylor es:

1
1
y(t + h) y(t) = hf + h2 F1 + h3 (F2 + F1 )
2
6
1 4
+ h [F3 + fy F2 + 3F1 (fty + f fyy ) + fy2 F1 + ...].
24
Retomando los distintos valores de

k,

187

los cuales se obtienen con clculos

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

similares,

k1 = hf
1
1
k2 = h[f mhF1 + m2 h2 F2 + m3 h3 F3 + ...]
2
6
1 2 2
k3 = h[f + nhF1 + h (n F2 + 2mnfy F1 )+
2
1 3 3
+ h (n F3 + 3m2 nfy F2 + 6mn2 (fty + f fyy )F1 ) + ...]
6
1
k4 = [f 0 + phF1 + h2 (p2 F2 + 2npfy F1 )+
2
1 3 3
2
+ h (p F3 + 3n fy F2 + 6np2 F1 (fty + f fyy ) + 6mnpfy2 F1 )...].
6

(6.8)

Combinando la ecuacin (6.8) como lo sugiere la ltima frmula de RungeKutta,

y(t + h) y(t) =(a + b + c + d)hf + (bm + cm + dp)h2 F1 +


1
1
+ (bm2 + cn2 + dp2 )h3 F2 + (bm3 + cn3 + dp3 )h4 F3 +
2
6
1
+ (cmn + dnp)h3 fy F1 + (cm2 n + dn2 p)h4 fy F2 +
2
2
2 4
+ (cmn + dnp )h (fty + f fyy )F1 + dmnph4 fy2 F1 + ...
La comparacin Taylor sugiere ahora las ocho condiciones

a+b+c+d=1
bm + cn + dp = 1/2
mb2 + cn2 + dp2 = 1/3
bm3 + cn3 + dp3 = 1/4
cmn + dnp = 1/6
cmn2 + dnp2 = 1/8
cm2 n + dnp2 = 1/12
dmnp = 1/24.

(6.9)

Luego el conjunto solucin clsico es

m = n = 1/2, p = 1, a = d = 1/6, b = c = 1/3


188

(6.10)

Anlisis Numrico con MATLAB


Que lleva a las frmulas de Runge-Kutta, ecuacin (6.7)

Algoritmo 18

. El siguiente cdigo de MATLAB, cal-

(Algoritmo de RK4)

cula la solucin de un problema de valor inicial.

function [t,y] = ode_RK4(f,tspan,y0,N)


% f ecuacin diferencial y'(t) = f(t,y(t)) donde y'(t) retorna un vector
% tspan = [t0,tf] intervalo de integracin
% y0 vector de valor inicial
% N numero de pasos
y=zeros(N+1,length(y0));
y(1,:) = y0(:)'; % hacer un vector fila de la condicin inicial
h = (tspan(2) - tspan(1))/N;
t = tspan(1) + (0:N)'*h;
for k = 1:N
f1 = h*feval(f,t(k),y(k,:)); f1 = f1(:)';
f2 = h*feval(f,t(k) + h/2,y(k,:) + f1/2); f2 = f2(:)';
f3 = h*feval(f,t(k) + h/2,y(k,:) + f2/2); f3 = f3(:)';
f4 = h*feval(f,t(k) + h,y(k,:) + f3); f4 = f4(:)';
y(k + 1,:) = y(k,:) + (f1 + 2*(f2 + f3) + f4)/6;
end

Ejemplo 6.3.1. Aproximar la solucin de y0 = 2ty, y(1) = 1, 1 6 t 6 1.5


con h = 0.1 usando el mtodo de Runge-Kutta.
f (t, y) = 2ty,

h = 0.1, i = 0, 1, 2, 3, 4

y0 = 1

t0 = 1.0, t1 = 1.1, t2 = 1.2, t3 = 1.3, t4 = 1.4


y1 = y0 + 1/6(k1 + 2k2 + 2k3 + k4 )

k1 = hf (t0 , y0 ) = 0.1(2(1)(1)) = 0.2

k2 = hf (t0 + 1/2h, y0 + 1/2k1 )


k2 = (0.1)2(1 + 1/2(0.1))(1 + 1/2(0.2)) = 0.231
k3 = hf (t0 + 1/2h, y0 + 1/2k2 )
k3 = (0.1)2(1 + 1/2(0.1))(1 + 1/2(0.231)) = 0.234255
k4 = hf (t0 + h, y0 + k3 ) = 0.2715361

Luego
y1 = 1 + 1/6(0.2 + 2(0.231) + 2(0.234255) + 0.2715361)
y1 = 1.23367435
189

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

ti

yi

Valor Real

1.1

1.2337

1.2337

1.2

1.5527

1.5527

1.3

1.9937

1.9937

1.4

2.6116

2.6117

1.5

3.4902

3.4904

La siguiente tabla muestra los resultados del mtodo de Runge-Kutta con

h = 0.1

redondeados a

decimales:

En la tabla que se presenta a continuacin se comparan los resultados


obtenidos a partir de los mtodos de Euler, Taylor de orden
y Runge-Kutta aplicadas al problema
0

y = 2ty,

y(1) = 1,

1 6 t 6 1.5

con

h = 0.1

Euler Taylor Euler


Rungede
mejorado Kutta
orden 2

Valor
Real

1.0000

1.0000

1.0000

1.1

1.2000

1.2300

1.2320

1.2337

1.2337

1.2

1.4640

1.5427

1.5479

1.5527

1.5527

1.3

1.8154

1.9728

1.9832

1.9937

1.9937

1.4

2.2874

2.5721

2.5908

2.6116

2.6117

1.5

2.9278

3.4188

3.4509

3.4902

3.4904

ti

2, Euler mejorado

La anterior comparacin de mtodos numricos fue tomada de [5]. Los


resultados se redondearon a

decimales.

6.3.1. Mtodo de Runge-Kutta-Felhberg (RKF45)


Una forma de garantizar la exactitud de la solucin numrica de un problema de valor inicial es resolver el problema dos veces, con tamao de paso

h/2,

y comparar las respuestas en los nodos correspondientes al tamao

de paso ms grande. Sin embargo, la segunda resolucin supone un coste


computacional signicativo y, adems, hay que hacer una tercera si se establece que la precisin no es an la adecuada.

190

Anlisis Numrico con MATLAB


El mtodo de Runge-Kutta-Felhberg el cual se denotar como RKF45, es
una forma de resolver este problema ya que incluye un criterio para determinar en cada momento si se est utilizando el tamao de paso

adecuado.

En cada paso se calculan dos aproximaciones distintas de la solucin y se


comparan; si los dos valores son sucientemente parecidos, entonces se acepta la aproximacin y, adems, se aumenta el tamao de paso si coinciden
en ms cifras signicativas que las requeridas; mientras que si los valores no
coinciden con la precisin especicada, entonces se reduce el tamao de paso.
Las ecuaciones son:

k1 = hf (tk , yk )
1
1
k2 = hf (tk + h, yk + k1 )
4
4
3
3
9
k3 = hf (tk + h, yk + k1 + k2 )
8
32
32
12
1932
7200
7296
k4 = hf (tk + h, yk +
k1
k2 +
k3 )
13
2197
2197
2197
439
3680
845
k5 = hf (tk + h, yk +
k1 8k2 +
k3
k4 )
216
513
4104
1
8
3544
1859
11
k6 = hf (tk + h, yk k1 + 2k2
k3 +
k4 k5 )
2
27
2565
4104
40
1408
2197
1
25
f4 = yk +
k1 +
k3 +
k4 k5
216
2565
4104
5
6656
28561
9
2
16
k1 +
k3 +
k4 k5 + k6
f6 = yk +
135
12825
56430
50
55
error = |f6 f4 |
 T olh 1/4
s=
2error

(6.11)

6.4. Mtodos Multipasos Predictor-Corrector


Una caracterstica denitiva de los mtodos de pasos simples o mtodos de
un solo pasa com el mtodo de Euler, Euler Mejorado, Taylor y Runge-Kutta
consiste en que para obtener el siguiente punto
suministrada por

yk

yk+1 ,

se usa la informacin

pero no por los puntos precedentes. En los mtodos de

segundo orden o de oreden superior se tiene que valuar la funcin en uno


o ms puntos adicionales. Se presentarn mtodos que no pueden arrancar

191

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

por si solos, ya que no solamente usan puntos previos, sino que los exigen. Se pide algn mtdo de paso simple para iniciar el proceso del mtodo
multipaso, por lo tanto esto condicir a una combinacin juiciosa de mtodos
Los mtodos predictores-correctores implican el usa de una frmula para
hacer una primera prediccin del siguiente valor

yk ,

seguida de la aplicacin

de una frmula correctora ms aproximada que proporciona entonces mejoramientos sucesivos. Aunque son ligeramente complicados, tales mtodos
tienen la ventaja que a partir de aproximaciones sucesivas a cada valor de

yk

puede hacerse un estimativo del error, para ilustrar esta tcnica se va a desarrollar el mtodo de cuatro pasos de Adamas-Bashforth-Moulton, el mtodo
de Milne-Simpson y el mtodo de Hamming.

6.4.1. Mtodo de Adams-Bashforth-Moulton


El mtodo de Adams-Bashforth-Moulton, es un esquema que emplea el
mtodo explcito de Adams-Bashforth como predictor y utiliza el mtodo
implcito Adams-Moulton como corrector. El mtodo de Adams-Bashforth-

yk , y(k+1) , y(k+2) , y(k+3) , para caly(k+k) , esto signica que se debe utilizar un mtodo inicializador, quiz

Moulton requiere de varios puntos previos


cular

un mtodo de Taylor, pero es ms comn usar Runge-Kutta de cuarto orden,


durante los cuatro primeros puntos antes de aplicar el mtodo de AdamsBashforth-Moulton, solo se utilizar particiones igualmente espaciadas.
El mtodo de Adams-Bashforth-Moulton se genera a partir del teorema
fundamental del clculo:

tk+1
Z
y(tk+1 ) = y(tk ) +
f (t, y(t))dt.

(6.12)

tk
Para calcular la frmula predictora se utiliza el polinomio de interpolacin de
0
Lagrange de y (t) = f (t; y(t)), y(t0 ) = y0 y se integra en el intervalo [tk , tk+1 ],
luego la frmula predictora Adams-Bashforth es:

pk+1 = yk +

h
(9fk3 + 37fk2 59fk1 + 55fk ).
24

(6.13)

Para deducir el corrector se genera a partir del teorema fundamental


del clculo, tambin se utiliza el polinomio de interpolacin de Lagrange de

192

Anlisis Numrico con MATLAB


y 0 (t) = f (t; y(t)), y(t0 ) = y0

y se integra en el intervalo

[tk , tk+1 ],

luego la

frmula correctora Adams-Moulton est dada por:

yk+1 = yk +

h
(fk2 5fk1 + 19fk + 9fk+1 ).
24

(6.14)

Estimacin del error local de truncamiento y modicadores


Los trminos del error de las frmulas de integracin numrica que se
5
usan para obtener los valores predictor y corrector son de orden O(h ). Los
errorres de truncamiento local delas frmulas (6.13) y (6.14) son:
Error para el valor predictor

y(tk+1 ) pk+1 =

251 (5)
y (ck+1 )h5
720

(6.15)

Error para el valor corrector

y(tk+1 ) yk+1 =

19 (5)
y (dk+1 )h5
720

(6.16)

Para mejorar la precisin del predictor ecuacin (6.13), se introduce el


(5)
modicador, para esto se supone que h es pequeo y que y
(t) es practicamente constante en el intervalo, luego se puede eliminar estos trminos de
las frmulas (6.15) y (6.16), por lo tanto el modicador del predictor es:

251
(yk pk ).
720

mpk+1 = pk +

Si se quiere obtener una mejor precisin del corrector ecuacin (6.14), se


introduce el modicador del corrector:

myk+1 = yk+1

19
(yk+1 pk+1 ).
270

(6.17)

Para garantizar la convergencia del mtodo de Adams-Bashforth-Moulton


se requiere que el mximo tamao de

h<

satisfaga la condicin:

2.66667
.
|fy (tk , yk )|
193

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

6.4.2. Mtodo de Milne-Simpson


El mtodo de Milne-Simpson requiere de varios puntos previos

yk2 , yk3

para calcular

yk+1 ,

yk , yk1 ,

esto signica que se debe utilizar un mtodo

inicializador, quiz un mtodo de Taylor, pero es mas comn usar RungeKutta de cuarto orden, durante los cuatro primeros puntos antes de aplicar
el mtodo de Milne-Simpson.

Este esquema emplea el mtodo explcito de Milne como predictor y utiliza el mtodo implcito Simpson como corrector. La deduccin del mtodo
se deja como ejercicio para el lector. Para deducirlo, considere el problema
y 0 (t) = f (t, y(t)), y(t0 ) = y0 en el intervalo [tk3 , tk+1 ].

Predictor del Mtodo de Milne-Simpson


Integrando la ecuacin

y 0 (t) = f (t, y(t))

se obtiene:

tk+1
tk+1
Z
Z
y 0 (t)dt =
f (t, y(t))dt.
tk3

(6.18)

tk3

Tal que

tk+1
Z
y(tk+1 ) y(tk3 ) =
f (t, y(t))dt.

(6.19)

tk3
Luego

tk+1
Z
y(tk+1 ) = y(tk3 ) +
f (t, y(t))dt.

(6.20)

tk3
Estudiando la integral

tk+1
Z
f (t, y(t))dt.
tk3
194

(6.21)

Anlisis Numrico con MATLAB


Ahora se debe evaluar la integral (6.21), para hacerlo se considera el

f (t, y(t)) que pasa por


(tk2 , f (tk2 )), (tk1 , f (tk1 )), (tk , f (tk )). Es decir

polinomio de Lagrange de

los puntos

(tk3 , f (tk3 )),

(t tk2 )(t tk1 )(t tk )


+
(tk3 tk2 )(tk3 tk1 )(tk3 tk )
(t tk3 )(t tk1 )(t tk )
+
+ fk2
(tk2 tk3 )(tk2 tk1 )(tk2 tk )
(t tk3 )(t tk2 )(t tk )
+ fk1
+
(tk1 tk3 )(tk1 tk2 )(tk1 tk )
(t tk3 )(t tk2 )(t tk1 )
+ fk
.
(tk tk3 )(tk tk2 )(tk tk1 )

f (y, y(t)) = fk3

Ahora se integra la ecuacin (6.22) en el intervalo

tk+1
tk+1
Z
Z
f (y, y(t))dt fk3
tk3

(6.22)

[tk3 , tk+1 ]

(t tk2 )(t tk1 )(t tk )


dt+
(tk3 tk2 )(tk3 tk1 )(tk3 tk )

tk3
tk+1
Z

+ fk2

(t tk3 )(t tk1 )(t tk )


dt+
(tk2 tk3 )(tk2 tk1 )(tk2 tk )

tk3
tk+1
Z

+ fk1

(6.23)

(t tk3 )(t tk2 )(t tk )


dt+
(tk1 tk3 )(tk1 tk2 )(tk1 tk )

tk3
tk3
Z

+ fk

(t tk3 )(t tk2 )(t tk1 )


dt.
(tk tk3 )(tk tk2 )(tk tk1 )

tk+1

t = tk +vh, de manera que dt = hdv y ttk+1 = t(tk +h) = ttk


h = vh h = h(v 1); t tk1 = t (tk h) = t tk + h = vh + h = h(v + 1);
t tk2 = h(v + 2); t tk3 = h(v + 3), si t = tk3 entonces v = 3 y t = tk+1
Sea

195

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

entonces

v = 1,

adems

ti tj = (i j)h

as:

tk+1
Z1
Z
h(v + 2)h(v + 1)hv
f (y, y(t))dt fk3
hdv+
h(2h)(3h)
3

tk3

Z1
+ fk2

h(v + 3)h(v + 1)hv


hdv+
h(h)(2h)

Z1
+ fk1

(6.24)

h(v + 3)h(v + 2)hv


hdv+
2h(h)(h)

Z1
+ fk

h(v + 3)h(v + 2)h(v + 1)


hdv.
h(2h)(3h)

3
De modo que

tk+1
Z
Z1
hfk3
f (y, y(t))dt
(v 3 + 3v 2 + 2v)dv+
6
3

tk3

Z1

hfk2
+
2

(v 3 + 4v 2 + 3v)dv

Z1

hfk1
2

(6.25)

(v 3 + 5v 2 + 6v)dv+

hfk
6

Z1

(v 3 + 6v 2 + 11v + 6)dv.

3
Como

R1
3

(v 3 + 3v 2 + 2v)dv = 0,

entonces

tk+1
Z
8hfk2 4hfk1 8hfk
f (y, y(t))dt

+
.
3
3
3
tk3
196

(6.26)

Anlisis Numrico con MATLAB


Luego

tk+1
Z
i
4h h
f (y, y(t))dt
2fk2 fk1 + 2fk .
3

(6.27)

tk3
Reemplazando el valor de la integral de la ecuacin (6.27) en la ecuacin
(6.20) se obtiene:

y(tk+1 ) y(tk3 ) +

i
4h h
2fk2 fk1 + 2fk .
3

(6.28)

Se tiene entonces el predictor del mtodo de Milne-Sipsom:

pk+1 = yk3 +

i
4h h
2fk2 fk1 + 2fk .
3

(6.29)

Corrector del Mtodo de Milne-Simpson


Para deducir el corrector que en este caso es llamado Regla de Simpson,
0
se considera la ecuacin y (t) = f (t, y(t)). Se Toma un segundo polinomio

f (t, y(t)) que pasa por los puntos (tk1 , fk1 ),


(tk , fk ) y tambin por el nuevo punto (tk+1 , fk+1 ) = (tk+1 , f (tk+1 , pk+1 )), donde pk+1 es el predictor que se acaba de calcular (ecuacin 6.29), integrando
este polinomio en el intervalo [tk1 , tk+1 ] se tiene que

interpolador de Lagrange de

tk+1
tk+1
Z
Z
0
y (t)dt =
f (t, y(t))dt.
tk1

tk1

Luego

tk+1
Z
y(tk+1 ) y(tk1 ) =
f (t, y(t))dt.
tk1
Entonces

tk+1
Z
y(tk+1 ) = y(tk1 ) +
f (t, y(t))dt.
tk1
197

(6.30)

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

Calcular la integral de la ecuacin (6.30) usando el polinomio de interpolacin de Lagrange de forma anloga al calculo del predictor (6.29).

i
hh
y(tk+1 ) y(tk1 ) + fk1 + 4fk + fk+1 .
3

(6.31)

As, el valor del corrector es

yk+1

i
hh
= yk1 + fk1 + 4fk + fk+1 .
3

(6.32)

Estimacin del error local de truncamiento del predictor en el mtodo de Milne-Simpson


Se puede realizar un estimativo por el mtodo de la serie de Taylor, usando
el cero como punto de referencia. Sea

1
1
1
1
(1)
(2)
(3)
(4)
(5)
yk = y0 + (kh)y0 + (kh)2 y0 + (kh)3 y0 + (kh)4 y0 +
(kh)5 y0 + ...
2
6
24
150
(6.33)
Tomando

k = 2,

la ecuacin (6.33) se transforma en:

4 (2) 8
16
32 5 (5)
(1)
(3)
(4)
h y0 + ...
y2 = y0 + 2hy0 + h0 + h3 y0 + h4 y0 +
2
6
24
120
S tomamos

k = 2

(6.34)

en la ecuacin (6.33)

4 (2) 8
16
32 5 (5)
(1)
(3)
(4)
y2 = y0 2hy0 + h0 h3 y0 + h4 y0
h y0 + ...
2
6
24
120

(6.35)

Restando las ecuaciones (6.34) y (6.35), se obtiene

8
8
(1)
(3)
(5)
y2 y2 = 4y0 + h3 y0 + h5 y0 +
3
15

(6.36)

Derivando la ecuacin (6.33) se tiene que

1
1
1
(3)
(4)
(5)
(1)
(1)
(2)
yk = y0 + (kh)y0 + (kh)2 y0 + (kh)3 y0 + (kh)4 y0 +
2
6
24
198

(6.37)

Anlisis Numrico con MATLAB


k=0

Ahora, reemplazando

en la ecuacin (6.37):

(1)

(1)

y0 = y0
Reemplazando

(1)
2y1

k=1

en la ecuacin (6.37), se obtiene:

h
i
1 2 (3) 1 3 (4)
1
(1)
(2)
4 (5)
= 2 y0 + (h)y0 + (h) y0 + (h) y0 + (h) y0 + ...
2
6
24

Por ltimo reemplazando

(1)
2y1

(6.38)

k = 1

(6.39)

en la ecuacin (6.37)

i
h
1
1 2 (3) 1 3 (4)
(1)
(2)
4 (5)
= 2 y0 (h)y0 + (h) y0 (h) y0 + (h) y0 + ...
2
6
24

(6.40)

A partir de las ecuaciones (6.38), (6.39) y (6.40) se encuentra la expresin:

1
(1)
(1)
(1)
(1)
(3)
(5)
2y1 y0 + 2y1 = 3y0 + 2h2 y0 + h4 y0 + ...
6

(6.41)

De la ecuacin (6.28) se tiene que

yk+1 yk3
Donde

i
4 h
= h 2fk fk1 + 2fk2 + Ep (y, h).
3

(6.42)

Ep (y, h) es el error local de truncamiento en el intervalo [tk3 , tk+1 ].


k = 1 en la ecuacin (6.42):

Ahora reeplazando

i
4 h
y2 y2 = h 2f1 f0 + 2f1 + Ep (y, h).
3
Como

(1)

yi

= fi

para

i = 2, 1, 0, 1, 2,

(6.43)

el error local de truncamiento es:

4
8
8
(1)
(1)
(1)
(1)
(3)
(5)
(y2 y2 ) h(2y1 y0 + 2y1 ) =(4y0 + h3 y0 + h5 y0 + ...)
3
3
15
4
1
(1)
(3)
(5)
h(3y0 + 2h2 y0 + h4 y0 + ...)
3
6
(6.44)
Simplicando

4
14
(1)
(1)
(1)
(5)
(y2 y2 ) h(2y1 y0 + 2y1 ) = Ep (y, h) h5 y0 + ...
3
45
199

(6.45)

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

De la cual se usar el primer trmino como estimativo y restando las


ecuaciones (6.28) y (6.29), esto se convierte en:

y(tk+1 ) pk+1

28
14 (5)
y (k+1 )h5 = y (5) (k+1 )h5 .
45
90

(6.46)

Por lo tanto el error local de truncamiento de la ecuacin (6.29) con

[tk3 , tk+1 ]

es:

Ep = Ep (y, h)

28 (5)
y (1 )h5 .
90

(6.47)

Estimacin del Error local de truncamiento del Corrector en el


mtodo de Milne-Simpson
El error local de truncamiento se deja como ejercicio. Luego el error
de truncamiento del corrector, con

2 [tk1 , tk+1 ]

Ec = Ec (y, h)

local

es:

1 5 (5)
h y (2 ).
90

(6.48)

El modicador del predictor del mtodo de Milne-Simpson


Una forma de mejorar la precisin del predictor es por medio de un modicador del mismo, esta es una frmula que proporcione una estimacin
aproximada del error en dos valores calculados pk+1 e yk+1 y que no requiere
(5)
conocer la quinta derivada y
(t). Entonces escribiendo y(tk+1 ) = pk+1 +Ep =

yk+1 + Ec

donde

h
[tk3 , tk+1 ]

suponga que
valo

pk+1

yk+1

denotan los resultados de predictor y corrector,


(5)
es pequeo y que y
es practicamente constante en el interluego se puede utilizar los trminos de las ecuaciones (6.47)

y (6.48), entonces:

28
1 (5)
y (2 )h5 y (5) (1 )h5 .
90
90

1 (5)
29 y (2 )h5 .
90
29Ec .

pk+1 yk+1 = Ec Ep =

As

Ec (pk+1 yk+1 )/29.


200

(6.49)

Anlisis Numrico con MATLAB


Sea

y(tk+1 ) = yk+1 + Ec .

(6.50)

Ahora se reemplaza la ecuacin (6.49) en la ecuacin (6.50) y se obtiene:

y(tk+1 ) = yk+1 + Ec yk+1 + (pk+1 yk+1 )/29 (28yk+1 + pk+1 )/29.


Sumando

pk+1

(6.51)

a ambos lados

y(tk+1 ) pk+1

28yk+1 + pk+1
pk+1 .
29

(6.52)


28 
yk+1 pk+1 .
29

(6.53)

Por lo tanto

y(tk+1 ) pk+1 +

Si, se supone que la diferencia entre los valores predictores y correctores


poseen pequeos cambios de un paso a otro, entonces se hace jugar a
el papel de

pk

yk

pk+1 e yk+1 en (6.53) para obtener la siguiente frmula modicada:


mpk+1


28 
= pk+1 +
y k pk .
29

Ahora se usa este valor modicado en la frmula correctora en

(6.54)

yk+1 ,

la

ecuacin (6.32) queda

yk+1

i
hh
= yk1 + fk1 + 4fk + f (tk+1 , mpk+1 ) .
3

(6.55)

El modicador del corrector del mtodo de Milne-Simpson


Sumando

yk+1

a ambos lados de la ecuacin (6.53), resulta:

y(tk+1 ) yk+1 pk+1 yk+1 +


28 
yk+1 pk+1 .
29

Simplicando,

y(tk+1 ) yk+1

28yk+1 29yk+1 28pk+1 + 29pk+1


.
29

(6.56)

Por lo tanto el modicador del corrector de Milne-Simpson es:

myk+1 yk+1
201

yk+1 pk+1
.
29

(6.57)

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

Criterio de convergencia mtodo de Milne-Simpson


h<

3
.
|fy (tk , yk )|

(6.58)

Caso I (Mtodo de Milne-Simpson)


Se puede resumir el mtodo se Milne-Simpson mejorado (o modicado)
en los siguientes clculos:

pk+1 = yk3 +

mpk+1 = pk+1 +

yk+1 = yk1 +

i
4h h
2fk2 fk1 + 2f2
3

28 
y k pk
29

Valor predictor.

Valor modicador del predictor.

i
hh
fk1 + 4fk + fk+1
3

Valor corrector.
(6.59)

fk+1 = f (tk+1 , mpk+1 ).


myk+1 yk+1

h<

yk+1 pk+1
29

3
|fy (tk , yk )|

Valor modicador del corrector.

Mximo tamao del paso.

Ejemplo 6.4.1. Las ecuaciones de la cintica puntal pueden ser escritas


como [7]:



6
X
dP (t)
(t)
=
P (t) +
i Ci (t).
dt

i=1

(6.60)

dCi (t)
i
= P (t) i Ci (t), i = 1, 2, ...6.
dt

(6.61)

P (t = 0) = P0 .

(6.62)

202

Anlisis Numrico con MATLAB

Ci (t = 0) =

i
P0 .
i

(6.63)

Donde P (t) es la potencia nuclear, Ci (t) es la concentracin del i-simo


grupo de precursores de neutrones retardados, (t) es la reactividad, es
el tiempo de generacin de neutrones, i es la fraccin del i-simo grupo
de neutros retardados, esla fraccin total de neutros retardados, ( =
i i ), i es la constante de decaimiento del i-simo grupo de precursores
de neutrones retardados, teniendo en cuenta los siguientes valores, para =
0.007, i (0.0127, 0.0317, 0.115, 0.311, 1.4, 3.87s1 ), i (0.000266, 0.001491,
0.001316, 0.002849, 0.000896, 0.000182) y = 2 105 s.
Estas ecuaciones son un sistema de siete ecuaciones diferenciales no lineales acopladas, las cuales describen la evolucin en el tiempo de la distribucin y concentracin de neutrones retardados en el reactor nuclear, donde el
parmetro dependiente del tiempo en este sistema es la reactividad. Integrando la ecuacin (6.61) es posible llegar a la ecuacin de la reactividad usando
el mtodo inverso conocido como:

Zt
6
X
1
hP0 i i t
dP (t)
0

i i
e
+ ei (tt ) P (t0 )dt0 .
(t) = +
P (t) dt
P (t) i=1
i
0

(6.64)

La ecuacin (6.64) es la solucin analtica y llamada mtodo de referencia, esta es usada para obtener la solucin exacta para las diferentes formas
de la potencia nuclear, pero esta no es conveniente aplicarla directamente
para el clculo de la reactividad en tiempo real por depender del histrico de
la potencia nuclear.
Para el clculo de la reactividad existe una forma simple directamente de
la ecuacin (6.60). Esta ecuacin puede ser escrita de la siguiente forma:
6

X
dP (t)

i Ci (t).
(t) = +
P (t) dt
P (t) i=1

(6.65)

Teniendo en cuenta el primer criterio de convergencia del mtodo de


Milne-Simpson, ecuacin (6.58) y que se quiere ser economicos con respecto
al costo computacional, se trabajar principalmente con el tamao de paso
203

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

h = 0.1. Con los distintos correctores y sus respectivos modicadores es posi-

ble calcular la reactividad en tiempo real usando las ecuaciones de la cintica


puntual en una forma contnua. El Caso I ( 2 = 1 ) conocido como el mtodo de Milne-Simpson presenta problemas de estabilidad para intervalos de
tiempos muy grandes y tamaos de pasos menores o iguales a 0.01s, luego no
se recomienda implementar el mtodo de Milne-Simpson.
La Figura 6.3, muestra los resultados para la potencia nuclear P (t) =
exp(t) con = 0.12353, el mtodo de Milne-Simpson se vuelve inestable
con un tamao de paso de calculo t 0.1s.

Figura 6.3: Variacin de la reactividad necesaria para reproducir la variacin


de la potencia nuclear,

P (t) = exp(t)

con

=0.12353.

.....

6.4.3. Comparacin de Mtodos


204

Ejemplo tomado de

Anlisis Numrico con MATLAB


Mtodo

Euler
Modicado
RK4
RKF45
AdamsMoulton
Milne

Tipo

Error

Error

Local

Global

O(h3 )

O(h2 )

Bueno

Paso
O(h5 )
Simple
Paso
O(h6 )
Simple
Multipaso O(h5 )

O(h4 )

Miltipaso

Paso
Simple

O(h5 )

Estabilidad

Faciliad

cam-

Recomendado?

bio tamao de
paso

Bueno

No

Bueno

Bueno

Si

O(h5 )

Bueno

Bueno

Si

O(h4 )

Bueno

Pobre

Si

O(h4 )

Pobre

Pobre

No

Tabla 3. Mtodos de comparacin

t
Ejemplo 6.4.2. Resolver la ecuacin diferencial y0 = cos 12
y , con y(0) =

50 utilizando los mtodos de la Tabla 3, donde la exacta es


i
1
cos(t/12) + (/12)sin(t/12) h
t
+ 50
y(t) =
2
2 e
1 + /12
1 + /12

Vericar que se cumplen las armaciones dadas en la Tabla 3.


En la siguiente Tabla se puede observar que el tamao de error del los
mtodod de RK4 y RK45 son muy cercanos, lo que indica que el costo computacional de RK45 es muy alto, por lo tanto en la practica se recomienda
utilizar RK4.

6.5. Mtodo de Hamming


6.5.1. Esquema Predictor-Corrector
La inestabilidad en el corrector es el pricipal defecto del mtodo de MilneSimpson, en vez de usar este mtodo, se puede utilizar el mtodo de Hamming
que se trata de un tipo
diferenciales del tipo

predictor-corrector

y 0 = f (t, y),

el cual permite resolver ecuaciones

utilizando la misma frmula de prediccin

205

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

Mtodo

Tamao
de Paso

Euler Modicado

Mximo Error

Tiempo [ s ]

0.1

0.350485918264

RK4

0.1

0.318154383543

RKF45

0.1

0.318143220959

0.975

Adams-BashforthMoulton
Milne

0.1

0.318138080808

13

0.1

0.319950733923

25

del mtodo de Milne-Simpson, ecuacin (6.29) con su respectivo error local


de truncamiento, ecuacin (6.47). El mtodo de Hamming requiere de varios
puntos previos

yk

para calcular

yk+1 . Generalmente estos puntos inciales son

calculados por el mtodo de Runge-Kutta.


En la prxima seccin, para obtener una mejor aproximacin se utiliza el
denominado Corrector Generalizado del Mtodo de Hamming.

6.5.2. Generalizacin del Corrector de Hamming


S

es variable libre, se tiene el corrector generalizado del mtodo de

Hamming dado por la siguiente expresin:

yk+1 = 1 yk + 2 yk1 + 3 yk2 + h[0 fk+1 + 1 fk + 2 fk1 ] + E5

y (5) ()h5
.
5!
(6.66)

Usando este criterio para el corrector generalizado obtenemos las condiciones de los coecientes

1 , 2 , 3 , 0 , 1 , 2 .

Estas condiciones pueden ser

encontradas realizando la expansin de la serie de Taylor de cada yk2 , yk1 ,


0
0
yk0 , yk1
, yk+1 , alrededor de h y sustituyendo estos valores en la ecuacin
206

Anlisis Numrico con MATLAB


(6.66), teniendo en cuenta que

y0 = f .

yk+1 =1 yk + 2 yk + yk0 (h) +

Entonces

1 (2)
1 (3)
1 (4)
yk (h)2 + yk (h)3 + yk (h)4
2!
3!
4!

i
h
1 (5)
1 (2)
1 (3)
yk ()(h)5 + ... + 3 yk + yk0 (2h) + yk (2h)2 + yk (2h)3
5!
2!
3!

i
n h
1 (4)
1 (5)
1 (3)
1
(2)
yk (2h)4 + yk ()(2h)5 + ... + h 0 yk0 + yk h + yk h2 + y (4) h3
4!
5!
2!
3!

i
h
1 (5)
1 (4)
1 (3)
(2)
yk ()(h)5 + ... + 1 yk0 + 2 yk0 + yk (h) + yk (h)2 + yk (h)3
4!
2!
3!

io
y (5) ()h5
1 (5)
5
.
+ yk ()(h) + ... + E5
4!
5!
(6.67)
El desarrollo de la serie de Taylor de la funcin

yk+1 = yk + yk0 h +

yk+1

es:

1 (2) 2 1 (3) 3 1 (4) 4 1 (5)


yk h + y h + yk h + yk ()h5 .
2!
3!
4!
5!

(6.68)

Igualando los coecientes de la expresin ecuacin (6.67) con los homologos de la ecuacin (6.68), se llega al siguiente conjunto de ecuaciones lineales
simultaneas

1 + 2 + 3
2 22 + 0 + 1 + 2
1
2 + 23 + 0 2
2
1
4
1
1
2 3 + 0 + 2
6
3
2
2
1
2
1
1
2 + 3 + 0 2
24
3
6
6

=1
=1
1
=
2
1
=
6
1
= .
24

(6.69)

Al expresar la ecuacin (6.69) en matriz ampliada y reduciendola se tiene


que

207

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

1
1
1
0
0 1
2
1
0 1/2
2
1
0 1/6 4/3 1/2
0 1/24 2/3 1/6

0
0
1
1
0 1
0 1/2
0 1/6

|
1
|
1
| 1/2
| 1/6
| 1/24

f3 2f3

f4 6f4

f5 24f5

Resultando

1 1
1 0
0 1 2 1
0 1
4 2
0 1 8 3
0 1 16 4

0 0 | 1
1 1 | 1
0 2 | 1
0 3 | 1
0 4 | 1

f4 f4 +2f3

f5 f5 4f3

Se obtiene

1 1
1
0
0 1 2 1
0 1
4
2
0 1
0
7
0 3 0 4

0 0 | 1
1 1 | 1
0 2 | 1
0 1 | 3
0 4 | 3

f3 f3 2f4

f5 f5 +4f4

Finalmente se llega

1 1
1
0 0 0 | 1
0 1 2 1 1 1 | 1

0 1 4 12 0 0 | 5

0 1
0
7 0 1 | 3
0 1
0
24 0 0 | 9

(6.70)

Ahora se toma la quinta la de la matriz en la ecuacin (6.70) tal que

2 + 240 = 9

obteniendo:

0 =

9 2
.
24

Luego se toma la tercera la de la matriz dada en la ecuacin (6.70)

2 + 43 120 = 5

de modo que

1
3 = (1 2 ).
8
208

Anlisis Numrico con MATLAB


Continuando con el proceso, se toma la primera la de la matriz ( ver
2
1 + 2 + 3 = 1 tal que 1 = 1 2 3 = 1 2 + 1
,
8
por lo tanto
ecuacin 6.70)

1 =

9 92
.
8

La cuarta la de la matriz dada en la ecuacin (6.70) queda 2 +70 2 =


2
2 72
3, luego 2 = 2 +70 3 de manera que 2 = 2 +7( 9
)3 = 242 +637
24
24
entonces

2 =

9 172
.
24

Por ltimo se toma la segundo la de la matriz en la ecuacin (6.70)2

3 + 0 + 1 + 2 = 1,

esto implica que

1 =

1 = 1 + 2 + 3 0 2 ,

luego

9 + 172
.
12

En consecuencia se tiene las condiciones de todos los coecientes del corrector generalizado, en la ecuacin (6.66)

9 2
24
9 + 72
1 =
12
9 + 172
1 =
.
24

9 92
8
2 = 2
1
3 = (1 2 )
8

1 =

0 =

(6.71)

El termino del error se puede encontrar igualando los coecientes de los


errores de la expresin de Taylor ecuacin (6.67) con el homologo de la ecua-

209

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

cin (6.68) se llega a la siguiente ecuacin lineal:

2 323 0 2 E5

+
+
+
5!
5!
4!
4!
5!
2 323
E5

+ 0 + 2 +
5
5
5
2 323 + 50 + 52 + E5
32
5
5
2 + (1 2 ) + (9 2 ) + (9 + 172 ) + E5
8
24
24


2
(5)(17)
2 42 2 +
2 + E 5
24
24


10
52 2 + E5
3
Despejando

E5

1
5!
1
=
5
=1
=

=1

(6.72)

= 3
= 3.

se tiene que:

E5 =

9 + 52
.
3

(6.73)

Por ltimo, teniendo en cuenta que el valor de E5 depende de 2 y multih5 y (5) ()/5! se tiene el trmino del errror del

plicando la ecuacin (6.73) por

corrector generalizado del mtodo de Hamming, ecuacin (6.66).

Pero Cuales valores puede tomar 2 para que el corrector generalizado de


Hamming sea estable? La respuesta se obtendr y se explicar en la seccin
6.5.3.

6.5.3. Estabilidad del Corrector Generalizado del Mtodo de Hamming


Debido a los problemas de estabilidad que presenta el mtodo de MilneSimpson y que este es un caso particular (para

2 = 1)

del mtodo de

Hamming, luego se hace necesario estudiar la estabilidad del corrector generalizado del mtodo de Hamming.
Por lo tanto 0.6

2 1.

En este intervalo hay algunos numeros para

ser considerados candidatos, los cuales tienen varias propiedades especiales;


ellos se muestran en la Tabla 1. (Note que el caso
Milne-Simpson).

210

2 = 1

es el mtodo de

Anlisis Numrico con MATLAB


El trmino del error

E5 crece linealmente de -1/90 a -1/30 (para obtener

estos valores, reemplazar en la ecuacin (6.73) los valores -0.6 y 1).

Los casos

2 = 1, 9/17, 0

tiene uno o mas coecientes igual a cero (ver

coecientes en la Tabla 1).

En cada caso se tiene por lo menos dos coecientes de igual magnitud.

En la Tabla 1 se encuentran los valores que toma

y los valores de los

coecientes del corrector generalizado.

1 = (1/8)(9 92 )
2 = 2
3 = (1/8)(1 2 )
0 = (1/24)(9 2 )
1 = (1/12)(9 + 72 )
2 = (1/24)(9 + 172 )
E5 = (1/(3 5!))(9 + 52 )
Tabla 1.

9/17

9/8

9/7

45/31

9/5

9/17

1/9

-1/7

-9/31

-3/5

-1/17

-1/9

-1/8

-1/7

-5/31

-1/5

1/3

6/17

10/27

3/8

8/21

12/31

2/5

4/3

18/17

22/27

6/8

14/21

18/31

2/5

1/3

-8/27

-3/8

-10/21

-18/31

-4/5

-1/90

-3/170

-19/810

-1/40

-17/630

-9/310

-1/30

Coeciente que optimiza el mtodo de Hamming.

Teniendo en cuenta que el valor de

E5

depende de

2 , E5

es multiplicado por

h5 y (5) ().

Segn la Tabla anterior se tienen distintos casos de correctores con sus


respectivos modicadores para diferentes valores de

2 ,

en cada uno de los

casos se denotar el error local de truncamiento del corrector como


E5 h5 y (5) ().
211

Ec =

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

6.5.4. Caso II (Mtodo de Hamming)


Para

2 = 0 segn la Tabla 1, se pueden resumir las frmulas, se utilizar

el mismo predictor del mtodo de Milne-Simpson, segn ecucacin (6.29).

mpk+1 = pk+1 +

yk+1 =


112 
yk pk
121

Valor del modicador del predictor.

i
9yk yk2 3h h
+
fk1 + 2fk + fk+1
8
8

Valor del corrector.

fk+1 = f (tk+1 , mpk+1 ).


myk+1 yk+1

h<


9 
yk+1 pk+1
121

2.66667
|fy (tk , yk )|

Valor del modicador del corrector.

Mximo tamao del paso.


(6.74)

Algoritmo 19

. Programa para la apro-

(Algoritmo mtodo de Hamming)

ximacin numrica a la solucin del problema de valor inicial y 0 = f (t, y)


con y(a) = y0 en [a, b] usando el valor predictor y corrector del mtodo de
Hamming, ecuacin (6.74).
function [t,y] = odeHam(f,tspan,y0,N)
% y'(t)=[y1' y2' ... yn']
% tspan = [t0,tf] intervalo de integracion
% y0 vector de valor inicial i.e y0=[y10 y20 y30 ... yn0]
% N Numero de pasos en el tiempo
% f ecuacion diferencial y'(t) = f(t,y(t))
% donde y'(t) renortna un vector
h = (tspan(2)-tspan(1))/N; % Tamao de paso en el tiempo
[t,y] = ode_RK4(f,[tspan(1) 3*h],y0,3);
t = [t(1:3)' t(4):h:tspan(2)]';
y=[y ; zeros(N-3,1)];
F=zeros(4,length(y0));
212

Anlisis Numrico con MATLAB

for k = 2:4
F(k-1,:) = feval(f,t(k),y(k,:));
end
p = y(4,:);
c = y(4,:);
for k = 4:N
Pnew = y(k-3,:) + (4*h/3)*(2*F(1,:) - F(2,:) + 2*F(3,:));
MPnew = Pnew + (112/121)*(c - p); %Modificador del predictor
ynew = (-y(k-2,:) + 9*y(k,:) + ...
3*h*[-1 2 1]*[F(2:3,:);feval(f,t(k + 1),MPnew)])/8;
My(k+1,:) = ynew - (9/121)*(ynew - Pnew); %Modificador del corrector
y(k+1,:)=My(k+1,:);
p = Pnew; c = ynew;
% actualizar valores del predictor/corrector
F = [F(2:3,:);feval(f,t(k+1),y(k+1,:))];
end

6.6. Ejercicios
1. Aplique los mtodos de Euler, Euler mejorado y Taylor de orden dos
para aproximar la solucin de los siguientes problemas de valor inicial.

y
a ) y0 =
t

y
t

!2
,

1
t

b ) y 0 = (y 2 + y) ,

1 6 t 6 1.2,
1 6 t 6 3,

y(1) = 1,
y(1) = 2,

con

con

h = 0.1
h = 0.5

2. Dado el problema de valor inicial

con la solucin

a)

2
y 0 = y + t2 et 1 6 t 6 2,
t
2 t
exacta y(t) = t (e e).

y(1) = 0

Aplique el mtodo de Taylor de orden dos con

h = 0.1

para apro-

ximar la solucin, y comprela con los valores reales de

b)

y.

Use las respuestas obtenidas en la parte (a) y la interpolacin


lineal para aproximar

en los siguientes valores y comprelos con

y.
y(1.55)

los valores reales de


i)

y(1.04)

ii)

iii)

213

y(1.97)

CAPITULO 6. ECUACIONES DIFERENCIALES ORDINARIAS

3. Aunque no es obvio de la ecuacin diferencial, su solucin podra tener


un mal comportamiento en el entorno de un punto
desea aproximar

y(t).

en el cual se

Procedimientos numricos pueden proporcionar

resultados muy distintos cerca de este punto. Sea

y(t)

una solucin del

problema de valor inicial.

y 0 = t2 + y 3 ,

y(1) = 1,

1 6 t 6 1.5

Utilizando un tamao de paso de

h=

0.1, compare los resultados obte-

nidos con la frmula de Euler con los de la frmula de Euler mejorada


en la aproximacin de
4. Sea

y(t)

una solucin del problema de valor inicial

y 0 = t2 + y 3 ,
Use

y(1.4).

y(1) = 1,

h = 0.1

1 6 t 6 1.5

y la frmula de Taylor de orden dos para obtener una

aproximacin a

y(1.4). Compare su respuesta con el resultado obtenido

en problema anterior.
5. Dado el problema de valor inicial.

y 0 = (t y)2

y(0) = 0.5

0 6 t 6 0.5

h = 0.1 y obtenga una aproximacin


y(0.5).

Use el mtodo de Runge-Kutta con


con cuatro cifras decimales para

6. Si la resistencia del aire al movimiento es proporcional al cuadrado de


la velocidad instantnea del mvil, entonces la velocidad
de masa

soltado desde una altura

m
Si

v de un cuerpo

se determina a partir de

dv
= mg kv 2 ,
dt

k>0

v(0) = 0, k = 0.125, m = 5 slugs y g = 32pie/s2

utilice el mtodo de

Runge-Kutta para hallar una aproximacin de la velocidad del cuerpo


al tiempo

t = 5 seg ,

use

h = 1.

214

Bibliografa
[1] T. Akai.

Mtodos Numricos aplicados a la Ingeniera.

[2] R. Brent.

Limusa, 1999.

Algorithms for Minimization Without Deriviatives.

Prentice-

Hall, 1973.
[3] R. Burden and F. Douglas.

Mtodos Numricos aplicados a la Ingeniera.

Limusa, 1999.
[4] Kincaid D. and Cheney W.

Anlisis Numrico.

Addison  Wesley Ibe-

roamericana, 1994.
[5] Zill D.

Ecuaciones Diferenciales con aplicaciones de modelado.

Octava

edicin. Grupo editorial Iberoamrica, 2000.


[6] James W Demmel.

Applied Numerical Linear Algebra.

[7] J.J. Duderstadt and L.J. Hamilton.

SIAM, 1997.

Nuclear Reactor Analysis.

John

Wiley and Sons Inc, New York, 1976.


[8] R.A. Horn and C.R. Johnson.

Matrix Analysis.

Cambridge University

Press, Cambridge, 1985.


[9] MathWorks. http://www.mathworks.com/help/matlab/., 2012.
[10] Lloyd N. and David Bau.
[11] J.F Traub.

Numerical Linear Algebra.

SIAM, 1997.

Iterative methods for the solutions of equations.

Hall, New Jersey, 1964.

215

Prentice-

ndice alfabtico
aritmtica de precisin nita, 12

Triangular inferior, 66, 75


Triangular superior, 64, 75

Algoritmo
Matriz Diagonal, 64

Newton, 37

triangular superior, 65

Newton-Raphson, 37

Algoritmo de Biseccin, 34

notacin cientca, 4

Algoritmo Newton, 44

notacin cientca

Algoritmo Punto jo, 56

base

Algoritmo Regula Falsi, 37

base

10, 4
2, 4

Algoritmo Secante, 47
Pivoteo Parcial, 72
bin2dec(binario), 5
cero, 27

precisin doble, 5, 7
precisin simple, 6
precisin simple , 5

Eliminacin Gaussiana, 68, 72

Punto jo, 48

error absoluto, 13

punto otante, 1, 5

error de redondeo, 13
error relativo, 13
exponente sesgado, 8
Factorizacin LU, 75
Falsa posicin, 35

raz, 27
Regula Falsi, 35
Secante, 45
sistema binario, 2
sistema decimal, 2

mtodo de biseccin, 28

sistema hexadecimal, 3

mantisa, 5

sistema octal, 3

Matriz

sobreujo, 9

Diagonal, 63

subujo, 9

216

Anlisis Numrico con MATLAB


Sustitucin
hacia adelante, 65
hacia atras, 65

217

Anda mungkin juga menyukai