You are on page 1of 367

METODOS NUMERICOS CON SCILAB

Hctor Manuel Mora Escobar e hectormora@yahoo.com hmmorae@unal.edu.co www.hectormora.info April 18, 2010

INDICE GENERAL
1 Preliminares 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Notacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Repaso de algunos conceptos de clculo . . . . . . . . . . . . a Sucesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Polinomio de Taylor . . . . . . . . . . . . . . . . . . . . . . . Notacin O grande . . . . . . . . . . . . . . . . . . . . . . . . o Orden de convergencia . . . . . . . . . . . . . . . . . . . . . . Nmeros en un computador . . . . . . . . . . . . . . . . . . . u Truncamiento y redondeo . . . . . . . . . . . . . . . . . . . . Error absoluto y relativo . . . . . . . . . . . . . . . . . . . . . 1 1 2 5 7 11 12 15 17 18 19 21 22 22 24 24 25 26 28

1.10 Errores lineal y exponencial . . . . . . . . . . . . . . . . . . . 1.11 Condicionamiento de un problema . . . . . . . . . . . . . . . 2 Solucin de sistemas lineales o 2.1 2.2 2.3 2.4 2.5 En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Mtodos ingenuos . . . . . . . . . . . . . . . . . . . . . . . . . e Sistema diagonal . . . . . . . . . . . . . . . . . . . . . . . . . Sistema triangular superior . . . . . . . . . . . . . . . . . . . 2.5.1 Nmero de operaciones . . . . . . . . . . . . . . . . . u i

ii 2.6 2.7

INDICE GENERAL Sistema triangular inferior . . . . . . . . . . . . . . . . . . . . Mtodo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . e 2.7.1 2.8 2.9 Nmero de operaciones . . . . . . . . . . . . . . . . . u 29 30 37 39 41 46 49 49 52 58 59 61 62 62 63 67 72 76 76 82 83 83 96 96

Factorizacin LU . . . . . . . . . . . . . . . . . . . . . . . . . o Mtodo de Gauss con pivoteo parcial . . . . . . . . . . . . . . e

2.10 Factorizacin LU =PA . . . . . . . . . . . . . . . . . . . . . . o 2.11 Mtodo de Cholesky . . . . . . . . . . . . . . . . . . . . . . e 2.11.1 2.11.2 2.11.3 2.11.4 2.12 Matrices denidas positivas . . . . . . . . . . . . . . Factorizacin de Cholesky . . . . . . . . . . . . . . . o Nmero de operaciones de la factorizacin . . . . . . u o Solucin del sistema . . . . . . . . . . . . . . . . . . o

Solucin por m o nimos cuadrados . . . . . . . . . . . . . . . . 2.12.1 En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 2.12.2 2.12.3 Derivadas parciales . . . . . . . . . . . . . . . . . . . Ecuaciones normales . . . . . . . . . . . . . . . . . .

2.13 Sistemas tridiagonales . . . . . . . . . . . . . . . . . . . . . . 2.14 Clculo de la inversa a 3 Mtodos iterativos e 3.1 3.2 Mtodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . e Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 3.3 En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Normas matriciales . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 En Scilab . . . . . . . . . . . . . . . . . . . . . . . . .

3.4 3.5 3.6 3.7

Condicionamiento de una matriz . . . . . . . . . . . . . . . .

Mtodo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . 101 e Mtodo iterativo general . . . . . . . . . . . . . . . . . . . . . 102 e Mtodo de sobrerrelajacin . . . . . . . . . . . . . . . . . . . 103 e o

INDICE GENERAL 3.8 3.9

iii

Mtodos de minimizacin . . . . . . . . . . . . . . . . . . . . 110 e o Mtodo del descenso ms pendiente . . . . . . . . . . . . . . . 112 e a

3.10 Mtodo del gradiente conjugado . . . . . . . . . . . . . . . . . 115 e 4 Solucin de ecuaciones no lineales o 4.1 4.2 120

En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Mtodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . 124 e 4.2.1 Orden de convergencia . . . . . . . . . . . . . . . . . . 127

4.3 4.4 4.5 4.6 4.7

Mtodo de la secante . . . . . . . . . . . . . . . . . . . . . . . 130 e Mtodo de la biseccin . . . . . . . . . . . . . . . . . . . . . . 133 e o Mtodo de Regula Falsi . . . . . . . . . . . . . . . . . . . . . 135 e Modicacin del mtodo de Regula Falsi . . . . . . . . . . . . 137 o e Mtodo de punto jo . . . . . . . . . . . . . . . . . . . . . . . 138 e 4.7.1 4.7.2 Modicacin del mtodo de punto jo . . . . . . . . . 144 o e Mtodo de punto jo y mtodo de Newton e e . . . . . . 145

4.8

Mtodo de Newton en Rn . . . . . . . . . . . . . . . . . . . . 146 e 4.8.1 4.8.2 Matriz jacobiana . . . . . . . . . . . . . . . . . . . . . 147 Frmula de Newton en Rn . . . . . . . . . . . . . . . . 147 o

4.9

Mtodo de Muller . . . . . . . . . . . . . . . . . . . . . . . . . 150 e

4.10 Mtodo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . 158 e 5 Interpolacin y aproximacin o o 5.1 169

Interpolacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 o 5.1.1 5.1.2 En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 171 Caso general . . . . . . . . . . . . . . . . . . . . . . . 172

5.2

Interpolacin polinomial de Lagrange . . . . . . . . . . . . . . 175 o 5.2.1 5.2.2 5.2.3 Algunos resultados previos . . . . . . . . . . . . . . . 176 Polinomios de Lagrange . . . . . . . . . . . . . . . . . 176 Existencia, unicidad y error . . . . . . . . . . . . . . . 179

iv 5.3

INDICE GENERAL Diferencias divididas de Newton . . . . . . . . . . . . . . . . . 181 5.3.1 5.3.2 5.4 Tabla de diferencias divididas . . . . . . . . . . . . . . 184 Clculo del valor interpolado . . . . . . . . . . . . . . 187 a

Diferencias nitas . . . . . . . . . . . . . . . . . . . . . . . . . 192 5.4.1 5.4.2 Tabla de diferencias nitas . . . . . . . . . . . . . . . 193 Clculo del valor interpolado . . . . . . . . . . . . . . 194 a

5.5 5.6 6

Trazadores cbicos, interpolacin polinomial por trozos, splines 197 u o Aproximacin por m o nimos cuadrados . . . . . . . . . . . . . 204 209

Integracin y diferenciacin o o 6.1 6.2 6.3

Integracin numrica . . . . . . . . . . . . . . . . . . . . . . . 209 o e En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Frmula del trapecio . . . . . . . . . . . . . . . . . . . . . . . 211 o 6.3.1 Errores local y global . . . . . . . . . . . . . . . . . . 214

6.4

Frmula de Simpson . . . . . . . . . . . . . . . . . . . . . . . 216 o 6.4.1 Errores local y global . . . . . . . . . . . . . . . . . . 217

6.5

Otras frmulas de Newton-Cotes . . . . . . . . . . . . . . . . 221 o 6.5.1 Frmulas de Newton-Cotes abiertas . . . . . . . . . . 222 o

6.6 6.7

Cuadratura adaptativa . . . . . . . . . . . . . . . . . . . . . . 223 Cuadratura de Gauss-Legendre . . . . . . . . . . . . . . . . . 225 6.7.1 Polinomios de Legendre . . . . . . . . . . . . . . . . . 231

6.8 6.9

Cuadratura de Gauss-Leguerre y Gauss-Hermite . . . . . . . 232 Derivacin numrica . . . . . . . . . . . . . . . . . . . . . . . 232 o e 6.9.1 6.9.2 Derivadas parciales . . . . . . . . . . . . . . . . . . . . 234 En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 235 239

Ecuaciones diferenciales 7.0.3 7.1

En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 240

Mtodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . 241 e

INDICE GENERAL 7.2 7.3 7.4 7.5 7.6 7.7

Mtodo de Heun . . . . . . . . . . . . . . . . . . . . . . . . . 244 e Mtodo del punto medio . . . . . . . . . . . . . . . . . . . . . 247 e Mtodo de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . 250 e Deduccin de RK2 . . . . . . . . . . . . . . . . . . . . . . . . 255 o Control del paso . . . . . . . . . . . . . . . . . . . . . . . . . 257 Orden del mtodo y orden del error . . . . . . . . . . . . . . . 263 e 7.7.1 Vericacin numrica del orden del error . . . . . . . . 264 o e

7.8 7.9 7.10

Mtodos multipaso expl e citos . . . . . . . . . . . . . . . . . . 265 Mtodos multipaso impl e citos . . . . . . . . . . . . . . . . . . 269 Sistemas de ecuaciones diferenciales . . . . . . . . . . . . . . 274 7.10.1 En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 276

7.11 7.12 7.13

Ecuaciones diferenciales de orden superior . . . . . . . . . . 278 Ecuaciones diferenciales con condiciones de frontera . . . . . 281 Ecuaciones lineales con condiciones de frontera . . . . . . . . 284 289

8 Ecuaciones diferenciales parciales 8.1 8.2 8.3

Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 El pticas: ecuacin de Poisson . . . . . . . . . . . . . . . . . . 290 o Parablicas: ecuacin del calor . . . . . . . . . . . . . . . . . 296 o o 8.3.1 8.3.2 8.3.3 Mtodo expl e cito . . . . . . . . . . . . . . . . . . . . . 298 Mtodo impl e cito . . . . . . . . . . . . . . . . . . . . . 301 Mtodo de Crank-Nicolson . . . . . . . . . . . . . . . 304 e

8.4

Hiperblicas: ecuacin de onda . . . . . . . . . . . . . . . . . 308 o o 8.4.1 8.4.2 Mtodo expl e cito . . . . . . . . . . . . . . . . . . . . . 308 Mtodo impl e cito . . . . . . . . . . . . . . . . . . . . . 311 314

9 Valores propios 9.1

Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 9.1.1 En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 318

vi 9.2 9.3 9.4

INDICE GENERAL Mtodo de la potencia . . . . . . . . . . . . . . . . . . . . . . 318 e Mtodo de la potencia inversa . . . . . . . . . . . . . . . . . . 322 e Factorizacin QR . . . . . . . . . . . . . . . . . . . . . . . . . 324 o 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.5 Matrices de Householder . . . . . . . . . . . . . . . . . 325 Matrices de Givens . . . . . . . . . . . . . . . . . . . . 328 Factorizacin QR con matrices de Householder . . . . 329 o Factorizacin QR con matrices de Givens . . . . . . . 334 o Solucin por m o nimos cuadrados . . . . . . . . . . . . 337

Mtodo QR para valores propios de matrices simtricas . . . 339 e e 9.5.1 9.5.2 9.5.3 Tridiagonalizacin por matrices de Householder para o matrices simtricas . . . . . . . . . . . . . . . . . . . . 340 e Tridiagonalizacin por matrices de Givens para mao trices simtricas . . . . . . . . . . . . . . . . . . . . . 342 e Valores propios de matrices tridiagonales simtricas . 344 e

Preliminares
1.1 Notacin o

Sean a, b nmeros reales, a < b. Los intervalos cerrados y abiertos son u

[a, b] = {x R : a x b},

]a, b[ = {x R : a < x < b}.

Tambin es usual denotar el intervalo abierto por (a, b) pero puede cone fundirse con la pareja ordenada (a, b). C[a, b] es el conjunto de funciones continuas en el intervalo [a, b]; C n [a, b] es el conjunto de funciones con n derivadas continuas sobre [a, b] (con esta notacin C[a, b] = C 0 [a, b]). Algunas veces, por brevedad, se dice que f es o de clase C n . De manera anloga, C [a, b] es el conjunto de funciones que se pueden a derivar tantas veces como se desee. Ejemplos de estas funciones son: f (x) = ex , g(x) = 3x5 8x2 + 12, h(x) = sen(2x). Pn es el conjunto de todos los polinomios de grado menor o igual a n. I(c, d) es el intervalo cerrado que ms pequeo contiene a c y a d. Por a n ejemplo I(3, 5) = [3, 5], I(2, 1.8) = [1.8, 2]. 1

1. PRELIMINARES

1.2

Repaso de algunos conceptos de clculo a

En lo que sigue, mientras no se diga lo contrario, se considera una funcin o f : R R y c un nmero real. u Se dice que el l mite de f cuando x tiende a c es L R, denotado
xc

lim f (x) = L ,

si dado > 0 existe > 0 tal que si 0 < |x c| , entonces |f (x) L| . La funcin f es continua en c si lim f (x) existe y o
xc

xc

lim f (x) = f (c) .

Se dice que f es continua en el intervalo [a, b] si es continua en todos los puntos de [a, b]. Se dice que f es derivable en c, si existe el l mite f (c + h) f (c) f () f (c) = lim . h0 c h c lim Si f es derivable en c, entonces ese l mite es la derivada de f en c y se denota f (c) = lim
h0

f (c + h) f (c) f () f (c) = lim . c h c

Teorema 1.1. Teorema de valores extremos. Sea f continua en el intervalo [a, b] (recordemos que se puede denotar f C[a, b] ), entonces existe por lo menos un x [a, b] tal que f () f (x) para todo x [a, b] . x Este punto x se llama minimizador absoluto o global o punto de m nimo global de f en [a, b]. De manera anloga, existe por lo menos un punto x, a maximizador global o punto de mximo global, tal que a f () f (x) para todo x [a, b] . x

1.2. REPASO DE ALGUNOS CONCEPTOS DE CALCULO f () x

f () x a x x b

Figura 1.1: Teorema de valores extremos

M t

m a c c b

Figura 1.2: Teorema del valor intermedio Teorema 1.2. Teorema del valor intermedio. Sea f continua en [a, b], m = min{f (a), f (b)}, M = max{f (a), f (b)}. Si t es un valor intermedio, m t M , entonces existe por lo menos un c [a, b] tal que f (c) = t. Teorema 1.3. Teorema de Rolle. Si f es una funcin continua en [a, b], o derivable en ]a, b[ y f (a) = f (b), entonces existe c ]a, b[ tal que f (c) = 0.

Teorema 1.4. Teorema del valor medio. Si f es una funcin continua o en [a, b] y derivable en ]a, b[, entonces existe c ]a, b[ tal que f (c) = . f (b) f (a) ba

1. PRELIMINARES

Figura 1.3: Teorema de Rolle

Figura 1.4: Teorema del valor medio

1.3. SUCESIONES

1.3

Sucesiones

Una sucesin es simplemente una funcin que va del conjunto de los nmeros o o u naturales en los reales:

u :N R

n un

m3 2m (1)n , wm = . n3 100m2 + 20m Una sucesin se puede denir de manera recurrente a partir del primer o trmino o de los primeros trminos. Por ejemplo, la sucesin de nmeros de e e o u Fibonacci (Leonardo de Pisa) se dene por: Ejemplos de sucesiones: un = 1/n2 , vn = 5+ u0 = 0 u1 = 1 un = un2 + un1 , para n 2. As u0 = 0, u1 = 1, u2 = 1, u3 = 2, u4 = 3, u5 = 5, u6 = 8, u7 = 13, , ... Se dice que la sucesin xn converge al nmero L, o que L es el l o u mite de la sucesin, si dado cualquier > 0 (generalmente pequeo), existe un natural o n N tal que |xn L| para n > N. Es usual escribir

Algunas veces las sucesiones estn denidas para los naturales positivos (no a para el 0). Como se observa, habitualmente se escribe un en lugar de u(n). Es frecuente denotar la sucesin {un }nN o {un } o, si no hay confusin, o o n=0 de manera an ms simple, {un } o un . u a

lim xn = L

o xn L
n

6 o simplemente, si no hay confusin, o xn L Ejemplo 1.1. Sea

1. PRELIMINARES

1 . n2 Veamos que el l mite es 5. Si = 0.01, se requiere que xn = 5 + 1 5 0.01 n2 1 0.01 n2 1 n2 0.01 100 n2 10 n.

5+

Es decir para = 0.01 basta con tomar N 10. En general para un 1 cualquiera, basta con tomar N . 3 Se dice que la sucesin xn tiende a + y se escribe o

lim xn = +

o simplemente xn + si dado cualquier real M > 0 (generalmenet grande), existe un natural N tal que xn > M para n > N. En este caso, la sucesin no es convergente pero, como se observa, se utiliza o la misma notacin. De manera anloga se dene y denota cuando la sucesin o a o tiende a .

1.4. POLINOMIO DE TAYLOR La sucesin geomtrica an converge o diverge dependiendo de a: o e

n n n n

lim an = 0

si |a| < 1, si a = 1, si a > 1, si a 1,

lim an = 1

lim an = +

lim an no existe

1.4

Polinomio de Taylor

Sea la funcin f : R R continua y derivable cuantas veces sea necesario y o sea x un valor jo. Se desea encontrar p P1 tal que p() = f () y x x p () = f (). x x Este polinomio es exactamente p(x) = f () + f ()(x x). x x Ahora se desea encontar p P2 tal que p() = f (), x x p () = f (), x x p () = f (). x x Entonces p(x) = f () + f ()(x x) + x x f () x (x x)2 . 2

8 De manera general, sea p Pn tal que p() = f (), x x p () = f (), x x p () = f (), x x . . . p(n) () = f (n) (). x x Este polinomio es

1. PRELIMINARES

p(x) = f () + f ()(x x) + x x
n

f (n) () x f () x (x x)2 + + (x x)n 2 n! (1.1)

=
k=0

f (k) () x (x x)k k!

llamado polinomio de Taylor de orden n alrededor de x. Teorema 1.5. Sea f C n [a, b], tal que f (n+1) existe en [a, b] y x [a, b]. Entonces para todo x [a, b] f (x) = pn (x) + Rn (x), donde pn (x) es el polinomio de Taylor y Rn (x) = f (n+1) ((x)) (x x)n+1 (n + 1)! (1.2)

es el residuo, con (x) entre x y x (es decir, (x) I(, x) ). Si f es de x , entonces clase C

f (x) =
k=0

f (k) () x (x x)k k!

La anterior expresin es el desarrollo en serie de Taylor de f alrededor de o x. El teorema anterior no permite evaluar exactamente el residuo, pero si permite acotarlo:

1.4. POLINOMIO DE TAYLOR

|Rn (x)|

|x x|n+1 max f (n+1) (t) (n + 1)! tI(x,) x

Ejemplo 1.2. Obtener la serie de Taylor de f (x) = ex alrededor de x = 0.

f (x) = ex f (x) = ex f (n) (x) = ex f (0) = 1 f (0) = 1 f (x) = 1 f (n) (x) = 1 ex = 1 + x +

x2 x3 x4 + + + 2 3! 4!

e =
n=0

xn n!

Ejemplo 1.3. Obtener la serie de Taylor de f (x) = sen(x) alrededor de x = 0.

f (x) = cos(x) f (x) = cos(x) f (x) = sen(x)

f (4) (x) = sen(x) f (5) (x) = cos(x)

10

1. PRELIMINARES

f (0) = 0 f (0) = 1 f (x) = 0 f (4) (0) = 0 f (x) = 1

f (5) (0) = 1 sen(x) = x x3 x5 x7 + + 3! 5! 7!

Ejemplo 1.4. Obtener la serie de Taylor de f (x) = cos(x) alrededor de x = 0.

f (x) = sen(x) f (4) (x) = cos(x)

f (x) = cos(x)

f (x) = sen(x)

f (5) (x) = sen(x) f (0) = 1 f (0) = 0 f (x) = 0 f (x) = 1

f (4) (0) = 1 f (5) (0) = 0 cos(x) = 1 x2 x4 x6 + + 2! 4! 6!

Ejemplo 1.5. Obtener el polinomio de Taylor de orden 2 de cos(x) alrededor de , acotar el error para x = 3 y calcular el error. cos() (x )2 2

1 p2 (x) = 1 + (x )2 2

p2 (x) = cos() sen()(x )

1.5. NOTACION O GRANDE

11

|error|

|3 |3 max | sen(t)| 6 t[3,]

|error| 0.0004731 0.1411 = 0.0000668 |error| 0.0000668 En este caso sencillo, se puede evaluar expl citamente el error: |error| = | cos(3) p2 (3)| = 0.0000167

|error| 0.0004731 sen(3)

= | 0.9899925 0.9899758| 3

Algunas veces se expresa x = x + h, entonces el polinomio de Taylor, el residuo y la serie de Taylor quedan:

pn ( + h) = x Rn ( + h) = x f ( + h) = x
k=0

k=0 f (n+1) ((h))

f (k) () k x h k! hn+1 , (h) I(0, h),

(1.3) (1.4) (1.5)

(n + 1)!

f (k) () k x h . k!

1.5

Notacin O grande o

Algunas veces es util comparar aproximadamente el comportamiento de dos funciones en las cercan de 0. as Se dice que, cuando x 0, f (x) = O(g(x)) si existen dos constantes positivas C y (pequea) tales que n |f (x)| C|g(x)| para |x| .

12

1. PRELIMINARES

Ejemplo 1.6. Sea f (x) = 4x3 +5x6 . Recordemos que si 0 < y < 1, entonces y > y 2 > y 3 > . Entonces, si |x| < 1, |x3 | |x|

|4x3 | 4|x| |5x6 | 5|x| |x6 | |x|

|4x3 + 5x6 | 9|x|

4x3 + 5x6 = O(x).

Aunque lo anterior es cierto, es preferible buscar el mayor exponente posible. Mediante pasos semejante a los anteriores llegamos a 4x3 + 5x6 = O(x3 ). Obviamente no es cierto que 4x3 + 5x6 = O(x4 ). 3 Segn la notacin O grande, el residuo para el polinomio de Taylor (1.4) se u o puede expresar Rn ( + h) = O(hn+1 ). x

1.6

Orden de convergencia

Sea {xk } una sucesin de nmeros reales con l o u mite L. Se dice que la convergencia tiene orden de convergencia p 1, si p es el mayor valor tal que el siguiente l mite existe. lim |xk+1 L| = < . |xk L|p

En este caso se dice que es la tasa de convergencia. Cuando el orden es 1, se dice que la convergencia es lineal. La convergencia se llama superlineal si lim |xk+1 L| = 0. |xk L|

Cuando el orden es 2, se dice que la convergencia es cuadrtica. a

1.6. ORDEN DE CONVERGENCIA

13

Lo ideal es tener rdenes de convergencia altos con tasas pequeas. Una o n convergencia lineal con tasa 1 es una convergencia muy lenta. Una convergencia cuadrtica es muy buena, por ejemplo, el mtodo de Newton que se a e ver ms adelante. a a 1 o Ejemplo 1.7. xk = + . Esta sucecin converge a . Veamos que pasa k con p = 1. 1 | | + |xk+1 L| k+1 lim = lim 1 k k |xk L| | + | k 1 = lim k + 1 1 k k k = lim k k + 1 = 1. Luego la sucesin tiene orden de convergencia por lo menos igual a 1. Veamos o que pasa con p > 1. Se puede suponer que p = 1 + , con > 0. 1 |xk+1 L| = lim k + 1 |xk L|1+ k 1 k 1+ k 1+ = lim k 1 + k k k = lim k 1 + k k = lim k 1 + k = (1)(+).

lim

lim k

Entonces p no puede ser superior a 1 y podemos decir que la convergencia es lineal con tasa 1. 3 1 o Ejemplo 1.8. xk = k . Esta sucecin converge a 0. Directamente veamos 2 que pasa con p = 1 + , con 0.

14

1. PRELIMINARES

lim

1 k+1 |xk+1 L| = lim 2 1 |xk L|1+ k (2k )1+ (2k )1+ = lim k 2k+1 2k 2k = lim k+1 k 2 2k lim 2k = lim k+1 k k 2 1 lim 2k = k 2 .

Si p = 1 ( = 0) hay convergencia hacia 1/2. Si p > 1 no hay convergencia. Entonces la sucesin tiene convergencia lineal con tasa 1/2. 3 o Ejemplo 1.9. 69 10 xn = 6 + (xn1 6)2 , x1 = Los primeros valores son los siguientes:

n 2.

1 2 3 4 5 6 7 8 9 10

6.900000000000000 6.810000000000000 6.656100000000000 6.430467210000001 6.185302018885185 6.034336838202925 6.001179018457774 6.000001390084524 6.000000000001933 6.000000000000000

1.7. NUMEROS EN UN COMPUTADOR Se puede mostrar que xn = 6 + yn , n = 1, 2, ... 9 y1 = 10 2 yn = yn1 , n = 2, 3, ... yn = 9 10


2n1

15

, n = 1, 2, ...

Como yn 0, entonces xn 6. yk+1 |xk+1 L| = lim p k yk |xk L|p = lim


2 yk p k yk k

lim

2p = lim yk

Si p = 1 el l mite es 0, es decir, la convergencia es por lo menos lineal y se puede armar que es superlineal. Si p = 2 el l mite es 1, luego la convergencia es por lo menos cuadrtica. Si p = 2 + , con > 0 a lim |xk+1 L| 2(2+) = lim yk p k |xk L| 1 = lim k yk = + Luego la convergencia es cuadrtica con tasa 1. 3 a

1.7

N meros en un computador u

Sea x un mmero real positivo. La representacin decimal normalizada de u o x en un computador, con k cifras signicativas es x = 0.d1 d2 ...dk 10n

16

1. PRELIMINARES

donde di es un entero en el intervalo [0, 9] y d1 1. El valor k, los valores m nimo y mximo permitidos para n dependen del computador, del sistema a operativo o del lenguaje. Una manera aproximada de obtener estos valores en Scilab es la siguiente: format(30) x = 1/3 El resultado es 0.3333333333333333148296 Unicamente hay 16 d gitos correctos, los dems son basura producida por a Scilab para satisfacer el formato deseado. Esto nos indica que en Scilab, en la representacin interna de un nmero, no hay ms de 16 cifras signicativas. o u a Relacionado con el concepto anterior, est el psilon de la mquina, que se a e a dene as : maq = min{t > 0 : 1 + t = 1} La anterior denicin usa los nmeros utilizados en el computador. Este o u conjunto de nmeros es nito y la denicin tiene sentido. Obviamente si u o los valores t se tomaran en R, el valor psilon de la mquina estar mal e a a denido. Una manera aproximada de obtener el psilon de la mquina consiste en e a buscar, por ensayo y error, un valor x tal que 1 + x > 1 y 1 + x/10 = 1. La orden x = 1.0e-10; x1 = 1+x; x2 = 1+x/10; (x1 > 1) & (x2 == 1) produce F (false), en cambio x = 1.0e-15; x1 = 1+x; x2 = 1+x/10; (x1 > 1) & (x2 == 1) produce T (true). Esto nos indica que un valor aproximado es justamente 1015 . Scilab tiene una valor predenido %eps = 2.220E-16 Para averiguar si un nmero positivo y pequeo es considerado como nulo, u n se puede ensayar con diferentes valores de la potencia de 10, por ejemplo: x = 1.0e-20; x == 0.0

1.8. TRUNCAMIENTO Y REDONDEO produce como resultado F, indicando que x no es nulo. Al ensayar x = 1.0e-100; x == 0.0 el resultado de nuevo es F. Despus de varios ensayos e x = 1.0e-323; x == 0.0 produce F y x = 1.0e-324; x == 0.0 produce T, es decir, 10324 es considerado como nulo.

17

Para evitar el ensayo y error se puede utilizar la siguiente secuencia de o rdenes x = 1; while x/10 > 0.0 x0 = x; x = x/10; end x_final = x0 El resultado obtenido es 9.881-323 . Obsrvese que x toma los valores 1, e 1/10, 1/100, ... Sin embargo el resultado obtenido no es exactamente una potencia de 10. Ahora queremos averiguar qu tan grandes pueden ser los nmeros en Scilab. e u As la orden x = 1.0e308 muestra en la pantalla 1.000+308, resultado esperado. La orden x = 1.0e309 muestra en la pantalla Inf indicando que Scilab considera 10309 como innito y no lo puede manejar adecuadamente.

1.8

Truncamiento y redondeo

Sea x un real (supuesto positivo por facilidad de presentacin), o x = 0.d1 d2 ...dk 10n

18

1. PRELIMINARES

su representacin normalizada y t un entero positivo menor que k. El nmero o u obtenido por truncamiento con t cifras signicativas es x = 0.d1 d2 ...dt 10n Dicho de otra forma, se quitan los ultimos k t d gitos. El redondeo con t cifras signicativas se puede presentar de varias maneras equivalentes. Una de ellas es la siguiente, redondeo(x, t) = truncamiento( + 0. 00 0 5 10n ) , t) x
t1

truncamiento(1234.56789, 2) = 1200 truncamiento(1234.56789, 6) = 1234.56 redondeo(1234.56789, 2) = 1200 redondeo(1234.56789, 6) = 1234.57

Una manera sencilla, que funciona cuando dt 8, es la siguiente: los primeros t 1 d gitos son los mismos y el d gito en la posicin t es o t = dt dt + 1 si si dt+1 4 dt+1 5.

Si dt = 9 y dt+1 4, entonces t = dt . Ahora bien, el caso especial se tiene si dt = 9 y dt+1 5, entonces se suma 1 a dt = 9, volvindose 10 y se escribe e t = 0, pero hay que agregar (llevar) 1 al d gito dt1 , etc.

1.9

Error absoluto y relativo

Si x es un nmero real y x es una aproximacin se denen el error absoluto u o (siempre no negativo) y el error relativo cuando x = 0, de la siguiente forma:

error absoluto = |x x| , |x x| error relativo = . |x|

1.10. ERRORES LINEAL Y EXPONENCIAL

19

Ejemplo 1.10. Sean x y y nmeros reales, x el redondeo de x con n = 5 u cifras signicativas, y el redondeo de y con n cifras signicativas, z = x y, z el redondeo de x y con n cifras signicativas, ea el error absoluto entre z y z , er el error relativo. x 1/7 1/7 y 2/3 0.14284 x 0.14286 0.14286 y 0.66667 0.14284 z 11/21 0.00001714... z 0.52381 0.00002 ea 4.8e-7 2.9e-6 er 9.1e-7 1.7e-1

En el segundo caso, el error relativo es grande, aproximadamente 17%. 3 Los principales casos en los que los errores pueden ser grandes, son: 1. Suma de cantidades de tamaos muy diferentes. n 2. Resta de cantidades muy parecidas. 3. Divisin por un nmero cercano a cero. o u Estos casos, en cuanto sea posible, deben ser evitados y, si no es posible, los resultados deben ser interpretados de manera muy cuidadosa.

1.10

Errores lineal y exponencial

En los proceso numricos, muy frecuentemente, es necesario realizar muchas e operaciones aritmticas. Sea e0 el error inicial en los datos o en la primera e operacin y en el error despus de n operaciones. El error inicial incide o e en las operaciones siguientes y los errores, en la gran mayor de los casos, a van aumentando progresivamente. Usualmente se dice que los errores se propagan de dos maneras: Error lineal: Error exponencial: en nce0 en cn e0 , con c > 1.

Es claro que un error exponencial (propagacin exponencial del error) es o muy peligroso y no es conveniente utilizar un algoritmo con esta clase de error. Con base en el tipo de error, se habla de algoritmos estables cuando el error es lineal y de algoritmos inestables cuando el error es exponencial.

20

1. PRELIMINARES

Ejemplo 1.11. Consideremos la sucesin denida as (ver [KiC94]): o x0 = 1 () Se puede demostrar que () xn = 1 , n = 0, 1, 2, ... 3n x1 = 1/3 4 13 xn = xn1 xn2 , 3 3 n 2.

La siguiente tabla muestra los valores de xn obtenidos en Scilab aplicando la frmula expl o cita (**), xn obtenido por la frmula de recurrencia (*) con o o todas las cifras que utiliza Scilab, x obtenido por la frmula de recurrencia n obtenido por la frmula (*) pero trabajando con 8 cifras signicativas y xn o de recurrencia (*) pero trabajando con 4 cifras signicativas. n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 25 xn (**) 1.00000000 0.33333333 0.11111111 0.03703704 0.01234568 0.00411523 0.00137174 0.00045725 0.00015242 0.00005081 0.00001694 0.00000565 0.00000188 0.00000063 0.00000021 0.00000007 0.00000002 0.00000001 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 xn (*) 1.00000000 0.33333333 0.11111111 0.03703704 0.01234568 0.00411523 0.00137174 0.00045725 0.00015242 0.00005081 0.00001694 0.00000564 0.00000188 0.00000063 0.00000021 0.00000006 -0.00000003 -0.00000020 -0.00000085 -0.00000340 -0.00001361 -0.00005445 -0.01393856 x 8 cifras n 1.00000000 0.33333333 0.11111110 0.03703700 0.01234554 0.00411468 0.00136954 0.00044843 0.00011715 -0.00009025 -0.00054728 -0.00225123 -0.00902562 -0.03610937 -0.14443977 -0.57775985 -2.31103960 -9.24415860 -36.9766340 -147.906540 -591.626160 -2366.50460 -605825.110 x 4 cifras n 1.00000000 0.33330000 0.11100000 0.03670000 0.01100000 -0.00126000 -0.02012000 -0.08550000 -0.34370000 -1.37500000 -5.50000000 -22.0000000 -88.0000000 -352.000000 -1408.00000 -5632.00000 -22520.0000 -90070.0000 -360300.000 -1441000.00 -5764000.00 -23060000.0 -5.904E+09

1.11. CONDICIONAMIENTO DE UN PROBLEMA

21

Se observa que la frmula de recurrencia es un proceso inestable. La inestao bilidad se nota ms cuando hay menos cifras signicativas. 3 a

1.11

Condicionamiento de un problema

Supongamos que un problema se puede resolver de manera exacta. Se dice que un problema es bien condicionado si al hacer cambios pequeos en los n datos, se obtienen cambios pequeos en la solucin. Un problema es mal n o condicionado si al hacer cambios pequeos en los datos, puede haber cambios n grandes en la solucin. o Cuando no hay un mtodo exacto de solucin, se dice que un problema es e o mal condicionado si, para todos los mtodos utilizados, al hacer cambios e pequeos en los datos, puede haber cambios grandes en la solucin. n o Ejemplo 1.12. Consideremos el sistema de ecuaciones Ax = b, donde A= 10.01 10.00 10.00 9.99 , b= 20.01 19.99 .

La solucin exacta de este problema es o x = [1 1]T , Consideremos ahora un sistema de ecuaciones muy parecido, unicamente hay cambios pequeos en b, Ax = b , donde n b = 20.02 19.98 .

La solucin exacta de este problema es o x = [1998 2002]T , Este problema es mal condicionado, cambios pequeos en b produjeron camn bios grandes en la solucin. Ms adelante se ver cmo determinar el buen o a a o o mal condicionamiento de un sistema de ecuaciones. 3

Solucin de sistemas lineales o


Uno de los problemas numricos ms frecuentes, o tal vez el ms frecuente, e a a consiste en resolver un sistema de ecuaciones de la forma Ax = b (2.1)

donde A es una matriz cuadrada, de tamao n n, invertible. Esto quiere n decir que el sistema tiene una unica solucin. o Se trata de resolver un sistema de ecuaciones de orden mucho mayor que 2. En la prctica se pueden encontrar sistemas de tamao 20, 100, 1000 o a n mucho ms grandes. Puesto que se trata de resolver el sistema con la ayuda a de un computador, entonces las operaciones realizadas involucran errores de redondeo o truncamiento. La solucin obtenida no es absolutamente exacta, o pero se desea que la acumulacin de los errores sea relativamente pequea o n o casi despreciable.

2.1

En Scilab

Para resolver (2.1) es necesario haber denido una matriz cuadrada a y un vector columna b . La orden es simplemente x = a\b Por ejemplo a = [ 2 3; 4 5], b = [-5; -7], x=a\b 22

2.1. EN SCILAB da como resultado x =

23

2. - 3. Una manera que tambin permite obtener la solucin es x = inv(a)*b, e o pero es ineciente en tiempo y de menor precisin. o Ejemplo 2.1. Las siguientes rdenes de Scilab o n = 500; a = rand(n,n); x = rand(n,1); b = a*x; tic() x1 = a\b; t_sol = toc(); tic() x2 = inv(a)*b; t_inv = toc(); error1 = norm(x1-x); error2 = norm(x2-x); printf(t_sol = %f printf(error_sol = %e producen un resultado anlogo a a t_sol = 0.622000 error_sol = 7.990870e-12 t_inv = 1.737000 error_inv = 1.687945e-11 t_inv = %f\n, t_sol, t_inv) error_inv = %e\n, error1, error2)

Estos resultados dependen del computador, del sistema operacional y an u en el mismo computador no son siempre iguales, pero s parecidos. Las funciones tic y toc permiten obtener una medida del tiempo de un proceso. 3

24

2.

SOLUCION DE SISTEMAS LINEALES

2.2

Notacin o

Sean A una matriz m n, con elementos aij , i = 1, ...m, j = 1, ..., n y x = (x1 , x2 , ..., xn ). Para denotar las o columnas, o partes de ellas, se usar la notacin de Matlab y Scilab. a o parte de un vector: x(5 : 7) = (x5 , x6 , x7 ), la i-sima: Ai = A(i, :), e columna j-sima: Aj = A(:, j), e parte de la la i-sima: A(i, 1 : 4) = [ ai1 ai2 ai3 ai4 ] e parte de la columna j-sima: A(2 : 4, j) = [ a2j a3j a4j ]T e submatriz: A(3 : 6, 2 : 5) .

2.3

Mtodos ingenuos e

Tericamente, resolver el sistema Ax = b es equivalente a la expresin o o x = A1 b. Es claro que calcular la inversa de una matriz es mucho ms dispendioso a que resolver un sistema de ecuaciones; entonces, este camino slo se utiliza o en deducciones tericas o, en muy raros casos, cuando A1 se calcula muy o fcilmente. a Otro mtodo que podr utilizarse para resolver Ax = b es la regla de e a Cramer. Para un sistema de orden 3 las frmulas son: o a11 b1 a13 b1 a12 a13 det a21 b2 a23 det b2 a22 a23 a31 b3 a33 b3 a32 a33 , x2 = , x1 = det(A) det(A) a11 a12 b1 det a21 a22 b2 a31 a32 b3 x3 = det(A) Supongamos ahora que cada determinante se calcula por medio de cofactores. Este clculo se puede hacer utilizando cualquier la o cualquier a

2.4. SISTEMA DIAGONAL columna; por ejemplo, si A es 3 3, utilizando la primera la, det(A) = a11 det a22 a23 a32 a33 a12 det a21 a23 a31 a33 + a13 det a21 a22 a31 a32

25

En general, sea Mij la matriz (n 1) (n 1) obtenida al suprimir de A la la i y la columna j. Si se calcula det(A) utilizando la primera la, det(A) = a11 det(M11 ) a12 det(M12 ) + + (1)(1+n) a1n det(M1n ). Sea n el nmero de multiplicaciones necesarias para calcular, por cofactores, u el determinante de una matriz de orden n. La frmula anterior nos indica o que n > nn1 . Como a su vez n1 > (n 1)n2 y n2 > (n 2)n3 , ..., entonces n > n! . n > n(n 1)(n 2) 2 = n(n 1)(n 2) 2,

Para resolver un sistema de ecuaciones por la regla de Cramer, hay que calcular n + 1 determinantes, luego el nmero total de multiplicaciones necesarias u para resolver un sistema de ecuaciones por la regla de Cramer, calculando los determinantes por cofactores, es superior a (n + 1)!. Tomemos un sistema, relativamente pequeo, n = 20, n 21! = 5.1091E19. Siendo muy optimistas (sin tener en cuenta las sumas y otras operaciones concomitantes), supongamos que un computador del ao 2000 hace 1000 n millones de multiplicaciones por segundo. Entonces, el tiempo necesario para resolver un sistema de ecuaciones de orden 20 por la regla de Cramer y el mtodo de cofactores es francamente inmanejable: e tiempo > 5.1091E10 segundos = 16.2 siglos.

2.4

Sistema diagonal

El caso ms sencillo de (2.1) corresponde a una matriz diagonal. Para maa trices triangulares, en particular para las diagonales, el determinante es el

26

2.

SOLUCION DE SISTEMAS LINEALES

producto de los n elementos diagonales. Entonces una matriz triangular es invertible si y solamente si todos los elementos diagonales son diferentes de cero. La solucin de un sistema diagonal se obtiene mediante o bi , i = 1, ..., n. (2.2) aii Como los elementos diagonales son no nulos, no hay ningn problema para u efectuar las divisiones. xi =

2.5

Sistema triangular superior

Resolver un sistema triangular superior (A es triangular superior) es muy sencillo. Antes de ver el algoritmo en el caso general, veamos, por medio de un ejemplo, cmo se resuelve un sistema de orden 4. o Ejemplo 2.2. Resolver el siguiente sistema: 0.25x2 + 2.5x3 + 4.25x4 = 11 4x1 + 3x2 2x3 + x4 = 4

45x3 + 79x4 = 203 2.8x4 = 5.6

De la cuarta ecuacin, se deduce que x4 = 5.6/2.8 = 2. A partir de la o tercera ecuacin o 45x3 = 203 (79x4 ) 203 (79x4 ) x3 = 45 Reemplazando x4 por su valor, se obtiene x3 = 1. A partir de la segunda ecuacin o 0.25x2 = 11 (2.5x3 + 4.25x4 ) 11 (2.5x3 + 4.25x4 ) x2 = 0.25 Reemplazando x3 y x4 por sus valores, se obtiene x2 = 0. Finalmente, utilizando la primera ecuacin, o 4x1 = 4 (3x2 2x3 + x4 ) 4 (3x2 2x3 + x4 ) x1 = 4

2.5. SISTEMA TRIANGULAR SUPERIOR Reemplazando x2 , x3 y x4 por sus valores, se obtiene x1 = 1. 3

27

En general, para resolver un sistema triangular, primero se calcula xn = bn /ann . Con este valor se puede calcular xn1 , y as sucesivamente. Cono cidos los valores xi+1 , xi+2 , ..., xn , la ecuacin i-sima es o e aii xi + ai,i+1 xi+1 + ai,i+2 xi+2 + ... + ain xn = bi , aii xi + A(i, i + 1 : n) x(i + 1 : n) = bi , bi A(i, i + 1 : n) x(i + 1 : n) xi = aii Como se supone que A es regular (invertible o no singular), los elementos diagonales son no nulos y no se presentan problemas al efectuar la divisin. o El esquema del algoritmo es el siguiente: xn = bn /ann para i = n 1, ..., 1 xi = (bi A(i, i + 1 : n) x(i + 1 : n))/aii n-para Esto se puede escribir en Scilab x(n) = b(n)/a(n,n) for i=n-1:-1:1 x(i) = ( b(i) - a(i,i+1:n)*x(i+1:n) )/a(i,i) end La funcin completa podr ser as o a : function [x, res] = solTriSup(a, b, eps) // // Solucion del sistema triangular superior // // a es una matriz triangular superior // b es un vector columna // eps es una valor positivo pequeno // (parametro opcional).

a x = b.

28 // // // // // // // // res valdra 0

2.

SOLUCION DE SISTEMAS LINEALES

si el valor absoluto de un elemento diagonal de a es menor o igual a eps 1 si todo funciono bien. sera un vector columna con la solucion, si res = 1.

Esta funcion trabaja unicamente con la parte triangular superior de a y no verifica si realmente es triangular superior.

if argn(2) < 3, eps = 1.0e-10, end res = 0 if min(abs(diag(a))) <= eps, return, end res = 1 n = size(a,1) x = zeros(n,1) x(n) = b(n)/a(n,n) for k = n-1:-1:1 x(k) = (b(k) - a(k,k+1:n)*x(k+1:n) )/a(k,k) end endfunction Teniendo en cuenta las buenas caracter sticas de Scilab, la funcin anterior o se puede escribir un poco ms corta. Sea u = [ 2 3 5 7 11 13]. La a orden v = u(4:2) produce un vector vac o, es decir, [ ]. Adems a s = 3.1 - u(4:2)*u(6:5) asignar a s el valor 3.1. Entonces el clculo de x(n) se puede hacer dentro a a del for : for k = n:-1:1 x(k) = (b(k) - a(k,k+1:n)*x(k+1:n) )/a(k,k) end

2.5.1

N mero de operaciones u

Una de las maneras de medir la rapidez o lentitud de un mtodo es mediante e el conteo del nmero de operaciones. Usualmente se tienen en cuenta las u sumas, restas, multiplicaciones y divisiones entre nmeros de punto otante, u

2.6. SISTEMA TRIANGULAR INFERIOR

29

aunque hay ms operaciones fuera de las anteriores, por ejemplo las coma paraciones y las operaciones entre enteros. Las cuatro operaciones se conocen con el nombre genrico de operaciones de punto otante ops (oating e point operations). Algunas veces se hacen dos grupos: por un lado sumas y restas, y por otro multiplicaciones y divisiones. Si se supone que el tiempo necesario para efectuar una multiplicacin es bastante mayor que el tiempo o de una suma, entonces se acostumbra a dar el nmero de multiplicaciones u (o divisiones). El diseo de los procesadores actuales muestra tendencia al n hecho de que los dos tiempos sean comparables. Entonces se acostumbra a evaluar el nmero de ops. u Sumas y restas clculo de xn a clculo de xn1 a clculo de xn2 a ... clculo de x2 a clculo de x1 a Total n2 n2 /2 n1 n/2 n1 n n2 /2 + n/2 0 1 2 Multiplicaciones y divisiones 1 2 3

Nmero total de operaciones de punto otante: n2 . u

2.6

Sistema triangular inferior

La solucin de un sistema triangular inferior Ax = b, A triangular inferior, o es anloga al caso de un sistema triangular superior. Primero se calcula x1 , a despus x2 , enseguida x3 y as sucesivamente hasta xn . e
i1

bi xi =

aij xj
j=1

aii

(2.3)

El esquema del algoritmo es el siguiente:

30

2.

SOLUCION DE SISTEMAS LINEALES

para i = 1, ..., n xi = (bi A(i, 1 : i 1) x(1 : i 1))/aii n-para El nmero de operaciones es exactamente el mismo del caso triangular suu perior.

2.7

Mtodo de Gauss e

El mtodo de Gauss para resolver el sistema Ax = b tiene dos partes; la e primera es la triangularizacin del sistema, es decir, por medio de operao ciones elementales, se construye un sistema A x = b , (2.4)

equivalente al primero, tal que A sea triangular superior. Que los sistemas sean equivalentes quiere decir que la solucin de Ax = b es exactamente la o x = b . La segunda parte es simplemente la solucin misma solucin de A o o del sistema triangular superior. Para una matriz, con ndices entre 1 y n, el esquema de triangularizacin se o puede escribir as : para k = 1, ..., n 1 buscar ceros en la columna k, por debajo de la diagonal. n-para k Anando un poco ms: a para k = 1, ..., n 1 para i = k + 1, ..., n buscar ceros en la posicin de aik . o n-para i n-para k Ejemplo 2.3. Consideremos el siguiente sistema de ecuaciones: 4x1 + 3x2 2x3 + x4 = 4 3x1 + 2x2 + x3 + 5x4 = 8 + x3 + x4 = 8

2x1 + 3x2 + x3 + 2x4 = 7 5x1

2.7. METODO DE GAUSS En forma matricial se puede escribir: 4 3 2 5 3 2 2 1 3 1 0 1 1 x1 x2 5 2 x3 x4 1 4 8 = 7 8

31

Es usual trabajar unicamente con los nmeros, olvidando temporalmente los u xi . Ms an, se acostumbra trabajar con una matriz ampliada, resultado de a u pegar a la derecha de A el vector b. 4 3 2 5 3 2 2 1 3 1 0 1 1 5 2 1 4 8 7 8

Inicialmente hay que buscar ceros en la primera columna. Para buscar cero en la posicin (2,1), la 2 y columna 1, se hace la siguiente operacin: o o la2nueva la2vieja (3/4)la1 Para hacer ms sencilla la escritura la expresin anterior se escribir sima o a plemente: la2 la2 (3/4)la1 4 3 -2 1 4 0 -0.25 2.5 4.25 -11 -2 3 1 2 -7 -5 0 1 1 -8 la3 la3 (2/4)la1 4 0 0 -5 3 -0.25 4.5 0 -2 2.5 0 1 1 4.25 2.5 1 4 -11 -5 -8

Para buscar cero en la posicin (3,1) se hace la siguiente operacin: o o

Para buscar cero en la posicin (4,1) se hace la siguiente operacin: o o la4 la4 (5/4)la1

32 4 0 0 0 3 -0.25 4.5 3.75

2.

SOLUCION DE SISTEMAS LINEALES -2 2.5 0 -1.5 1 4.25 2.5 2.25 4 -11 -5 -3

Ahora hay que buscar ceros en la segunda columna. Para buscar cero en la posicin (3,2) se hace la siguiente operacin: o o la3 la3 (4.5/(0.25))la2 4 0 0 0 3 -0.25 0 3.75 -2 2.5 45 -1.5 1 4.25 79 2.25 4 -11 -203 -3

Para buscar cero en la posicin (4,2) se hace siguiente operacin: o o la4 la4 (3.75/(0.25))la2 3 -0.25 0 0 -2 2.5 45 36 1 4.25 79 66

Para buscar cero en la posicin (4,3) se hace la siguiente operacin: o o la4 la4 (36/45)la3 3 -0.25 0 0 -2 2.5 45 0 1 4.25 79 2.8

4 0 0 0

4 -11 -203 -168

El sistema resultante ya es triangular superior. Entonces se calcula primero x4 = 5.6/2.8 = 2. Con este valor, utilizando la tercera ecuacin resulo tante, se calcula x3 , despus x2 y x1 . e x = (1, 0, 1, 2). 3 De manera general, cuando ya hay ceros por debajo de la diagonal, en las columnas 1, 2, ..., k 1, para obtener cero en la posicin (i, k) se hace la o operacin o lai lai (aik /akk )lak

4 0 0 0

4 -11 -203 -5.6

2.7. METODO DE GAUSS Lo anterior se puede reescribir as :

33

lik = aik /akk bi = bi lik bk A(i, :) = A(i, :) lik A(k, :)

Como en las columnas 1, 2, ..., k 1 hay ceros, tanto en la la k como en la la i, entonces ai1 , ai2 , ..., ai,k1 seguirn siendo cero. Adems, las a a operaciones se hacen de tal manera que aik se vuelva cero. Entonces aik no se calcula puesto que dar 0. Luego los clculos se hacen en la la i a partir a a de la columna k + 1.

lik = aik /akk aik = 0 A(i, k + 1 : n) = A(i, k + 1 : n) lik A(k, k + 1 : n) bi = bi lik bk

En resumen, el esquema de la triangularizacin es: o

para k = 1, ..., n 1 para i = k + 1, ..., n lik = aik /akk , aik = 0 A(i, k + 1 : n) = A(i, k + 1 : n)likA(k, k + 1 : n) bi = bi likbk n-para i n-para k

Este esquema funciona, siempre y cuando no aparezca un pivote, akk , nulo o casi nulo. Cuando aparezca es necesario buscar un elemento no nulo en el resto de la columna. Si, en el proceso de triangularizacin, toda la columna o A(k : n, k) es nula o casi nula, entonces A es singular.

34

2.

SOLUCION DE SISTEMAS LINEALES

para k = 1, ..., n 1 para i = k + 1, ..., n si |akk | ent buscar m, k + 1 m n, tal que |amk | > si no fue posible ent salir intercambiar(A(k, k : n), A(m, k : n)) intercambiar(bk , bm ) n-si lik = aik /akk , aik = 0 A(i, k + 1 : n) = A(i, k + 1 : n)likA(k, k + 1 : n) bi = bi likbk n-para i n-para k si |ann | ent salir Cuando en un proceso una variable toma valores enteros desde un l mite inferior hasta un l mite superior, y el l mite inferior es mayor que el l mite superior, el proceso no se efecta. u As en el algoritmo anterior se puede hacer variar k, en el bucle externo, , entre 1 y n, y entonces no es necesario controlar si ann 0 ya que, cuando k = n, no es posible buscar m entre n + 1 y n. para k = 1, ..., n para i = k + 1, ..., n si |akk | ent buscar m, k + 1 m n, tal que |amk | > si no fue posible ent salir intercambiar(A(k, k : n), A(m, k : n)) intercambiar(bk , bm ) n-si lik = aik /akk , aik = 0 A(i, k + 1 : n) = A(i, k + 1 : n)likA(k, k + 1 : n) bi = bi likbk n-para i n-para k function [a, b, indic] = triangulariza(a, b, eps) // Triangulariza un sistema de ecuaciones // con matriz invertible.

2.7. METODO DE GAUSS

35

// // indic valdra 1 si todo funciono bien, // 0 si la matriz es singular o casi. // n = size(a,1) if argn(2) < 3, eps = 1.0e-10, end for k=1:n if abs(a(k,k)) <= eps m = posNoNulo(a, k) if m == 0 indic = 0 return end t = a(k,k:n) a(k,k:n) = a(m,k:n) a(m,k:n) = t t = b(k) b(k) = b(m) b(m) = t end for i=k+1:n lik = a(i,k)/a(k,k) a(i,k) = 0 a(i,k+1:n) = a(i,k+1:n) - lik*a(k,k+1:n) b(i) = b(i) - lik*b(k) end end indic = 1 endfunction //---------------------------------------------------------function m = posNoNulo(a, k, eps) // Busca la posicion del primer elemento no nulo en la // columna k, debajo de la diagonal. // // Si no es posible encontrarlo, m valdra 0. // if argn(2) < 3, eps = 1.0e-10, end n = size(a,1) for i = k+1:n if abs(a(i,k)) >= eps

36

2.

SOLUCION DE SISTEMAS LINEALES

m = i return end end m = 0 endfunction //---------------------------------------------------------function [x, indic] = Gauss(a, b, eps) // Solucion de un sistema de ecuaciones // por el metodode Gauss. // // indic valdra 1 si todo funciono bien, // en este caso el vector columna x // sera la solucion. // 0 si la matriz es singular o casi // -1 los tamanos son incompatibles. // indic = -1 x = [] n = verifTamanoAb(a, b) if n == 0, return, end if argn(2) < 3, eps = 1.0e-10, end indic = 0 x = [] [a, b, res] = triangulariza(a, b, eps) if res == 0, return, end indic = 1 x = solTriSup(a, b, eps) endfunction //---------------------------------------------------------function n = verifTamanoAb(a, b) // Esta funcion verifica si los tamanos de a, b // corresponden a un sistema cuadrado a x = b. // Devuelve n (num. de filas) si todo esta bien, // devuelve 0 si hay errores. [n1, n2] = size(a)

2.7. METODO DE GAUSS [n3, n4] = size(b) if n1 <> n2 | n1 <> n3 | n4 <> 1 | n1 < 1 printf(\nTamanos inadecuados.\n\n) n = 0 else n = n1 end endfunction

37

2.7.1

N mero de operaciones u

En el mtodo de Gauss hay que tener en cuenta el nmero de operaciones e u de cada uno de los dos procesos: triangularizacin y solucin del sistema o o triangular. Triangularizacin o Consideremos inicialmente la bsqueda de cero en la posicin (2, 1). Para u o efectuar A(2, 2 : n) = A(2, 2 : n) lik A(1, 2 : n) es necesario hacer n 1 sumas y restas. Para b2 = b2 likb1 es necesario una resta. En resumen n sumas (o restas). Multiplicaciones y divisiones: una divisin para calcular o lik; n 1 multiplicaciones para lik A(1, 2 : n) y una para likb1 . En resumen, n + 1 multiplicaciones (o divisiones). Para obtener un cero en la posicin (3, 1) se necesita exactamente el mismo o nmero de operaciones. Entonces para la obtener ceros en la primera columna: u Sumas y restas cero en la posicin de a21 o cero en la posicin de a31 o ... cero en la posicin de an1 o Total para la columna 1 n n n (n 1)n Multiplicaciones y divisiones n+1 n+1 n+1 (n 1)(n + 1)

Un conteo semejante permite ver que se requieren n 1 sumas y n multiplicaciones para obtener un cero en la posicin de a32 . Para buscar ceros en la o columna 2 se van a necesitar (n2)(n1) sumas y (n2)n multiplicaciones.

38

2.

SOLUCION DE SISTEMAS LINEALES Sumas y restas Multiplicaciones y divisiones (n 1)(n + 1) (n 2)n (n 3)(n 1) 2(4) 1(3)

ceros ceros ceros ... ceros ceros

en la columna 1 en la columna 2 en la columna 3 en la columna n 2 en la columna n 1

(n 1)n (n 2)(n 1) (n 3)(n 2) 2(3) 1(2)

Es necesario utilizar el resultado


m

i2 =
i=1

m(m + 1)(2m + 1) 6

Nmero de sumas y restas: u


n1 n1

i(i + 1) =
i=1 i=1

(i2 + i) =

n3 n3 n 3 3 3

Nmero de multiplicaciones y divisiones: u


n1 n1

i(i + 2) =
i=1 i=1

(i2 + 2i) =

n3 n2 5n n3 + 3 2 6 3

Nmero de operaciones: u 2n3 n2 7n 2n3 n3 n n3 n2 5n + + = + 3 3 3 2 6 3 2 6 3 Proceso completo El nmero de operaciones para las dos partes, triangularizacin y solucin u o o del sistema triangular, es 2n3 3n2 7n 2n3 + 3 2 6 3 Para valores grandes de n el nmero de operaciones de la solucin del sisu o tema triangular es despreciable con respecto al nmero de operaciones de la u triangularizacin. o

2.8. FACTORIZACION LU

39

2.8

Factorizacin LU o

Si durante el proceso del mtodo de Gauss no fue necesario intercambiar e las, entonces se puede demostrar que se obtiene fcilmente la factorizacin a o A = LU , donde L es una matriz triangular inferior con unos en la diagonal y U es una matriz triangular superior. La matriz U es simplemente la matriz triangular superior obtenida al nal del proceso. Para el ejemplo anterior:

La matriz L, con unos en la diagonal, los coecientes lik= lik = aik /akk . 1 0 l21 1 L = l31 l32 . . . Siguiendo con el ejemplo: 1 0.75 L= -0.5 -1.25

4 0 U = 0 0

3 -0.25 0 0

-2 2.5 45 0

va a estar formada simplemente por 0 0 1 .. . 0 0 0 . . . 1 0 0 0 1

1 4.25 79 2.8

ln1 ln2 ln3

0 1 -18 -15

0 0 1 0.8

En este ejemplo, fcilmente se comprueba que LU = A. Esta factorizacin a o es util para resolver otro sistema Ax = exactamente con la misma matriz b, de coecientes, pero con diferentes trminos independientes. e Ax = b, LU x = b, Ly = b, donde En resumen: U x = y.

40

2.

SOLUCION DE SISTEMAS LINEALES

Resolver Ly = para obtener y. b Resolver U x = y para obtener x. Ejemplo 2.4. Resolver 4x1 + 3x2 2x3 + x4 = 8

3x1 + 2x2 + x3 + 5x4 = 30 + x3 + x4 = 2

2x1 + 3x2 + x3 + 2x4 = 15 5x1 Al resolver 1 0.75 -0.5 -1.25 se obtiene y = 4 0 0 0 0 1 -18 -15 0 0 1 0.8
T

0 y1 0 y2 0 y3 y4 1 . Al resolver

8 30 = 15 2

8 24 451 11.2 3 -0.25 0 0 -2 2.5 45 0

x1 1 4.25 x2 x3 79 x4 2.8 1 2 3 4
T

8.0 24.0 = 451.0 11.2

se obtiene la solucin nal x = o

. 3

Resolver un sistema triangular, con unos en la diagonal, requiere n2 n n2 operaciones. Entonces, para resolver un sistema adicional, con la misma matriz A, se requiere efectuar aproximadamente 2n2 operaciones, en lugar de 2n3 /3 que se requerir si se volviera a empezar el proceso. an La factorizacin A = LU es un subproducto gratuito del mtodo de Gauss; o e gratuito en tiempo y en requerimientos de memoria. No se requiere tiempo adicional puesto que el clculo de los lik se hace dentro del mtodo de a e Gauss. Tampoco se requiere memoria adicional puesto que los valores lik se pueden ir almacenando en A en el sitio de aik que justamente vale cero. En el algoritmo hay unicamente un pequeo cambio: n

2.9. METODO DE GAUSS CON PIVOTEO PARCIAL . . . lik = aik /akk aik = lik A(i, k + 1 : n 1) = A(i, k + 1 : n 1)likA(k, k + 1 : n 1) bi = bi likbk . . . En la matriz nal A estar la informacin a o u11 u12 u13 l21 u22 u23 L = l31 l32 u31 . . . ln1 ln2 ln3 indispensable de L y de U . u1n u2n u3n . .. . . . unn

41

En el ejemplo anterior, la matriz nal con informacin de o 4 3 -2 1 0.75 -0.25 2.5 4.25 -0.5 -18 45 79 -1.25 -15 0.8 2.8

L y de U es:

2.9

Mtodo de Gauss con pivoteo parcial e

En el mtodo de Gauss clsico, unicamente se intercambian las cuando e a el pivote, akk , es nulo o casi nulo. Como el pivote (el elemento akk en la iteracin k) va a ser divisor para el clculo de lik, y como el error de o a redondeo o de truncamiento se hace mayor cuando el divisor es cercano a cero, entonces es muy conveniente buscar que el pivote sea grande en valor absoluto. Es decir, hay que evitar los pivotes que sin ser nulos son cercanos a cero. En el mtodo de Gauss con pivoteo parcial se busca el elemento dominante, e o sea, el de mayor valor absoluto en la columna k de la diagonal hacia abajo, es decir, entre los valores |akk |, |ak+1,k |, |ak+2,k |, ..., |akn |, y se intercambian la la k y la la del valor dominante. Esto mejora notablemente, en muchos casos, la precisin de la solucin nal obtenida. o o Se dice que el pivoteo es total si en la iteracin k se busca el mayor valor o de {|aij | : k i, j n}. En este caso es necesario intercambiar dos las

42

2.

SOLUCION DE SISTEMAS LINEALES

y dos columnas. As se consigue mejorar un poco la precisin con respecto o al mtodo de pivoteo parcial, pero a un costo nada despreciable. En el e mtodo de pivoteo parcial se busca el mayor valor entre n k + 1 valores. e En el pivoteo total se busca entre (n k + 1)2 valores. Si se busca, de manera secuencial, el mximo entre p elementos, entonces hay que hacer, a adems de operaciones de asignacin, por lo menos p 1 comparaciones. a o Estas operaciones no son de punto otante y son ms rpidas que ellas, a a pero para n grande, el tiempo utilizado no es despreciable. En el mtodo e de pivoteo parcial hay aproximadamente n2 /2 comparaciones, en el pivoteo total aproximadamente n3 /6. En resumen, con el pivoteo total se gana un poco de precisin, pero se gasta bastante ms tiempo. El balance aconseja o a preferir el pivoteo parcial. Ejemplo 2.5. Resolver por el mtodo de Gauss con pivoteo parcial el sie guiente sistema de ecuaciones. 4x1 + 3x2 2x3 + x4 = 4

2x1 + 3x2 + x3 + 2x4 = 7 5x1 + x3 + x4 = 8 -2 1 1 1 1 5 2 1 La matriz aumentada es: 4 3 -2 -5

3x1 + 2x2 + x3 + 5x4 = 8

3 2 3 0

Buscar ceros en las posiciones de a21 , a31 , a41 se hace de la manera habitual usando los valores de lik= 3/(5) = 0.6, 0.4 y 0.8. Se obtiene -5 0 1 1 -8 0 2 1.6 5.6 -12.8 0 3 0.6 1.6 -3.8 0 3 -1.2 1.8 -2.4

El valor dominante de A(1 intercambian las las 1 y 4. -5 3 -2 4

: 4, 1) es 5 y est en la la 4. Entonces se a 0 2 3 3 1 1 1 -2 1 5 2 1 -8 -8 -7 4

4 -8 -7 -8

2.9. METODO DE GAUSS CON PIVOTEO PARCIAL El valor dominante de A(2 : 4, 2) es 3 y est en la la a Entonces se intercambian las las 2 y 3. -5 0 1 1 -8 0 3 0.6 1.6 -3.8 0 2 1.6 5.6 -12.8 0 3 -1.2 1.8 -2.4

43 3 (o en la la 4).

Buscar ceros en las posiciones de a32 , a42 se hace usando lik= 2/3 = 0.6666 y 1. Se obtiene -5 0 1 1 -8 0 3 0.6 1.6 -3.8 0 0 1.2 4.5333 -10.2667 0 0 -1.8 0.2 1.4 Hay que intercambiar las las 3 y 4. -5 0 1 1 0 3 0.6 1.6 0 0 -1.8 0.2 0 0 1.2 4.5333

los valores de

El valor de lik es 1.2/(1.8) = 0.6667. Se obtiene -5 0 1 1 -8 0 3 0.6 1.6 -3.8 0 0 -1.8 0.2 1.4 0 0 0 4.6667 -9.3333 x = (1, 0, 1, 2) . 3

-8 -3.8 1.4 -10.2667

Al resolver el sistema triangular superior, se encuentra la solucin: o

En Scilab la bsqueda del valor dominante y su la se puede hacer mediante: u [vmax, posMax] = max(abs(a(k:n,k))) m = k - 1 + posMax if vmax <= eps, indic = 0, return, end El ejemplo anterior sirve simplemente para mostrar el desarrollo del mtodo e de Gauss con pivoteo parcial, pero no muestra sus ventajas. El ejemplo

44

2.

SOLUCION DE SISTEMAS LINEALES

siguiente, tomado de [Atk78], se resuelve inicialmente por el mtodo de e Gauss sin pivoteo y despus con pivoteo parcial. Los clculos se hacen con e a cuatro cifras decimales. 0.729x1 + 0.81x2 + 0.9x3 = x1 + x2 + 0.6867

x3 = .8338

1.331x1 + 1.21x2 + 1.1x3 = 1 Con la solucin exacta, tomada con cuatro cifras decimales, es o x = ( 0.2245, 0.2814, 0.3279 ). Al resolver el sistema por el mtodo de Gauss, con cuatro cifras decimales e y sin pivoteo, resultan los siguientes pasos: 0.7290 0.8100 0.9000 0.6867 1.0000 1.0000 1.0000 0.8338 1.3310 1.2100 1.1000 1.0000 Con lik = 1.3717 y con lik = 1.8258 se obtiene 0.7290 0.8100 0.9000 0.6867 0.0000 -0.1111 -0.2345 -0.1081 0.0000 -0.2689 -0.5432 -0.2538 Con lik = 2.4203 se obtiene 0.7290 0.8100 0.0000 -0.1111 0.0000 0.0000 0.9000 -0.2345 0.0244

La solucin del sistema triangular da: o x = ( 0.2163, 0.2979, 0.3197 ).

0.6867 -0.1081 0.0078

Sea x la solucin exacta del sistema Ax = b. Para comparar x1 y x2 , dos o aproximaciones de la solucin, se miran sus distancias a x : o x1 x , x2 x .

Si x1 x < x2 x , entonces x1 es, entre x1 y x2 , la mejor aproximacin o de x . Cuando no se conoce x , entonces se utiliza la norma del vector

2.9. METODO DE GAUSS CON PIVOTEO PARCIAL

45

residuo o resto, r = Ax b. Si x es la solucin exacta, entonces la norma de o su resto vale cero. Entonces hay que comparar Ax1 b , Ax2 b .

Para la solucin obtenida por el mtodo de Gauss, sin pivoteo, o e Ax b = 1.0357e-004 , x x = 0.0202 .

En seguida est el mtodo de Gauss con pivoteo parcial, haciendo clculos a e a con 4 cifras decimales. 0.7290 0.8100 0.9000 0.6867 1.0000 1.0000 1.0000 0.8338 1.3310 1.2100 1.1000 1.0000 Intercambio de las las 1 y 3. 1.3310 1.2100 1.0000 1.0000 0.7290 0.8100 1.1000 1.0000 0.9000 1.0000 0.8338 0.6867

Con lik = 0.7513 y con lik = 0.5477 se obtiene 1.3310 1.2100 1.1000 1.0000 0.0000 0.0909 0.1736 0.0825 0.0000 0.1473 0.2975 0.1390 Intercambio de las las 2 y 3. 1.3310 1.2100 0.0000 0.1473 0.0000 0.0909 1.1000 0.2975 0.1736 1.0000 0.1390 0.0825 1.0000 0.1390 -0.0033

Con lik = 0.6171 se obtiene 1.3310 1.2100 0.0000 0.1473 0.0000 0.0000

1.1000 0.2975 -0.0100

La solucin del sistema triangular da: o

x = ( 0.2267, 0.2770, 0.3300 ).

46

2.

SOLUCION DE SISTEMAS LINEALES

El clculo del residuo y la comparacin con la solucin exacta da: a o o Ax b = 1.5112e-004 , x x = 0.0053 .

Se observa que para este ejemplo la norma del residuo es del mismo orden de magnitud que la norma del residuo correspondiente a la solucin obtenida o sin pivoteo, aunque algo mayor. La comparacin directa con la solucin o o exacta favorece notablemente al mtodo de pivoteo parcial: 0.0053 y 0.0202, e relacin de 1 a 4 aproximadamente. Adems, visualmente se observa la o a mejor calidad de la solucin obtenida con pivoteo. o

2.10

Factorizacin LU =PA o

Si se aplica el mtodo de Gauss con pivoteo parcial muy probablemente se e hace por lo menos un intercambio de las y no se puede obtener la factorizacin A = LU , pero s se puede obtener la factorizacin o o LU = P A. Las matrices L y U tienen el mismo signicado de la factorizacin LU . P o es una matriz de permutacin, es decir, se obtiene mediante permutacin de o o las de la matriz identidad I. Si P y Q son matrices de permutacin, entonces: o P Q es una matriz de permutacin. o P 1 = P T (P es ortogonal). P A es una permutacin de las las de A. o AP es una permutacin de las columnas de A. o Una matriz de permutacin P se puede representar de manera ms compacta o a por medio de un vector p Rn con la siguiente convencin: o Pi = Ipi En palabras, la la i de P es simplemente la la pi de I. Obviamente p debe cumplir: pi {1, 2, 3, ..., n} i pi = pj i = j.

2.10. FACTORIZACION LU=PA Por ejemplo, p = (2, 4, 3, 1) representa la matriz 0 1 0 0 0 0 0 1 P = 0 0 1 0 1 0 0 0

47

De la misma forma que en la factorizacin LU , los valores lik se almacenan en o el sitio donde se anula el valor aik . El vector p inicialmente es (1, 2, 3, ..., n). A medida que se intercambian las las de la matriz, se intercambian las componentes de p. Ejemplo 2.6. Obtener la factorizacin LU = P A, o 4 3 -2 1 3 2 1 5 A= -2 3 1 2 -5 0 1 1 0 2 3 3 1 1 1 -2 donde .

Inicialmente p = (1, 2, 3, 4). Para buscar las las 1 y 4. -5 3 p = (4, 2, 3, 1), -2 4

el mejor pivote, se intercambian 1 5 . 2 1

Buscando ceros en la primera columna y almacenando all los valores lik se obtiene: -5 0 1 1 -0.6 2 1.6 5.6 . 0.4 3 0.6 1.6 -0.8 3 -1.2 1.8 Para buscar el mejor pivote, se intercambian las las 2 y 3. -5 0 1 1 0.4 3 0.6 1.6 p = (4, 3, 2, 1), -0.6 2 1.6 5.6 -0.8 3 -1.2 1.8 .

Buscando ceros en la segunda columna y almacenando all los valores lik se obtiene: -5 0 1 1 0.4 3 0.6 1.6 . -0.6 0.6667 1.2 4.5333 -0.8 1 -1.8 0.2

48

2.

SOLUCION DE SISTEMAS LINEALES

Para buscar el mejor pivote, se intercambian las las 3 y 4. -5 0.4 -0.8 -0.6 0 3 1 0.6667 1 0.6 -1.8 1.2 1 1.6 . 0.2 4.5333

p = (4, 3, 1, 2),

Buscando ceros en la tercera columna y almacenando all los valores lik se obtiene: -5 0 1 1 0.4 3 0.6 1.6 . -0.8 1 -1.8 0.2 -0.6 0.6667 -0.6667 4.6667 0 0 . 0 1

En esta ultima matriz y en el arreglo p est toda la informacin necesaria a o para obtener L, U , P . Entonces: 1 0.4 L= -0.8 -0.6 -5 0 U = 0 0 0 1 1 0.6667 0 3 0 0 0 0 0 1 1 0.6 -1.8 0 0 1 0 0 0 0 1 -0.6667

0 0 P = 1 0

1 1.6 . 0.2 4.6667 1 0 . 3 0 0

Si se desea resolver el sistema Ax = b a partir de la descomposicin P A = o LU , se considera el sistema P 1 LU x = b, o sea, P T LU x = b. Sean z = LU x y y = U x. La solucin de Ax = b tiene tres pasos: o Resolver P T z = b, o sea, z = P b. Resolver Ly = z. Resolver U x = y.

2.11.

METODO DE CHOLESKY

49

Ejemplo 2.7. Para la matriz A del ejemplo anterior, resolver Ax = b con b = [4 8 7 8]T . -8 -7 z = Pb = 4 -8 -8 -3.8 Ly = z , entonces y = 1.4 -9.3333 1 0 U x = y , entonces x = -1 3 -2 En Scilab, la factorizacin se puede obtener mediante la orden o [L, U, P] = lu(A)

2.11

Mtodo de Cholesky e

Este mtodo sirve para resolver el sistema Ax = b cuando la matriz A es e denida positiva (tambin llamada positivamente denida). Este tipo de e matrices se presenta en problemas espec cos de ingenier y f a sica, principalmente.

2.11.1

Matrices denidas positivas

Una matriz simtrica es denida positiva si e xT Ax > 0, x Rn , x = 0. (2.5)

50

2.

SOLUCION DE SISTEMAS LINEALES

Para una matriz cuadrada cualquiera, xT Ax = x1 x2 . . . xn

x1 x2 . . .
n n

xn

x1 a11 a12 . . . a1n a21 a22 . . . a2n x2 ... xn an1 an2 . . . ann a11 x1 + a12 x2 + + a1n xn a21 x1 + a22 x2 + + a2n xn an1 x1 + an2 x2 + + ann xn

=
i=1 j=i

aij xi xj .

Si A es simtrica, e
n n1 n

xT Ax =
i=1

aii x2 + 2 i
i=1 j=i+1

aij xi xj .

Ejemplo 2.8. Sea I la matriz identidad de orden n. Entonces xT Ix = xT x = x 2 . Luego la matriz I es denida positiva. 3 Ejemplo 2.9. Sea A la matriz nula de orden n. Entonces xT 0 x = 0. Luego la matriz nula no es denida positiva. 3 Ejemplo 2.10. Sea A = 1 2 2 5 .

xT Ax = x2 + 5x2 + 4x1 x2 1 2 = x2 + 4x1 x2 + 4x2 + x2 1 2 2 = (x1 + 2x2 )2 + x2 . 2 Obviamente xT Ax 0. Adems xT Ax = 0 si y solamente si los dos sumana dos son nulos, es decir, si y solamente si x2 = 0 y x1 = 0, o sea, cuando x = 0. Luego A es denida positiva. 3 Ejemplo 2.11. Sea A = 1 2 2 4 .

xT Ax = x2 + 4x2 + 4x1 x2 1 2 = (x1 + 2x2 )2 .

2.11.

METODO DE CHOLESKY

51

Obviamente xT Ax 0. Pero si x = (6, 3), entonces xT Ax = 0. Luego A no es denida positiva. 3 Ejemplo 2.12. Sea A = 1 2 2 3 .

xT Ax = x2 + 3x2 + 4x1 x2 1 2 = (x1 + 2x2 )2 x2 . 2 Si x = (6, 3), entonces xT Ax = 9. Luego A no es denida positiva. 3 Ejemplo 2.13. Sea A = 1 2 3 4 .

Como A no es simtrica, entonces no es denida positiva. 3 e Sean 1 , 2 , . . . , n los valores propios de A. Si A es simtrica, entonces e todos sus valores propios son reales. Sea i el determinante de la submatriz de A, de tamao i i, obtenida al n quitar de A las las i + 1, i + 2, ..., n y las columnas i + 1, i + 2, ..., n. O sea, 1 = det([a11 ]) = a11 , a11 a12 2 = det , a21 a22 a11 a12 a13 3 = det a21 a22 a13 , a31 a32 a33 . . . n = det(A). La denicin 2.5 tiene relacin directa con el nombre matriz denida posio o tiva. Sin embargo, no es una manera fcil o prctica de saber cundo una a a a matriz simtrica es denida positiva, sobre todo si A es grande. El teorema e siguiente presenta algunas de las caracterizaciones de las matrices denidas positivas. Para matrices pequeas (n 4) la caracterizacin por medio de n o los i puede ser la de aplicacin ms sencilla. La ultima caracterizacin, llao a o mada factorizacin de Cholesky, es la ms adecuada para matrices grandes. o a En [Str86], [NoD88] y [Mor01] hay demostraciones y ejemplos.

52

2.

SOLUCION DE SISTEMAS LINEALES

Teorema 2.1. Sea A simtrica. Las siguientes armaciones son equivae lentes. A es denida positiva. i > 0, i. i > 0, i. Existe U matriz triangular superior e invertible tal que A = U T U .

2.11.2

Factorizacin de Cholesky o

Scilab tiene la funcin chol para obtener la factorizacn de Cholesky. o o Cuando no es posible aparecer un mensaje de error. a a = [ 4 -6; -6 25] u = chol(a) Antes de estudiar el caso general, veamos la posible factorizacin para los o ejemplos de la seccin anterior. o La matriz identidad se puede escribir como I = I T I, siendo I triangular superior invertible. Luego existe la factorizacin de Cholesky para la matriz o identidad. Si existe la factorizacin de Cholesky de una matriz, al ser U y U T invertibles, o entonces A debe ser invertible. Luego la matriz nula no tiene factorizacin o de Cholesky. Sea A= Entonces 1 2 2 5

u11 0 u12 u22

u11 u12 0 u22

1 2 2 5

u2 = 1 11 u11 u12 = 2, u2 12 + u2 = 5 22

2.11.

METODO DE CHOLESKY

53

Se deduce que u11 = 1 u12 = 2, u22 = 1, U = 1 2 0 1 .

Entonces existe la factorizacin de Cholesky de A. o Cuando se calcul u11 se hubiera podido tomar u11 = 1 y se hubiera podido o obtener otra matriz U . Se puede demostrar que si se escogen los elementos diagonales uii positivos, entonces la factorizacin, cuando existe, es unica. o Sea A= Entonces u11 0 u12 u22 u11 u12 0 u22 = 1 2 2 4 1 2 2 4 .

u2 = 1 11 u11 u12 = 2, u2 12 Se deduce que u11 = 1 u12 = 2, u22 = 0, U = 1 2 0 0 . + u2 = 4 22

Entonces, aunque existe U tal que A = U T U , sin embargo no existe la factorizacin de Cholesky de A ya que U no es invertible. o Sea A= 1 2 2 3 .

54 Entonces u11 0 u12 u22

2.

SOLUCION DE SISTEMAS LINEALES

u11 u12 0 u22

1 2 2 3

u2 = 1 11 u11 u12 = 2, u2 12 Se deduce que u11 = 1 u12 = 2, u2 = 1. 22 Entonces no existe la factorizacin de Cholesky de A. o En el caso general, u11 . . . u1k ukk . . . u1j ukj ujj . . . + u2 = 3 22

u1n ukn ujn

El producto de la la 1 de U T por la columna 1 de U da: u2 = a11 . 11

u11 u1k u1j u1n . . . ukk ukj ukn . . . ujj ujn . . . unn unn

Luego u11 =

a11 .

(2.6)

El producto de la la 1 de U T por la columna j de U da: u11 u1j = a1j . a1j , j = 2, ..., n. (2.7) u11 Al hacer el producto de la la 2 de U T por la columna 2 de U , se puede calcular u22 . Al hacer el producto de la la 2 de U T por la columna j de u1j = Luego

2.11.

METODO DE CHOLESKY

55

U , se puede calcular u2j . Se observa que el clculo de los elementos de U a se hace la por la. Supongamos ahora que se conocen los elementos de las las 1, 2, ..., k 1 de U y se desea calcular los elementos de la la k de U . El producto de la la k de U T por la columna k de U da:
k

u2 = akk ik
i=1 k1

u2 + u2 = akk . ik kk
i=1

Luego
k1

ukk =

akk

u2 , ik
i=1

k = 2, ..., n.

(2.8)

El producto de la la k de U T por la columna j de U da:


k

uik uij = akj .


i=1

Luego
k1

ukj =

akj

uik uij
i=1

ukk

k = 2, ..., n, j = k + 1, ..., n.

(2.9)

Si consideramos que el valor de la sumatoria es 0 cuando el l mite inferior es ms grande que el l a mite superior, entonces las frmulas 2.8 y 2.9 pueden o ser usadas para k = 1, ..., n. Ejemplo 2.14. Sea 16 12 8 16 12 18 6 9 . A = 8 6 5 10 16 9 10 46 u11 = 16 = 4

56

2.

SOLUCION DE SISTEMAS LINEALES 12 4 8 = 4 16 = 4

u12 = u13 u14 u22 = u23 = u24

= 3 =2 = 4

18 (3)2 = 3 =0 = 1

6 (3)(2) 3 9 (3)(4) = 3

u33 = u34 = u44 = Entonces,

5 (22 + 02 ) = 1

10 ( 2(4) + 0(1) ) = 2 1

46 ( (4)2 + (1)2 + (2)2 ) = 5 . 4 3 2 4 0 3 0 1 . 3 = 0 0 1 2 0 0 0 5

La factorizacin de Cholesky no existe cuando en la frmula 2.8 la cantidad o o dentro del radical es negativa o nula. Utilizando el producto entre matrices, las frmulas 2.8 y 2.9 se pueden reescribir as o : t = akk U (1 : k 1, k)T U (1 : k 1, k), ukk = t, akj U (1 : k 1, k)T U (1 : k 1, j) ukj = ukk Para ahorrar espacio de memoria, los valores ukk y ukj se pueden almacenar sobre los antiguos valores de akk y akj . O sea, al empezar el algoritmo se tiene la matriz A. Al nalizar, en la parte triangular superior del espacio

2.11.

METODO DE CHOLESKY

57

ocupado por A estar U . a t = akk U (1 : k 1, k)T U (1 : k 1, k), t, akk = akj U (1 : k 1, k)T U (1 : k 1, j) akj = akk (2.10) (2.11) (2.12)

El siguiente es el esquema del algoritmo para la factorizacin de Cholesky. Si o acaba normalmente, la matriz A es denida positiva. Si en algn momento u t , entonces A no es denida positiva. datos: A, para k = 1, ..., n clculo de t segn (2.10) a u si t ent salir akk = t para j = k + 1, ..., n clculo de akj segn (2.12) a u n-para j n-para k La siguiente es la implementacin en Scilab, utilizando las operaciones mao triciales de Scilab: function [U, ind] = Cholesky(A) // // Factorizacion de Cholesky. // // Trabaja unicamente con la parte triangular superior. // // ind = 1 si se obtuvo la factorizacion de Choleky // = 0 si A no es definida positiva // //************ eps = 1.0e-8 //************ n = size(A,1) U = zeros(n,n)

58

2.

SOLUCION DE SISTEMAS LINEALES

for k = 1:n t = A(k,k) - U(1:k-1,k)*U(1:k-1,k) if t <= eps printf(Matriz no definida positiva.\n) ind = 0 return end U(k,k)= sqrt(t) for j = k+1:n U(k,j) = ( A(k,j) - U(1:k-1,k)*U(1:k-1,j) )/U(k,k) end end ind = 1 endfunction

2.11.3

N mero de operaciones de la factorizacin u o

Para el clculo del nmero de operaciones supongamos que el tiempo necea u sario para calcular una ra cuadrada es del mismo orden de magnitud que z el tiempo de una multiplicacin. o

Sumas y restas clculo a clculo a clculo a clculo a clculo a clculo a ... clculo a de de de de de de u11 u12 u1n u22 u23 u2n 0 0 0 1 1 1 n1

Multiplicaciones, divisiones y ra ces 1 1 1 2 2 2 n

de unn

Agrupando por las:

2.11.

METODO DE CHOLESKY Sumas y restas clculo a clculo a clculo a ... clculo a de U1 de U2 de U3 de Un n(0) (n 1)1 (n 2)2 1(n 1) Multiplicaciones, divisiones y ra ces n(1) (n 1)2 (n 2)3 1(n)

59

Nmero de sumas y restas: u


n1 i=1

(n i)i =

n3 n3 n . 6 6

Nmero de multiplicaciones, divisiones y ra u ces:


n i=1

(n + 1 i)i =

n3 n2 n n3 + + . 6 2 3 6

Nmero total de operaciones: u n3 n2 n n3 + + . 3 2 6 3

2.11.4

Solucin del sistema o

Una vez obtenida la factorizacin de Cholesky, resolver Ax = b es lo mismo o que resolver U T U x = b. Al hacer el cambio de variable U x = y, la solucin o del sistema Ax = b se convierte en resolver resolver U T y = b, U x = y. (2.13) (2.14)

Resolver cada uno de los dos sistemas es muy fcil. El primero es triangular a inferior, el segundo triangular superior. El nmero total de operaciones u para resolver el sistema est dado por la factorizacin ms la solucin de a o a o dos sistemas triangulares. Nmero de operaciones u n3 n3 + 2 n2 3 3

60

2.

SOLUCION DE SISTEMAS LINEALES

Esto quiere decir que para valores grandes de n, resolver un sistema, con A denida positiva, por el mtodo de Cholesky, gasta la mitad del tiempo e requerido por el mtodo de Gauss. e El mtodo de Cholesky se utiliza para matrices denidas positivas. Pero e no es necesario tratar de averiguar por otro criterio si la matriz es denida positiva. Simplemente se trata de obtener la factorizacin de Cholesky de o A simtrica. Si fue posible, entonces A es denida positiva y se contina e u con la solucin de los dos sistemas triangulares. Si no fue posible obtener la o factorizacin de Cholesky, entonces A no es denida positiva y no se puede o aplicar el mtodo de Cholesky para resolver Ax = b. e Ejemplo 2.15. Resolver 76 x1 16 12 8 12 18 6 x2 = 66 . x3 46 8 6 8

Al resolver U T y = b se obtiene

La factorizacin de Cholesky es posible (A o 4 3 3 U = 0 0 0

es denida positiva): 2 0 . 2

y = (19, 3, 4). Finalmente, al resolver U x = y se obtiene x = (3, 1, 2). 3 La implementacin en Scilab de la solucin de un sistema con matriz simtrica o o e y denida positiva se puede hacer por medio de una funcin que llama tres o funciones: function [x, info] = solCholesky(a, b) // Solucion de un sistema de ecuaciones por // el mtodo de Cholesky e // // Se supone que a es simetrica y se utiliza // unicamente la parte triangular superior de a.

2.12.

SOLUCION POR M INIMOS CUADRADOS // // info valdra 1 si a es definida positiva, // asi x sera un vector columna // con la solucion, // 0 si a no es definida positiva. // [a, info] = Cholesky(a) if info == 0, return, end y = sol_UT_y_b(a, b) x = solTriSup(a, y) endfunction

61

La segunda funcin, y = sol_UT_y_b(U, b) resuelve el sistema U T y = b , o pero se tiene la informacin de U . Si se sabe con certeza que la matriz o es denida positiva, en lugar de Cholesky, es preferible usar la funcin de o Scilab chol ms eciente. a

2.12

Solucin por m o nimos cuadrados

Consideremos ahora un sistema de ecuaciones Ax = b, no necesariamente cuadrado, donde A es una matriz m n cuyas columnas son linealmente independientes. Esto implica que hay ms las que columnas, m n, y a que adems el rango de A es n. Es muy probable que este sistema no a tenga solucin, es decir, tal vez no existe x que cumpla exactamente las m o igualdades. Se desea que Ax = b, Ax b Ax b = 0,
2 2 2

= 0,

Ax b

= 0, = 0.

Ax b

Es posible que lo deseado no se cumpla, entonces se quiere que el incumplimiento (el error) sea lo ms pequeo posible. Se desea minimizar esa cantidad, a n min Ax b
2 2

(2.15)

El vector x que minimice Axb 2 se llama solucin por m o nimos cuadrados. 2 Como se ver ms adelante, tal x existe y es unico (suponiendo que las a a columnas de A son linealmente independientes).

62

2.

SOLUCION DE SISTEMAS LINEALES

2.12.1

En Scilab

basta con

La orden para hallar por la solucin por m o nimos cuadrados es la misma que para resolver sistemas de ecuaciones cuadrados, a saber, a\b . Por ejemplo, para resolver el sistema 43 2 3 x1 4 5 = 77 x2 109 6 7 a = [ 2 3; 4 5; 7 6 ], b = [ 43 77 109 ] x = a\b

El resultado obtenido es x = 7.6019417 9.3009709

2.12.2

Derivadas parciales

Con el nimo de hacer ms clara la deduccin, supongamos que A es una a a o matriz 4 3. Sea f (x) = Ax b 2 , 2 f (x) =(a11 x1 + a12 x2 + a13 x3 b1 )2 + (a21 x1 + a22 x2 + a23 x3 b2 )2 + (a31 x1 + a32 x2 + a33 x3 b3 )2 + (a41 x1 + a42 x2 + a43 x3 b4 )2 . Es posible que algunos de los lectores de este texto no conozcan el clculo en a varias variables. En este cap tulo y en el siguiente se requiere saber calcular derivadas parciales. A continuacin se presenta una breve introduccin al o o clculo (mecnico) de las derivadas parciales. a a Sea una funcin de varias variables con valor real, : Rn R. Bajo o ciertas condiciones de existencia, la derivada parcial de con respecto a xi se obtiene considerando las otras variables como constantes y derivando (x1 , x2 , ..., xn ) unicamente con respecto a xi . Esta derivada parcial se de nota xi

2.12.

SOLUCION POR M INIMOS CUADRADOS

63

Evaluada en un punto espec co x, se denota () x xi Por ejemplo, si (x1 , x2 , x3 , x4 ) = (4x3 + 6x4 )9 + 5x1 x2 + 8x4 , 1 x1 x2 x3 x4

= 9(4x3 + 6x4 )8 (12x2 ) + 5x2 , 1 1 = 5x1 , = 0, = 54(4x3 + 6x4 )8 + 8. 1

2.12.3

Ecuaciones normales

Para obtener el m nimo de f se requiere que las tres derivadas parciales, f /x1 , f /x2 y f /x3 , sean nulas. f =2(a11 x1 + a12 x2 + a13 x3 b1 )a11 x1 + 2(a21 x1 + a22 x2 + a23 x3 b2 )a21

+ 2(a31 x1 + a32 x2 + a33 x3 b3 )a31

+ 2(a41 x1 + a42 x2 + a43 x3 b4 )a41 .

Escribiendo de manera matricial, f =2(A1x b1 )a11 + 2(A2x b2 )a21 + 2(A3x b3 )a31 x1 + 2(A4x b4 )a41 .

64

2.

SOLUCION DE SISTEMAS LINEALES

Si B es una matriz y u un vector columna, entonces (Bu)i = Biu. f x1 = 2 ((Ax)1 b1 )a11 + ((Ax)2 b2 )a21 + ((Ax)3 b3 )a31 +((Ax)4 b4 a41 ,
4

= 2
i=1 4

(Ax b)i ai1 , (A1 )i (Ax b)i , (AT 1)i (Ax b)i ,

= 2
i=1 4

= 2
i=1

= 2 AT (Ax b) De manera semejante f x2 f x3

= 2AT 1(Ax b),


1

= 2 AT (Ax b) = 2 AT (Ax b)

Igualando a cero las tres derivadas parciales y quitando el 2 se tiene AT (Ax b)


T T

1 2 3

= 0, = 0, = 0

A (Ax b) Es decir,

A (Ax b)

AT (Ax b) = 0,

AT A x = AT b .

(2.16)

Las ecuaciones (2.16) se llaman ecuaciones normales para la solucin (o o seudosolucin) de un sistema de ecuaciones por m o nimos cuadrados. La matriz AT A es simtrica de tamao n n. En general, si A es una matriz e n T m n de rango r, entonces A A tambin es de rango r (ver [Str86]). Como e se supuso que el rango de A es n, entonces AT A es invertible. Ms an, AT A a u es denida positiva.

2.12.

SOLUCION POR M INIMOS CUADRADOS

65

Por ser AT A invertible, hay una unica solucin de (2.16), o sea, hay un o solo vector x que hace que las derivadas parciales sean nulas. En general, las derivadas parciales nulas son simplemente una condicin necesaria para o obtener el m nimo de una funcin (tambin lo es para mximos o para puntos o e a de silla), pero en este caso, como AT A es denida positiva, f es convexa, y entonces anular las derivadas parciales se convierte en condicin necesaria y o suciente para el m nimo. En resumen, si las columnas de A son linealmente independientes, entonces la solucin por m o nimos cuadrados existe y es unica. Para obtener la solucin o por m nimos cuadrados se resuelven las ecuaciones normales. Como AT A es denida positiva, (2.16) se puede resolver por el mtodo de e Cholesky. Si m n y al hacer la factorizacin de Cholesky resulta que o AT A no es denida positiva, entonces las columnas de A son linealmente dependientes. Si el sistema Ax = b tiene solucin exacta, sta coincide con la solucin por o e o m nimos cuadrados. Ejemplo 2.16. Resolver por m nimos cuadrados: 3.1 2 1 0 x 1 2 3 1 8.9 x2 = 3.1 2 2 1 x3 0.1 5 4 2 .

Las ecuaciones normales dan: 4.0 x1 34 20 15 20 25 12 x2 = 20.5 23.4 x3 15 12 14 La solucin por m o nimos cuadrados es: x = (2.0252, 1.0132, 2.9728) . El error, Ax b, es: 0.0628 0.0196 0.0039 . 3 0.0275

66

2.

SOLUCION DE SISTEMAS LINEALES cuadrados: 3 x1 9 x2 = 3 x3 0

Ejemplo 2.17. Resolver por m nimos 2 1 3 1 2 0 2 2 6 5 4 6 Las ecuaciones normales 34 20 48 dan:

Al tratar de resolver este sistema de ecuaciones por el mtodo de Cholesky; e no se puede obtener la factorizacin de Cholesky, luego AT A no es denida o positiva, es decir, las columnas de A son linealmente dependientes. Si se aplica el mtodo de Gauss, se obtiene que AT A es singular y se concluye que e las columnas de A son linealmente dependientes. 3 Ejemplo 2.18. Resolver por m nimos cuadrados: 2 1 3 1 2 x1 0 = 2 6 2 x2 5 4 6 34 20 20 25 x1 x2 48 15

3 x1 20 48 25 15 x2 = 21 x3 27 15 81

Las ecuaciones normales dan:

La solucin por m o nimos cuadrados es: x = (2, 1) . El error, Ax b, es: 0 0 . 0 0

En este caso, el sistema inicial ten solucin exacta y la solucin por a o o m nimos cuadrados coincide con ella. 3

2.13. SISTEMAS TRIDIAGONALES

67

La solucin por m o nimos cuadrados de un sistema sobredeterminado tambin e se puede hacer en Scilab mediante (a*a)\(a*b) o por medio de pinv(a)*b , pero ambas son menos ecientes que a\b . La implementacin eciente de la solucin por m o o nimos cuadrados, v ecuaa ciones normales, debe tener en cuenta algunos detalles. No es necesario construir toda la matriz simtrica AT A (n2 elementos). Basta con almacenar en e un arreglo de tamao n(n + 1)/2 la parte triangular superior de AT A. n Este almacenamiento puede ser por las, es decir, primero los n elementos de la primera la, enseguida los n1 elementos de la segunda la a partir del elemento diagonal, despus los n 2 de la tercera la a partir del elemento e diagonal y as sucesivamente hasta almacenar un solo elemento de la la n. Si se almacena la parte triangular superior de AT A por columnas, se almacena primero un elemento de la primera columna, enseguida dos elementos de la segunda columna y as sucesivamente. Cada una de las dos formas tiene sus ventajas y desventajas. La solucin por el mtodo de Cholesky debe tener o e en cuenta este tipo de estructura de almacenamiento de la informacin. o Otros mtodos ecientes para resolver sistemas de ecuaciones por m e nimos cuadrados utilizan matrices ortogonales de Givens o de Householder.

2.13

Sistemas tridiagonales

es decir, A es de la forma a11 a12 0 0 a21 a22 a23 0 0 a32 a33 a34 A= 0 0 a43 a44 . . . 0 0 0 0

Un sistema Ax = b se llama tridiagonal si la matriz A es tridiagonal, o sea, si aij = 0 si |i j| > 1, 0 0 0 0 ann

Estos sistemas se presentan en algunos problemas particulares, por ejemplo, al resolver, mediante diferencias nitas, una ecuacin diferencial lineal de o segundo orden con condiciones de frontera o en el clculo de los coecientes a de un trazador cbico (spline). u

68

2.

SOLUCION DE SISTEMAS LINEALES

Obviamente este sistema se puede resolver mediante el mtodo de Gauss. e Pero dadas las caracter sticas especiales es mucho ms eciente sacar provea cho de ellas. Se puede mostrar que si A admite descomposicin LU , entonces o estas dos matrices tambin guardan la estructura de A, es decir, L, adems e a de ser triangular inferior, tiene ceros por debajo de la subdiagonal y U , adems de ser triangular superior, tiene ceros por encima de la superdiaa gonal. Para simplicar, denotemos con fi los elementos de la suddiagonal de L, di los elementos de la diagonal de U y ui los elementos de la superdiagonal de U . Se conoce A y se desea conocer L y U a partir de la siguiente igualdad: 1 0 0 f1 1 0 0 f2 1 0 0 f3 0 0 0 0 0 0 0 0 0 1 .. . 0 0 0 0 0 0 1 fn1 d1 u1 0 0 0 0 0 d2 u2 0 0 0 0 d3 u3 0 0 0 0 d4 .. . 0 0 0 0 0 0 0 0 0 1 0 0 0 0 dn1 0 0 0 0 0

=A. un1 dn

Sean Fi la la i de L y Cj la columna j de U . Entonces los productos de las las de L por las columnas de U producen las siguientes igualdades: F1 C1 : F1 C2 : F2 C1 : F2 C2 : F2 C3 : F3 C2 : F3 C3 : F3 C4 : . . . Fi Ci1 : Fi Ci : Fi Ci+1 : d1 = a11 u1 = a12 f1 d1 = a21 f1 u1 + d2 = a22 u2 = a23 f2 d2 = a32 f2 u2 + d3 = a33 u3 = a34

fi1 di1 = ai,i1 fi1 ui1 + di = aii ui = ai,i+1

2.13. SISTEMAS TRIDIAGONALES A partir de las igualdades anteriores se obtienen los valores ui , fi y di : d1 = a11 , ui = ai,i+1 , i = 1, ..., n 1, ai+1,i , fi = di di+1 = ai+1,i+1 fi ui

69

(2.17)

Resolver Ax = b es equivalente a resolver LU x = b. Entonces, si U x = y, se resuelve Ly = b y despus U x = y. Al explicitar las anteriores igualdades e se tiene:

y 1 = b1 , fi1 yi1 + yi = bi , dn xn = yn , di xi + ui xi+1 = yi . Las frmulas expl o citas son: y 1 = b1 , yi = bi fi1 yi1 , yn , xn = dn yi ui xi+1 xi = , di i = 2, ..., n, (2.18) i = n 1, n 2, ..., 1.

Ejemplo 2.19. Resolver el sistema Ax = b, con 2 4 0 0 3 5 6 0 , A= 0 4 5 1 0 0 1 2 8 1 b= 2 . 10

70 Entonces d1 = 2 ,

2.

SOLUCION DE SISTEMAS LINEALES

u2 = 6 , 4 = 4, f2 = 1 d3 = 5 4 6 = 29 ,

u1 = 4 , 3 = 1.5 , f1 = 2 d2 = 5 1.5 4 = 1 ,

u3 = 1, 1 f3 = = 0.034483 , 29 d4 = 2 0.034483 1 = 2.034483 ,

Ahora la solucin de los sistemas Ly = b, U x = y : o y1 = 8, y2 = 1 1.5 (8) = 13 ,

y4 = 10 0.034483 54 = 8.137931 , 8.137931 x4 = = 4, 2.034483 54 1 4 = 2, x3 = 29 13 6 2 x2 = = 1 , 1 8 4 (1) x1 = = 2 . 3 2 Las frmulas (2.17) y (2.18) se pueden utilizar sin ningn problema si todos o u los di son no nulos. Algn elemento diagonal de U resulta nulo si la matriz u A no es invertible o si simplemente A no tiene factorizacin LU . o Ejemplo 2.20. Consideremos las dos matrices siguientes: A= 2 3 8 12 , A = 0 2 3 4 .

y3 = 2 4 13 = 54 ,

2.13. SISTEMAS TRIDIAGONALES

71

La matriz A no es invertible y d2 resulta nulo. La matriz A es invertible pero no tiene factorizacin LU . En este ultimo caso, se obtiene d1 = 0 . 3 o

Si la matriz A es grande no se justica almacenar todos los n2 elementos. Basta con almacenar la diagonal, la subdiagonal y la superdiagonal, es decir 3n 2 nmeros. Mejor an, en el mismo sitio donde inicialmente se u u almacenan los elementos diagonales de A se pueden almacenar los elementos diagonales de U a medida que se van calculando, donde se almacenan los elementos subdiagonales de A se pueden almacenar los elementos subdiagoanles de L, los elementos superdiagonales de A son los mismos elementos superdiagonales de U , donde se almacena b se puede almacenar y y posteriormente x. En resumen, una implementacin eciciente utiliza 4 vectores d, f , u y b. El o primero y el cuarto estn en Rn , los otros dos estn en Rn1 . Al comienzo a a d, f , u contienen datos de A y los trminos independientes estn en b. Al e a nal d, f , u contienen datos de L, U y la solucin nal (los xi ) estar en b. o a

SOLUCION DE SISTEMA TRIDIAGONAL datos: d, f, u, b, si |d1 | ent parar para i = 1, ..., n 1 fi fi = di di+1 = di+1 fi ui si |di+1 | ent parar n-para para i = 2, ..., n bi = bi fi1 bi1 n-para bn bn = dn para i = n 1, n 2, ..., 1 bi ui bi+1 bi = di n-para

72

2.

SOLUCION DE SISTEMAS LINEALES

2.14

Clculo de la inversa a

En la mayor de los casos no es necesario calcular expl a citamente la inversa de una matriz, pues basta con resolver un sistema de ecuaciones. De todas formas, algunas pocas veces es indispensable obtener la inversa. A continuacin est el algoritmo para el cculo de la inversa, tomado y o a a adaptado de [Stewart 98], basado en la factorizacin LU = P A (con pivoo n1 que tiene toda la informacin teo parcial). Se utiliza un vector p en Z o indispensable para obtener la matriz P , pero no representa directamente la permutacin. Al principio p es simplemente (1, 2, ..., n 1). o Slamente se utiliza memoria para una matriz. Al principio est A; al nal o a del algoritmo, si indic = 1, est la inversa. Cuando indic = 0, la matriz a es singular o casi singular. Se utiliza la notacin de Matlab y Scilab para las submatrices de A. Para o los elementos de A y p se utiliza la notacin usual con sub o ndices.

datos: A, resultados: la inversa almacenada en A, indic Factorizacion: p = (1, 2, ..., n 1) para k = 1 : n 1 determinar m tal que |amk | = max{ |aik | : i = k, ..., n} si |amk | indic = 0, parar n-si pk = m si m > k A(k, : ) A(m, : ) n-si A(k + 1 : n, k) = A(k + 1 : n, k)/akk A(k + 1 : n, k + 1 : n) = A(k + 1 : n, k + 1 : n) A(k + 1 : n, k)A(k, k + 1 : n) n-para si |ann | indic = 0, parar n-si indic = 1

2.14. CALCULO DE LA INVERSA Calculo de U 1 : para k = 1 : n akk = 1/akk para i = 1 : k 1 aik = akk A(i, i : k 1)A(i : k 1, k) n-para n-para Calculo de U 1 L1 : para k = n 1 : 1 : 1 t = A(k + 1 : n, k) A(k + 1 : n, k) = 0 A( : , k) = A( : , k) A( : , k + 1 : n) t n-para Reordenamiento de columnas : para k = n 1 : 1 : 1 si pk = k A( : , k) A( : , pk ) n-si n-para Ejemplo 2.21. A inicial -2.0000 -4.0000 -5.0000 1.0000 4.0000 -3.0000 -2.0000 -3.0000 p inicial : 1 2 3 Factorisacion k = 1 m = 2 p : 2 2 3 intercambio de filas : 1 2 A despues de intercambio -5.0000 1.0000 2.0000 -2.0000 -4.0000 4.0000

73

4.0000 2.0000 0.0000 1.0000

-2.0000 1.0000 -4.0000 -1.0000

1.0000 -2.0000

74 4.0000 -2.0000 A despues de -5.0000 0.4000 -0.8000 0.4000

2.

SOLUCION DE SISTEMAS LINEALES -4.0000 -1.0000 1.0000 -2.4000 -3.2000 -1.4000

-3.0000 0.0000 -3.0000 1.0000 operaciones 1.0000 2.0000 -4.4000 3.2000 -2.2000 1.6000 -3.4000 0.2000

k = 2 m = 2 p : 2 2 3 A despues de operaciones -5.0000 1.0000 2.0000 0.4000 -4.4000 3.2000 -0.8000 0.5000 0.0000 0.4000 0.7727 -2.2727 k = 3 m = 4 p : 2 2 4 intercambio de filas : 3 4 A despues de intercambio -5.0000 1.0000 2.0000 0.4000 -4.4000 3.2000 0.4000 0.7727 -2.2727 -0.8000 0.5000 0.0000 A despues de operaciones -5.0000 1.0000 2.0000 0.4000 -4.4000 3.2000 0.4000 0.7727 -2.2727 -0.8000 0.5000 -0.0000 A despues de calcular inv. de U -0.2000 -0.0455 -0.2400 0.4000 -0.2273 -0.3200 0.4000 0.7727 -0.4400 -0.8000 0.5000 -0.0000

1.0000 -2.4000 -2.0000 0.4545

1.0000 -2.4000 0.4545 -2.0000 1.0000 -2.4000 0.4545 -2.0000

-0.1000 0.2000 -0.1000 -0.5000

2.14. CALCULO DE LA INVERSA A despues de calcular U1*L1 -0.2600 0.1900 -0.2400 0.3200 -0.0800 -0.3200 -0.0600 0.3900 -0.4400 -0.5000 0.2500 0.0000

75

-0.1000 0.2000 -0.1000 -0.5000

inversa: despues de reordenamiento 0.1900 -0.2600 -0.1000 -0.2400 -0.0800 0.3200 0.2000 -0.3200 0.3900 -0.0600 -0.1000 -0.4400 0.2500 -0.5000 -0.5000 0.0000 Expresiones explicitas de L, U, P L 1.0000 0.0000 0.0000 0.0000 0.4000 1.0000 0.0000 0.0000 0.4000 0.7727 1.0000 0.0000 -0.8000 0.5000 -0.0000 1.0000 U -5.0000 1.0000 2.0000 1.0000 0.0000 -4.4000 3.2000 -2.4000 0.0000 0.0000 -2.2727 0.4545 0.0000 0.0000 0.0000 -2.0000 P : 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0

Mtodos iterativos e
Los mtodos de Gauss y Cholesky hacen parte de los mtodos directos o e e nitos. Al cabo de un nmero nito de operaciones, en ausencia de errores u de redondeo, se obtiene x solucin del sistema Ax = b. o El mtodo de Jacobi, Gauss-Seidel, SOR (sobrerrelajacin), hacen parte de e o los mtodos llamados indirectos o iterativos. e En ellos se comienza con x0 = (x0 , x0 , ..., x0 ), una aproximacin inicial de la solucin. A partir de o o n 1 2 0 se construye una nueva aproximacin de la solucin, x1 = (x1 , x1 , ..., x1 ). x o o n 1 2 A partir de x1 se construye x2 (aqu el super ndice indica la iteracin y o no indica una potencia). As sucesivamente se construye una sucesin de o k }, con el objetivo, no siempre garantizado, de que vectores {x
k

lim xk = x .

Generalmente los mtodos indirectos son una buena opcin cuando la matriz e o es muy grande y dispersa o rala (sparse), es decir, cuando el nmero de u elementos no nulos es pequeo comparado con n2 , nmero total de elementos n u de A. En estos casos se debe utilizar una estructura de datos adecuada que permita almacenar unicamente los elementos no nulos.

3.1

Mtodo de Gauss-Seidel e

En cada iteracin del mtodo de Gauss-Seidel, hay n subiteraciones. En la o e primera subiteracin se modica unicamente x1 . Las dems coordenadas o a x2 , x3 , ..., xn no se modican. El clculo de x1 se hace de tal manera que a 76

3.1. METODO DE GAUSS-SEIDEL se satisfaga la primera ecuacin. o x1 = 1 x1 i b1 (a12 x0 + a13 x0 + + a1n x0 ) n 2 3 , a11 = x0 , i = 2, ..., n. i

77

En la segunda subiteracin se modica unicamente x2 . Las dems coordeo a nadas x1 , x3 , ..., xn no se modican. El clculo de x2 se hace de tal manera a que se satisfaga la segunda ecuacin. o x2 = 2 x2 i b2 (a21 x1 + a23 x1 + + a2n x1 ) n 1 3 , a22 = x1 , i = 1, 3, ..., n. i

As sucesivamente, en la n-sima subiteracin se modica unicamente xn . e o Las dems coordenadas x1 , x2 , ..., xn1 no se modican. El clculo de xn a a se hace de tal manera que se satisfaga la n-sima ecuacin. e o xn = n xn i
n1 n1 n1 bn (an1 x1 + an3 x3 + + ann xn ) , ann n1 = xi , i = 1, 2, ..., n 1.

Ejemplo 3.1. Resolver 10 2 1 0 1 20 2 3 2 1 30 0 1 2 3 20 partiendo de x0 = (1, 2, 3, 4). x1 = 1 x1 x2 2 x2 x3 3 x3 x4 4 x4

26 x1 x2 15 x3 = 53 47 x4

26 (2 2 + (1) 3 + 0 4) = 2.5, 10 = (2.5, 2, 3, 4). 15 (1 2.5 + (2) 3 + 3 4) = = 1.175, 20 = (2.5, 1.175, 3, 4). 53 (2 2.5 + 1 (1.175) + 0 4) = 1.9725, = 30 = (2.5, 1.175, 1.9725, 4). 47 (1 2.5 + 2 (1.175) + 3 1.9725) = 2.0466, = 20 = (2.5, 1.175, 1.9725, 2.0466).

78

3. METODOS ITERATIVOS

Una vez que se ha hecho una iteracin completa (n subiteraciones), se utiliza o el ultimo x obtenido como aproximacin inicial y se vuelve a empezar; se o calcula x1 de tal manera que se satisfaga la primera ecuacin, luego se calcula o x2 ... A continuacin estn las iteraciones siguientes para el ejemplo anterior. o a 3.0323 3.0323 3.0323 3.0323 3.0025 3.0025 3.0025 3.0025 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 3.0000 1.1750 1.0114 1.0114 1.0114 1.0114 0.9997 0.9997 0.9997 0.9997 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.9725 1.9725 2.0025 2.0025 2.0025 2.0025 2.0002 2.0002 2.0002 2.0002 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0466 2.0466 2.0466 1.9991 1.9991 1.9991 1.9991 1.9998 1.9998 1.9998 1.9998 2.0000 2.0000 2.0000 2.0000 2.0000

Tericamente, el mtodo de Gauss-Seidel puede ser un proceso innito. En o e la prctica el proceso se acaba cuando de xk a xk+n los cambios son muy a pequeos. Esto quiere decir que el x actual es casi la solucin x . n o Como el mtodo no siempre converge, entonces otra detencin del proceso, e o no deseada pero posible, est determinada cuando el nmero de iteraciones a u realizadas es igual a un nmero mximo de iteraciones previsto. u a El siguiente ejemplo no es convergente, ni siquiera empezando de una aproximacin inicial muy cercana a la solucin. La solucin exacta es x = (1, 1, 1). o o o Ejemplo 3.2. Resolver 11 x1 1 2 10 11 1 2 x2 = 12 x3 8 1 5 2 partiendo de x0 = (1.0001, 1.0001, 1.0001).

3.1. METODO DE GAUSS-SEIDEL 1.0012 1.0012 1.0012 0.6863 0.6863 0.6863 83.5031 83.5031 83.5031 1.0001 1.0134 1.0134 1.0134 2.5189 2.5189 2.5189 926.4428 926.4428 1.0001 1.0001 0.9660 0.9660 0.9660 9.9541 9.9541 9.9541 2353.8586

79

Algunos criterios garantizan la convergencia del mtodo de Gauss-Seidel. e Por ser condiciones sucientes para la convergencia son criterios demasiado fuertes, es decir, la matriz A puede no cumplir estos requisitos y sin embargo el mtodo puede ser convergente. En la prctica, con frecuencia, es muy e a dispendioso poder aplicar estos criterios. Una matriz cuadrada es de diagonal estrictamente dominante por las si en cada la el valor absoluto del elemento diagonal es mayor que la suma de los valores absolutos de los otros elementos de la la,
n

|aii | >

j=1,j=i

|aij | , i.

Teorema 3.1. Si A es de diagonal estrictamente dominante por las, entonces el mtodo de Gauss-Seidel converge para cualquier x0 inicial. e Teorema 3.2. Si A es denida positiva, entonces el mtodo de Gauss-Seidel e 0 inicial. converge para cualquier x Tericamente el mtodo de Gauss-Seidel se deber detener cuando xk o e a x < . Sin embargo la condicin anterior necesita conocer x , que es o precisamente lo que se est buscando. Entonces, de manera prctica el a a mtodo de GS se detiene cuando xk xk+n < . e Dejando de lado los super ndices, las frmulas del mtodo de Gauss-Seidel o e se pueden reescribir para facilitar el algoritmo y para mostrar que xk x

80 y xk xk+n estn relacionadas. a


n

3. METODOS ITERATIVOS

bi xi bi xi xi

aij xj
j=1,j=i

aii
n j=1

aij xj + aii xi ,

aii bi Ai x . xi + aii

Sean

ri = bi Ai x, ri i = aii El valor ri es simplemente el error, residuo o resto que se comete en la isima ecuacin al utilizar el x actual. Si ri = 0, entonces la ecuacin i-sima e o o e se satisface perfectamente. El valor i es la modicacin que sufre xi en una o iteracin. o Sean r = (r1 , r2 , ..., rn ), = (1 , 2 , ..., n ). Entonces xk+n = xk +. Adems a xk es solucin si y solamente si r = 0, o sea, si y solamente = 0. Lo anterior o justica que el mtodo de GS se detenga cuando . La norma e puede ser la norma euclidiana o cualquier otra norma. Si en el criterio de parada del algoritmo se desea enfatizar sobre los errores o residuos, entonces se puede comparar con / (a11 , ..., ann ) ; por ejemplo, max |aii |

El esquema del algoritmo para resolver un sistema de ecuaciones por el mtodo de Gauss-Seidel es: e

3.1. METODO DE GAUSS-SEIDEL datos: A, b, x0 , , maxit x = x0 para k = 1, ...,maxit nrmD 0 para i = 1, ..., n i = (bi Ai x)/aii xi xi + i nrmdnrmD+|i | n-para i si nrmD ent x x, salir n-para k

81

A continuacin hay una versin, no muy eciente, que permite mostrar los o o resultados intermedios function [x, ind, k] = GS(A, b, x0, eps, maxit) // // metodo de Gauss Seidel para resolver A x = b // // A matriz cuadrada, // b vector columna de terminos independientes, // x0 vector columna inicial // // ind valdra -1 si hay un elemento diagonal nulo o casi, // // 1 si se obtuvo un aproximacion // de la solucion, con la precision deseada, // // 0 si no se obtuvo una buena aproximacion. // // k indicara el numero de iteraciones if min( abs(diag(A)) ) <= %eps ind = -1 x = [] return end x = x0 n = size(x,1) ind = 1

82

3. METODOS ITERATIVOS for k = 1:maxit //printf(\n k = %d\n, k) D = 0 for i = 1:n di = ( b(i) - A(i,:)*x )/A(i,i) x(i) = x(i) + di D = max(D, abs(di)) end disp(x) if D < eps, return, end end ind = 0 endfunction

En una implementacin eciente para matrices dispersas, se requiere una o estructura en la que se almacenan unicamente los elementos no nulos y que permita efectuar el producto de una la de A por un vector, es decir, que permita remplazar ecientemente la orden A(i,:)*x.

3.2

Normas vectoriales

El concepto de norma corresponde simplemente a la abstraccin del cono cepto de tamao de un vector. Consideremos el vector que va de (0, 0, 0) a n (2, 3, 4). Su tamao o magnitud es simplemente n 22 + 32 + (4)2 = 29

Sea V un espacio vectorial real. Una norma es una funcin o

(x) = 0 sssi

(x) 0, x V,

:V R

x = 0, (desigualdad triangular)

(x) = || (x), R, x V, Ejemplos clsicos de normas en Rn son: a

(x + y) (x) + (y), x, y V.

3.3. NORMAS MATRICIALES

83

1/2

||x||2 = ||x|| =
n

x2 i
i=1 1/p p

norma euclidiana,

||x||p =

i=1

|xi |

norma de Holder de orden p 1,

||x|| = ||x||max = max |xi |,


1in

||x|| con > 0 y || || una norma, ||x||A = xT Ax con A denida positiva. Se puede mostrar que lim ||x||p = ||x|| = ||x||max .

Sea x = (3, 0, 4), entonces ||x||2 = 5, ||x||1 = 7,

||x|| = 4.

3.2.1

En Scilab

Si x es un vector la o columna, entonces norm(x) norm(x, norm(x, norm(x, norm(x, calcula calcula calcula calcula calcula ||x||2 , ||x||2 , ||x||1 , ||x||4 , ||x|| .

2) 1) 4) inf)

3.3

Normas matriciales

En el conjunto de matrices cuadradas de orden n se puede utilizar cualquier 2 norma denida sobre Rn . Dado que en el conjunto de matrices cuadradas

84

3. METODOS ITERATIVOS

est denido el producto, es interesante contar con normas que tengan caraca ter sticas especiales relativas al producto entre matrices y al producto entre una matriz y un vector. En particular en algunos casos es conveniente que se tengan estas dos propiedades:

||AB|| ||A|| ||B||, ||Ax|| ||A|| ||x||. Ejemplo 3.3. Sean A= entonces AB = pero 19 22 , 43 50 Ax = 17 , 39 1 2 , 3 4 B= 5 6 , 7 8 x= 5 , 6

||AB|| = 50, ||Ax|| = 39,

||A|| ||x|| = 4 6 = 24. 3

||A|| ||B|| = 4 8 = 32

Una norma || || denida sobre el Rnn (conjunto de matrices n n) se llama matricial o (submultiplicativa) si, adems de las propiedades usuales a de norma, para cualquier par de matrices A y B ||AB|| ||A|| ||B||. Sean || ||m una norma matricial sobre Rnn y || ||v una norma sobre Rn . Estas dos normas se llaman compatibles o consistentes si, para toda matriz A Rnn y para todo x Rn ||Ax||v ||A||m ||x||v . Una manera comn de construir normas que sean matriciales y compatibles u es generando una norma a partir de un norma sobre Rn . Sea || || una norma

3.3. NORMAS MATRICIALES

85

sobre Rn . La norma generado o inducida por esta norma se dene de varias maneras, todas ellas equivalentes:

|||A||| = sup
x=0

||Ax|| x=0 ||x|| |||A||| = sup ||Ax|| |||A||| = max


||x||=1

||Ax|| ||x||

(3.1) (3.2) (3.3) (3.4)

|||A||| = max ||Ax||.


||x||=1

Proposicin 3.1. La denicin anterior est bien hecha, es decir, ||| |||| o o a es una norma, es matricial y es compatible con || ||.

Demostracin. Sea o

(A) = sup
x=0

||Ax|| ||x||

Ante todo es necesario mostrar que la funcin est bien denida, o sea, o a para toda matriz A,

(A) = sup
x=0

||Ax|| < . ||x||

Veamos

86

3. METODOS ITERATIVOS

(A) = sup
x=0

A ||x||

= sup
x=0

||x||A

x ||x|| ||x||

x ||x|| ||x||

= sup
x=0

||x|| A x ||x||

x ||x|| ||x||

= sup A
x=0 ||||=1

= sup ||A||

La funcin () = ||A|| es continua y el conjunto S = { Rn : |||| = o 1} es compacto (cerrado y acotado), luego (S) es compacto, en particular acotado, es decir, (A) = sup (S) < . Adems el sup se alcanza en un a punto de S. Luego las 4 deniciones, (3.1) y siguientes, coinciden. Claramente (A) 0. Veamos que (A) = 0 sssi A = 0. Si A = 0, entonces (A) = 0. Sea A = 0. Entonces A tiene por lo menos una columna no nula. Sea Aj = 0 y v = ej /||ej || . Por denicin ||v|| = 1. o (A) ||Av|| = A ej ||ej || Aj = ||ej || ||Aj || > 0. = ||ej ||

(A) = max ||Ax|| = max || ||Ax|| = || max ||Ax|| = ||(A).


||x||=1 ||x||=1 ||x||=1

Para mostrar que (A + B) (A) + (B) se usa la siguiente propiedad:

3.3. NORMAS MATRICIALES

87

xX

sup ( f (x) + g(x) ) sup f (x) + sup g(x)


xX xX

(A + B) = sup ||(A + B)x|| = sup ||Ax + Bx|| sup (||Ax|| + ||Bx||)


||x||=1 ||x||=1 ||x||=1

sup ||Ax|| + sup ||Bx|| = (A) + (B)


||x||=1 ||x||=1

Hasta ahora se ha mostrado que es una norma sobre Rnn . Si se utiliz la o n , la norma generada o subordinada sobre Rnn se denota norma || ||2 en R por ||| |||2 . Cuando no hay ambig edad, es la notacin ms usual, u o a ||A||2 indica la norma generada evaluada en la matriz A y ||x||2 indica la norma original evaluada en el vector columna x. Veamos ahora que la norma original y la generada son compatibles. Obviamente si x = 0, entonces ||Ax|| ||A|| ||x||. Sea x = 0 y = x/||x|| de norma uno. ||A|| ||A|| = A x ||x|| = ||Ax|| , luego ||A|| ||x|| ||Ax||. ||x||

Queda por mostrar que esta norma generada es matricial.

||AB|| = max ||ABx|| = max ||A(Bx)|| max ||A|| ||Bx||


||x||=1 ||x||=1 ||x||=1

= ||A|| max ||Bx|| = ||A|| ||B||.


||x||=1

Para las 3 normas vectoriales ms usadas, las normas matriciales generadas a son:
n

||A||1 = max ||A||2 =

1jn

i=1

|aij |,

(3.5) (3.6) (3.7)

(AT A) (norma espectral),


n 1in j=1

||A|| = max

|aij |.

88

3. METODOS ITERATIVOS

Si la matriz A se considera como un vector, entonces se puede aplicar la norma euclidiana. Esta norma resulta ser matricial. Esta norma se conoce con el nombre de norma de Frobenius o tambin de Schur. e 1/2

||A||F =

i,j

(aij )2

(3.8)

Para cualquier norma generada ||I|| = 1. Como ||I||F = n, entonces esta norma no puede ser generada por ninguna norma vectorial

Ejemplo 3.4. Sea 1 2 3 4

A=

Entonces 10 10 10 20

AT A =

Sus valores propios son 3.8196601 y 26.18034. Luego

||A||1 = 6, ||A|| = 7.
n

||A||2 = 5.1166727,

Proposicin 3.2. . ||A||1 = max o


j

i=1

|aij |

3.3. NORMAS MATRICIALES Demostracin. o

89

||A||1 = max ||Ax||1


||x||1 =1 n

= max

||x||1 =1

i=1 n i=1 n

|(Ax)i | |Aix|
n

= max

||x||1 =1

= max

||x||1 =1

aij xj
i=1 j=1 n n

max

||x||1 =1

i=1 j=1 n n i=1 j=1 n j=1 n j=1

|aij xj | |aij | |xj |


n i=1

= max

||x||1 =1

= max = max

||x||1 =1

|xj |

|aij |

||x||1 =1

|xj |sj

donde sj =

n i=1 |aij |.

Si j , j 0 para todo j, entonces

n j=1

n j=1

j j

max j
j

j .

Luego

90

3. METODOS ITERATIVOS

||A||1 max max sj


||x||1 =1 j

n j=1

= max
j

||x||1 =1

max sj
j

|xj |

= max sj
n

= max
j i=1

|aij |

En resumen
n

||A||1 max
j

i=1

|aij |.

Sea k tal que


n i=1 n

|aik | = max
j

i=1

|aij |

||A||1 = max ||Ax||1


||x||1 =1

||A||1 ||Aek ||1 = ||Ak ||1


n i=1

||Ax||1

para todo x con ||x||1 = 1

n j i=1

= es decir,

|aik | = max

|aij |

||A||1 max
j

i=1

|aij |.

Proposicin 3.3. ||A||2 = o

(AT A).

3.3. NORMAS MATRICIALES Demostracin. o ||A||2 = max ||Ax||2


||x||2 =1

91

||A||2 2 ||A||2 2

= max ||Ax||2 2
||x||2 =1

= max xT AT Ax
||x||2 =1

La matriz AT A es simtrica y semidenida positiva, todos sus valores propios e 1 , ..., n son reales y no negativos. Sea 1 2 ... n 0. Por el teorema espectral, AT A es semejante, ortogonalmente, a la matriz diagonal de sus valores propios. Las matrices se pueden reordenar para que

V T (AT A)V = diag(1 , ..., n ) ,

con V ortogonal.

Sean v 1 , v 2 , ..., v n las columnas de V . Entonces v 1 , v 2 , ..., v n forman un conjunto ortonormal de vectores propios, es decir,

(AT A)v i = i v i , v i v j = ij . Sea x tal que ||x||2 = 1, = V T x. Entonces ||||2 = 1 y V = V V T x = x, es decir,


n
T

x=
i=1

i v i .

Entonces

92

3. METODOS ITERATIVOS

AT Ax = AT A
i=1 n

i v i

=
i=1 n

i AT Av i i i v i
i=1 n j=1

xT AT Ax = =

2 i i n

j v j

i i v i
i=1

i=1

1 = 1 En resumen,

2 i i=1

||A||2 1 2 ||A||2 Por otro lado, 1

||A||2 ||A||2 ||A||2 ||A||2 ||A||2

xT AT Ax pra todo x con ||x||2 = 1 v 1 T AT Av 1 v 1 T 1 v 1 1 v 1 T v 1 1 .


n

Proposicin 3.4. ||A|| = max o


i

j=1

|aij |

3.3. NORMAS MATRICIALES Demostracin. o ||A|| = max ||Ax||


||x|| =1

93

= max max |(Ax)i |


||x|| =1 i

= max max |Aix|


||x|| =1 i n

= max max |
||x|| =1 i

j=1 n

aij xj |

max max
||x|| =1 i

j=1

|aij | |xj |

Como |xj | ||x||


n

||A|| max max


||x|| =1 i

j=1

|aij | ||x||
n

= max ||x|| max


||x|| =1 n i

j=1

|aij |

= max
i j=1

|aij |

Veamos ahora la otra desigualdad. Si A = 0, se cumple la igualdad. Sean k y x tales que

n j=1

|akj | = max
i

xj =

j=1

|aij | si akj = 0 |akj | akj si akj = 0.

signo(akj ) =

94

3. METODOS ITERATIVOS

||A|| ||A|| x
i

||A|| ||Ax|| = max |Aix|

||x|| = 1,

si

||x|| = 1,

||A|| |Akx|
n

= |Aix| para todo i, |akj | akj

=
j=1 n

akj

=
j=1 n

|akj |

=
j=1

|akj |
n

= max
i j=1

|aij |.

En las sumas de las desigualdades anteriores, los trminos donde akj = 0 no e se consideran. Proposicin 3.5. . Si || || es una norma matricial, entonces existe por o lo menos una norma vectorial compatible con ella. Demostracin. Sean X = [x 0 0 0] Rnn y ||x|| = ||X|| . Se o puede comprobar que || || es una norma en Rn y que es compatible con || || . RESUMEN DE RESULTADOS || || (denida en (3.4) ) es una norma. || || (denida en (3.4) ) es matricial. || || (para matrices) es compatible con || || (para vectores columna). ||I|| = 1.

3.3. NORMAS MATRICIALES


n

95

||A||1 = max
j

i=1 n

|aij | |aij |

||A|| = max
i

j=1

||A||2 =

(AT A)

||A||2 = max{1 , 2 , ..., n } = max{valores singulares de A} (ver [AlK02]). ||A||2 = (A) si A ||A||F = 0.
n 2 i i=1

tr(AT A) =

Si Q es ortogonal ||QA||F = ||AQ||F = ||A||F . ||A||2 ||A||F n||A||2 1 ||A||1 ||A||F n||A||1 n 1 ||A|| ||A||F n||A|| n ||A||2 ||A||1 ||A|| 2 (A) ||A|| para toda norma matricial || ||. Sea > 0. Entonces existe una norma matricial || || tal que ||A|| (A) + || ||F es multiplicativa (ver [Ste98]). || ||F y || ||2 son compatibles. || ||F no es la norma generada por ninguna norma || || ya que ||I||F = n = 1. n max |aij | es matricial (ver [Man04]).
i,j

||A||2 = ||A||F sssi r(A) = 1.

n max |aij | es compatible con || ||1 , || ||2 y || || .


i,j

96

3. METODOS ITERATIVOS

3.3.1

En Scilab

Si A es una matriz, entonces norm(A) norm(A, norm(A, norm(A, norm(A, calcula calcula calcula calcula calcula ||A||2 , ||A||2 , ||A||1 , ||A|| , ||A||F .

2) 1) inf) fro)

3.4

Condicionamiento de una matriz

Cuando se resuelve un sistema de ecuaciones Ax = b se desea conocer cmo o son los cambios en la solucin cuando se cambia ligeramente el vector de o trminos independientes b. e De manera ms precisa, sea x la solucin de Ax = b y x la solucin de a o o Ax = b . Se puede suponer que b = b + b, x = x + x. Se espera que si ||b|| es pequea, entonces tambin ||x|| es pequea. En n e n realidad es mejor considerar cambios relativos. Se espera que si el valor ||b||/||b|| es pequeo, entonces tambin ||x||/|||| sea pequeo. Las den e x n ducciones que siguen relacionan los dos cambios relativos.

x = x x

= A1 (b + b) A1 b = A1 b.

= A1 b A1 b

Al utilizar una norma y la norma matricial generada se obtiene ||x|| ||A1 || ||b||.

3.4. CONDICIONAMIENTO DE UNA MATRIZ Por otro lado

97

b = Ax ||b|| ||A|| |||| x ||A|| 1 |||| x ||b||

Multiplicando la primera y la ultima desigualdad

||x|| ||b|| ||A|| ||A1 || . |||| x ||b||

(3.9)

El valor ||A|| ||A1 || se llama condicionamiento o nmero de condicin de la u o matriz A (invertible) y se denota

(A) = ||A|| ||A1 ||.

Entonces ||x|| ||b|| (A) . |||| x ||b|| Ejemplo 3.5. Calcular 1 (A), 2 (A) y (A) para la matriz

(3.10)

A=

10 7 6 4

98 Entonces A1 = AT A = A1 A1 =
T

3. METODOS ITERATIVOS

2 7/2 3 5 136 94 94 65

13 22 22 149/4

esp(A1 A1 ) = {0.0049756, 50.245024} ||A1 ||2 = 7.0883725 2 (A) = 100.49005 ||A||1 = 16 ||A||2 = 14.176745

esp(AT A) = {0.0199025, 200.9801}


T

||A1 ||1 = 17/2 1 (A) = 136 ||A|| = 17

||A1 || = 8

(A) = 136. 3

El condicionamiento, denido para normas matriciales inducidas de normas vectoriales, tiene la siguientes propiedades: (A) 1. (A) = (A) si = 0. 2 (A) = 1 si y solamente si A es un mltiplo de una matriz ortogonal u (o unitaria). La desigualdad (3.10) indica que si (A) es pequeo, entonces un cambio n relativo en b pequeo produce un cambio relativo en x pequeo. n n Una matriz A es bien condicionada si (A) es cercano a 1 y es mal condicionada si (A) es grande. Para el condicionamiento 2 (denido con la norma espectral) las matrices mejor condicionadas son las matrices ortogonales.

3.4. CONDICIONAMIENTO DE UNA MATRIZ Ejemplo 3.6. Resolver los sistemas Ax = b y Ax = b , donde A= Entonces b = [0.01 0.01]T , ||b|| = 0.0005, ||b|| (A) = 1.0752269. Al resolver los dos sistemas se obtiene: x = [1.9999474 0.0010526]T , x = [1.9998947 0.0021053]T , x = [0.0000526 .0010526]T , ||x|| = 0.0005270, ||x|| ||b|| = 0.0005376. (A) ||b|| 10 10 10 9 , b= 20.01 19.99 , b = 20.02 19.98 .

99

La matriz A es muy bien condicionada y entonces cambios pequeos en b n producen cambios pequeos en x. 3 n Ejemplo 3.7. Resolver los sistemas Ax = b y Ax = b , donde A= Entonces b = [0.01 0.01]T , ||b|| = 0.0005, ||b|| 99900 100000 A1 = 100000 100100 (A) = 4000002. 10.01 10.00 10.00 9.99 , b= 20.01 19.99 , b = 20.02 19.98 .

100 Al resolver los dos sistemas se obtiene: x = [1 1]T ,

3. METODOS ITERATIVOS

x = [1998 2002]T , x = [1999 2001]T , ||x|| = 2000.0002, ||x|| ||b|| (A) = 2000.0008. ||b|| La matriz A es muy mal condicionada y entonces cambios pequeos en b n pueden producir cambios muy grandes en la solucin. 3 o Ejemplo 3.8. Resolver los sistemas Ax = b y Ax = b , donde A= Entonces b = [0.01 0.01]T , ||b|| = 0.0005, ||b|| 99900 100000 A1 = 100000 100100 (A) = 4000002. Al resolver los dos sistemas se obtiene: x = [1 1]T , x = [2 0]T , x = [1 1]T , ||x|| = 1, ||x|| ||b|| (A) = 2000.0008. ||b|| 10.01 10.00 10.00 9.99 , b= 20.01 19.99 , b = 20.02 20.00 .

3.5. METODO DE JACOBI

101

La matriz A, la misma del ejemplo anterior, es muy mal condicionada y entonces cambios pequeos en b pueden producir cambios muy grandes en n la solucin. Sin embargo los cambios en la solucin, aunque no despreciables, o o no fueron tan grandes como en el ejemplo anterior, o sea, ||x||/||x|| est a lejos de la cota superior. 3 En Scilab el condicionamiento para la norma euclidiana se calcula por medio de cond( A ).

3.5

Mtodo de Jacobi e

Este mtodo se parece al mtodo GS, tambin se utiliza la ecuacin i-sima e e e o e para calcular xi y el clculo de xi se hace de la misma forma. Pero un valor a recin calculado de xi no se utiliza inmediatamente. Los valores nuevos de xi e solamente se empiezan a utilizar cuando ya se calcularon todos los n valores xi . Ejemplo 3.9. 4 1 1 0 , A= 2 5 2 3 10 7 b = 19 , 45 1.2 x0 = 1.5 . 1.6 Jacobi x2 1.5 1.5 3.32 3.32 3.32 3.09 3.09 x3 1.6 1.6 1.6 4.29 4.29 4.29 3.859

Gauss-Seidel x1 x2 x3 1.2 1.5 1.6 1.775 1.5 1.6 1.775 3.09 1.6 1.775 3.09 3.928 1.9595 3.09 3.928 1.9595 3.0162 3.928 1.9595 3.0162 3.98704

x1 1.2 1.775 1.775 1.775 1.9925 1.9925 1.9925

El primer vector calculado es igual en los dos mtodos. Para calcular x2 en e el mtodo GS se usa el valor x1 = 1.775 recin calculado: e e x2 = 19 2 1.775 0 1.6 = 3.09 . 5

102 En cambio en el mtodo de Jacobi: e x2 = En el mtodo de GS: e x3 =

3. METODOS ITERATIVOS

19 2 1.2 0 1.6 = 3.32 . 5

45 + 2 1.775 3 3.09 = 3.928 . 10

En el mtodo de Jacobi: e x3 = 45 + 2 1.2 3 1.5 = 4.29 . 10

Ahora s en el mtodo de Jacobi, los valores calculados de x2 y x3 se utilizan , e para volver a clacular x1 . 3

3.6

Mtodo iterativo general e

Muchos mtodo iterativos, en particular, los mtodos de Jacobi, GS, SOR e e se pueden expresar de la forma xk+1 = M xk + p. (3.11)

Al aplicar varias veces la frmula anterior, se est buscando un punto jo de o a la funcin f (x) = M x + p. Al aplicar el teorema de punto jo de Banach, o uno de los resultados ms importantes del anlisis matemtico, se tiene el a a a siguiente resultado. Teorema 3.3. Si existe una norma matricial || || tal que ||M || < 1. entonces existe un unico punto jo x tal que x = M x + p. Este punto se puede obtener como l mite de la iteracin (3.11) para cualquier x0 inicial. o En algunos casos el criterio anterior se puede aplicar fcilmente al encontrar a una norma adecuada. Pero por otro lado, si despus de ensayar con varias e normas, no se ha encontrado una norma que sirva, no se puede concluir que no habr convergencia. El siguiente criterio es ms preciso pero puede ser a a numricamente ms dif de calcular. e a cil

3.7. METODO DE SOBRERRELAJACION

103

Teorema 3.4. La iteracin de punto jo (3.11) converge si y solamente si o (M ) < 1. El radio espectral de una matriz cuadrada M , denotado generalmente (M ), es la mxima norma de los valores propios de M (reales o complejos), a (M ) = max {|i | : i esp(M )},
1in

donde esp(M ) es el conjunto de valores propios de M . La convergencia es lenta cuando (M ) es cercano a 1, es rpida cuando (M ) a es pequeo (cercano a 0). n Cualquier matriz cuadrada A se puede expresar de la forma A = L + D + U, donde L es la matriz triangular inferior correspondiente a la parte triangular estrictamente inferior de A, D es la matriz diagonal correspondiente a los elementos diagonales de A y U es la matriz triangular superior correspondiente a la parte triangular estrictamente superior de A. Para el mtodo de Jacobi: e MJ = D1 (L + U ), pJ = D1 b. Para el mtodo GS e MGS = (D + L)1 U, pGS = (D + L)1 b.

3.7

Mtodo de sobrerrelajacin e o

Este mtodo, conocido como SOR (Successive Over Relaxation), se puede e considerar como una generalizacin del mtodo GS. La frmulas que denen o e o el mtodo GS son: e ri = bi Aix , ri i = , aii xi = xi + i .

104

3. METODOS ITERATIVOS

El el mtodo SOR unicamente cambia la ultima asignacin, introduciendo e o un parmetro , a

ri = bi Aix , ri , i = aii xi = xi + i .

(3.12)

Si 0 < < 1 se tiene una subrrelajacin, si 1 < se tiene la sobrerrelao jacin propiamente dicha. Si = 1, se tiene el mtodo GS. Una escogencia o e adecuada de mejora la convergencia del mtodo GS. Este mtodo se usa e e en algunas tcnicas de solucin de ecuaciones diferenciales parciales. e o Una condicin necesaria para que el mtodo SOR converja, ver [Dem97], es o e que

0 < < 2.

Para matrices denidas positivas el mtodo SOR converge para cualquier e en el intervalo ]0, 2[.

Ejemplo 3.10. Resolver el sistema Ax = b por el mtodo SOR con = 1.4 e partiendo de x0 = (1, 1, 1, 1).

5 1 2 2 0 4 2 3 , A= 3 3 8 2 1 4 1 6

25 10 b= 35 . 33

3.7. METODO DE SOBRERRELAJACION Entonces

105

r1 = b1 A1x = 25 4 = 21 21 = 4.2 1 = 5 1 = 5.88 x1 = 1 + 5.88 = 6.88 r2 = 10 9 = 19 19 2 = = 4.75 4 2 = 6.65

x2 = 1 6.65 = 5.65

r3 = 35 9.69 = 25.31 25.31 3 = = 3.163750 8 3 = 4.429250 x3 = 1 + 4.429250 = 5.429250 r4 = 33 28.909250 = 4.090750 4.090750 = 0.681792 4 = 6 4 = 0.954508 x4 = 1 0.954508 = 0.045492

r1 = 25 50.817517 = 25.817517 25.817517 1 = = 5.163503 5 1 = 7.228905

x1 = 6.880000 + 7.228905 = 0.348905

La siguiente tabla muestra las primeras 15 iteraciones completas

106

3. METODOS ITERATIVOS Sobrerrelajacin, = 1.4. o x2 x3 1.000000 1.000000 -5.650000 5.429250 -5.088241 6.823724 -4.710011 4.792473 -3.552048 4.649676 -2.880061 4.240550 -2.409681 3.821389 -2.008170 3.644054 -1.742759 3.462571 -1.543881 3.333868 -1.395632 3.248121 -1.289998 3.179762 -1.211802 3.131447 -1.154687 3.096340 -1.113133 3.070228 -1.082649 3.051371

k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

x1 1.000000 6.880000 -0.348905 1.076876 1.810033 1.368852 1.721105 1.788640 1.812353 1.883878 1.909584 1.932877 1.952699 1.964616 1.974261 1.981287

x4 1.000000 0.045492 -1.458380 -1.351123 -2.337041 -2.768266 -3.050409 -3.337915 -3.507443 -3.638593 -3.738508 -3.807650 -3.859624 -3.897553 -3.925007 -3.945238

La tabla siguiente muestra los resultados de la solucin del mismo sistema o por el mtodo GS. La solucin exacta es x = (2, 1, 3, 4). Se aprecia que e o en la iteracin 15 se tiene una mejor aproximacin de la solucin con el o o o mtodo de sobrerrelajacin. e o

3.7. METODO DE SOBRERRELAJACION Gauss-Seidel x2 x3 1.000000 1.000000 -3.750000 4.081250 -3.450781 4.542168 -3.193777 4.427492 -2.945539 4.272474 -2.723966 4.128304 -2.527427 3.999765 -2.353270 3.885783 -2.198968 3.784786 -2.062259 3.695303 -1.941139 3.616023 -1.833828 3.545783 -1.738753 3.483552 -1.654519 3.428416 -1.579890 3.379568 -1.513770 3.336289

107

k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

x1 1.000000 5.200000 2.036250 1.651746 1.647204 1.682025 1.717631 1.749749 1.778274 1.803554 1.825953 1.845798 1.863381 1.878958 1.892760 1.904987

x4 1.000000 -1.453125 -2.103076 -2.357609 -2.549694 -2.715634 -2.862150 -2.991898 -3.106845 -3.208684 -3.298912 -3.378851 -3.449676 -3.512425 -3.568019 -3.617274

El mtodo SOR depende de la escogencia de y queda entonces la pregunta e Cmo escoger ? La respuesta no es sencilla. Algunas veces se hace simpleo mente por ensayo y error. Si se desea resolver muchos sistemas de ecuaciones parecidos, por ejemplo provenientes del mismo tipo de problema pero con datos ligeramente diferentes, se puede pensar que un valor adecuado de para un problema puede servir para un problema parecido. Entonces se puede pensar en hacer ensayos con varios valores de para ver y escoger el que se supone sirva para este tipo de problemas. En algunos caso muy particulares se puede hacer un estudio terico. Tal es o el caso de la solucin, por diferencias nitas, de la ecuacin de Poisson en o o un rectngulo. All se demuestra que a opt = 2 1 + sin m+1

Este resultado y otros tericos se basan en el radio espectral de la matriz de o la iteracin de punto jo. o Se puede mostrar que el mtodo SOR se puede expresar como una iteracion e

108 de punto jo con

3. METODOS ITERATIVOS

MSOR = (D + L)1 (1 )D U , pSOR = (D + L)1 b. La deduccin anterior proviene de descomponer o A= 1 1 D + L + (1 )D + U 1 1 D + L + ( 1)D + U = D + L ( 1)D + U = +

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

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

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

Para el caso particular del mtodo GS e MGS = (D + L)1 U, pGS = (D + L)1 b. Para el ejemplo 3.10, con = 1.4, 7.000000 0.400000 0.280000 0.560000 0.560000 0.000000 0.400000 0.700000 1.050000 k 3.500000 x + xk+1 = 4.287500 . 0.210000 0.063000 0.261500 0.607250 1.799583 0.044333 0.453367 0.583683 0.852358

En este caso (M ) = 0.730810, lo que garantiza la convergencia.

La siguiente tabla nos muestra los valores del nmero de iteraciones y del u radio espectral para diferentes valores de . El criterio de parada utilizado fue max{|i | : i = 1, ..., n} 0.000001.

3.7. METODO DE SOBRERRELAJACION (M ) 1

109

1 Figura 3.1: Mtodo SOR: y radio espectral e

0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90

k 999 641 415 301 232 185 151 125 105 88 74 61 50 40 29 33 50 92 408

(M ) 0.994 0.987 0.979 0.970 0.961 0.950 0.937 0.923 0.906 0.886 0.862 0.831 0.790 0.731 0.620 0.662 0.765 0.867 0.969

La gura 3.1 muestra la variacin del radio espectral (M ) al variar . o Proviene de un conjunto de datos ms amplio que el de la tabla anterior. a

110

3. METODOS ITERATIVOS

El mejor valor de es aproximadamente 1.55. Esto coincide, en la tabla, con el menor nmero de iteraciones. u El siguiente es el esquema del algoritmo de sobrerrelajacin, muy parecido o al de GS. Se supone que no hay elementos diagonales nulos. SOR: SOBRERRELAJACION datos: A, b, , x0 , , maxit x = x0 para k = 1, ...,maxit difX = 0 para i = 1, ..., n ri = bi Ai x ri i = aii xi = xi + i difX = max{difX, |i |} n-para i si difX ent x x, salir n-para k El mtodo de sobrerrelajacin, como el de GS, es util para sistemas dispersos e o en los que la matriz se ha almacenado de manera dispersa. Si la matriz es dispersa pero se almacena como si fuera densa, el mtodo de Gauss, en la e mayor de los casos, debe resultar mejor. a

3.8

Mtodos de minimizacin e o

Si A es una matriz simtrica y denida positiva, la solucin del sistema e o Ax = b (3.13)

es exactamente el mismo punto x que resuelve el siguiente problema de optimizacin: o 1 T x Ax bT x. (3.14) min f (x) = 2 Como A es denida positiva, entonces f es convexa (ms an, es estrictaa u mente convexa). Para funciones convexas diferenciables, un punto cr tico,

3.8. METODOS DE MINIMIZACION punto de gradiente nulo, es necesariamente un minimizador global: f (x) = f (x) = Ax b = 0. Si A es invertible, no necesariamente denida positiva, resolver Ax = b es equivalente a resolver AT Ax = AT b y es equivalente a minimizar 1 f (x) = xT AT Ax (AT b)T x. 2

111

La matriz AT A es denida positiva, luego siempre se puede pensar en resolver un sistema de ecuaciones donde la matriz es denida positiva, problema equivalente a minimizar una funcin cuadrtica estrictamente convexa o a (3.14). Para minimizar funciones sin restricciones hay muchos mtodos. La mayor e a de los mtodo de minimizacin son iterativos. En casi todos, en cada ite o eracin, dado un punto xk , hay dos pasos importantes: en el primero se calo cula una direccin dk . Normalmente esta direccin cumple con la propiedad o o f (xk )T dk < 0. Esto garantiza que la direccin sea de descenso, es decir, que para t sucieno temente pequeo n f (xk + tdk ) < f (xk ). El segundo paso consiste en encontrar el mejor t posible, o sea, encontrar tk = argmin f (xk + t dk ), t 0. Con dk y tk se construye el siguiente punto xk+1 = xk + tk dk . Para resolver (3.15) hay varios mtodos. Si f es cuadrtica (en Rn ), entonces e a k + tdk ) es cuadrtica (en R). Como A es denida positiva, rep(t) = f (x a resenta una parbola que abre hacia arriba y el punto cr a tico, tc , corresponde a un minimizador. (3.15)

112

3. METODOS ITERATIVOS

1 (t) = (xk + tdk )T A(xk + tdk ) bT (xk + tdk ) 2 t2 T T (t) = dk Adk + tdk (Axk b) + f (xk ) 2 T T (t) = tdk Adk + dk (Axk b) entonces tk = tc =

dk (Axk b) T dk Adk

(3.16)

3.9

Mtodo del descenso ms pendiente e a

Un mtodo muy popular, pero no necesariamente muy eciente, es el mtodo e e de Cauchy, tambin llamado mtodo del gradiente o mtodo del descenso e e e ms pendiente. En este mtodo la direccin es simplemente el opuesto del a e o gradiente, dk = f (xk ) Entonces dk = b Axk tk = xk+1
T dk dk T

= (Axk b)

(3.17) (3.18) (3.19)

dk Adk = xk + tk dk .

Ejemplo 3.11. Aplicar el mtodo del descenso ms pendiente para resolver e a Ax = b, sabiendo que A es denida positiva, donde 4 1 2 5 2 , A = 1 2 2 10 k = 0 d : 6.000000 -25.000000 13 b = 21 , 50 40.000000 1 x0 = 1 . 1

3.9. METODO DEL DESCENSO MAS PENDIENTE t = 0.094488 x1 : 1.566927 k = 1 d : -1.464541 t = 0.190401 x2 : 1.288078 k = 2 d : 2.221969 t = 0.135469 x3 : 1.589087 k = 3 d : 0.802349 t = 0.164510 x4 : 1.721081 k = 4 d : 0.830711 t = 0.135907 x5 : 1.833980 k = 5 d : 0.310405 t = 0.164543 x6 : 1.885055 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 : : : : : : : : : : : : : 1.931468 1.952504 1.971680 1.980371 1.988296 1.991888 1.995163 1.996648 1.998001 1.998615 1.999174 1.999427 1.999659

113

-1.362196

4.779514

-6.196916 -2.542093

-3.653391 4.083907

-1.409801 -2.733078

1.500593 4.287191

-0.349316 -2.790544 -0.692854 -2.884707

-1.516240 4.037754 0.599209 4.119191

-0.172063 -2.913019 -2.952251 -2.964045 -2.980265 -2.985141 -2.991844 -2.993859 -2.996629 -2.997462 -2.998607 -2.998951 -2.999424 -2.999567 -2.999762

-0.629281 4.015647 4.049268 4.006467 4.020361 4.002673 4.008415 4.001105 4.003477 4.000456 4.001437 4.000189 4.000594 4.000078 4.000245

114 x20 : 1.999763 -2.999821

3. METODOS ITERATIVOS 4.000032

Ejemplo 3.12. Aplicar el mtodo del descenso ms pendiente para resolver e a Ax = b, sabiendo que A es denida positiva, donde 19 6 8 A = 6 5 2 , 8 2 4 k = 0 d : 22.000000 t = 0.040905 x1 : 1.899920 k = 1 d : -0.579812 t = 0.531990 x2 : 1.591466 k = 2 d : 0.453147 t = 0.089118 x3 : 1.631849 k = 3 d : -0.925117 t = 0.068514 x4 : 1.568466 k = 4 d : 0.303036 t = 0.091249 x5 : 1.596118 k = 5 d : -0.822384 t = 0.069496 x6 : 1.538966 x95 : 1.025125 9.000000 1.368149 55 b = 22 , 24 10.000000 1.409055 1 x0 = 1 . 1

0.941625 1.869085

0.428123 1.636812

-0.167842 1.854127

0.982857 1.724402

-0.510535 1.819148

0.339342 1.747652

-0.001843 1.818980

0.823366 1.822783

-0.317174 1.796938 1.989683

0.301965 1.843768 2.952309

3.10. METODO DEL GRADIENTE CONJUGADO x96 x97 x98 x99 x100 x101 : : : : : : 1.022738 1.023406 1.021183 1.021805 1.019734 1.020313 1.989417 1.990389 1.990141 1.991047 1.990816 1.991659 2.953040 2.955571 2.956253 2.958611 2.959245 2.961442

115

La rapidez de convergencia del mtodo del descenso ms pendiente, cuando e a n , donde n es el mayor valor A es denida positiva, depende del cociente 1 propio y 1 el menor. Si el cociente es cercano a uno, hay buena convergencia. Si el cociente es grande la convergencia es lenta a causa del zigzagueo.

primer ejemplo v = 2.3714059 5.5646277 11.063966 = 4.6655726

coc

Segundo ejemplo: valores propios 0.4250900 3.0722446 24.502665 coc = 57.641129

3.10

Mtodo del gradiente conjugado e

Dentro del grupo de mtodos de direcciones conjugadas, est el mtodo del e a e gradiente conjugado. Este mtodo se adapta muy bien cuando la matriz es e dispersa. Tiene la ventaja adicional que, aunque es un mtodo iterativo, e a lo ms en n iteraciones se obtiene la solucin exacta, si no hay rerrores de a o redondeo. En el mtodo GC la direccin se construye agregando a f (xk ) un mltiplo e o u

116 de la direccin anterior, o

3. METODOS ITERATIVOS

dk = f (xk ) + k dk1 .

(3.20)

Dos direcciones diferentes, di y dj , se llaman conjugadas con respecto a A si di A dj = 0. Para el caso de la solucin de un sistema lineal por medio del mtodo GC, o e es corriente denominar el vector residuo rk = Axk b. (3.21)
T

Obviamente xk = x si y solamente si rk = 0. El vector residuo es exactamente el mismo gradiente de f en el punto xk . Las frmulas que completan la denicin del mtodo GC son: o o e 1 = 0, k = tk = ||rk ||2 2 , ||rk1 ||2 2 ||rk ||2 2 , T dk Adk k = 2, ..., n, k = 1, ..., n. (3.22) (3.23) (3.24)

Suponiendo que A es denida positiva, el mtodo GC tiene las siguientes e propiedades: dk es direccin de descenso. o f (xk ) < f (xk1 ). las direcciones son conjugadas con respecto a A. Si no hay errores de redondeo, entonces x = xk para algn k n + 1. u Cuando se llega a xn+1 y no se obtiene la solucin con la precisin deseada, o o entonces se vuelve a empezar el proceso utilizando como nuevo x1 el xn+1 obtenido.

3.10. METODO DEL GRADIENTE CONJUGADO METODO DEL GRADIENTE CONJUGADO datos: A, b, x1 , MAXIT, para K = 1, ..., MAXIT para k = 1, ..., n rk = Axk b si ||rk || < ent parar si k = 1 ent dk = rk sino ||rk ||2 k = k1 2 2 ||r ||2 dk = rk + k dk1 n-sino ||rk ||2 tk = k T 2k d Ad xk+1 = xk + tk dk n-para k x1 = xn+1 n-para K

117

Ejemplo 3.13. Resolver el sistema Ax = b por el mtodo GC, partiendo e de x1 = (1, 1, 1), donde

19 6 8 A = 6 5 2 , 8 2 4

55 b = 22 . 24

118

3. METODOS ITERATIVOS r1 = Ax1 b = (22, 9, 10),

||r1 ||2 = 665, 2


T

d1 Ad1 = 16257, 665 = 0.040905, t1 = 16257 x2 = x1 + t1 d1 = (1.899920, 1.368149, 1.409055), r2 = (0.579812, 0.941625, 0.428123),

d1 = r1 = (22, 9, 10),

||r2 ||2 = 1.406129, 2 1.406129 = 0.002114, 2 = 665 d2 = (0.533293, 0.960655, 0.449268), d2 Ad2 = 2.570462, t2 = 0.547034, x3 = (1.608191, 1.893660, 1.654819),
T

||r3 ||2 = 0.736584, 2 3 = 0.523838,

r3 = (0.156138, 0.427083, 0.727877),

d3 = (0.435497, 0.076145, 0.963221), d3 Ad3 = 0.527433, t3 = 1.396545, x4 = (1, 2, 3), x1 = x4 = (1, 2, 3), r1 = (0, 0, 0).
T

Si la matriz A es dispersa y se utiliza una estructura de datos donde solamente se almacenen los elementos no nulos, para poder implementar con xito el mtodo GC, se requiere simplemente poder efectuar el producto e e de la matriz A por un vector. Hay dos casos, Axk para calcular rk y Adk

3.10. METODO DEL GRADIENTE CONJUGADO

119

para calcular tk . Las otras operaciones necesarias son producto escalar entre vectores, sumas o restas de vectores y multiplicacin de un escalar por o un vector. Todo esto hace que sea un mtodo muy util para matrices muy e grandes pero muy poco densas.

Solucin de ecuaciones no o lineales


Uno de los problemas ms corrientes en matemticas consiste en resolver a a R que satisfaga una ecuacin, es decir, encontrar un valor x o f (x) = 0, donde f es una funcin de variable y valor real, o sea, o f : R R. Este x se llama solucin de la ecuacin. A veces tambin se dice que x es o o e una ra o un cero. Algunos ejemplos sencillos de ecuaciones son: z x5 3x4 + 10x 8 = 0,

ex x3 + 8 = 0, x2 + x x = 0. cos(x 1) + 2

En algunos casos no se tiene una expresin sencilla de f , sino que f (x) o corresponde al resultado de un proceso; por ejemplo:
x

et dt 0.2 = 0.

Lo m nimo que se le exige a f es que sea continua. Si no es continua en todo R, por lo menos debe ser continua en un intervalo [a, b] donde se busca 120

121 la ra Algunos mtodos requieren que f sea derivable. Para la aplicacin z. e o de algunos teoremas de convergencia, no para el mtodo en s se requieren e , derivadas de orden superior. Los mtodos generales de solucin de ecuaciones sirven unicamente para e o hallar ra ces reales. Algunos mtodos espec e cos para polinomios permiten obtener ra ces complejas. Los mtodos presuponen que la ecuacin f (x) = 0 tiene solucin. Es necee o o sario, antes de aplicar mecnicamente los mtodos, estudiar la funcin, a e o averiguar si tiene ra ces, ubicarlas aproximadamente. En algunos casos muy dif ciles no es posible hacer un anlisis previo de la funcin, entonces hay a o que utilizar de manera mecnica uno o varios mtodos, pero sabiendo que a e podr ser inecientes o, simplemente, no funcionar. an La mayor de los mtodos parten de x0 , aproximacin inicial de x , a partir a e o del cual se obtiene x1 . A partir de x1 se obtiene x2 , despus x3 , y as e sucesivamente se construye la sucesin {xk } con el objetivo, no siempre o cumplido, de que
k

lim xk = x .

El proceso anterior es tericamente innito, y obtendr la solucin despus o a o e de haber hecho un nmero innito de clculos. En la prctica el proceso se u a a detiene cuando se obtenga una aproximacin sucientemente buena de x . o Esto querr decir que el proceso se detendr cuando a a |xk x | , para un dado. El anterior criterio supone el conocimiento de x , que es justamente lo buscado. Entonces se utiliza el criterio, ste si aplicable, e |f (xk )| . En la mayor de los casos, cuanto ms cerca est x0 de x , ms rpidamente a a e a a se obtendr una buena aproximacin de x . a o Otros mtodos parten de un intervalo inicial [a0 , b0 ], en el cual se sabe que e existe una ra x . A partir de l, se construye otro intervalo [a1 , b1 ], conz e tenido en el anterior, en el que tambin est x y que es de menor tamao. e a n De manera anloga se construye [a2 , b2 ]. Se espera que la sucesin formada a o

122

4.

SOLUCION DE ECUACIONES NO LINEALES

por los tamaos tienda a 0. Expl n citamente, x x [ak+1 , bk+1 ] [ak , bk ], k = 1, 2, ...,
k

[a0 , b0 ],

lim (bk ak ) = 0.

[ak , bk ], k = 1, 2, ...,

Cualquiera de los puntos del ultimo intervalo es una buena aproximacin de o x .

En este caso, el proceso se detiene cuando se obtiene un intervalo sucientemente pequeo, n |bk ak | .

4.1

En Scilab

Para resolver f (x) = 0, donde f es una funcin de variable y valor real, se utiliza fsolve. Por o ejemplo para resolver x ex cos(x) + 0.1 = 0, 1 + x2 es necesario denir una funcin de Scilab donde est f y despus utilizar o e e fsolve. function fx = func156(x) fx = ( x - exp(x) )/( 1 + x*x ) - cos(x) + 0.1 endfunction Despues de haber cargado esta funcin, se utiliza fsolve dndole como o a parmetros, la aproximacin inicial y la funcin: a o o r = fsolve(0, func156) Con otra aproximacin inicial podr dar otra ra Un parmetro opcional, o a z. a que puede acelerar la obtencin de la solucin, es otra funcin de Scilab o o o donde est denida la derivada. e

4.1. EN SCILAB function y = f123(x) y = x*x*x - 4*x*x + 10*x - 20 endfunction //-----------------------------------------------function d1 = der123(x) d1 = 3*x*x - 8*x +10 endfunction

123

La orden de Scilab puede ser semejante a fsolve(1, f123, der123) . Claramente es ms cmodo no tener que denir la derivada, pero no hacerlo a o puede hacer menos eciente el uso de fsolve . La funcin fsolve trabaja bien pero no siempre encuentra una solucin. o o Por ejemplo, function y = f13(x) y = exp(x) - 2.7*x endfunction x = fsolve(1, f13)

da como resultado 0.9933076 . Lo anterior har que el usuario ingenuamente a suponga que ese valor corresponde a una ra Realmente la funcin no tiene z. o ra ces. Es conveniente utilizar fsolve con tres parmetros de salida, a [x, fx, info] = fsolve(1, f13) fx ser el valor de f13 evaluada en x, e info valdr 1 si se obtuvo la a a solucin con la precisin deseada. Para nuestro ejemplo los valores sern o o a info 4. fx = 0.0182285 = 0.9957334 lo cual indica que no se obtuvo una ra z. =

124

4.

SOLUCION DE ECUACIONES NO LINEALES y = f (x)

(x0 , f (x0 ))

(x1 , f (x1 )) x2 x1 x0

Figura 4.1: Mtodo de Newton e

4.2

Mtodo de Newton e

Tambin se conoce como el mtodo de Newton-Raphson. Dado x0 , se conse e truye la recta tangente en (x0 , f (x0 )). El valor de x donde esta recta corta el eje x es el nuevo valor x1 . Ahora se construye la recta tangente en el punto (x1 , f (x1 )). El punto de corte entre la recta y el eje x determina x2 ... En el caso general, dado xk , se construye la recta tangente en el punto (xk , f (xk )), y = f (xk )(x xk ) + f (xk ). Para y = 0 se tiene x = xk+1 , 0 = f (xk )(xk+1 xk ) + f (xk ). Entonces xk+1 = xk f (xk ) f (xk ) (4.1)

Ejemplo 4.1. Aplicar el mtodo de Newton a la ecuacin x5 3x4 +10x8 = e o 0, partiendo de x0 = 3.

4.2. METODO DE NEWTON k 0 1 2 3 4 5 6 xk 3.000000 2.758242 2.640786 2.611626 2.609930 2.609924 2.609924 f (xk ) 2.200000E+01 5.589425E+00 9.381331E-01 4.892142E-02 1.590178E-04 1.698318E-09 -2.838008E-15 f (xk ) 91.000000 47.587479 32.171792 28.848275 28.660840 28.660228 28.660227

125

Las ra ces reales del polinomio x5 3x4 + 10x 8 son: 2.6099, 1.3566, 1. Tomando otros valores iniciales el mtodo converge a estas ra e ces. Si se toma x0 = 2.1, se esperar que el mtodo vaya hacia una de las ra a e ces cercanas, 2.6099 o 1.3566 . Sin embargo, hay convergencia hacia 1. k 0 1 2 3 4 5 xk 2.100000 0.942788 0.993484 0.999891 1.000000 1.000000 f (xk ) -4.503290e+00 -1.974259e-01 -1.988663e-02 -3.272854e-04 -9.509814e-08 -7.993606e-15 f (xk ) -3.891500 3.894306 3.103997 3.001745 3.000001 3.000000

El mtodo de Newton es muy popular por sus ventajas: e Sencillez. Generalmente converge. En la mayor de los casos, cuando converge, lo hace rpidamente. a a Tambin tiene algunas desventajas: e Puede no converger. Presenta problemas cuando f (xk ) 0. Requiere poder evaluar, en cada iteracin, el valor f (x). o La implementacin del mtodo de Newton debe tener en cuenta varios aso e pectos. Como no es un mtodo totalmente seguro, debe estar previsto un e

126

4.

SOLUCION DE ECUACIONES NO LINEALES

nmero mximo de iteraciones, llamado por ejemplo maxit. Para una preu a cisin f , la detencin deseada para el proceso iterativo se tiene cuando o o |f (xk )| f . Otra detencin posible se da cuando dos valores de x son casi o iguales, es decir, cuando |xk xk1 | x . Se acostumbra a utilizar el cambio relativo, o sea, |xk xk1 |/|xk | x . Para evitar las divisiones por cero, se usa |xk xk1 |/(1 + |xk |) x . Finalmente, siempre hay que evitar las divisiones por cero o por valores casi nulos. Entonces, otra posible parada, no deseada, corresponde a |f (xk )| 0 . El algoritmo para el mtodo de e Newton puede tener el siguiente esquema: datos: x0, maxit, f , x , 0 xk = x0 fx = f (xk), fpx = f (xk) para k=1,...,maxit si |fpx| 0 ent salir = fx/fpx xk = xk- fx = f (xk), fpx = f (xk) si |fx| f ent salir si ||/(1+|xk|) x ent salir n-para k Para la implementacin en Scilab, es necesario determinar cmo se evala o o u . Fundamentalmente hay dos posibilidades: f yf Hacer una funcin para evaluar f y otra para evaluar f . o Hacer una funcin donde se evale al mismo tiempo f y f . o u En la siguiente implementacin del mtodo de Newton, la funcin f debe o e o evaluar al mismo tiempo f (x) y f (x). function [fx, dfx] = f321(x) fx = x^5 - 3*x^4 + 10*x - 8 dfx = 5*x^4 -12*x^3 + 10 endfunction //---------------------------------------------------------function [x, ind] = Newton(func, x0, eps, maxit) // metodo de Newton

4.2. METODO DE NEWTON

127

// func

debe dar los valores f(x)

f(x)

// ind valdra 1 // 2 // 0 // //************* eps0 = 1.0e-12 //*************

si se obtiene la raiz si se hicieron muchas iteraciones, > maxit si una derivada es nula o casi

x = x0 for k=0:maxit [fx, der] = func(x) //printf(%3d %10.6f %10.6f %10.6f\n, k, x, fx, der) if abs(fx) <= eps ind = 1 return end if abs(der) <= eps0 ind = 0 return end x = x - fx/der end ind = 2 endfunction El llamado puede ser semejante a [x, result] = Newton(f321, 3, 1.0e-8, 20)

4.2.1

Orden de convergencia

Teorema 4.1. Sean a < b, I = ]a, b[, f : I R, x I, f (x ) = 0, f y f existen y son continuas en I, f (x ) = 0, {xk } la sucesin denida por 4.1. o

128

4.

SOLUCION DE ECUACIONES NO LINEALES

Si x0 est sucientemente cerca de x , entonces a


k

lim xk = x , = |f (x )| 2|f (x )|

(4.2) (4.3)

lim

|xk+1 x | |xk x |2

El primer resultado dice que la sucesin converge a x . El segundo dice o que la convergencia es cuadrtica o de orden superior. La frase x0 est a a , entonces... quiere decir que existe > 0 tal sucientemente cerca de x que si x0 [x , x + ] I, entonces... Demostracin. o

f (x) = f (xn ) + f (xn )(x xn ) + f () tomando x = x

(x xn )2 , 2

I(x, xn )

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

(x xn )2 , 2

I(x , xn )

f () f (xxn ) + (x xn ) + (x xn )2 , f (xxn ) 2f (xn ) f (xxn ) f () 0 = x xn , + (x xn )2 f (xxn ) 2f (xn ) f () , 0 = x xn+1 + (x xn )2 2f (xn ) f () x xn+1 = (x xn )2 . 2f (xn ) 0= Sea I = [x , x + ] M= 2 min |f (x)|
xI

(4.4)

max |f (x)|
xI

4.2. METODO DE NEWTON

129

Como f (x ) = 0 y f es continua, se puede escoger sucientemente pequeo para que min |f (x)| > 0. A partir de (4.4) se obtiene n
xI

|x xn+1 | M |x xn |2 . En particular, M |x x1 | = (M |x x0 |)2 . Sea x0 tal que M |x x0 | < 1 . Entonces M |x x1 | < (M |x x0 |)2 , |x x1 | < , . . . M |x x1 | < 1 , |x x0 | < , |x x1 | = M |x x0 |2 ,

(4.5)

M |x x1 | < M |x x0 |,

ya que 0 < t < 1 t2 < t,

M |x xn | < 1 , |x xn | < . Luego M |x xn | (M |x xn1 |)2 ,


n

|x xn | M |x xn1 |,

M |x xn | (M |x x0 |)2 , 1 n (M |x x0 |)2 , |x xn | M

Como |x x0 | < 1, entonces lim |x xn | = 0,

130 es decir

4.

SOLUCION DE ECUACIONES NO LINEALES

lim xn = x .

Reescribiendo (4.4), x xn+1 f () = , (x xn )2 2f (xn ) Tomando el l mite, como xn tiende a x , x xn+1 f (x ) = . n (x xn )2 2f (x ) lim A manera de comprobacin, despus de que se calcul una ra se puede ver o e o z, si la sucesin muestra aproximadamente convergencia cuadrtica. Sea ek = o a xk x . La sucesin |ek |/|ek1 |2 deber acercarse a |f (x )|/ (2|f (x )|). o a Para el ejemplo anterior |f (x )/(2|f (x )|) = 16/(2 3) = 2.6666 . k 0 1 2 3 4 5 xk 2.1000000000000001 0.9427881279712185 0.9934841559110774 0.9998909365826297 0.9999999683006239 0.9999999999999973 |ek | 1.100000e+00 5.721187e-02 6.515844e-03 1.090634e-04 3.169938e-08 2.664535e-15 |ek |/|ek1 |2 4.728254e-02 1.990666e+00 2.568844e+00 2.664971e+00 2.651673e+00 I(x , xn )

4.3

Mtodo de la secante e

Uno de los inconvenientes del mtodo de Newton es que necesita evaluar e f (x) en cada iteracin. Algunas veces esto es imposible o muy dif o cil. Si en el mtodo de Newton se modica la frmula 4.1 reemplazando f (xk ) por e o una aproximacin o f (xk ) f (xk1 ) , f (xk ) xk xk1 entonces se obtiene f (xk )(xk xk1 ) f (xk ) f (xk1 )

xk+1 = xk

(4.6)

4.3. METODO DE LA SECANTE y = f (x)

131

(x0 , f (x0 ))

(x1 , f (x1 )) x2 x1 x0

Figura 4.2: Mtodo de la secante e

En el mtodo de Newton se utilizaba la recta tangente a la curva en el punto e (xk , f (xk )). En el mtodo de la secante se utiliza la recta (secante) que pasa e por los puntos (xk , f (xk )) y (xk1 , f (xk1 )). Ejemplo 4.2. Aplicar el mtodo de la secante a la ecuacin x5 3x4 + e o 10x 8 = 0, partiendo de x0 = 3. k 0 1 2 3 4 5 6 7 8 9 xk 3.000000 3.010000 2.761091 2.678210 2.625482 2.611773 2.609979 2.609925 2.609924 2.609924 f (xk ) 2.200000e+01 2.292085e+01 5.725624e+00 2.226281e+00 4.593602e-01 5.317368e-02 1.552812e-03 5.512240e-06 5.747927e-10 -2.838008e-15

Mediante condiciones semejantes a las exigidas en el teorema 4.1 se muestra (ver [Sch91]), que el mtodo de la secante tiene orden de convergencia e 1+ 5 1.618 2

132

4.

SOLUCION DE ECUACIONES NO LINEALES

Como el mtodo de la secante es semejante al mtodo de Newton, entonces e e tienen aproximadamente las mismas ventajas y las mismas desventajas, salvo dos aspectos: La convergencia del mtodo de la secante, en la mayor de los casos, e a es menos rpida que en el mtodo de Newton. a e El mtodo de la secante obvia la necesidad de evaluar las derivadas. e El esquema del algoritmo es semejante al del mtodo de Newton. Hay varias e posibles salidas, algunas deseables, otras no. datos: x0, maxit, f , x , 0 x1 = x0 + 0.1, f0 = f(x0), f1 = f(x1) para k=1,...,maxit den = f1-f0 si |den| 0 ent salir =f1*(x1-x0)/den x2 = x1 - , f2 = f(x2) si |f2| f ent salir si ||/(1+|x2|) x ent salir x0 = x1, f0 = f1, x1 = x2, f1 = f2 n-para k El mtodo de la secante se puede implementar en Scilab as e : function [x, ind] = secante(f, x0, epsx, epsf, maxit) // metodo de la secante // ind valdra // // // // // //************* eps0 = 1.0e-12 //************* 1 si se obtiene la raiz, | f(x2) | < epsf o | x2-x1 | < epsx si se hicieron muchas iteraciones, > maxit si un denominador es nulo o casi nulo

2 0

4.4. METODO DE LA BISECCION

133

x = x0 h x1 f0 f1 = = = = 0.1 x0 + h f(x0) f(x1)

for k=1:maxit den = f1-f0 if abs(den) <= eps0 ind = 0 return end d2 = f1*(x1-x0)/den x2 = x1 - d2 f2 = f(x2) disp(k,x2,f2) if abs(f2) <= epsf | abs(d2) <= epsx x = x2 ind = 1 return end x0 = x1, f0 = f1 x1 = x2, f1 = f2 end x = x2 ind = 2 endfunction

4.4

Mtodo de la biseccin e o

Si la funcin f es continua en el intervalo [a, b], a < b, y si f (a) y f (b) tienen o signo diferente, f (a)f (b) < 0, entonces f tiene por lo menos una ra en el intervalo. Este mtodo ya se z e vio en el cap tulo sobre funciones.

134

4.

SOLUCION DE ECUACIONES NO LINEALES

Usualmente se dene el error asociado a una aproximacin como o ek = |xk x |. En el mtodo de la biseccin, dado el intervalo [ak , bk ], ak < bk , no se tiene e o un valor de xk . Se sabe que en [ak , bk ] hay por lo menos una ra Cualquiera z. de los valores en el intervalo podr ser xk . Sea Ek el mximo error que puede a a haber en la iteracin k, o ek Ek = bk ak . Como el tamao de un intervalo es exactamente la mitad del anterior n 1 bk ak = (bk1 ak1 ), 2 entonces bk ak = Finalmente bk ak = Obviamente Ek 0 y 1 2 1 2 1 2
k

(bk2 ak2 ). (b0 a0 ).

1 1 Ek = . Ek1 2 2

Esto quiere decir que la sucesin de cotas del error tiene convergencia lineal o (orden 1) y tasa de convergencia 1/2. En el mtodo de la biseccin se puede saber por anticipado el nmero de e o u iteraciones necesarias para obtener un tamao deseado, n bk ak , (b0 a0 ) , , b0 a0 b0 a0 2k , b0 a0 , k log 2 log log b0 a0 k log 2 1 2
k

1 2

4.5. METODO DE REGULA FALSI

135

y = f (x)

(bk , f (bk ))

ak ck bk Figura 4.3: Mtodo Regula Falsi e

Por ejemplo, si el tamao del intervalo inicial es 3, si = 1.0E 6, entonces n en k = 22 ( 21.52) iteraciones se obtiene un intervalo sucientemente pequeo. n

4.5

Mtodo de Regula Falsi e

Igualmente se conoce con el nombre de falsa posicin. Es una modicacin o o del mtodo de la biseccin. Tambin empieza con un intervalo [a0 , b0 ] donde e o e f es continua y tal que f (a0 ) y f (b0 ) tienen signo diferente. En el mtodo de biseccin, en cada iteracin, unicamente se tiene en cuenta e o o el signo de f (ak ) y de f (bk ), pero no sus valores: no se est utilizando toda a la informacin disponible. Adems es de esperar que si f (ak ) est ms cerca o a a a de 0 que f (bk ), entonces puede ser interesante considerar, no el punto medio, sino un punto ms cercano a ak . De manera anloga, si f (bk ) est ms cerca a a a a de 0 que f (ak ), entonces puede ser interesante considerar, no el punto medio, sino un punto ms cercano a bk . a En el mtodo de Regula Falsi se considera el punto donde la recta que pasa e por (ak , f (ak )), (bk , f (bk )) corta el eje x. Como f (ak ) y f (bk ) tienen signo diferente, entonces el punto de corte ck queda entre ak y bk .

136

4.

SOLUCION DE ECUACIONES NO LINEALES

La ecuacin de la recta es: o y f (ak ) = f (bk ) f (ak ) (x ak ) bk ak

Cuando y = 0 se tiene el punto de corte x = ck , ck = ak f (ak )(bk ak ) f (bk ) f (ak ) (4.7)

Esta frmula es semejante a la de la secante. Como f (ak ) y f (bk ) tienen o signo diferente, entonces f (bk ) f (ak ) tiene signo contrario al de f (ak ). Entonces f (ak )/(f (bk ) f (ak )) > 0. Usando de nuevo que f (ak ) y f (bk ) tienen signo diferente, entonces |f (ak )|/|f (bk ) f (ak )| < 1. Luego 0 < f (ak )/(f (bk ) f (ak )) < 1. Esto muestra que ak < ck < bk . Partiendo de un intervalo inicial [a0 , b0 ], en la iteracin k se tiene el intervalo o [ak , bk ] donde f es continua y f (ak ), f (bk ) tienen diferente signo. Se calcula ck el punto de corte y se tienen tres posibilidades excluyentes: f (ck ) 0; en este caso ck es, aproximadamente, una ra z; f (ak )f (ck ) < 0; en este caso hay una ra en el intervalo [ak , ck ] = z [ak+1 , bk+1 ]; f (ak )f (ck ) > 0; en este caso hay una ra en el intervalo [ck , bk ] = z [ak+1 , bk+1 ]. Ejemplo 4.3. Aplicar el mtodo de Regula Falsi a la ecuacin x5 3x4 + e o 10x 8 = 0, partiendo de [2, 5]. k 0 1 2 3 4 5 10 20 30 335 ak 2.000000 2.009259 2.018616 2.028067 2.037610 2.047239 2.096539 2.198548 2.298673 2.609924 bk 5 5 5 5 5 5 5 5 5 5 f (ak ) -4.000000 -4.054857 -4.108820 -4.161744 -4.213478 -4.263862 -4.489666 -4.739498 -4.594020 -0.000001 f (bk ) 1292 1292 1292 1292 1292 1292 1292 1292 1292 1292 ck 2.009259 2.018616 2.028067 2.037610 2.047239 2.056952 2.106594 2.208787 2.308244 2.609924 f (ck ) -4.054857 -4.108820 -4.161744 -4.213478 -4.263862 -4.312734 -4.528370 -4.744664 -4.554769 -0.000001

4.6. MODIFICACION DEL METODO DE REGULA FALSI

137

Como se ve, la convergencia es muy lenta. El problema radica en que en el mtodo de Regula Falsi no se puede garantizar que e
k

lim (bk ak ) = 0.

Esto quiere decir que el mtodo no es seguro. Entonces, en una implee mentacin, es necesario trabajar con un nmero mximo de iteraciones. o u a

4.6

Modicacin del mtodo de Regula Falsi o e

Los dos mtodos, biseccin y Regula Falsi, se pueden combinar en uno solo e o de la siguiente manera. En cada iteracin se calcula mk y ck . Esto dene o tres subintervalos en [ak , bk ]. En por lo menos uno de ellos se tiene una ra z. Si los tres subintervalos sirven, se puede escoger cualquiera, o mejor an, el u de menor tamao. En un caso muy especial, cuando mk y ck coinciden, se n tiene simplemente una iteracin del mtodo de biseccin. o e o En cualquiera de los casos 1 bk+1 ak+1 (bk ak ), 2 entonces bk ak lo que garantiza que
k

1 2

(b0 a0 ),

lim (bk ak ) = 0.

Ejemplo 4.4. Aplicar la modicacin del mtodo de Regula Falsi a la o e ecuacin x5 3x4 + 10x 8 = 0, partiendo de [2, 5]. o
k 0 1 2 3 4 5 6 7 8 9 a 2.0000 2.0093 2.0662 2.4104 2.5825 2.6033 2.6092 2.6099 2.6099 2.6099 b 5.0000 3.5000 2.7546 2.7546 2.7546 2.6686 2.6360 2.6226 2.6162 2.6131 f(a) -4.00e+0 -4.05e+0 -4.36e+0 -3.80e+0 -7.44e-1 -1.87e-1 -2.00e-2 -9.73e-4 -2.33e-5 -2.81e-7 f(b) 1.29e+3 1.02e+2 5.42e+0 5.42e+0 5.42e+0 1.88e+0 7.84e-1 3.72e-1 1.83e-1 9.10e-2 c 2.0093 2.0662 2.3731 2.5523 2.6033 2.6092 2.6099 2.6099 2.6099 2.6099 f(c) -4.0e+0 -4.4e+0 -4.2e+0 -1.5e+0 -1.9e-1 -2.0e-2 -9.7e-4 -2.3e-5 -2.8e-7 -1.7e-9 m f(m) 3.5000 1.0e+2 2.7546 5.4e+0 2.4104 -3.8e+0 2.5825 -7.4e-1 2.6686 1.9e+0 2.6360 7.8e-1 2.6226 3.7e-1 2.6162 1.8e-1 2.6131 9.1e-2

138

4.

SOLUCION DE ECUACIONES NO LINEALES

La modicacin es mucho mejor que el mtodo de Regula Falsi. Adems, o e a el nmero de iteraciones de la modicacin debe ser menor o igual que el u o nmero de iteraciones del mtodo de biseccin. Pero para comparar equiu e o tativamente el mtodo de biseccin y la modicacin de Regula Falsi, es e o o necesario tener en cuenta el nmero de evaluaciones de f (x). u En el mtodo de biseccin, en k iteraciones, el nmero de evaluaciones de f e o u est dado por: a nbisec = 2 + kbisec En la modicacin de Regula Falsi, o nmodif = 2 + 2 kmodif

4.7

Mtodo de punto jo e

Los mtodos vistos se aplican a la solucin de la ecuacin f (x) = 0. El e o o mtodo de punto jo sirve para resolver la ecuacin e o g(x) = x. (4.8)

Se busca un x tal que su imagen, por medio de la funcin g, sea el mismo o . Por tal motivo se dice que x es un punto jo de la funcin g. x o La aplicacin del mtodo es muy sencilla. A partir de un x0 dado, se aplica o e varias veces la frmula o xk+1 = g(xk ). (4.9)

Se espera que la sucesin {xk } construida mediante (4.9) converja hacia x . o En algunos casos el mtodo, adems de ser muy sencillo, es muy eciente; e a en otros casos la eciencia es muy pequea; nalmente, en otros casos el n mtodo denitivamente no sirve. e Ejemplo 4.5. Resolver x3 +x2 +6x+5 = 0. Esta ecuacin se puede escribir o en la forma x3 + x2 + 5 x= 6 Aplicando el mtodo de punto jo a partir de x0 = 1 se tiene: e

4.7. METODO DE PUNTO FIJO x0 x1 x2 x3 x4 x5 x6 x7 x8 = = = = = = = = = -1 -0.833333 -0.852623 -0.851190 -0.851303 -0.851294 -0.851295 -0.851295 -0.851295

139

Entonces se tiene una aproximacin de una ra x 0.851295. En este o z, caso el mtodo funcion muy bien. Utilicemos ahora otra expresin para e o o x = g(x): x3 + 6x + 5 x= x Aplicando el mtodo de punto jo a partir de x0 = 0.851, muy buena e aproximacin de la ra se tiene: o z, x0 x1 x2 x3 x4 x5 x6 x7 = = = = = = = = -0.8510 -0.8488 -0.8294 -0.6599 1.1415 -11.6832 -142.0691 -2.0190e+4

En este caso se observa que, aun partiendo de una muy buena aproximacin o de la solucin, no hay convergencia. 3 o Antes de ver un resultado sobre convergencia del mtodo de punto jo, obe servemos su interpretacin grca. La solucin de g(x) = x est determinada o a o a por el punto de corte, si lo hay, entre las grcas y = g(x) y y = x. a Despus de dibujar las dos funciones, la construccin de los puntos x1 , x2 , e o x3 ... se hace de la siguiente manera. Despus de situar el valor x0 sobre el e eje x, para obtener el valor x1 , se busca verticalmente la curva y = g(x). El punto obtenido tiene coordenadas (x0 , g(x0 )), o sea, (x0 , x1 ). Para obtener x2 = g(x1 ) es necesario inicialmente resituar x1 sobre el eje x, para lo cual basta con buscar horizontalmente la recta y = x para obtener el punto

140

4.

SOLUCION DE ECUACIONES NO LINEALES y=x

y = g(x)

x Figura 4.4: Punto jo

(x1 , x1 ). A partir de este punto se puede obtener x2 buscando verticalmente la curva y = g(x). Se tiene el punto (x1 , g(x1 )), o sea, (x1 , x2 ). Con desplazamiento horizontal se obtiene (x2 , x2 ). En resumen, se repite varias veces el siguiente procedimiento: a partir de (xk , xk ) buscar verticalmente en la curva y = g(x) el punto (xk , xk+1 ), y a partir del punto obtenido buscar horizontalmente en la recta y = x el punto (xk+1 , xk+1 ). Si el proceso converge, los puntos obtenidos tienden hacia el punto (x , g(x )) = (x , x ). Las guras 4.5 a 4.8 muestran grcamente la utilizacin del mtodo; en a o e los dos primeros casos hay convergencia; en los otros dos no hay, aun si la aproximacin inicial es bastante buena. o En seguida se presentan dos teoremas (demostracin en [Atk78]) sobre la o convergencia del mtodo de punto jo; el primero es ms general y ms e a a preciso, el segundo es una simplicacin del primero, de ms fcil aplicacin o a a o para ciertos problemas. Teorema 4.2. Sea g continuamente diferenciable en el intervalo [a, b], tal que g([a, b]) [a, b],

|g (x)| < 1, para todo x [a, b].

Entonces existe un unico x en [a, b] solucin de x = g(x) y la iteracin de o o para todo x [a, b]. punto jo (4.9) converge a x 0

4.7. METODO DE PUNTO FIJO

141

y=x

y = g(x)

x0 x1 x2 x3 x Figura 4.5: Mtodo de punto jo (a) e

y=x

y = g(x)

x0

x2 x x3

x1

Figura 4.6: Mtodo de punto jo (b) e

142

4.

SOLUCION DE ECUACIONES NO LINEALES

y = g(x)

y=x

x x0 x2

x3

x4

Figura 4.7: Mtodo de punto jo (c) e

y = g(x)

y=x

x3

x1 x x0 x2

x4

Figura 4.8: Mtodo de punto jo (d) e

4.7. METODO DE PUNTO FIJO

143

Teorema 4.3. Sea x solucin de x = g(x), g continuamente diferenciable o en un intervalo abierto I tal que x I, |g (x )| < 1. Entonces la iteracin o de punto jo (4.9) converge a x para todo x0 sucientemente cerca de x . El caso ideal (la convergencia es ms rpida) se tiene cuando g (x ) 0. a a

En los dos ejemplos numricos anteriores, para resolver x3 + x2 + 6x + 5 = 0, e se tiene: x = g(x) = (x3 + x2 + 5)/6, g (0.8513) = 0.0786. Si se considera x = g(x) (x3 + 6x + 5)/x, g (0.8513) = 8.6020. Estos resultados numricos concuerdan con el ultimo teorema. e Dos de los ejemplos grcos anteriores muestran justamente que cuando a (x )| < 1 el mtodo converge. |g e Ejemplo 4.6. Resolver x2 = 3, o sea, calcular 3. x2 = 3, x2 + x2 = x2 + 3, x2 + 3 , x = 2x x + 3/x x = 2 x0 x1 x2 x3 x4 x5 x6 = = = = = = = 3 2 1.75000000000000 1.73214285714286 1.73205081001473 1.73205080756888 1.73205080756888

Se observa que la convergencia es bastante rpida. Este mtodo es muy a e utilizado para calcular ra ces cuadradas en calculadoras de bolsillo y computadores. Aplicando el teorema 4.3 y teniendo en cuenta que g (x ) = g ( 3) = 1/2 a a 1.5/x 2 = 0, se concluye rpidamente que si x0 est sucientemente cerca e de 3, entonces el mtodo converge. La aplicacin del teorema 4.2 no es tan inmediata, pero se obtiene inforo macin ms detallada. La solucin est en el intervalo [2, 3]; consideremos o a o a

144

4.

SOLUCION DE ECUACIONES NO LINEALES

un intervalo an ms grande: I = [1 + , 4] con 0 < < 1. u a g(1) = 2, g(4) = 2.375, 3 1 2, g (x) = 2 2x g ( 3) = 0, g (1) = 1, 13 g (4) = , 32 3 g (x) = x3 Entonces g (x) > 0 para todo x positivo. Luego g (x) es creciente para x > 0. Como g (1) = 1, entonces 1 < g (1 + ). De nuevo por ser g (x) creciente, entonces 1 < g (x) 13/32 para todo x I. En resumen, |g (x)| < 1 cuando x I. 3 el valor de g (x) es negativo. Entre 3 y 4 el Entre 1 + y 3] en valor de g (x) es positivo. Luego g decrece en + , y crece [ 3, 4]. [1 Entonces g([1 + , 3]) = [g(1 + ), 3] [2, 3] y g([ 3, 4]) = [ 3, 2.375]. En consecuencia g(I) = [ 3, 2.375] I. Entonces el mtodo de punto e = jo converge a x 3 para cualquier x0 ]1, 4]. Este resultado se puede generalizar al intervalo [1 + , b] con b > 3. Si se empieza con x0 = 1/2, no se cumplen las condiciones del teorema; sin embargo, el mtodo converge. 3 e

4.7.1

Modicacin del mtodo de punto jo o e

La convergencia del mtodo de punto jo se puede tratar de mejorar ree tomando las ideas del mtodo de la secante. Consideremos la ecuacin e o x = g(x) y los puntos (xi , g(xi )), (xj , g(xj )), sobre la grca de g. Esa tos puntos pueden provenir directamente o no del mtodo de punto jo. es e decir, se puede tener que xi+1 = g(xi ) y que xj+1 = g(xj ), pero lo anterior no es obligatorio. La idea consiste simplemente en obtener la ecuacin de la recta que pasa o por esos dos puntos y buscar la interseccin con la recta y = x. La abcisa o del punto dar un nuevo valor xk . a

4.7. METODO DE PUNTO FIJO

145

g(xi ) = mxi + b

y = mx + b g(xj ) g(xi ) m= xj xi b = g(xi ) mxi

(4.10)

(4.11)

xk = mxk + b b xk = . 1m

(4.12)

Ahora se usan los puntos (xj , g(xj )), (xk , g(xk )), para obtener un nuevo xm , y as sucesivamente. Usualmente, j = i + 1 y k = j + 1.

4.7.2

Mtodo de punto jo y mtodo de Newton e e

Supongamos que c = 0 es una constante y que x es solucin de la ecuacin o o f (x) = 0. Esta se puede reescribir 0 = cf (x), x = x + cf (x) = g(x). (4.13)

Si se desea resolver esta ecuacin por el mtodo de punto jo, la convergencia o e (x ) = 0, o sea, es ms rpida cuando g a a 1 + cf (x ) = 0, c = 1 . f (x )

Entonces al aplicar el mtodo de punto jo a (4.13), se tiene la frmula e o xk+1 = xk f (xk ) . f (x ) (4.14)

Para aplicar esta frmula se necesitar conocer f (x ) e impl o a citamente el valor de x , que es precisamente lo que se busca. La frmula del mtodo o e de Newton, (4.1), puede ser vista simplemente como la utilizacin de (4.14) o reemplazando f (x ) por la mejor aproximacin conocida en ese momento: o f (xk ).

146

4.

SOLUCION DE ECUACIONES NO LINEALES

4.8

Mtodo de Newton en Rn e

Consideremos ahora un sistema de n ecuaciones con n incgnitas; por ejemo plo, x2 + x1 x2 + x3 3 = 0 1 (x1 + x2 + x3 ) 10x3 + 1 = 0. Este sistema no se puede escribir en la forma matricial Ax = b; entonces no se puede resolver por los mtodos usuales para sistemas de ecuaciones e lineales. Lo que se hace, como en el mtodo de Newton en R, es utilizar e aproximaciones de primer orden (llamadas tambin aproximaciones lineales). e Esto es simplemente la generalizacin de la aproximacin por una recta. o o Un sistema de n ecuaciones con n incgnitas se puede escribir de la forma o F1 (x1 , x2 , ..., xn ) = 0 F2 (x1 , x2 , ..., xn ) = 0 . . . Fn (x1 , x2 , ..., xn ) = 0, donde cada Fi es una funcin de n variables con valor real, o sea, Fi : Rn o R. Denotemos x = (x1 , x2 , ..., xn ) y F (x) = F1 (x) F2 (x) . . . Fn (x) . 2x1 + 3x2 x3 5 = 0
2

(4.15)

As F es una funcin de variable vectorial y valor vectorial, F : Rn Rn , o y el problema se escribe de manera muy compacta: F (x) = 0. (4.16)

Este libro est dirigido principalmente a estudiantes de segundo semestre, a quienes todav no conocen el clculo en varias variables, entonces no habr a a a una deduccin (ni formal ni intuitiva) del mtodo, simplemente se ver como o e a una generalizacin del mtodo en R. o e

4.8. METODO DE NEWTON EN RN

147

4.8.1

Matriz jacobiana

La matriz jacobiana de la funcin F : Rn Rn , denotada por JF () o por o x F (), es una matriz de tamao n n, en la que en la i-sima la estn las x n e a n derivadas parciales de Fi , F1 x1 (x) F2 (x) JF (x) = F (x) = x1 . . . F n (x) x1 F1 (x) x2 F2 (x) x2 .. . F1 (x) xn F2 (x) xn Fn (x) xn

Fn (x) x2

Para las ecuaciones (4.15), escritas en la forma F (x) = 0, F (x) =

2x1 + x2 2

x1 3x3

1 3x2

2(x1 + x2 + x3 ) 2(x1 + x2 + x3 ) 2(x1 + x2 + x3 ) 10 F (2, 3, 4) = 2 6 1 12 9 . 6 4 2 1

4.8.2

Frmula de Newton en Rn o

La frmula del mtodo de Newton en R, o e xk+1 = xk f (xk ) , f (xk )

se puede reescribir con super ndices en lugar de sub ndices: xk+1 = xk f (xk ) . f (xk )

148

4.

SOLUCION DE ECUACIONES NO LINEALES

De nuevo, es simplemente otra forma de escribir xk+1 = xk f (xk )1 f (xk ). Esta expresin s se puede generalizar o xk+1 = xk F (xk )1 F (xk ). (4.17)

Su interpretacin, muy natural, aparece a continuacin. Sea x , un vector de o o n componentes, solucin del sistema (4.16). Dependiendo de la conveniencia o se podr escribir a x = x 1 x 2 . . . x n .

x = (x , x , ..., x ) 1 2 n

o El mtodo empieza con un vector x0 = (x0 , x0 , ..., x0 ), aproximacin inicial e n 1 2 de la solucin x . Mediante (4.17) se construye una sucesin de vectores o o {xk = (xk , xk , ..., xk )} con el deseo de que xk x . En palabras, el vector n 2 1 xk+1 es igual al vector xk menos el producto de la inversa de la matriz jacobiana F (xk ) y el vector F (xk ). Para evitar el clculo de una inversa, la a frmula se puede reescribir o dk = F (xk )1 F (xk )

xk+1 = xk + dk . Premultiplicando por F (xk )

F (xk ) dk = F (xk )F (xk )1 F (xk ), F (xk ) dk = F (xk ). En esta ultima expresin se conoce (o se puede calcular) la matriz F (xk ). o Tambin se conoce el vector F (xk ). O sea, simplemente se tiene un sistema e de ecuaciones lineales. La solucin de este sistema es el vector dk . Entonces o las frmulas para el mtodo de Newton son: o e resolver F (xk ) dk = F (xk ), x
k+1

(4.18)

= x +d .

4.8. METODO DE NEWTON EN RN Ejemplo 4.7. Resolver el sistema x2 + x1 x2 + x3 3 = 0 1 (x1 + x2 + x3 )2 10x3 + 1 = 0 a partir de x0 = (2, 3, 4). 1 F (x0 ) = 37 30 1 2 1 F (x0 ) = 2 12 9 6 6 4 2x1 + 3x2 x3 5 = 0

149

A continuacin se presentan los resultados de F (xk ), F (xk ), dk , xk+1 . k = 2 o 0.7833 0.6513 2.5069 0.1321 1.0000 0.9350 7.0481 , 2.0000 5.2542 6.7283 , 0.8376 , 1.4052 1.1644 0.5870 8.2524 8.2524 1.7476 0.5116 k=3 0.9658 0.1824 2.9718 0.7833 1.0000 0.1213 1.4751 , 2.0000 3.4931 4.2156 , 0.3454 , 1.0598 1.0141 0.1502 6.7057 6.7057 3.2943 0.5981

0 2.5753 1 d1 1 2 1 resolver 2 12 9 d0 = 37 , d0 = 0.5890 2 2.7534 30 d0 6 6 4 3 4.5753 2.5753 2 x1 = 3 + 0.5890 = 2.4110 1.2466 2.7534 4 6.7397 4.5753 1.0000 8.1494 F (x1 ) = 4.8656 , F (x1 ) = 2.0000 3.7397 7.2329 6.8219 6.8219 3.1781 0.1689 1 4.4433 8.1494 d1 6.7397 4.5753 1.0000 2.0000 3.7397 7.2329 d1 = 4.8656 , d1 = 4.6537 2 0.5048 0.1689 d1 6.8219 6.8219 3.1781 3 0.1321 4.4433 4.5753 2 2.4110 + 4.6537 = 2.2428 x = 1.7514 0.5048 1.2466

150

4.

SOLUCION DE ECUACIONES NO LINEALES

k=4 0.9993 0.0335 2.9913 0.9658 1.0000 0.0297 0.1557 , 2.0000 3.0424 3.1793 , 0.0587 , 1.0011 1.0002 0.0139 6.0793 6.0793 3.9207 0.0981

k=5 1.0000 0.0007 2.9997 0.9993 1.0000 0.0008 0.0025 , 2.0000 3.0006 3.0033 , 0.0011 , 1.0000 1.0000 0.0002 6.0012 6.0012 3.9988 0.0015 1 0 F (x6 ) 0 , luego x 1 . 3 1 0

4.9

Mtodo de Muller e

Este mtodo sirve para hallar ra e ces reales o complejas de polinomios. Sea p(x) un polinomio real (con coecientes reales), de grado n, es decir, p(x) = a0 + a1 x + a2 x2 + ... + an xn , ai R, i = 0, 1, ..., n, an = 0.

En general no se puede garantizar que p(x) tenga ra reales. Sin embargo ces (teorema fundamental del Algebra) se puede garantizar que tiene n ra ces complejas (algunas de ellas pueden ser reales). De manera ms precisa, a existen r1 , r2 , ..., rn C tales que p(ri ) = 0, i = 1, 2, ..., n. El polinomio p se puede expresar en funcin de sus ra o ces: p(x) = an (x r1 )(x r2 ) (x rn ). Las ra ces complejas, no reales, siempre vienen por parejas, es decir si r = a + ib, b = 0, es una ra entonces r = a ib, el conjugado de r, tambin es z e ra Esto garantiza que los polinomios de grado impar tienen por lo menos z. una ra real. Para los polinomios de grado par, el nmero de ra z u ces reales es par y el nmero de ra u ces estrictamente complejas tambin es par. As e un polinomio de grado par puede tener cero ra ces reales. Para las ra ces complejas (x r)(x r) divide a p(x). (x r)(x r) = (x a ib)(x a + ib) = (x a)2 + b2 = x2 2ax + (a2 + b2 ).

4.9. METODO DE MULLER O sea, se tiene un polinomio real de grado 2 que divide a p(x). Si q(x) divide a p(x), entonces existe un polinomio s(x) tal que p(x) = q(x)s(x), grado(p) = grado(q) + grado(s).

151

Entonces para sequir obteniendo las ra ces de p(x) basta con obtener las ra ces de s(x), polinomio ms sencillo. a Si se halla una ra real r entonces q(x) = (x r) divide a p(x). Si se obtiene z una ra compleja r = a + ib, entonces q(x) = x2 2ax + (a2 + b2 ) divide z a p(x). Este proceso de obtener un polinomio de grado menor cuyas ra ces sean ra ces del polinomio inicial se llama deacin. o En el mtodo de la secante, dados dos valores x0 y x1 se busca la recta que e pasa por los puntos (x0 , f (x0 )), (x1 , f (x1 )); el siguiente valor x2 est dado a por el punto donde la recta corta el eje x. En el mtodo de Muller, en lugar de una recta, se utiliza una parbola. e a Dados tres valores x0 , x1 y x2 , se construye la parbola P (x) que pasa por a los puntos (x0 , f (x0 )), (x1 , f (x1 )) y (x2 , f (x2 )); el siguiente valor x3 est a dado por el (un) punto tal que P (x3 ) = 0. La parbola se puede escribir de la forma P (x) = a(x x2 )2 + b(x x2 ) + c. a Entonces hay tres condiciones que permiten calcular a, b y c: f (x0 ) = a(x0 x2 )2 + b(x0 x2 ) + c, f (x1 ) = a(x1 x2 )2 + b(x1 x2 ) + c, f (x2 ) = c.

Despus de algunos clculos se obtiene e a d = (x0 x1 )(x0 x2 )(x1 x2 ), (x0 x2 )(f (x1 ) f (x2 )) + (x1 x2 )(f (x0 ) f (x2 ) a= , d (x0 x2 )2 (f (x1 ) f (x2 )) (x1 x2 )2 (f (x0 ) f (x2 ) b= , d c = f (x2 ). Entonces x3 x2 = b b2 4ac 2a

(4.19)

152

4.

SOLUCION DE ECUACIONES NO LINEALES

Para reducir los errores de redondeo se racionaliza el numerador y se escoge el signo buscando que el denominador resultante sea grande (en valor absoluto) D = b2 4ac, R= D b R b R x3 x2 = 2a b R 2 R2 b2 b2 + 4ac 2c b = = x3 x2 = b R 2a b R 2a b R 2c x3 x2 = bR 2c x3 = x2 b + signo(b)R

(4.20)

En la siguiente iteracin se obtiene la parbola utilizando x1 , x2 y x3 para o a obtener x4 . Si en una iteracin o D = b2 4ac < 0 es necesario utilizar, a partir de ah aritmtica compleja (Scilab lo hace , e automticamente). Eso hace que los siguientes valores a, b y c no sean a necesariamente reales. Muy posiblemente b2 4ac tampoco es real. Para utilizar (4.20) es necesario obtener la ra cuadradada de un complejo. z Sean z un complejo, el ngulo (en radianes) formado con el eje real (eje a x), llamado con frecuencia argumento de z, y la norma o valor absoluto de z. La dos ra ces cuadradas de z son: z = 1 = cos(/2) + i sen(/2) ,

2 = 1 . Ejemplo 4.8. Sea z = 12 + 16i. Entonces = 20, = tan1 (16/12) = 0.927295, 1 = 20 cos(0.927295/2) + i sen(0.927295/2) = 4 + 2i, 2 = 4 2i. 3

4.9. METODO DE MULLER

153

Cuando b no es real, es necesario modicar ligeramente (4.20). Se escoge el signo para que el denominador tenga mxima norma: a

D = b2 4ac R= D b+R si bR si 2c x3 = x2 = |b + R| |b R| |b + R| < |b R| (4.21)

Ejemplo 4.9. Hallar las ra de p(x) = 2x5 + x4 + 4x3 + 19x2 18x + 40 ces partiendo de x0 = 0, x1 = 0.5, x2 = 1.

f (x0 ) = 40 f (x1 ) = 36.375 f (x2 ) = 48 a = 30.5 b = 38.5 c = 48 D = 4373.75 d = 0.25

Hay que utilizar aritmtica compleja e

R = 66.134333i = 38.5 + 66.134333i x3 = 0.368852 + 1.084169i f (x3 ) = 12.981325 9.579946i

154

4.

SOLUCION DE ECUACIONES NO LINEALES

Ahora utilizamos x1 , x2 y x3

d = 0.546325 + 0.413228i a = 27.161207 + 11.293018i c = 12.981325 9.579946i b = 21.941945 + 50.286087i

D = 3890.341507 1752.330850i R = 13.719321 63.863615i = 35.661266 + 114.149702i

x4 = 0.586513 + 1.243614i f (x4 ) = 3.760763 6.548104i . . . x5 = 0.758640 + 1.246582i

f (x5 ) = 2.013839 1.490220i x6 = 0.748694 + 1.196892i f (x6 ) = 0.123017 + 0.025843i x7 = 0.750002 + 1.198942i f (x7 ) = 0.000535 + 0.000636i x8 = 0.750000 + 1.198958i f (x8 ) = 0

Ahora se construye el polinomio q(x) = (x r)(x r). Para r = 0.75 + 1.198958i se tiene q(x) = x2 1.5x + 2.

2x5 + x4 + 4x3 + 19x2 18x + 40 = 2x3 + 4x2 + 6x2 + 20. x2 1.5x + 2 Ahora se trabaja con p(x) = 2x3 + 4x2 + 6x2 + 20. Sean x0 = 3, x1 = 2.5 y x2 = 2. Tambin se hubiera podido volver a utilizar x0 = 0, x1 = 0.5 y e

4.9. METODO DE MULLER x2 = 1. f (x0 ) = 16

155

f (x1 ) = 1.25 f (x2 ) = 8 d = 0.25 b = 13

a = 11 c=8 D = 521

R = 22.825424 = 35.825424 f (x3 ) = 0.026391 Ahora utilizamos x1 , x2 y x3 d = 0.011922 a = 9.893220 b = 22.390216 c = 0.026391 x3 = 2.446610

D = 500.277428 R = 22.366882 = 44.757098 f (x4 ) = 0.000057 . . . f (x5 ) = 0 x5 = 2.445428 x4 = 2.445431

Para r = 2.445428 se tiene q(x) = x + 2.445428. 2x3 + 4x2 + 6x2 + 20 = 2x2 0.890857x + 8.178526. x + 2.445428

156

4.

SOLUCION DE ECUACIONES NO LINEALES

Ahora se trabaja con p(x) = 2x2 0.890857x + 8.178526. Sus ra ces son 0.2227142 + 2.009891i y 0.2227142 2.009891i. En resumen, las 5 ra de ces p(x) son:

0.75 + 1.1989579i 0.75 1.1989579i 0.222714 + 2.009891i 0.222714 2.009891i. 3 2.445428

El mtodo de Muller tiene orden de convergencia no inferior a 1.84... Este e valor proviene de la ra mas grande de 3 2 1 = 0. Esto hace z que sea un poco menos rpido que el mtodo de Newton (orden 2) pero ms a e a rpido que el mtodo de la secante (orden 1.68). a e El mtodo no tiene sentido si hay valores iguales (o muy parecidos) entre e x0 , x1 y x2 . Adems esto har que no se pueda calcular a ni b. Tampoco a a funciona si los valores f (x0 ), f (x1 ) y f (x2 ) son iguales o muy parecidos. En este caso P (x) es una l nea recta horizontal y no se puede calcular x3 ya que a = 0, b = 0 y, principalmente, = b R = 0.

4.9. METODO DE MULLER METODO DE MULLER PARA UNA RA IZ datos: p, x0 , x1 , x2 , f , 0 , maxit aritmtica = real e f0 = p(x0 ), f1 = p(x1 ), f2 = p(x2 ) info= 0 para k = 1, ..., maxit si |f2 | f ent r = x2 , info= 1, parar d = (x0 x1 )(x0 x2 )(x1 x2 ) si |d| 0 ent parar calcular a, b y c segn (4.19) u D = b2 4ac si aritmtica=real y D < 0 ent aritmtica=compleja e e R= D 1 = b + R, 2 = b R si |1 | |2 | ent = 1 , sino = 2 si || 0 ent parar x3 = x2 2c/ x0 = x1 , x1 = x2 , x2 = x3 , f0 = f1 , f1 = f2 f2 = p(x2 ) n-para k

157

Si el algoritmo anterior acaba normalmente, info valdr 1 y r ser una ra a a z, real o compleja. METODO DE MULLER datos: p, x0 , f , 0 , maxit r = x0 , h = 0.5 mientras grado(p) 3 x0 = r, x1 = x0 + h, x2 = x1 + h (r, inf o) = M uller1(p, xo , x1 , x2 , f , 0 , maxit) si inf o = 0, ent parar si |imag(r)| 0 ent q(x) = (x r) sino q(x) = (x r)(x r) p(x) = p(x)/q(x) n-mientras calcular ra ces de p (de grado no superior a 2) Si se espera que el nmero de ra reales sea pequeo, comparado con el de u ces n ra complejas, se puede trabajar todo el tiempo con aritmtica compleja. ces e

158

4.

SOLUCION DE ECUACIONES NO LINEALES

4.10

Mtodo de Bairstow e

Sirve para hallar las ra ces reales o complejas de un polinomio de grado mayor o igual a 4, mediante la obtencin de los factores cuadrticos mnicos o a o del polinomio. Cuando es de grado 3, se halla una ra real por el mtodo z e de Newton, y despus de la deacin se calculan las 2 ra e o ces del polinomio cuadrtico resultante. a Sea p(x) = n xn + n1 xn1 + n2 xn2 + ... + 1 x + 0 reescrito como p(x) = u1 xn + u2 xn1 + u3 xn2 + ... + un x + un+1 (4.22)

Se desea encontrar x2 dx e divisor de p. Cuando se hace la divisin entre o p y un polinomio cuadrtico cualquiera, se obtiene un residuo r(x) = Rx+S. a Entonces se buscan valores de d y e tales que r(x) = 0, es decir, R = 0 y S = 0. Los valores R y S dependen de d y e, o sea, R = R(d, e) y S = S(d, e) Tenemos dos ecuaciones con dos incgnitas, o

R(d, e) = 0 S(d, e) = 0 Sea q(x) = n2 xn2 + n3 xn3 + ... + 1 x + 0 reescrito como q(x) = v1 xn2 + v2 xn3 + ... + vn2 x + vn1 el cociente. Entonces p(x) = q(x)(x2 dx e) + Rx + S. Es decir,

u1 xn + u2 xn1 + ... + un x + un+1 = (v1 xn2 + v2 xn3 + ... + vn2 x + vn1 )(x2 dx e) + R

4.10. METODO DE BAIRSTOW

159

u 1 = v1 u3 = v3 dv2 ev1 u2 = v2 dv1

u4 = v4 dv3 ev2

ui = vi dvi1 evi2 un1 = vn1 dvn2 evn3 un = un+1 =

dvn1 evn2 + R evn1 + S

Para facilitar las frmulas es util introducir dos coecientes adicionales, vn o y vn+1 , que no inuyen sobre q, denidos por

vn = R vn+1 = S + dvn Entonces: un = vn dvn1 evn2

o sea,

un+1 = vn+1 dvn evn1

un+1 = dvn dvn evn1 + S

Las igualdades quedan: u 1 = v1 u2 = v2 dv1 ui = vi dvi1 evi2 , i = 3, ..., n + 1.

Las frmulas para calcular los vi son o

160

4.

SOLUCION DE ECUACIONES NO LINEALES

v1 = u 1 v2 = u2 + dv1 vi = ui + dvi1 + evi2 , Una vez obtenidos los vi , entonces i = 3, ..., n + 1. (4.23)

R = vn S = vn+1 dvn u1 d e v1 = u 1 u2 dv1 v2 = u3 dv2 ev1 v3 = u4 dv3 ev2 v4 = un+1 dvn evn1 vn+1 =

R = vn , 4 2 -3 4 5 8 13

S = vn+1 dvn 1 26 -12 15 0 30 -39 -9 -1 -18 -45 -64 2 -128 27 -99

R = 64,

S = 99 2 (64) = 29

El objetivo inicial era buscar R = 0 y S = 0. Esto se obtiene si vn = 0 y vn+1 = 0. O sea, ahora lo que se desea es encontrar d y e tales que

vn (d, e) = 0 vn+1 (d, e) = 0 Al aplicar el mtodo de Newton se tiene: e

4.10. METODO DE BAIRSTOW

161

resolver el sistema

dk vn (dk , ek ) = vn+1 (dk , ek ) ek dk dk dk+1 = k + ek e ek+1

(4.24) (4.25)

donde J es la matriz jacobiana vn (dk , ek ) J = d vn+1 (dk , ek ) d Clculo de las derivadas parciales: a vn k k (d , e ) e . vn+1 k k (d , e ) e

v1 =0 d v2 = v1 d vi1 vi2 vi = vi1 + d +e d d d

v1 e v2 e vi e vi e

=0 =0 vi1 vi2 + vi2 + e e e vi1 vi2 = vi2 + d +e e e =d

Explicitando las derivadas parciales con respecto a d se tiene

162

4.

SOLUCION DE ECUACIONES NO LINEALES

v1 d v2 d v3 d v3 d v4 d vi d Sea w1 = v 1

=0 = v1 v2 v1 +e d d v2 = v2 + d d v3 v2 = v3 + d +e d d vi1 vi2 = vi1 + d +e d d = v2 + d

w2 = v2 + dw1 wi = vi + dwi1 + ewi2 , i = 3, ..., n.

(4.26)

Es importante observar que estas frmulas son anlogas a las de la divisin o a o sinttica doble, que permiten obtener, a partir de los valores ui , los valores e vi . La derivar se tiene: v1 d v2 d v3 d vi d =0 = w1 = w2 = wi1

Explicitando las derivadas parciales con respecto a e se tiene

4.10. METODO DE BAIRSTOW

163

v1 e v2 e v3 e v4 e v5 e Utilizando de nuevo los wi

=0 =0 = v1 = v2 + dv1 = v3 + d v4 v3 +e e e

v1 e v2 e v3 e v4 e v5 e vi e

=0 =0 = w1 = w2 = w3 = wi2

Entonces

vn d vn e vn+1 d vn+1 e

= wn1 = wn2 = wn = wn1

164

4.

SOLUCION DE ECUACIONES NO LINEALES

Es decir, la matriz jacobiana es simplemente J= wn1 wn2 . wn wn1 (4.27)

METODO DE BAIRSTOW datos: u1 , u2 , ..., un+1 (4.22), d0 , e0 , , MAXIT para k = 0, ...,MAXIT calcular v1 , v2 , ..., vn+1 segn (4.23) u si || ( vn , vn+1 ) || , ent parar calcular w1 , w2 , ..., wn segn (4.26) u construir J segn (4.27) u resolver el sistema (4.24) obtener dk+1 y ek+1 segn (4.25) u n-para k Si el agoritmo acaba de la manera esperada, || ( vn , vn+1 ) || , entonces los ultimos valores d y e hacen que x2 dx e divida exactamente a p(x). El cociente ser justamente q(x) = v1 xn2 + v2 xn3 + ... + vn2 x + vn1 . a As las dos ra , ces de x2 dx e son tambin ra e ces de p(x). Si el grado de q es superior a dos, entonces se puede recomenzar el proceso con q(x). El mtodo de Bairstow es, en el fondo, el mtodo de Newton en R2 , luego, e e en condiciones favorables, la convergencia es cuadrtica. a Ejemplo 4.10. Aplicar el mtodo de Bairstow para hallar las ra e ces de p(x) = 4x5 + 5x4 + x3 x + 2 ,

con d0 = 2, e0 = 3 y = 108 .
k = 0 4.0000 5.0000 8.0000

1.0000 0.0000 -1.0000 2.0000 26.0000 30.0000 -18.0000 -128.0000 -12.0000 -39.0000 -45.0000 27.0000 -----------------------------------------------------------4.0000 13.0000 15.0000 -9.0000 -64.0000 -99.0000 2.0000 8.0000 42.0000 90.0000 36.0000 -3.0000 -12.0000 -63.0000 -135.0000 -------------------------------------------------2.0000 -3.0000

4.10. METODO DE BAIRSTOW


4.0000 J 21.0000 45.0000 18.0000 -163.0000

165

18.0000 45.0000 -163.0000 18.0000 Delta : -0.4313 1.5947 d, e : 1.5687 -1.4053 ====================================================================== k = 1 4.0000 5.0000 1.0000 0.0000 -1.0000 2.0000 1.5687 6.2750 17.6875 20.4979 7.3000 -18.9220 -1.4053 -5.6211 -15.8444 -18.3619 -6.5393 -----------------------------------------------------------4.0000 11.2750 13.0664 4.6534 -12.0619 -23.4613 1.5687 6.2750 27.5313 54.8694 54.6869 -1.4053 -5.6211 -24.6625 -49.1518 -------------------------------------------------4.0000 17.5499 34.9767 34.8603 -6.5268 J 34.8603 34.9767 -6.5268 34.8603 Delta : -0.2772 0.6211 d, e : 1.2916 -0.7842 ====================================================================== k = 2 4.0000 5.0000 1.0000 0.0000 -1.0000 2.0000 1.2916 5.1662 13.1303 14.1990 8.0426 -2.0383 -0.7842 -3.1366 -7.9720 -8.6208 -4.8830 -----------------------------------------------------------4.0000 10.1662 10.9937 6.2271 -1.5782 -4.9213 1.2916 5.1662 19.8029 35.7245 38.6544 -0.7842 -3.1366 -12.0231 -21.6898 -------------------------------------------------4.0000 15.3325 27.6599 29.9284 15.3864 J 29.9284 27.6599 15.3864 29.9284 Delta : -0.1891 0.2616 d, e : 1.1025 -0.5225 ====================================================================== k = 3 4.0000 5.0000 1.0000 0.0000 -1.0000 2.0000 1.1025 4.4099 10.3743 10.2357 5.8639 0.0141 -0.5225 -2.0901 -4.9168 -4.8511 -2.7792 -----------------------------------------------------------4.0000 9.4099 9.2842 5.3188 0.0128 -0.7651

166
1.1025 -0.5225

4.

SOLUCION DE ECUACIONES NO LINEALES


4.4099

15.2361 24.7289 25.1660 -2.0901 -7.2211 -11.7202 -------------------------------------------------4.0000 13.8198 22.4303 22.8267 13.4586

J 22.8267 22.4303 13.4586 22.8267 Delta : -0.0796 0.0805 d, e : 1.0229 -0.4420 ====================================================================== k = 4 4.0000 5.0000 1.0000 0.0000 -1.0000 2.0000 1.0229 4.0914 9.2992 8.7259 4.8147 0.0445 -0.4420 -1.7682 -4.0189 -3.7711 -2.0808 -----------------------------------------------------------4.0000 9.0914 8.5310 4.7071 0.0435 -0.0362 1.0229 4.0914 13.4841 20.7096 20.0369 -0.4420 -1.7682 -5.8275 -8.9501 -------------------------------------------------4.0000 13.1828 20.2469 19.5892 11.1303 J 19.5892 20.2469 11.1303 19.5892 Delta : -0.0100 0.0075 d, e : 1.0128 -0.4345 ====================================================================== k = 5 4.0000 5.0000 1.0000 0.0000 -1.0000 2.0000 1.0128 4.0513 9.1675 8.5377 4.6639 0.0012 -0.4345 -1.7380 -3.9329 -3.6627 -2.0008 -----------------------------------------------------------4.0000 9.0513 8.4295 4.6048 0.0012 0.0004 1.0128 4.0513 13.2709 20.2186 19.3757 -0.4345 -1.7380 -5.6932 -8.6738 -------------------------------------------------4.0000 13.1027 19.9623 19.1302 10.7032 J 19.1302 19.9623 10.7032 19.1302 Delta : -0.0001 0.0000 d, e : 1.0127 -0.4345 ====================================================================== k = 6 4.0000 5.0000 1.0000 0.0000 -1.0000 2.0000 1.0127 4.0509 9.1662 8.5357 4.6619 0.0000

4.10. METODO DE BAIRSTOW


-0.4345

167

-1.7379 -3.9324 -3.6619 -2.0000 -----------------------------------------------------------4.0000 9.0509 8.4283 4.6033 0.0000 0.0000

Entonces d = 1.0127362 x2 1.0127362 x + 0.4344745 divide a p , e = 0.4344745

r1 = 0.5063681 + 0.4219784 i es ra de p, z

q(x) = 4 x3 + 9.0509449 x2 + 8.4283219 x + 4.6032625 . Al aplicar el mtodo de Bairstow a q(x) con d0 = 1 y e0 = 1 se obtiene: e d = 0.9339455 x2 + 0.9339455 x + 0.8660624 divide a p , r3 = 0.4669728 + 0.8049837 i es ra de p, z q (x) = 4 x + 5.3151629 . La ultima ra es r5 = 1.3287907 . z r4 = 0.4669728 0.8049837 i es ra de p, z e = 0.8660624

r2 = 0.5063681 0.4219784 i es ra de p, z

Ejercicios
Trate de resolver las ecuaciones propuestas, utilice mtodos diferentes, come pare sus ventajas y desventajas. Emplee varios puntos iniciales. Busque, si es posible, otras ra ces. 4.1 x3 + 2x2 + 3x + 4 = 0. 4.2 x3 + 2x2 3x 4 = 0. 4.3 x4 4x3 + 6x2 4x + 1 = 0. 4.4 x4 4x3 + 6x2 4x 1 = 0.

168

4.

SOLUCION DE ECUACIONES NO LINEALES

4.5 x4 4x3 + 6x2 4x + 2 = 0. 4.6 x2 3x 6 2 cos(x) + 2 x + 1 + x3 8 = 0. x2 + x + 10 ex + x2 1000000 i (1 + i)12 = 945560. (1 + i)12 1

4.7

4.8 x2 x1 x2 + 3x1 4x2 + 10 = 0, 1 4.9 x1 + x2 + 2x1 x2 31 = 0,

2x2 + x2 + 3x1 x2 4x1 + 5x2 42 = 0. 1 2

6x1 + 5x2 + 3x1 x2 74 = 0.

Interpolacin y aproximacin o o
En muchas situaciones de la vida real se tiene una tabla de valores correspondientes a dos magnitudes relacionadas; por ejemplo, Ao n 1930 1940 1950 1960 1970 1980 1985 1990 1995 Poblacin o 3425 5243 10538 19123 38765 82468 91963 103646 123425

De manera ms general, se tiene una tabla de valores a x1 x2 . . . xn f (x1 ) f (x2 ) . . . f (xn )

y se desea obtener una funcin f , sencilla y fcil de calcular, aproximacin o a o x de f , o en otros casos, dado un x, se desea obtener f () valor aproximado de f (). x 169

170 y

5.

INTERPOLACION Y APROXIMACION

x Figura 5.1: Puntos o datos iniciales

Figura 5.2: Interpolacin o Los valores f (xi ) pueden corresponder a: Datos o medidas obtenidos experimentalmente. Valores de una funcin f que se conoce pero tiene una expresin o o anal tica muy complicada o de evaluacin dif o lenta. o cil Una funcin de la que no se conoce una expresin anal o o tica, pero se puede conocer f (x) como solucin de una ecuacin funcional (por o o ejemplo, una ecuacin diferencial) o como resultado de un proceso o numrico. e Cuando se desea que la funcin f pase exactamente por los puntos conocidos, o f (xi ) = f (xi ) i, se habla de interpolacin o de mtodos de colocacin, gura 5.2. o e o En los dems casos se habla de aproximacin, gura 5.3. En este cap a o tulo se ver aproximacin por m a o nimos cuadrados.

5.1. INTERPOLACION

171

Figura 5.3: Aproximacin o

5.1
5.1.1

Interpolacin o
En Scilab

Cuando hay m puntos (x1 , y1 ), (x2 , y2 ), ..., (xm , ym ) se desea obtener la funcin interpolante, una funcin que pase por esos puntos, con el objetivo o o de evaluarla en otros valores x intermedios. La funcin interpln permite hacer interpolacin lineal (la funcin intero o o polante es continua y af por trozos). Tiene dos parmetros, el primero es n a una matriz de dos las. La primera la tiene los valores xi . Deben estar en orden creciente. La segunda la tiene los valores yi . El segundo parmetro a es un vector donde estn los valores x en los que se desea evaluar la funcin a o interpolante (af por trozos). n clear, clf x = [ 0.5 1 1.5 2.1 3 3.6] y = [ 1 2 1.5 2.5 2.1 2.4] t = 0.8 ft = interpln( [x; y], t) n = length(x); xx = ( x(1):0.1:x(n) ); y1 = interpln( [x; y], xx); plot2d(xx, y1) La grca resultante es semejante a la de la gura 5.4. a

172 3 2 1

5.

INTERPOLACION Y APROXIMACION

Figura 5.4: Interpolacin lineal con interpln o

Tambin se puede hacer interpolacin utilizando funciones spline o trazadores e o cbicos. Para hacer esto en Scilab, se requieren dos pasos. En el primero, u mediante splin, a partir de un lista de puntos (x1 , y1 ), (x2 , y2 ), ..., (xm , ym ) se calculan las derivadas, en los puntos xi , de la funcin spline interpolante. o En el segundo paso, mediante interp, se evala la funcin interpolante en u o los valores dados por un vector, primer parmetro de interp. a clear, clf x = [ 0.5 1 1.5 2.1 3 3.6] y = [ 1 2 1.5 2.5 2.1 2.4] n = length(x); xx = ( x(1):0.1:x(n) ); d = splin(x, y); ys = interp(xx, x, y, d); plot2d(xx, ys) La grca resultante es semejante a la de la gura 5.5. a

5.1.2

Caso general

En el caso general de interpolacin se tiene un conjunto de n puntos (x1 , y1 ), o (x2 , y2 ), ..., (xn , yn ) con la condicin de que los xi son todos diferentes. o Este conjunto se llama el soporte. La funcin f , que se desea construir, o debe ser combinacin lineal de n funciones llamadas funciones de la base. o

5.1. INTERPOLACION 3 2 1

173

Figura 5.5: Interpolacin con funciones spline o

Supongamos que estas funciones son 1 , 2 , ..., n . Entonces, f (x) = a1 1 (x) + a2 2 (x) + + an n (x). Como las funciones de la base son conocidas, para conocer f basta conocer los escalares a1 , a2 , ..., an . Las funciones de la base deben ser linealmente independientes. Si n 2, la independencia lineal signica que no es posible que una de las funciones sea combinacin lineal de las otras. Por ejemplo, las funciones o 1 (x) = 4, 2 (x) = 6x2 20 y 3 (x) = 2x2 no son linealmente independientes. Los escalares a1 , a2 , ..., an se escogen de tal manera que f (xi ) = yi , para i = 1, 2, ..., n. Entonces a1 1 (x1 ) + a2 2 (x1 ) + + an n (x1 ) = y1

a1 1 (x2 ) + a2 2 (x2 ) + + an n (x2 ) = y2 . . .

a1 1 (xn ) + a2 2 (xn ) + + an n (xn ) = yn Las m igualdades anteriores se pueden escribir matricialmente: 1 (x1 ) 2 (x1 ) n (x1 ) a1 y1 1 (x2 ) 2 (x2 ) n (x2 ) a2 y2 . = . . . . . . . . 1 (xn ) 2 (xn ) n (xn ) an yn a = y. (5.1)

De manera compacta se tiene

174

5.

INTERPOLACION Y APROXIMACION

La matriz es una matriz cuadrada n n, a es un vector columna n 1, y es un vector columna n1. Son conocidos la matriz y el vector columna y. El vector columna a es el vector de incgnitas. Como las funciones de la base o son linealmente independientes, entonces las columnas de son linealmente independientes. En consecuencia, es invertible y (5.1) se puede resolver (numricamente). e Ejemplo 5.1. Dados los puntos (1, 1), (2, 2), (3, 5) y la base formada por las funciones 1 (x) = 1, 2 (x) = x, 3 (x) = x2 , encontrar la funcin de o interpolacin. o Al plantear a = y, se tiene a1 1 1 1 1 1 2 4 a2 = 2 a3 5 1 3 9 4 a = 3 , f (x) = 4 3x + 2x2 , 2

Entonces

que efectivamente pasa por los puntos dados. 3

La interpolacin polinomial (las funciones utilizadas son 1, x, x2 , ...) para o problemas pequeos con matrices sin problemas, se puede realizar en n Scilab, mediante rdenes semejantes a: o x = [ 0.5 1 1.5 2.1 3 3.6] y = [ 1 2 1.5 2.5 2.1 2.4] x = x(:); y = y(:); n = size(x,1); n1 = n - 1; F = ones(n,n); for i=1:n1 F(:,i+1) = x.^i; end a = F\y p = poly(a, x, c)

5.2. INTERPOLACION POLINOMIAL DE LAGRANGE

175

xx = (x(1):0.05:x(n)); yp = horner(p, xx); Hay ejemplos clsicos de los problemas que se pueden presentar con valores a relativamente pequeos, n = 20. n Ejemplo 5.2. Dados los puntos mismos (1, 1), (2, 2), (3, 5) y la base formada por las funciones 1 (x) = 1, 2 (x) = ex , 3 (x) = e2x , encontrar la funcin de interpolacin. o o Al plantear a = y, 1 1 1 Entonces se tiene 1 a1 0.3679 0.1353 7.3891 54.5982 a2 = 2 5 a3 20.0855 403.4288

que efectivamente tambin pasa por los puntos dados. 3 e

1.2921 a = 0.8123 , f (x) = 1.2921 0.8123ex + 0.0496e2x , 0.0496

5.2

Interpolacin polinomial de Lagrange o

En la interpolacin de Lagrange la funcin f que pasa por los puntos es o o un polinomio, pero el polinomio se calcula utilizando polinomios de Lagrange, sin resolver expl citamente un sistema de ecuaciones. Tericamente, o el polinomio obtenido por interpolacin polinomial (solucin de un sistema o o de ecuaciones) es exactamente el mismo obtenido por interpolacin de Lao grange. Dados n puntos (x1 , y1 ), (x2 , y2 ), . . . , (xn , yn ), donde yi = f (xi ) = fi , se desea encontrar un polinomio p Pn1 (el conjunto de polinomios de grado menor o igual a n1), que pase exactamente por esos puntos, es decir, p(xi ) = yi , i = 1, 2, ..., n. (5.2)

176

5.

INTERPOLACION Y APROXIMACION

Por ejemplo, se desea encontrar un polinomio de grado menor o igual a 2 que pase por los puntos (1, 1), (2, 2), (3, 5). Los valores xi deben ser todos diferentes entre s Sin perder generalidad, se . puede suponer que x1 < x2 < < xn . El problema 5.2 se puede resolver planteando n ecuaciones con n incgnitas o (los coecientes del polinomio). Este sistema lineal se puede resolver y se tendr la solucin. Una manera ms adecuada de encontrar p es por medio a o a de los polinomios de Lagrange.

5.2.1

Algunos resultados previos

Teorema 5.1. Sea p Pn1 . Si existen n valores diferentes x1 , x2 , ..., xn tales que p(xi ) = 0 i, entonces p(x) = 0 x, es decir, p es el polinomio nulo. Teorema 5.2. Teorema del valor medio. Sea f derivable en el intervalo [a, b], entonces existe c [a, b] tal que f (b) f (a) = f (c). ba Corolario 5.1. Si f (a) = f (b) = 0, entonces existe c [a, b] tal que f (c) = 0.

5.2.2

Polinomios de Lagrange

Dados n valores diferentes x1 , x2 , ..., xn , se denen n polinomios de Lagrange L1 , L2 , ..., Ln de la siguiente manera:
n i=1,i=k n i=1,i=k

(x xi ) (5.3)

Lk (x) =

(xk xi )

5.2. INTERPOLACION POLINOMIAL DE LAGRANGE

177

La construccin de los polinomios de Lagrange, para los datos del ultimo o ejemplo x1 = 1, x2 = 2, x3 = 3, da: L1 (x) = L2 (x) = L3 (x) = x2 5x + 6 (x 2)(x 3) = , (1 2)(1 3) 12 (x 1)(x 3) x2 2x 3 = , (2 1)(2 3) 3 (x 1)(x 2) x2 x 2 = . (3 1)(3 2) 4

Es claro que el numerador de (5.3) es el producto de n 1 polinomios de grado 1; entonces el numerador es un polinomio de grado, exactamente, n 1. El denominador es el producto de n 1 nmeros, ninguno de los u cuales es nulo, luego el denominador es un nmero no nulo. En resumen, u Lk es un polinomio de grado n 1. Reemplazando se verica que Lk se anula en todos los xi , salvo en xk , Lk (xi ) = 0 si i = k, 1 si i = k. (5.4)

En el ejemplo, L3 (1) = 0, L3 (2) = 0, L3 (3) = 1. Con los polinomios de Lagrange se construye inmediatamente p,
n

p(x) =
k=1

yk Lk (x).

(5.5)

Por construccin p es un polinomio en Pn1 . Reemplazando, fcilmente se o a verica 5.2. Para el ejemplo, p(x) = 1L1 (x) 2L2 (x) + 5L3 (x) = 2x2 3x 4. Ejemplo 5.3. Encontrar el polinomio, de grado menor o igual a 3, que pasa por los puntos (1, 1), (1, 5), (2, 2), (3, 5).

178 L1 (x) = L2 (x) = L3 (x) = L4 (x) = p(x) =

5.

INTERPOLACION Y APROXIMACION

x3 6x2 + 11x 6 (x 1)(x 2)(x 3) = , (1 1)(1 2)(1 3) 24 x3 4x2 + x + 6 , 4 x3 3x2 x + 3 , 3 x3 2x2 x + 2 , 8 2x2 3x 4. 3

En la prctica se usa la interpolacin de Lagrange de grado 2 o 3, mximo a o a 4. Si hay muchos puntos, stos se utilizan por grupos de 3 o 4, mximo 5 e a puntos. Ejemplo 5.4. Considere los puntos (1, 3.8), (2, 3.95), (3, 4.), (4, 3.95), (4.2, 3.43), (4.5, 3.89). El polinomio de interpolacin es o p(x) = 102.68595 + 245.23493x 204.16498x2 + 78.696263x3 14.264007x4 + 0.9837509x5 Obviamente p(1) = 3.8 y p(2) = 3.95. Sin embargo p(1.35) = 6.946. Ver gura (5.6). 3 Si x es un vector, un polinomio de Lagrange se puede costruir en Scilab por rdenes semejantes a o x = [-1 1 2 3]; n = length(x) k = 2 Lk = poly([1], x, c); deno = 1; for i=1:n if i ~= k Lk = Lk*poly([x(i)], x); deno = deno*(x(k) - x(i)); end end Lk = Lk/deno

5.2. INTERPOLACION POLINOMIAL DE LAGRANGE 7 6 5 4 3 2 1 0 0 1 2 3 4

179

Figura 5.6: Un ejemplo de interpolacin polinomial o

5.2.3

Existencia, unicidad y error

El polinomio p Pn1 existe puesto que se puede construir. Sea q Pn1 otro polinomio tal que q(xi ) = yi , i = 1, 2, ..., n. Sea r(x) = p(x) q(x). Por construccin, r Pn , adems r(xi ) = 0, i = o a 1, 2, n, o sea, r se anula en n valores diferentes, luego r(x) = 0, de donde q(x) = p(x). Teorema 5.3. Sean x1 , x2 , ..., xn reales distintos; t un real; It el menor n intervalo que contiene a x1 , x2 , ..., xn , t; f CIt (f tiene derivadas continuas de orden 0, 1, 2, ..., n); pn1 el polinomio de grado menor o igual a n 1 que pasa por los n puntos (x1 , f (x1 )), ..., (xn , f (xn )). Entonces E(t), el error en t, est dado por: a E(t) = f (t) pn1 (t) = (t x1 )(t x2 ) (t xn )f (n) ()/n! para algn It . u (5.6)

180

5.

INTERPOLACION Y APROXIMACION

Demostracin. Si t = xi para algn i, entonces se tiene trivialmente el o u resultado. Supongamos ahora que t {x1 , x2 , ..., xn }. Sean / (x) = (x x1 )(x x2 ) (x xn ), (x) E(t). G(x) = E(x) (t) Entonces
n G CIt ,

G(xi ) = E(xi )

(xi ) E(t) = 0, i = 1, ..., n (t) (t) E(t) = 0. G(t) = E(t) (t)

Como G tiene por lo menos n + 1 ceros en It , aplicando el corolario del teorema del valor medio, se deduce que G tiene por lo menos n + 1 1 ceros en It . As sucesivamente se concluye que G(n) tiene por lo menos un cero en It . Sea tal que G(n) () = 0. De acuerdo con las deniciones E (n) (x) = f (n) (x) p(n) (x) = f (n) (x), n (n) (x) = n!, G(n) (x) = E (n) (x) (n) (x) E(t), (t) n! G(n) (x) = f (n) (x) E(t), (t) n! E(t) = 0. G(n) () = f (n) () (t) E(t) = (t) (n) f (). 2 n!

Entonces

Frecuentemente no se tiene la informacin necesaria para aplicar (5.6). Alo gunas veces se tiene informacin necesaria para obtener una cota superior o del valor absoluto del error. |E(t)| |(t)| max |f (n) (z)| n! zIt (5.7)

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

181

Ejemplo 5.5. Considere los valores de la funcin seno en los puntos 5, 5.2, o 5.5 y 6. Sea p el polinomio de interpolacin. Obtenga una cota para error o cometido al aproximar sen(5.8) por p(5.8). Compare con el valor real del error. y = (0.9589243, 0.8834547, 0.7055403, 0.2794155). El polinomio p se puede obtener mediante la solucin de un sistema de o ecuaciones o por polinomios de Lagrange. p(x) = 23.728487 12.840218 x + 2.117532 x2 0.1073970 x3

f (4) (x) = sen(x) It = [5, 6]

p(5.8) = 0.4654393

max |f (n) (z)| = 0.9589243


zIt

|E(5.8)| 0.0011507 El error cometido es: E(5.8) = sen(5.8) p(5.8) = 0.0008371 . 3

|(5.8)| = 0.0288

5.3

Diferencias divididas de Newton

Esta es una manera diferente de hacer los clculos para la interpolacin a o polinmica. En la interpolacin de Lagrange se construye expl o o citamente p, es decir, se conocen sus coecientes. Por medio de las diferencias divididas no se tiene expl citamente el polinomio, pero se puede obtener fcilmente el a valor p(x) para cualquier x. Supongamos de nuevo que tenemos los mismos n puntos, (x1 , f1 ), (x2 , f2 ), . . . , (xn1 , fn1 ), (xn , fn ). Con ellos se obtiene p = pn1 Pn1 . Si se consideran unicamente los primeros n 1 puntos (x1 , f1 ), (x2 , f2 ), . . . , (xn1 , fn1 ),

182

5.

INTERPOLACION Y APROXIMACION

se puede construir pn2 Pn2 . Sea c(x) la correccin que permite pasar o de pn2 a pn1 , pn1 (x) = pn2 (x) + c(x), es decir, c(x) = pn1 (x) pn2 (x). Por construccin, c es un polinomio en Pn1 . Adems, o a c(xi ) = pn1 (xi ) pn2 (xi ) = 0, i = 1, 2, ..., n 1. La frmula anterior dice que c tiene n 1 ra diferentes x1 , x2 , ..., xn1 , o ces entonces c(x) = n1 (x x1 )(x x2 ) (x xn1 ). f (xn ) = pn1 (xn ) = pn2 (xn ) + c(xn ), f (xn ) = pn2 (xn ) + n1 (xn x1 )(xn x2 )(xn x3 ) (xn xn1 ). De la ultima igualdad se puede despejar n1 . Este valor se dene como la diferencia dividida de orden n 1 de f en los puntos x1 , x2 , ..., xn . Se denota n1 = f [x1 , x2 , ..., xn ] := f (xn ) pn2 (xn ) (xn x1 )(xn x2 ) (xn xn1 )

El nombre diferencia dividida no tiene, por el momento, un signicado muy claro; ste se ver ms adelante. Una de las igualdades anteriores se reescribe e a a pn1 (x) = pn2 (x) + f [x1 , ..., xn ](x x1 ) (x xn1 ). (5.8)

Esta frmula es la que se utiliza para calcular pn1 (x), una vez que se sepa o calcular, de manera sencilla, f [x1 , x2 , ..., xn ]. Para calcular p(x), se empieza calculando p0 (x). A partir de p0 (x), con el valor f [x1 , x2 ], se calcula p1 (x). A partir de p1 (x), con el valor f [x1 , x2 , x3 ], se calcula p2 (x). A partir de p2 (x), con el valor f [x1 , x2 , x3 , x4 ], se calcula p3 (x). . . . A partir de pn2 (x), con el valor f [x1 , x2 , ..., xn ], se calcula pn1 (x).

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON Obviamente p0 (x) = f (x1 ). Por denicin, consistente con lo visto antes, o f [x1 ] := f (x1 ), que se generaliza a f [xi ] := f (xi ), i. Las dems diferencias divididas se deducen de (5.8), a p1 (x) = p0 (x) + f [x1 , x2 ](x x1 ), p1 (x) po (x) f [x1 , x2 ] = x x1 Para x = x2 , f [x1 , x2 ] = f [x1 , x2 ] = f [x1 , x2 ] = La anterior igualdad se generaliza a f [xi , xi+1 ] = Deduccin de f [x1 , x2 , x3 ] : o p2 (x) = p1 (x) + f [x1 , x2 , x3 ](x x1 )(x x2 ), p2 (x) p1 (x) , f [x1 , x2 , x3 ] = (x x1 )(x x2 ) x = x3 , p2 (x3 ) p1 (x3 ) f [x1 , x2 , x3 ] = , (x3 x1 )(x3 x2 ) = ... f1 (x3 x2 ) f2 (x3 x1 ) + f3 (x2 x1 ) f [x1 , x2 , x3 ] = (x3 x2 )(x3 x1 )(x2 x1 ) f [xi+1 ] f [xi ] xi+1 xi p1 (x2 ) po (x2 ) , x2 x1 f (x2 ) f (x2 ) , x2 x1 f [x2 ] f [x1 ] . x2 x1

183

(5.9)

(5.10)

(5.11)

184 Por otro lado, f [x2 , x1 ] f [x1 , x2 ] x3 x1 f [x2 , x3 ] f [x1 , x2 ] x3 x1 Luego

5.

INTERPOLACION Y APROXIMACION

f2 f1 f3 f2 x3 x2 x2 x1 = , x3 x1 = ... f1 (x3 x2 ) f2 (x3 x1 ) + f3 (x2 x1 ) = (x3 x2 )(x3 x1 )(x2 x1 ) f [x2 , x3 ] f [x1 , x2 ] x3 x1 (5.12)

f [x1 , x2 , x3 ] = Generalizando, f [xi , xi+1 , xi+2 ] =

f [xi+1 , xi+2 ] f [xi , xi+1 ] xi+2 xi

La generalizacin para diferencias divididas de orden j es: o f [xi , xi+1 , ..., xi+j ] = f [xi+1 , ..., xi+j ] f [xi , ..., xi+j1 ] xi+j xi (5.13)

Las frmulas anteriores dan sentido al nombre diferencias divididas. Cuando o no se preste a confusin, se puede utilizar la siguiente notacin: o o Dj f [xi ] := f [xi , xi+1 , ..., xi+j ] Entonces D0 f [xi ] := f (xi ), D0 f [xi+1 ] D0 f [xi ] Df [xi ] = D1 f [xi ] = , xi+1 xi D1 f [xi+1 ] D1 f [xi ] D2 f [xi ] = , xi+2 xi Dj f [xi ] = Dj1 f [xi+1 ] Dj1 f [xi ] xi+j xi (5.15) (5.16) (5.17) (5.14)

(5.18)

5.3.1

Tabla de diferencias divididas

Para ejemplos pequeos, hechos a mano, se acostumbra construir la tabla n de diferencias divididas, la cual tiene el siguiente aspecto:

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON xi x1 x2 x3 x4 x5 fi f1 f2 f [x2 , x3 ] f3 f [x3 , x4 ] f4 f [x4 , x5 ] f5 f [x3 , x4 , x5 ] f [x2 , x3 , x4 ] f [x2 , x3 , x4 , x5 ] f [xi , xi+1 ] f [x1 , x2 ] f [x1 , x2 , x3 ] f [x1 , x2 , x3 , x4 ] f [xi , xi+1 , xi+2 ] f [xi , xi+1 , xi+2 , xi+3 ]

185

En la tabla anterior, dados 5 puntos, estn las diferencias divididas hasta a de orden 3. Claro est, se hubiera podido calcular tambin la diferencia a e dividida de orden 4, que estar colocada en una columna adicional a la a derecha. La elaboracin de la tabla es relativamente sencilla. Las dos primeras o columnas corresponden a los datos. La tercera columna, la de las diferencias divididas de primer orden, f [xi , xi+1 ], se obtiene mediante la resta de dos elementos consecutivos de la columna anterior dividida por la resta de los dos elementos correspondientes de la primera columna. Por ejemplo, f [x3 , x4 ] = (f4 f3 )/(x4 x3 ). Obsrvese que este valor se coloca en medio e de la la de f3 y de la la de f4 . Para el clculo de una diferencia dividida de segundo orden, cuarta columna, a se divide la resta de dos elementos consecutivos de la columna anterior por la resta de dos elementos de la primera columna, pero dejando uno intercalado. Por ejemplo, f [x1 , x2 , x3 ] = (f [x2 , x3 ] f [x1 , x2 ])/(x3 x1 ). Para el clculo de una diferencia dividida de tercer orden, quinta columna, a se divide la resta de dos elementos consecutivos de la columna anterior por la resta de dos elementos de la primera columna, pero dejando dos intercalados. Por ejemplo, f [x1 , x2 , x3 , x4 ] = (f [x2 , x3 , x4 ] f [x1 , x2 , x3 ])/(x4 x1 ). Ejemplo 5.6. Construir la tabla de diferencias divididas, hasta el orden 3, a partir de los seis puntos siguientes:

(0, 0), (0.5, 0.7071), (1, 1), (2, 1.4142), (3, 1.7321), (4, 2).

186 xi 0 .5 1 2 3 4 fi 0.0000 0.7071

5.

INTERPOLACION Y APROXIMACION Df [xi ] 1.4142 0.5858 0.8284 0.1144 0.0482 0.0250 0.3570 0.0265 0.0077 D2 f [xi ] D3 f [xi ]

1.0000 0.4142 1.4142 0.3179 1.7321 0.2679 2.0000

El valor 1.4142 es simplemente (0.7071 0)/(0.5 0). El valor 0.2679 es simplemente (21.7321)/(43). El valor 0.1144 es simplemente (0.4142 .5858)/(2 .5). El valor 0.0077 es simplemente (0.0250 0.0482)/(4 1). 3 El esquema algor tmico para calcular la tabla de diferencias divididas hasta el orden m es el siguiente: para i = 1, ..., n D0 f [xi ] = f (xi ) n-para i para j = 1, ..., m para i = 1, ..., n j calcular Dj f [xi ] segn (5.18) u n-para i n-para j Suponiendo que x, y son vectores y que se conoce m, la tabla de diferencias divididas, hasta el orden m, se puede costruir en Scilab por rdenes o semejantes a: x = x(:) y = y(:) n = size(x,1) DD = zeros(n,m+1);

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON DD(:,1) = y; for j=1:m for i=1:n-j Djfi = ( DD(i+1,j) - DD(i,j) )/( x(i+j) - x(i) ); DD(i,j+1) = Djfi; end end disp(DD)

187

Si los datos f (xi ) corresponden a un polinomio, esto se puede deducir mediante las siguientes observaciones: Si para algn m todos los valores f [xk , xk+1 , ..., xk+m ] son iguales (o u aproximadamente iguales), entonces f es (aproximadamente) un polinomio de grado m. Si para algn r todos los valores f [xk , xk+1 , ..., xk+r ] son nulos (o u aproximadamente nulos), entonces f es (aproximadamente) un polinomio de grado r 1.

5.3.2

Clculo del valor interpolado a

La frmula (5.8) se puede reescribir a partir de un punto xk , pues no siempre o se debe tomar como valor de referencia x1 , pm (x) = pm1 (x) + Dm f [xk ](x xk )(x xk+1 ) (x xk+m1 ). (5.19) Si se calcula pm1 (x) de manera anloga, queda en funcin de pm2 (x) y as a o sucesivamente se obtiene:
m i1

pm (x) =

i=0

El proceso para el clculo es el siguiente: a

Di f [xk ]

j=0

(x xk+j ) .

(5.20)

p0 (x) = fk p1 (x) = p0 (x) + D1 f [xk ](x xk ) p2 (x) = p1 (x) + D2 f [xk ](x xk )(x xk+1 ) p3 (x) = p2 (x) + D3 f [xk ](x xk )(x xk+1 )(x xk+2 ) p4 (x) = p3 (x) + D4 f [xk ](x xk )(x xk+1 )(x xk+2 )(x xk+3 ) . . .

188

5.

INTERPOLACION Y APROXIMACION

Se observa que para calcular pj (x) hay multiplicaciones que ya se hicieron para obtener pj1 (x); entonces, no es necesario repetirlas sino organizar el proceso de manera ms eciente. a 0 1 2 3 4 . . . = 1, = 0 (x xk ), = 1 (x xk+1 ), = 2 (x xk+2 ), = 3 (x xk+3 ), p0 (x) = fk p1 (x) = p0 (x) + D1 f [xk ] 1 p2 (x) = p1 (x) + D2 f [xk ] 2 p3 (x) = p2 (x) + D3 f [xk ] 3 p4 (x) = p3 (x) + D4 f [xk ] 4

Unicamente queda por precisar la escogencia del punto inicial o de referencia xk . Si se desea evaluar pm (), cul debe ser xk ? Recordemos que se supone x a que los puntos x1 , x2 , ..., xn estn ordenados y que m, orden del polinomio a de interpolacin, es menor o igual que n 1. Obviamente, aunque no es o absolutamente indispensable, tambin se supone que x {x1 , x2 , ..., xn }. e / Naturalmente se desea que x [xk , xk+m ]. Pero no siempre se cumple; esto sucede cuando x [x1 , xn ]. En estos casos se habla de extrapolacin y / o se debe escoger xk = x1 si x < x1 . En el caso opuesto, x > xn , se toma xk = xnm . En los dems casos, se desea que x est lo ms cerca posible del intervalo a e a [xk , xk+m ] o del conjunto de puntos xk , xk+1 , xk+2 , ..., xk+m . Ejemplo 5.7. Considere los datos del ejemplo anterior para calcular por interpolacin cuadrtica y por interpolacin cbica una aproximacin de o a o u o f (1.69). El primer paso consiste en determinar el xk . Para ello unicamente se tienen en cuenta los valores xi . xi 0 .5 1 2 3 4 Para el caso de la interpolacin cuadrtica, una simple inspeccin visual o a o determina que hay dos posibilidades para xk . La primera es xk = 0.5, intervalo [0.5, 2]. La segunda es xk = 1, intervalo [1, 3]. Cul es mejor? a

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

189

Para medir la cercan se puede usar la distancia de x al promedio de los a extremos del intervalo (xi + xi+2 )/2 (el centro del intervalo) o la distancia de x al promedio de todos los puntos (xi + xi+1 + xi+2 )/3. En general xi + xi+m , 2 xi + xi+1 + xi+2 + + xi+m vi = , m+1 | uk | = min{| ui | : x [xi , xi+m ]}, x x ui =
i

(5.21) (5.22) (5.23) (5.24)

| vk | = min{| vi | : x [xi , xi+m ]}. x x


i

Los valores ui y vi son, de alguna forma, indicadores del centro de masa del intervalo [xi , xi+m ]. Con frecuencia, los dos criterios, (5.23) y (5.24), denen el mismo xk , pero en algunos casos no es as De todas formas son criterios . razonables y para trabajar se escoge un solo criterio, lo cual da buenos resultados. Se puede preferir la utilizacin de vi que, aunque requiere ms o a operaciones, tiene en cuenta todos los xj pertenecientes a [xi , xi+m ]. Los resultados numricos para la interpolacin cuadrtica dan: e o a xi 0 .5 1 2 3 4 ui | ui | x 0.44 0.31 vi | vi | x 0.5233 0.3100

1.25 2.00

1.1667 2.0000

Para la interpolacin cbica hay tres posibilidades para xk : 0 , 0.5 y 1. o u xi 0 .5 1 2 3 4 ui 1.00 1.75 2.50 | ui | x 0.69 0.06 0.81 vi 0.875 1.625 2.500 | vi | x 0.815 0.065 0.810

190

5.

INTERPOLACION Y APROXIMACION

Una vez escogido xk = 1 para obtener la aproximacin cuadrtica de f (1.69), o a los clculos dan: a 0 = 1, p0 (x) = 1, 1 = 1(1.69 1) = 0.69, p1 (x) = 1 + 0.4142(0.69) = 1.285798 2 = 0.69(1.69 2) = 0.2139, p2 (x) = 1.285798 0.0482(0.2139) p2 (x) = 1.296097 Para la interpolacin cbica, xk = 0.5: o u 0 = 1, 1 = 1(1.690.5) = 1.19, p0 (x) = 0.7071, p1 (x) = 0.7071+0.5858(1.19) p1 (x) = 1.404202 2 = 1.19(1.691) = 0.8211, p2 (x) = 1.4042020.1144(0.8211) p2 (x) = 1.310268 3 = 0.8211(1.692) =0.254541, p3 (x) = 1.310268+0.0265(0.254541) p3 (x) = 1.303523. 3

El esquema del algoritmo para calcular pm (), a partir de la tabla de diferx encia divididas, es el siguiente: determinar k px = f (xk ) gi = 1.0 para j = 1, ..., m gi = gi ( xk+j1 ) x px = px + gi Dj f [xk ] n-para j Si x es un vector ordenado de manera creciente, m el grado del polinomio interpolante y t el valor en el que se desea interpolar, el ndice k se puede obtener en Scilab por rdenes semejantes a: o n = length(x); if t <= x(1) k = 1 else if t >= x(n) k = n-m; else

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON distmin = 1.0e10; k = -1; for i=1:n-m if ( x(i) <= t & t <= x(i+m) ) | m == 0 vi = mean(x(i:i+m)); di = abs( t - vi ); if di < distmin distmin = di; k = i; end end // if end // for i end // else end // else

191

Dados los vectores x (ordenado) y y , el valor m (grado del polinomio), si ya se construy la tabla de diferencias divididas DD y se conoce k , o entonces el valor p(t) se puede calcular en Scilab as :

pt = DD(k,1) gi = 1 for j=1:m gi = gi*(t-x(k+j-1)) pt = pt + gi*DD(k,j+1) end

La escogencia del mejor xk para calcular pm (), con m < n 1, es util x cuando se va a evaluar una aproximacin de f en pocos puntos, sucienteo mente separados entre s Cuando hay muchos valores x para obtener una . aproximacin de f , puede suceder que dos de los x sean cercanos pero al o obtener el mejor xk resulten dos xk diferentes con dos aproximaciones bastante diferentes, cuando se esperaban dos aproximaciones parecidas. En la seccin de splines hay un ejemplo detallado. o

192

5.

INTERPOLACION Y APROXIMACION

5.4

Diferencias nitas

Cuando los puntos (x1 , f (x1 )), (x2 , f (x2 )), (x3 , f (x3 )), ..., (xn , f (xn )), estn a igualmente espaciados en x, es decir, existe un h > 0 tal que xi = xi1 + h, i = 2, ..., n xi = x1 + (i 1)h, i = 1, ..., n entonces se pueden utilizar las diferencias nitas, denidas por 0 fi = fi
k+1

(5.25) (5.26)
k k k

fi = fi+1 fi

fi = (fi ) = fi+1 fi

(5.27)

Algunas de las propiedades interesantes de las diferencias nitas son:


k

k fi =
j=0 k

(1)j

k fi+kj , j

(5.28)

fi+k =
j=0

k j fi . j

(5.29)

Las demostraciones se pueden hacer por induccin. La primera igualdad o permite calcular k fi sin tener expl citamente los valores k1 fj . La segunda igualdad permite el proceso inverso al clculo de las diferencias nitas a (se obtienen a partir de los valores iniciales fp ), es decir, obtener un valor fm a partir de las diferencias nitas. Para valores igualmente espaciados, las diferencias nitas y las divididas estn estrechamente relacionadas. a D0 f [xi ] = f [xi ] = fi = 0 fi 1 fi fi+1 fi = D1 f [xi ] = f [xi , xi+1 ] = xi+1 xi h f [xi+1 , xi+2 ] f [xi , xi+1 ] 2 fi D2 f [xi ] = f [xi , xi+1 , xi+2 ] = = = xi+2 xi 2h2 m fi (5.30) Dm f [xi ] = f [xi , ..., xi+m ] = m! hm

5.4. DIFERENCIAS FINITAS

193

5.4.1

Tabla de diferencias nitas

La tabla de diferencias nitas tiene una estructura anloga a la tabla de a diferencias divididas. Se usa para ejemplos pequeos hechos a mano. n xi x1 x2 x3 x4 x5 fi f1 f2 f2 f3 f3 f4 f4 f5 fi f1 2 fi 3 fi

2 f1 2 f2 2 f3

3 f1 3 f2

La elaboracin de la tabla es muy sencilla. Las dos primeras columnas o corresponden a los datos. A partir de la tercera columna, para calcular cada elemento se hace la resta de dos elementos consecutivos de la columna anterior. Por ejemplo, f3 = f4 f3 . Obsrvese que este valor se coloca en e medio de la la de f3 y de la la de f4 . Por ejemplo, 2 f1 = f2 f1 . De manera semejante, 3 f2 = 2 f3 2 f2 . Ejemplo 5.8. Construir la tabla de diferencias nitas, hasta el orden 3, a partir de los seis puntos siguientes: (0, 0), (0.5, 0.7071), (1, 1), (1.5, 1.2247), (2, 1.4142), (2.5, 1.5811). xi 0 .5 1 1.5 2 2.5 fi 0.0000 0.7071 0.2929 1.0000 0.2247 1.2247 0.1895 1.4142 0.1669 1.5811 fi 0.7071 0.4142 0.0682 0.0352 0.0226 0.3460 0.0330 0.0126 2 fi 3 fi

194

5.

INTERPOLACION Y APROXIMACION

El valor 0.1895 es simplemente 1.4142 1.2247. El valor 0.0330 es simplemente 0.0352 0.0682. 3 El esquema algor tmico para calcular la tabla de diferencias nitas hasta el orden m es el siguiente: para i = 1, ..., n 0 fi = f (xi ) n-para i para j = 1, ..., m para i = 1, ..., n j j fi = j1 fi+1 j1 fi n-para i n-para j

5.4.2

Clculo del valor interpolado a

Teniendo en cuenta la relacin entre diferencias divididas y nitas (5.30), la o igualdad (5.20) se puede escribir m i f i1 k pm (x) = (x xk+j ) . i! hi
i=0 j=0

El valor i! se puede escribir i1 (j + 1). Adems, sea s = (x xk )/h, es a j=0 decir, x = xk + sh. Entonces, x xk+j = xk + sh xk jh = (s j)h. m i f i1 k (s j)h pm (x) = i! hi j=0 i=0 m i1 i fk = (s j) i!
i=0 m j=0 i1

=
i=0

i fk
j=0

sj j+1

Si a y b son enteros no negativos, a b, el coeciente binomial est denido a por a a! = . b (a b)! b!

5.4. DIFERENCIAS FINITAS Desarrollando los factoriales y simplicando se tiene a b =

195

a(a 1)(a 2) (a b + 1) a(a 1)(a 2) (a b + 1) = 1 2 3 b b!

Esta ultima expresin sirve para cualquier valor real a y cualquier entero no o a = 1. Entonces, negativo b, con la convencin de que o 0
i1 j=0

sj j+1 s i y as i fk s . i

se puede denotar simplemente por

pm (x) =
i=0

(5.31)

s guarda propiedades semejantes a las del coeciente i binomial, en particular Este coeciente s i = si+1 s . i1 i

Esto permite su clculo de manera recurrente a s 0 s 1 s 2 s 3 s 4 . . . Escoger el xk para interpolar por un polinomio de grado m, se hace como en las diferencias divididas. Como los valores xi estn igualmente espaciados a = 1, = = = = s 0 s 1 s 2 s 3 s s1 2 s2 3 s3 4

196

5.

INTERPOLACION Y APROXIMACION

los valores, ui y vi coinciden. xi + xi+m , i = 1, ..., n m, 2 |x uk | = min{|x ui | : i = 1, ..., n m}. ui = Denido el xk , es necesario calcular s: s= El esquema de los clculos es: a 0 1 2 3 4 . . . = 1, = 0 s, = 1 (s 1)/2, = 2 (s 2)/3, = 3 (s 3)/4, p0 (x) = fk p1 (x) = p0 (x) + 1 fk 1 p2 (x) = p1 (x) + 2 fk 2 p3 (x) = p2 (x) + 3 fk 3 p4 (x) = p3 (x) + 4 fk 4 x xk . h

Ejemplo 5.9. Calcular p3 (1.96) y p2 (1.96) a partir de los puntos (0, 0), (0.5, 0.7071), (1, 1), (1.5, 1.2247), (2, 1.4142), (2.5, 1.5811). La tabla de diferencias nitas es la misma del ejemplo anterior. Para calcular p3 (1.96) se tiene xk = x2 = 1. Entonces s = (1.96 1)/0.5 = 1.92 . p0 (x) = f2 = 1 p1 (x) = 1 + .2247(1.92) = 1.431424 p2 (x) = 1.431424 .0352(.8832) p2 (x) = 1.400335 3 = 2 (1.92 2)/3 = .023552, p3 (x) = 1.400335 + .0126(.023552) p3 (x) = 1.400039 Para calcular p2 (1.96) se tiene xk = x3 = 1.5. Entonces s = (1.96 1.5)/0.5 = 0.92 . 0 = 1, p0 (x) = f3 = 1.2247 1 = 1(0.92) = 0.92, p1 (x) = 1.2247 + .1895(.92) = 1.39904 2 = 0.92(0.92 1)/2 = .0368, p2 (x) = 1.39904 .0226(0.0368) p2 (x) = 1.399872 0 = 1, 1 = 1(1.92) = 1.92, 2 = 1.92(1.92 1)/2 = .8832,

5.5. TRAZADORES CUBICOS, INTERPOLACION POLINOMIAL POR TROZOS, SPLINES197

0 0 1 2 3 4 5

Figura 5.7: Puntos o datos iniciales

5.5

Trazadores c bicos, interpolacin polinomial u o por trozos, splines

Dados n + 1 puntos, al utilizar diferencias divididas o diferencias nitas, cuando se desea interpolar por un polinomio de grado m en un valor t, se escoge el mejor conjunto de puntos (xk , yk ), (xk+1 , yk+1 ), ..., (xk+m , yk+m ), para obtener el valor pm (t). Sin embargo este mtodo presenta un gran e inconveniente cuando hay que interpolar en muchos valores t. Consideremos los siguientes puntos: (1, 2), (2, 2), (3, 2), (4, 3), (5, 2). Para interpolar por polinomios de orden 2, si t < 2.5 se utilizan los puntos (1, 2), (2, 2) y (3, 2). Entonces, por ejemplo, p2 (2.49) = 2. Si 2.5 < t < 3.5, se utilizan los puntos (2, 2), (3, 2) y (4, 3). Despus de algunos clculos se obe a tiene p2 (2.51) = 1.87505. Para t = 2.501 se obtiene p2 (2.501) = 1.8750005. El l mite de p2 (t), cuando t 2.5+ , es 1.875. Esto nos muestra una discontinuidad. En t = 3.5 tambin se presenta una discontinuidad. e Estas discontinuidades se pueden evitar utilizando en el intervalo [1, 3] un polinomio p2 (t) y en el intervalo [3, 5] otro polinomio p2 (t).

198

5.

INTERPOLACION Y APROXIMACION

0 0 1 2 3 4 5

Figura 5.8: Interpolacin cuadrtica por trozos no continua o a

0 0 1 2 3 4 5

Figura 5.9: Interpolacin cuadrtica por trozos continua o a

5.5. TRAZADORES CUBICOS, INTERPOLACION POLINOMIAL POR TROZOS, SPLINES199 Obviamente ya no hay discontinuidades pero la grca no es suave, es decir, a la funcin interpolante no es diferenciable. o Los trazadores cbicos (splines cbicos) remedian este inconveniente. En u u cada intervalo [xi , xi+1 ] se utiliza un polinomio cbico y los coecientes u de cada polinomio se escogen para que en los puntos xi haya continuidad, diferenciabilidad y doble diferenciabilidad. Dados n puntos (x1 , y1 ), (x2 , y2 ), ... (xn , yn ), con x1 < x2 < x3 < < xn , el trazador cbico se dene as u : S1 (x) S2 (x) S(x) = . . . Sn1 (x) si x [x1 , x2 ] si x [x2 , x3 ] si x [xn1 , xn ]

(5.32)

En cada uno de los n 1 intervalos, Si (x) es un polinomio cbico. u Si (x) = ai (x xi )3 + bi (x xi )2 + ci (x xi ) + di , i = 1, 2, ..., n 1. (5.33) Conocer S(x) quiere decir conocer 4(n 1) coecientes: ai , bi , ci , di , para i = 1, 2, ..., n 1. Se requiere que S(x) pase por los puntos (xi , yi ), y que sea doblemente diferenciable. Adems, es necesario tratar algunos detalles adicionales en a los extremos de los intervalos. Entonces, S(xi ) = yi , i = 1, ..., n,
Si (xi+1 ) = Si+1 (xi+1 ), i = 1, ..., n 2,

Si (xi+1 ) = Si+1 (xi+1 ), i = 1, ..., n 2,

Si (xi+1 ) = Si+1 (xi+1 ), i = 1, ..., n 2.

Sea hj = xj+1 xj , el tamao del intervalo [xj , xj+1 ], j = 1, ..., n 1. Las n

200

5.

INTERPOLACION Y APROXIMACION

condiciones anteriores se convierten en: Si (xi ) = di = yi Sn1 (xn ) = an1 h3 + bn1 h2 + cn1 hn1 + dn1 = yn n1 n1 ai h3 + bi h2 + ci hi + di = di+1 i i 3ai h2 + 2bi hi + ci = ci+1 i i = 1, ..., n 1, i = 1, ..., n 2,

6ai hi + 2bi = 2bi+1 i = 1, ..., n 2. Sea dn := yn una variable adicional. Esta variable se utilizar unicamente a en las frmulas intermedias, pero no aparece en las frmulas nales. o o

i = 1, ..., n 2,

ai h3 i

di 2 + bi hi + ci hi + di 3ai h2 + 2bi hi + ci i

= yi = di+1 = ci+1

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

(5.34) (5.35) (5.36) (5.37)

3ai hi + bi = bi+1 De (5.37): ai = Reemplazando (5.38) en (5.35): bi+1 bi 3hi

i = 1, ..., n 2.

(5.38)

h2 i (bi+1 bi ) + bi h2 + ci hi + di = di+1 i 3 2 hi (bi+1 + 2bi ) + ci hi + di = di+1 3 Reemplazando (5.38) en (5.36): (bi+1 bi )hi + 2bi hi + ci = ci+1 (bi+1 + bi )hi + ci = ci+1 Despejando ci de (5.39): ci = Cambiando i por i 1: ci1 = 1 hi1 (di di1 ) hi1 (2bi1 + bi ) 3 1 hi (di+1 di ) (2bi + bi+1 ) hi 3

(5.39)

(5.40)

(5.41)

(5.42)

5.5. TRAZADORES CUBICOS, INTERPOLACION POLINOMIAL POR TROZOS, SPLINES201 Cambiando i por i 1 en (5.40): (bi + bi1 )hi1 + ci1 = ci Reemplazando (5.41) y (5.42) en (5.43): (bi + bi1 )hi1 + 1 hi1 (di di1 ) hi1 1 hi (2bi1 + bi ) = (di+1 di ) (2bi + bi+1 ) 3 hi 3 (5.43)

Las variables di son en realidad constantes (di = yi ). Dejando al lado izquierdo las variables bj y al lado derecho los trminos independientes, se e tiene: hi1 bi1 + 3 2hi1 2hi + 3 3 bi + hi 1 1 bi+1 = (di1 di ) + (di+1 di ). 3 hi1 hi

Multiplicando por 3: hi1 bi1 + 2(hi1 + hi )bi + hi bi+1 = 3 hi1 (di1 di ) + 3 (di + di+1 ). hi (5.44)

La igualdad anterior es vlida para i = 1, ..., n 2. Es decir, hay n 2 a ecuaciones con n incgnitas. El sistema se completa segn las condiciones o u de frontera. Hay dos clases de condiciones sobre S(x). La primera clase se conoce con el nombre de condiciones de frontera libre o natural: en los extremos la curvatura es nula, o sea, S (x1 ) = 0 y S (xn ) = 0,
S1 (x1 ) = 0, Sn1 (xn ) = 0.

(5.45)

En la segunda clase de condiciones de frontera, frontera sujeta, se supone conocida la pendiente de S(x) en los extremos:
S1 (x1 ) = f (x1 ), Sn1 (xn ) = f (xn ).

(5.46)

Al explicitar las condiciones de frontera libre se tiene:


Sn1 (x) = 6an1 (x xn1 ) + 2bn1 S1 (x1 ) = 2b1 = 0 Sn1 (xn ) S1 (x) = 6a1 (x x1 ) + 2b1

(5.47) (5.48)

= 3an1 hn1 + bn1 = 0.

202

5.

INTERPOLACION Y APROXIMACION

Adems del resultado anterior (b1 = 0), se puede introducir una variable a adicional bn = 0. Esto permite que la ecuacin (5.44) se pueda aplicar para o i = n 1. Recurdese que ya se introdujo dn = yn y que para todo i se e tiene di = yi . Entonces se tiene un sistema de n ecuaciones con n incgnitas, o escrito de la forma Ab = , (5.49) donde 1 0 0 0 h1 2(h1 + h2 ) h2 0 0 h2 2(h2 + h3 ) h3 0 0 h3 2(h3 + h4 ) h4 A= 0 0 hn2 2(hn2 + hn1 ) hn1 0 0 0 1 b1 b2 b3 b= , . . . bn1 bn 0 3 3 (y1 y2 ) + (y2 + y3 ) h1 h2 3 3 (y2 y3 ) + (y3 + y4 ) h2 h3 = . . . . 3 3 (yn2 yn1 ) + (yn1 + yn ) h hn1 n2 0

El sistema (5.49) tiene dos caracter sticas importantes: es tridiagonal, lo cual facilita su solucin; la matriz A es de diagonal estrictamente dominante, lo o cual garantiza que A es invertible y que la solucin existe y es unica. o Una vez conocidos los valores b1 , b2 , ..., bn1 , bn , se puede aplicar (5.41) para calcular los ci : ci = hi 1 (yi+1 yi ) (2bi + bi+1 ), hi 3 i = 1, ..., n 1. (5.50)

5.5. TRAZADORES CUBICOS, INTERPOLACION POLINOMIAL POR TROZOS, SPLINES203 Como bn existe y vale 0, la ecuacin (5.38) se puede aplicar an para i = o u n 1. bi+1 bi ai = , i = 1, ..., n 1. (5.51) 3hi Obsrvese que para i = n1, la igualdad an1 = (0bn1 )/(3hn1 ) coincide e con la segunda condicin de frontera (5.48). El orden de aplicacin de las o o frmulas es el siguiente: o di = yi , i = 1, ..., n 1. Obtener b1 , b1 , ..., bn resolviendo (5.49). En particular b1 = 0 y, de ac en adelante, no se considera bn = 0. a Para i = 1, ..., n 1 calcular ci segn (5.50). u Para i = 1, ..., n 1 calcular ai segn (5.51). u Ejemplo 5.10. Construir el trazador cbico para los puntos (1, 2), (2, 2), u (3, 2), (4, 3) y (5, 2). De manera inmediata d1 = 2, d2 = 2, d3 = 2 y d4 = 3. En este ejemplo h1 = h2 = h3 = h4 = 1. El sistema que permite obtener los bi es: 0 b1 1 0 0 0 0 1 4 1 0 0 b2 0 0 1 4 1 0 b3 = 3 . 0 0 1 4 1 b4 6 b5 0 0 0 0 1 0 Al resolver el sistema se obtiene b1 = 0 (obvio), b2 = 0.321429, b3 = 1.285714, b4 = 1.821429 y b5 = 0 (tambin obvio). El clculo de los otros e a coecientes da: c1 = 0.107143 c3 = 0.75 c2 = 0.214286

c4 = 0.214286 a2 = 0.535714 a1 = 0.107143

a4 = 0.607143.

a3 = 1.035714

204

5.

INTERPOLACION Y APROXIMACION

0 0 1 2 3 4 5 Figura 5.10: Interpolacin con trazadores cbicos o splines o u Entonces S1 (x) = 0.107143(x 1)3 + 0(x 1)2 + 0.107143(x 1) + 2 S2 (x) = 0.535714(x 2)3 0.321429(x 2)2 0.214286(x 2) + 2 S3 (x) = 1.035714(x 3)3 + 1.285714(x 3)2 + 0.75(x 3) + 2 S4 (x) = 0.607143(x 4)3 1.821429(x 4)2 + 0.214286(x 4) + 3 .

5.6

Aproximacin por m o nimos cuadrados

Cuando hay muchos puntos no es conveniente buscar un unico polinomio o una funcin que pase exactamente por todos los puntos. Entonces hay o dos soluciones: la primera, vista anteriormente, es hacer interpolacin por o grupos pequeos de puntos. Para muchos casos es una solucin muy buena. n o Sin embargo, en algunas ocasiones se desea una funcin que sirva para todos o los puntos. La segunda solucin consiste en obtener una sola funcin f que, o o aunque no pase por todos los puntos, pase relativamente cerca de todos. Este es el enfoque de la aproximacin por m o nimos cuadrados. Se supone que hay m puntos (x1 , y1 ), (x2 , y2 ), ..., (xm , ym ) y que los xi son todos diferentes. La funcin f , que se desea construir, debe ser combinacin o o

5.6. APROXIMACION POR M INIMOS CUADRADOS

205

lineal de n funciones llamadas funciones de la base. Supongamos que estas funciones son 1 , 2 , ..., n . Entonces, Como las funciones de la base son conocidas, para conocer f basta conocer los escalares a1 , a2 , ..., an . Como se supone que hay muchos puntos (m grande) y como se desea que f sea sencilla, es decir, n es relativamente pequeo, entonces se debe tener n que m n. Las funciones de la base deben ser linealmente independientes. Los escalares a1 , a2 , ..., an se escogen de tal manera que f (xi ) yi , para i = 1, 2, ..., m. Entonces, a1 1 (x1 ) + a2 2 (x1 ) + + an n (x1 ) y1 a1 1 (x2 ) + a2 2 (x2 ) + + an n (x2 ) y2 f (x) = a1 1 (x) + a2 2 (x) + + an n (x).

a1 1 (x3 ) + a2 2 (x3 ) + + an n (x3 ) y3 . . . se pueden escribir de manera y1 y2 y3

a1 1 (xm ) + a2 2 (xm ) + + an n (xm ) ym . Las m igualdades (aproximadas) anteriores matricial: 1 (x1 ) 2 (x1 ) n (x1 ) 1 (x2 ) 2 (x2 ) n (x2 ) 1 (x3 ) 2 (x3 ) n (x3 ) . . . 1 (xm ) 2 (xm ) n (xm ) a y.

De manera compacta se tiene

. . . an ym a1 a2 . . . (5.52)

La matriz es una matriz m n rectangular alta (m n), a es un vector columna n 1, y es un vector columna m 1. Son conocidos la matriz y el vector columna y. El vector columna a es el vector de incgnitas. o Como las funciones de la base son linealmente independientes, entonces las columnas de son linealmente independientes. En consecuencia, (5.52) se puede resolver por m nimos cuadrados: (T ) a = T y . (5.53)

206

5.

INTERPOLACION Y APROXIMACION

Recordemos del cap tulo 11 que para resolver por m nimos cuadrados el 2 . Traduciendo esto al problema de sistema Ax = b, se minimiza ||Ax b||2 aproximacin por m o nimos cuadrados, se tiene 2
m n

min

i=1

es decir, min

j=1

aj j (xi ) yi .
2

m i=1

f (xi ) yi

Esto signica que se est buscando una funcin f , combinacin lineal de a o o las funciones de la base, tal que minimiza la suma de los cuadrados de las distancias entre los puntos (xi , f (xi )) y (xi , yi ). Ejemplo 5.11. Dadas las funciones 1 (x) = 1, 2 (x) = x, 3 (x) = x2 , encontrar la funcin f que aproxima por m o nimos cuadrados la funcin dada o por los puntos (0, 0.55), (1, 0.65), (1.5, 0.725), (2, 0.85), (3, 1.35). Como las funciones de la base son 1, x, x2 , en realidad se est buscando a aproximar por m nimos cuadrados por medio de un parbola. El sistema a inicial es 0.55 1 0 0 a1 0.65 1 1 1 1 1.5 2.25 a2 0.725 a3 0.85 1 2 4 1 3 9 1.35 Las ecuaciones normales dan: 4.1250 a1 5 7.5 16.25 7.5 16.25 39.375 a2 = 7.4875 a3 17.8313 16.25 39.375 103.0625 La solucin es: o 0.56 a = 0.04 , 0.10 f (x1 ) f (x2 ) (x3 ) = a = f f (x4 ) (x5 ) f f (x) = 0.56 0.04x + 0.1x2 . 0.56 0.62 0.725 0.88 1.34 0.55 0.65 0.725 0.85 1.35

y=

5.6. APROXIMACION POR M INIMOS CUADRADOS

207

Ejercicios
5.1 Halle, resolviendo el sistema de ecuaciones, el polinomio de interpolacin que pasa por los puntos o (1, 5), (2, 4), (4, 4). 5.2 Halle, por medio de los polinomios de Lagrange, el polinomio de interpolacin que pasa por los puntos del ejercicio anterior. o 5.3 Halle el polinomio de interpolacin que pasa por los puntos o (1, 5), (1, 5), (2, 2), (4, 40). 5.4 Halle el polinomio de interpolacin que pasa por los puntos o (1, 10), (1, 8), (2, 4), (4, 10). 5.5 Considere los puntos (0.10, 11.0000), (0.13, 8.6923), (0.16, 7.2500), (0.20, 6.0000), (0.26, 4.8462), (0.40, 3.5000), (0.32, 4.1250), (0.50, 3.0000). Construya la tabla de diferencias dividas hasta el orden 3. Obtenga p2 (0.11), p2 (0.08), p2 (0.25), p2 (0.12), p2 (0.33), p2 (0.6), p3 (0.25), p3 (0.33), p3 (0.6).

208 5.6 Considere los puntos

5.

INTERPOLACION Y APROXIMACION

(0.05, 21.0000), (0.10, 11.0000), (0.15, 7.6667), (0.20, 6.0000), (0.25, 5.0000), (0.30, 4.3333), (0.35, 3.8571), (0.40, 3.5000). Construya la tabla de diferencias divididas hasta el orden 3. Calcule p2 (0.11), p2 (0.08), p2 (0.25), p2 (0.12), p2 (0.33), p2 (0.6), p3 (0.25), p3 (0.33), p3 (0.6). 5.7 Considere los mismos puntos del ejercicio anterior. Construya la tabla de diferencias nitas hasta el orden 3. Halle p2 (0.11), p2 (0.08), p2 (0.25), p2 (0.12), p2 (0.33), p2 (0.6), p3 (0.25), p3 (0.33), p3 (0.6). 5.8 Considere los puntos (0.05, 2.0513), (0.10, 2.1052), (0.15, 2.1618), (0.20, 2.2214), (0.25, 2.2840), (0.30, 2.3499), (0.35, 2.4191), (0.40, 2.4918). Obtenga la recta de aproximacin por m o nimos cuadrados. 5.9 Considere los mismos puntos del ejercicio anterior. Obtenga la parbola a de aproximacin por m o nimos cuadrados. 5.10 Considere los mismos puntos de los dos ejercicios anteriores. Use otra base y obtenga la correspondiente funcin de aproximacin por o o m nimos cuadrados.

Integracin y diferenciacin o o
6.1 Integracin numrica o e

Esta tcnica sirve para calcular el valor numrico de una integral denida, e e es decir, parar obtener el valor
b

I=
a

f (x)dx.

En la mayor de los casos no se puede calcular el valor exacto I; simplemente a aproximacin de I. se calcula I o De todas maneras primero se debe tratar de hallar la antiderivada. Cuando esto sea imposible o muy dif entonces se recurre a la integracin numrica. cil, o e Por ejemplo, calcular una aproximacin de o
0.5 0.1

ex dx.

En este cap tulo hay ejemplos de integracin numrica con funciones cuya o e antiderivada es muy fcil de obtener y para los que no se debe utilizar la intea gracin numrica; se usan solamente para comparar el resultado aproximado o e con el valor exacto. 209

210

6.

INTEGRACION Y DIFERENCIACION y = f (x)

a Figura 6.1: Integral denida

6.2

En Scilab

Para obtener una aproximacin del valor de una integral denida, por ejemo plo,
0.5 0.1

ex dx

se utiliza intg . Para eso es necesario denir en Scilab la funcin que se va o a integrar. Puede ser, directamente en el ambiente Scilab: deff([y] = f53(x), y = exp(-x*x)) I = intg(0.1, 0.5, f53) Tambin se puede denir una funcin en un archivo .sci e o function fx = f57(x) fx = exp(-x*x) endfunction y despus de cargarla, dar la orden e I = intg(0.1, 0.5, f57) Tambin se puede utilizar la funcin integrate : e o I = integrate(exp(-x*x), x, 0.1, 0.5)

6.3. FORMULA DEL TRAPECIO

211

Aunque Scilab es muy bueno, no es perfecto. La utilizacin de intg o o integrate no funciona bien (versin 5.1) para o
2

sen(x) dx .
0

Algunas veces no se conoce una expresin de la funcin f , pero se conoce o o una tabla de valores (xi , f (xi )), o simplemente una tabla de valores (xi , yi ). Supongamos, as lo requiere Scilab, que la lista de valores (x1 , y1 ), ..., (xn , yn ) est ordenada de manera creciente de acuerdo a los xi , o sea, x1 < x2 < a < xn . Para obtener el valor aproximado de la integral, entre x1 y xn , de la funcin o f (representada por los valores (xi , yi )), es necesario tener dos vectores con los valor xi y yi , y utilizar la funcin inttrap , que utiliza la frmula del o o trapecio en cada subintervalo. x = [0.1 0.15 0.2 0.25 0.3 0.4 0.5] y = [ 0.9900 0.9778 0.9608 0.9394 0.9139 0.8521 0.7788] I = inttrap(x, y) Para los mismos parmetros x , y , se puede utilizar la funcin intsplin a o que utiliza trazadores cbicos (splines). u x = [0.1 0.15 0.2 0.25 0.3 0.4 0.5] y = [ 0.9900 0.9778 0.9608 0.9394 0.9139 0.8521 0.7788] I = intsplin(x, y)

6.3

Frmula del trapecio o

La frmula del trapecio, como tambin la frmula de Simpson, hace parte o e o de las frmulas de Newton-Cotes. Sean n + 1 valores igualmente espaciados o a = x0 , x1 , x2 , ..., xn = b, donde xi = a + ih , i = 0, 1, 2, ..., n , h = ba , n

y supongamos conocidos yi = f (xi ). Supongamos adems que n es un a x mltiplo de m, n = km. La integral x0n f (x)dx se puede separar en interu

212

6.

INTEGRACION Y DIFERENCIACION

x0 x1 x2 xm x2m xnm a Figura 6.2: Divisin en subintervalos o

xn b

valos ms pequeos: a n
xn xm x2m xn

f (x)dx =
x0 x0

f (x)dx +
xm

f (x)dx + +

f (x)dx.
xnm

En el intervalo [x0 , xm ] se conocen los puntos (x0 , y0 ), (x1 , y1 ), ..., (xm , ym ) y se puede construir el polinomio de interpolacin de Lagrange pm (x). o x Entonces la integral x0m f (x)dx se aproxima por la integral de pm ,
xm x0 xm

f (x)dx

pm (x)dx.
x0

Para m = 1 se tiene la frmula del trapecio. Su deduccin es mucho ms o o a sencilla si se supone que x0 = 0. Esto equivale a hacer el cambio de variable x = x x0 . x x0 x x1 + y1 , x0 x1 x1 x0 xh x p1 (x) = y0 + y1 , h h y1 y 0 . p1 (x) = y0 + x h p1 (x) = y0

6.3. FORMULA DEL TRAPECIO

213

y0

y1

x0

x1

Figura 6.3: Frmula del trapecio o Entonces


x1 h

p1 (x)dx =
x0 0

(y0 + x

y1 y0 )dx h

h2 y1 y0 , = y0 h + 2 h y0 y1 = h( + ), 2 2 x1 y0 + y1 f (x)dx h 2 x0

(6.1)

De la frmula (6.1) o de la grca se deduce naturalmente el nombre de o a frmula del trapecio. o Ejemplo 6.1.
0.2 0

1 1 ex dx 0.2( e0 + e0.2 ) = 0.22214028 . 3 2 2

Aplicando la frmula del trapecio a cada uno de los intervalos [xi1 , xi ] se o tiene: x1 y1 y0 + ), f (x)dx h( 2 2 x0 x2 y1 y2 f (x)dx h( + ), 2 2 x1 . . . . . . xn yn yn1 + ). f (x)dx h( 2 2 xn1

214
xn

6. f (x)dx h(

INTEGRACION Y DIFERENCIACION

y1 y1 y2 yn1 yn y0 + + + + + ), 2 2 2 2 2 2 x0 xn yn y0 + y1 + y2 + + yn2 + yn1 + ), f (x)dx h( 2 2 x0


xn x0

(6.2)

f (x)dx h(

y0 + 2

n1

yi +
i=1

yn ). 2

Ejemplo 6.2.
0.8 0

1 1 ex dx 0.2( e0 + e0.2 + e0.4 + e0.6 + e0.8 ) = 1.22962334 . 3 2 2

6.3.1

Errores local y global

El error local de la frmula del trapecio es el error proveniente de la frmula o o (6.1). eloc = Iloc Iloc ,
x1

eloc =
x0 x1

f (x)dx h( f (x)dx

y0 y1 + ) 2 2
x1

=
x0 x1

p1 (x)dx
x0

=
x0

(f (x) p1 (x))dx .

Utilizando la frmula del error para la interpolacin polinmica 5.6, o o o


x1

eloc =
x0

(x x0 )(x x1 ) f (x )dx , x [x0 , x1 ]. 2

El teorema del valor medio para integrales dice: Sean f continua en [a, b], g integrable en [a, b], g no cambia de signo en [a, b], entonces
b b

f (x)g(x)dx = f (c)
a a

g(x)dx

para algn c en [a, b]. u Teniendo en cuenta que (x x0 )(x x1 ) 0 en el intervalo [x0 , x1 ] y aplicando el teorema del valor medio para integrales, existe z [x0 , x1 ] tal que f (z) x1 eloc = (x x0 )(x x1 )dx , z [x0 , x1 ]. 2 x0

6.3. FORMULA DEL TRAPECIO Mediante el cambio de variable t = x x0 , dt = dx, eloc = f (z) h t(t h)dt , z [x0 , x1 ], 2 0 f (z) h3 = ( ) , z [x0 , x1 ], 2 6 f (z) = h3 , z [x0 , x1 ]. 12

215

eloc

(6.3)

La frmula anterior, como muchas de las frmulas de error, sirve principalo o mente para obtener cotas del error cometido. |eloc | h3 M, 12 M = max{|f (z)| : z [x0 , x1 ]}. (6.4)

En el ejemplo 6.1, f (x) = ex , max{|f (z)| : z [0, 0.2]} = 1.22140276, luego el mximo error que se puede cometer, en valor absoluto, es (0.2)3 a 1.22140276/12 = 8.1427 104 . En este ejemplo, se conoce el valor exacto I = e0.2 1 = 0.22140276, luego |e| = 7.3752 104 . En algunos casos, la frmula del error permite anar un poco ms. Si o a (x) > 0 (f estrictamente convexa) en [x , x ] y como I = I +e , entonces loc f 0 1 la frmula del trapecio da un valor aproximado pero superior al exacto. o En el mismo ejemplo, f (x) var en el intervalo [1, 1.22140276] cuando a x [0, 0.2]. Luego eloc [0.00081427, 0.00066667], entonces I [0.22132601, 0.22147361]. El error global es el error correspondiente al hacer la aproximacin de la o integral sobre todo el intervalo [x0 , xn ], o sea, el error en la frmula 6.2, o
xn

eglob =
x0 n

f (x)dx h( (

y0 yn + y1 + y2 + + yn2 + yn1 + ) 2 2

=
i=1

f (zi ) h3 ) , zi [xi1 , xi ] 12
n

h3 12

i=1

f (zi ) , zi [xi1 , xi ]

216 Sean

6.

INTEGRACION Y DIFERENCIACION

M1 = min{f (x) : x [a, b]} , Entonces

M2 = max{f (x) : x [a, b]}. i

M1 f (zi ) M2 ,
n

nM1

1 M1 n

i=1 n

f (zi ) nM2 , f (zi ) M2 .

i=1

2 Si f C[a,b] , entonces, aplicando el teorema del valor intermedio a f , existe [a, b] tal que n 1 f () = f (zi ) . n i=1

Entonces h3 nf () , [a, b]. 12 Como h = (b a)/n, entonces n = (b a)/h. eglob = eglob = h2

(b a)f () , [a, b]. 12

(6.5)

6.4

Frmula de Simpson o
x2 x0 x2

Es la frmula de Newton-Cotes para m = 2, o f (x)dx p2 (x)dx.


x0

El polinomio de interpolacin p2 (x) se construye a partir de los puntos o (x0 , y0 ), (x1 , y1 ), (x2 , y2 ). Para facilitar la deduccin de la frmula, supongo o amos que p2 es el polinomio de interpolacin que pasa por los puntos (0, y0 ), o (h, y1 ), (2h, y2 ). Entonces p2 (x) = y0 = (x 0)(x 2h) (x 0)(x h) (x h)(x 2h) + y1 + y2 , (0 h)(0 2h) (h 0)(h 2h) (2h 0)(2h h)

1 y0 (x h)(x 2h) 2y1 x(x 2h) + y2 x(x h) , 2h2 1 = 2 x2 (y0 2y1 + y2 ) + hx(3y0 + 4y1 y2 ) + 2h2 y0 , 2h

6.4. FORMULA DE SIMPSON


2h

217

p2 (x)dx =
0

4h2 1 8h3 (y0 2y1 + y2 ) + h (3y0 + 4y1 y2 ) 2h2 3 2

+ 2h2 (2h)y0 ,
2h 0

1 4 1 p2 (x)dx = h( y0 + y1 + y2 ). 3 3 3

Entonces
x2 x0

f (x)dx

h (y0 + 4y1 + y2 ) 3

(6.6)

Suponiendo que n es par, al aplicar la frmula anterior a cada uno de los o intervalos [x0 , x2 ], [x2 , x4 ], [x4 , x6 ], ..., [xn4 , xn2 ], [xn2 , xn ], se tiene:
xn x0 xn x0

f (x)dx

h (y0 + 4y1 + 2y2 + 4y3 + + 4yn1 + yn ) 3


k k1

(6.7)

h f (x)dx ( y0 + 4 3

y2j1 + 2
j=1 j=1

y2j + yn )

Ejemplo 6.3.
0.8 0

ex dx

0.2 0 (e + 4(e0.2 + e0.6 ) + 2 e0.4 + e0.8 ) = 1.22555177 . 3

El valor exacto, con 8 cifras decimales, es 1.22554093, entonces el error es 0.00001084 . 3

6.4.1

Errores local y global

Para facilitar la deduccin del error local, consideremos la integral entre h o 4 y h. Sea f C[h,h] .
h h

e(h) = eloc (h) =


h h

f (x) dx

p2 (x) dx,
h

=
h

f (x) dx

h f (h) + 4f (0) + f (h) . 3

218

6.

INTEGRACION Y DIFERENCIACION
h

Sea F tal que F (x) = f (x), entonces h f (x) dx = F (h) F (h). Al derivar con respecto a h se tiene f (h) + f (h). e (h) = f (h) + f (h) 1 f (h) + 4f (0) + f (h) 3

h f (h) + f (h) , 3 3e (h) = 2f (h) + 2f (h) 4f (0) h(f (h) f (h)). 3e (h) = 2f (h) 2f (h) f (h) + f (h) h(f (h) + f (h)), = f (h) f (h) h(f (h) + f (h)).

3e (h) = f (h) + f (h) (f (h) + f (h)) h(f (h) f (h)), = h(f (h) f (h)), h e (h) = ( f (h) f (h) ), 3 2h2 f (h) f (h) e (h) = . 3 2h

De los resultados anteriores se ve claramente que e(0) = e (0) = e (0) = e (0) = 0. Adems, como f C 4 , entonces f C 1 . Por el teorema del a valor medio, existe [h, h], = h, [1, 1], tal que f (h) f (h) = f (4) (h) , [1, 1]. 2h Entonces e (h) = Sea g4 (h) = f (4) (h). e (h) = e (h) =
0 h

2h2 (4) f (h) , [1, 1]. 3

2h2 g4 (h). 3

e (t) dt + e (0),
h 0

e (h) =

2 3

t2 g4 (t) dt.

6.4. FORMULA DE SIMPSON

219

Como g4 es continua, t2 es integrable y no cambia de signo en [0, h], se puede aplicar el teorema del valor medio para integrales,
h 2 t2 dt , e (h) = g4 (4 ) 3 0 2 3 e (h) = h g4 (4 ). 9

4 [0, h],

Sea g3 (h) = g4 (4 ) = f (4) (3 h) , entonces De manera semejante, e (h) =


0 h

1 3 1,

2 e (h) = h3 g3 (h). 9 e (t) dt + e (0),

2 h 3 t g3 (t) dt, 9 0 h 2 t3 dt , e (h) = g3 (3 ) 9 0 1 4 e (h) = h g3 (3 ). 18 e (h) = Sea g2 (h) = g3 (3 ) = f (4) (2 h) , 1 e (h) = h4 g2 (h). 18
h

3 [0, h],

1 2 1,

e(h) =
0

e (t) dt + e(0),

h 1 t4 g2 (t) dt, 18 0 h 1 e(h) = g2 (2 ) t4 dt , 2 [0, h], 18 0 1 5 e(h) = h g2 (2 ), 90 h5 e(h) = f (4) (1 h) , 1 1 1, 90 h5 e(h) = f (4) (z) , h z h. 90

e(h) =

220

6.

INTEGRACION Y DIFERENCIACION

Volviendo al intervalo [x0 , x2 ], f (4) (z) , z [x0 , x2 ]. (6.8) 90 La deduccin del error global se hace de manera semejante al error global o en la frmula del trapecio. Sean n = 2k, M1 = min{f (4) (x) : x [a, b]}, o M2 = max{f (4) (x) : x [a, b]}. eloc = h5
b

eglob =
a k

f (x) dx h5
k

h ( y0 + 4 3

k1

y2j1 + 2
j=1 j=1

y2j + yn ) ,

=
j=1

f (4) (zj ) , 90

zj [x2j2 , x2j ],

h5 90

f (4) (zj )
j=1

M1 f (4) (zj ) M2 ,
k

kM1 M1

1 k

j=1 k

f (4) (zj ) kM2 , f (4) (zj ) M2 ,

j=1

Entonces, existe [a, b], tal que 1 k


k

f (4) (zj ) = f (4) (),


j=1 k

f (4) (zj ) = k f (4) (),


j=1 k

f (4) (zj ) =
j=1 k

n (4) f (), 2 b a (4) f (). 2h

f (4) (zj ) =
j=1

Entonces eglob = h4 (b a)f (4) () , [a, b]. 180 (6.9)

6.5. OTRAS FORMULAS DE NEWTON-COTES

221

La frmula de Simpson es exacta para polinomios de grado inferior o igual o a 3. El error global es del orden de h4 . Pasando de una interpolacin lineal (frmula del trapecio) a una interpoo o lacin cuadrtica (frmula de Simpson), el error global pasa de O(h2 ) a o a o O(h4 ), es decir, una mejora notable. Se puede ver que al utilizar interpolacin cbica se obtiene o u

x3

f (x)dx =
x0

h 3 (3y0 + 9y1 + 9y2 + 3y3 ) h5 f (4) (z) , 8 80

z [x0 , x3 ],

llamada segunda frmula de Simpson. Entonces el error local es O(h5 ) y o el error global es O(h4 ). La frmula anterior es exacta para polinomios de o grado inferior o igual a 3. En resumen, la interpolacin cbica no mejora la o u calidad de la aproximacin numrica, luego es preferible utilizar la frmula o e o (6.7), ms sencilla y de calidad semejante. a Sin embargo, cuando se tiene una tabla ja con un nmero impar de subinu tervalos (n impar, nmero par de puntos), se puede aplicar la (primera) u frmula de Simpson sobre el intervalo [x0 , xn3 ] y la segunda frmula sobre o o el intervalo [xn3 , xn ].

6.5

Otras frmulas de Newton-Cotes o

Las frmulas de Newton-Cotes se pueden clasicar en abiertas y cerradas. o Las frmulas del trapecio y de Simpson son casos particulares de las frmulas o o cerradas. En ellas se aproxima la integral en el intervalo [x0 , xm ] usando el polinomio de interpolacin, de grado menor o igual a m, construido a o partir de los puntos (x0 , y0 ), (x1 , y1 ), ..., (xm1 , ym1 ), (xm , ym ), igualmente espaciados en x.
xm x0 xm

f (x)dx

pm (x)dx.
x0

222

6.

INTEGRACION Y DIFERENCIACION

La siguiente tabla muestra las ms importantes. a m 1 2 3 4 h (y0 + y1 ) 2 h (y0 + 4y1 + y2 ) 3 3h (y0 + 3y1 + 3y2 + y3 ) 8 2h (7y0 + 32y1 + 12y2 + 32y3 + 7y4 ) 45 error f (z) 3 h 12 f (4) (z) 5 h 90 3 f (4) (z) 5 h 80 8 f (6) (z) 7 h 945

En todos los casos, z [x0 , xm ].

6.5.1

Frmulas de Newton-Cotes abiertas o

En estas frmulas el polinomio de interpolacin se calcula sin utilizar los o o extremos del intervalo de integracin, o
xm+2 x0 xm+2

f (x)dx

pm (x)dx,
x0

donde pm , polinomio de grado menor o igual a m, se construye utilizando los puntos (x1 , y1 ), (x2 , y2 ), ..., (xm , ym ), (xm+1 , ym+1 ), igualmente espaciados en x. m 0 2h y1 error + f (z) 3 h 3 3 f (z) 3 3h (y1 + y2 ) + h 1 2 4 4h 14 f (4) (z) 5 2 (2y1 y2 + 2y3 ) + h 3 45 5h 95 f (4) (z) 5 3 (11y1 + y2 + y3 + 11y4 ) + h 24 144 En todos los casos z [x0 , xm+2 ]. Ejemplo 6.4.
0.8 0

ex dx

4 0.2 (2 e0.2 e0.4 + 2 e0.6 ) = 1.22539158 . 3

6.6. CUADRATURA ADAPTATIVA

223

El valor exacto, con 8 cifras decimales, es 1.22554093, entonces el error es 0.00014935 . 3 En general, las frmulas cerradas son ms precisas que las abiertas, eno a tonces, siempre que se pueda, es preferible utilizar las frmulas cerradas. o Las frmulas abiertas se usan cuando no se conoce el valor de la funcin o o f en los extremos del intervalo de integracin; por ejemplo, en la solucin o o numrica de algunas ecuaciones diferenciales ordinarias. e

6.6

Cuadratura adaptativa
b

Sea I = a f (x)dx e In la aproximacin de I por un mtodo jo de Newtono e Cotes (trapecio, Simpson,...) utilizando n subintervalos. La frmula que o relaciona I, In y el error global se puede expresar as : I = In + F (b a)hp f (q) (), para algn [a, b], u donde F , p y q dependen del mtodo escogido; depende del mtodo, de la e e funcin f , de n y del intervalo. Entonces o

I = In + F (b a)( = In + F Sea m = 2n,

b a p (q) ) f (), n

(b a)p+1 (q) f (). np

I = Im + F Supongamos que

(b a)p+1 (q) f (), np 2p

f (q) () f (q) (). Entonces

224

6.

INTEGRACION Y DIFERENCIACION

I In + 2p G In + en , I Im + G In + em ,

donde G = F (ba) p f (q) (), en y em son los errores. Se puede despejar G: np 2 Im In 2p 1 Im In = 3 Im In = 15

p+1

em G =

(6.10) trapecio Simpson

Con G se obtiene, supuestamente, una mejor aproximacin de I: o I Im + G. (6.11)

Los datos para el proceso iterativo para cuadratura adaptativa son: el mtodo (la frmula de Newton-Cotes), f , a, b, n0 , , nmax . e o Se empieza con un n = n0 (debe ser adecuado) y se obtiene In . A partir de ah se empieza a duplicar el nmero de subintervalos. El clculo de la u a nueva aproximacin Im se hace sin repetir evaluaciones de la funcin o o f , ya que al duplicar el nmero de subintervalos los valores f (xi ) de la etapa u anterior hacen parte de los valores f (xj ) de la etapa actual. Se calcula G aproximacin de em , usando (6.10). Si |G| , entonces se supone que el o error es sucientemente pequeo y se toma como valor nal Im + G. En caso n contrario, se continua duplicando el nmero de subintervalos. De todas est u a previsto un mmero mximo de subintervalos nmax , ya que es posible que u a no se obtenga una aproximacin del error sucientemente pequea. o n Ejemplo 6.5. I=
0

sen(x)dx,

utilizando el mtodo del trapecio (n0 = 1) y el de Simpson, (n0 = 2), e = 108

6.7. CUADRATURA DE GAUSS-LEGENDRE Mtodo del trapecio: e n 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 In 0.0000000000000002 1.5707963267948966 1.8961188979370398 1.9742316019455508 1.9935703437723395 1.9983933609701441 1.9995983886400375 1.9998996001842038 1.9999749002350531 1.9999937250705768 1.9999984312683834 1.9999996078171378 1.9999999019542845 1.9999999754885744 1.9999999938721373 G

225

0.5235987755982988 0.1084408570473811 0.0260375680028370 0.0064462472755962 0.0016076723992682 0.0004016758899645 0.0001004038480554 0.0000251000169498 0.0000062749451746 0.0000015687326022 0.0000003921829181 0.0000000980457155 0.0000000245114300 0.0000000061278543

I 1.9999999938721373 + 0.0000000061278543= 1.9999999999999916 . Mtodo de Simpson: e n 2 4 8 16 32 64 128 In 2.0943951023931953 2.0045597549844207 2.0002691699483881 2.0000165910479355 2.0000010333694127 2.0000000645300013 2.0000000040322572 G

-0.0059890231605850 -0.0002860390024022 -0.0000168385933635 -0.0000010371785682 -0.0000000645892941 -0.0000000040331829

I 2.0000000040322572 - 0.0000000040331829 = 1.9999999999990743 .

6.7

Cuadratura de Gauss-Legendre

En las diferentes frmulas de Newton-Cotes, los valores xi deben estar igualo mente espaciados. Esto se presenta con frecuencia cuando se dispone de una

226

6.

INTEGRACION Y DIFERENCIACION

tabla de valores (xi , f (xi )). En la cuadratura de Gauss se calcula la integral en un intervalo jo [1, 1] mediante valores precisos pero no igualmente espaciados. Es decir, no se debe disponer de una tabla de valores, sino que debe ser posible evaluar la funcin en valores espec o cos. La frmula de cuadratura de Gauss tiene la forma o
1 1 n

f (x) dx

wi f (xi ).
i=1

(6.12)

Los valores wi se llaman los pesos o ponderaciones y los xi son las abscisas. Si se desea integrar en otro intervalo,
b

() d
a

es necesario hacer un cambio de variable, t= 2 ( a) 1 , ba


b

ba (t + 1) + a , 2
1

d =

ba dt 2

() d =
a b a b a

ba 2 ba 2 ba 2

(
1 n i=1 n i=1

ba (t + 1) + a) dt, 2 ba (xi + 1) + a), 2 (6.13) (6.14) (6.15)

() d () d i =

wi (

wi (i ),

ba (xi + 1) + a. 2

En la cuadratura de Gauss se desea que la frmula (6.12) sea exacta para los o polinomios de grado menor o igual que m = mn , y se desea que este valor mn sea lo ms grande posible. En particular, a
1 n

f (x) dx =
1 i=1

wi f (xi ) , si f (x) = 1, x, x2 , ..., xmn .

La anterior igualdad da lugar a mn + 1 ecuaciones con 2n incgnitas (los wi o y los xi ). De donde mn = 2n 1, es decir, la frmula (6.12) debe ser exacta o para polinomios de grado menor o igual a 2n 1.

6.7. CUADRATURA DE GAUSS-LEGENDRE Recordemos que


1 1

227

xk dx =

0 2 k+1
1

si k es impar, si k es par.

Para n = 1, se debe cumplir

w1 =
1 1

1 dx = 2, x dx = 0.
1

w1 x1 =

Se deduce inmediatamente que w1 = 2 , x1 = 0. (6.16)

Para n 2, se puede suponer, sin perder generalidad, que hay simetr en a los valores xi y en los pesos wi . Ms espec a camente, se puede suponer que: x1 < x2 < ... < xn , wi = wn+1i . Para n = 2,
1

xi = xn+1i ,

w1 + w2 =
1 1

1 dx = 2, x dx = 0,
1 1 1 1 1

w1 x1 + w2 x2 = w1 x2 + w2 x2 = 1 2 w1 x3 + w2 x3 = 1 2 Por suposiciones de simetr a,

x2 dx =

2 , 3

x3 dx = 0.

x1 < 0 < x2 , x1 = x2 , w1 = w2 .

228 Entonces

6.

INTEGRACION Y DIFERENCIACION

2w1 = 2, 2 2w1 x2 = . 1 3 Finalmente, w1 = 1,x1 = w2 = 1,x2 = Para n = 3, w1 + w2 + w3 = 2, w1 x1 + w2 x2 + w3 x3 = 0, 2 w1 x2 + w2 x2 + w3 x2 = , 1 2 3 3 3 3 3 w1 x1 + w2 x2 + w3 x3 = 0, 2 w1 x4 + w2 x4 + w3 x4 = , 1 2 3 5 5 5 5 w1 x1 + w2 x2 + w3 x3 = 0. Por suposiciones de simetr a, x1 < 0 = x2 < x3 , w1 = w3 . Entonces 2w1 + w2 = 2, 2 , 2w1 x2 = 1 3 2 2w1 x4 = . 1 5 x1 = x3 , 1 , 3 1 . 3

6.7. CUADRATURA DE GAUSS-LEGENDRE Finalmente, 3 5 , w1 = ,x1 = 9 5 8 w2 = ,x2 = 0, 9 3 5 w3 = ,x3 = . 9 5

229

La siguiente tabla contiene los valores wi , xi , para valores de n menores o iguales a 6. n 1 2 3 4 5 wi 2 1 0.888888888888889 0.555555555555556 0.339981043584856 0.861136311594053 0.568888888888889 0.478628670499366 0.236926885056189 0.467913934572691 0.360761573048139 0.171324492379170 xi 0 0.577350269189626 0 0.774596669241483 0.652145154862546 0.347854845137454 0 0.538469310105683 0.906179845938664 0.238619186083197 0.661209386466265 0.932469514203152

Tablas ms completas se pueden encontrar en [Fro70] o en [AbS74]. a Ejemplo 6.6. Calcular una aproximacin de o
0.8 0.2

ex dx

por cuadratura de Gauss con n = 3. 0.8 0.2 (0.774596669241483 + 1) + 0.2 = 0.26762099922756 2 0.8 0.2 (0 + 1) + 0.2 = 0.5 2 = 2 0.8 0.2 3 = (0.774596669241483 + 1) + 0.2 = 0.73237900077244 2 1 =

230
0.8 0.2

6. ex dx

INTEGRACION Y DIFERENCIACION

0.8 0.2 5 1 8 2 5 3 e + e + e 2 9 9 9 1.00413814737559

El valor exacto es e0.8 e0.2 = 1.00413817033230, entonces el error es 0.00000002295671 2.3 108 . Si se emplea la frmula de Simpson, que o tambin utiliza tres evaluaciones de la funcin, se tiene e o
0.8 0.2

ex dx

0.3 0.2 e + 4 e0.5 + e0.8 = 1.00418287694532 3

El error es 0.00004470661302 4.5 105 . 3 La frmula del error para 6.12 es: o en = 22n+1 (n!)4 f (2n) () , (2n + 1)((2n)!)3 1 < < 1 . (6.17)

Para 6.14 el error est dado por: a en = (b a)2n+1 (n!)4 (2n) f () , (2n + 1)((2n)!)3 a < < b. (6.18)

Comparemos el mtodo de Simpson y la frmula de cuadratura de Gauss e o con n = 3, para integrar en el intervalo [a, b], con h = (b a)/2. En los dos casos es necesario evaluar tres veces la funcin. o eSimpson = eGauss3 h5 (4) f (z) , 90 h7 (6) (2h)7 (3!)4 (6) f () = f (). = 3 7(6!) 15750

Se observa que mientras que la frmula de Simpson es exacta para polio nomios de grado menor o igual a 3, la frmula de Gauss es exacta hasta o para polinomios de grado 5. Sea 0 < h < 1. No slo h7 < h5 , sino que el o coeciente 1/15750 es mucho menor que 1/90. En el ejemplo anterior, h = 0.3, y tanto f (4) como f (6) var en el intervalo an [1.22, 2.23 ]. eSimpson = 2.7 105 f (4) (z) , eGauss3 = 1.39 108 f (6) () .

6.7. CUADRATURA DE GAUSS-LEGENDRE

231

6.7.1

Polinomios de Legendre

Las frmulas de cuadratura vistas son las frmulas de Gauss-Legendre. En o o ellas estn involucrados los polinomios ortogonales de Legendre. Tambin a e hay cuadratura de Gauss-Laguerre, de Gauss-Hermite y de Gauss-Chebyshev, relacionadas con los polinomios de Laguerre, de Hermite y de Chebyshev. Hay varias maneras de denir los polinomios de Legendre; una de ellas es: P0 (x) = 1, Pn (x) = Por ejemplo, P0 (x) = 1, P1 (x) = x, 1 P2 (x) = (3x2 1), 2 1 P3 (x) = (5x3 x), 2 1 P4 (x) = (35x4 30x2 + 3). 8 1 2n n! d (x2 1)n . dxn
n

(6.19) (6.20)

Tambin existe una expresin recursiva: e o P0 (x) = 1, P1 (x) = x, 2n + 1 n Pn+1 (x) = x Pn (x) Pn1 (x) . n+1 n+1 Algunas de las propiedades de los polinomios de Legendre son:
1

(6.21) (6.22) (6.23)

xk Pn (x) dx = 0 ,

1 1 1 1 1

k = 0, 1, 2, ..., n 1, m = n,

(6.24) (6.25) (6.26)

Pm (x)Pn (x) dx = 0 , (Pn (x))2 dx = 2 2n + 1

232

6.

INTEGRACION Y DIFERENCIACION

Las abscisas de las frmulas de cuadratura de Gauss-Legendre son exactao mente las ra ces de Pn (x). Adems, a
1 Pn (x) 1 dx, (x ) Pn i 1 x xi 1 2 wi = (Pn (xi ))2 1 x2 i

wi =

(6.27) (6.28)

6.8

Cuadratura de Gauss-Leguerre y Gauss-Hermite

???? Gauss-Laguerre en el intervalor [0, [ ???? Gauss-Laguerre en el intervalor [, [

6.9

Derivacin numrica o e

Dados los puntos (x0 , y0 ), (x1 , y1 ), ..., (xn , yn ) igualmente espaciados en x, o sea, xi = x0 + ih, se desea tener aproximaciones de f (xi ) y f (xi ). Como se vio anteriormente (5.6), f (x) = pn (x) + (x x0 )(x x1 ) (x xn )f (n+1) ()/(n + 1)!. Sea (x) = (x x0 )(x x1 ) (x xn ). Como depende de x, se puede considerar F (x) = f (n+1) ((x))/(n + 1)!. Entonces f (x) = pn (x) + (x)F (x) f (x) = p (x) + (x)F (x) + (x)F (x), n f (xi ) = p (xi ) + (xi )F (xi ) + (xi )F (xi ), n f (xi ) = p (xi ) + (xi )F (xi ). n Para n = 1 p1 (x) = y0 + (y1 y0 ) (y1 y0 ) (x x0 ) , p (x) = 1 h h (x) = (x x0 )(x x1 ) , (x) = 2x 2x0 h

Entonces f (x0 ) =

(y1 y0 ) (y1 y0 ) h + (2x0 2x0 h)F (x0 ) = f ((x0 )), h h 2 (y1 y0 ) h (y1 y0 ) + (2x1 2x0 h)F (x1 ) = + f ((x1 )). f (x1 ) = h h 2

6.9. DERIVACION NUMERICA En general, h (yi+1 yi ) f (), [xi , xi+1 ] h 2 (yi yi1 ) h f (xi ) = + f (), [xi1 , xi ] h 2 f (xi ) =

233

(6.29) (6.30)

El primer trmino despus del signo igual corresponde al valor aproximado. e e El segundo trmino es el error. Se acostumbra decir que el error es del orden e de h. Esto se escribe (yi+1 yi ) + O(h), h (yi yi1 ) f (xi ) = + O(h). h f (xi ) = Para n = 2, sea s = (x x0 )/h, s(s 1) 2 f0 , 2 2 x x0 x x0 x x0 h 2 f0 p2 (x) = y0 + f0 + , h h h 2 f0 2x 2x0 h 2 f0 p (x) = + , 2 h h2 2 f0 2 f0 p (x1 ) = + = 2 h 2h y2 y0 p (x1 ) = 2 2h p2 (x) = y0 + sf0 + (x) = (x x0 )(x x0 h)(x x0 2h), (x) = 3(x x0 )2 6h(x x0 ) + 2h2 ,

(x) = (x x0 )3 3h(x x0 )2 + 2h2 (x x0 ),

(x1 ) = 3h2 6h2 + 2h2 = h2 . Entonces f (x1 ) = De manera general, f (xi ) =

y2 y0 h2 f () , [x0 , x2 ]. 2h 6

yi+1 yi1 h2 f () , [xi1 , xi+1 ], 2h 6 yi+1 yi1 + O(h2 ). f (xi ) = 2h

(6.31)

234

6.

INTEGRACION Y DIFERENCIACION

En [YoG72], pgina 357, hay una tabla con varias frmulas para diferena o ciacin numrica. Para la segunda derivada, una frmula muy empleada o e o es: yi+1 2yi + yi1 h2 (4) f () , [xi1 , xi+1 ], (6.32) h2 12 yi+1 2yi + yi1 f (xi ) = + O(h2 ). h2 La deduccin de las frmulas de derivacin numrica se hizo a partir de o o o e una tabla de valores (xi , yi ), pero para el uso de stas solamente se requiere e conocer o poder evaluar f en los puntos necesarios. Por esta razn, algunas o veces las frmulas aparecen directamente en funcin de h: o o f (xi ) = f (x + h) f (x) + O(h), h f (x) f (x h) f (x) = + O(h), h f (x + h) f (x h) f (x) = + O(h2 ), 2h f (x + h) 2f (x) + f (x h) + O(h2 ). f (x) = h2 Ejemplo 6.7. Dada f (x) = x, evaluar aproximadamente f (4) y utilizando h = 0.2. 2.0494 2 = 0.2470 f (4) 0.2 2 1.9494 f (4) = 0.2532 0.2 2.0494 1.9494 = 0.2501 f (4) 2 0.2 2.0494 2 2 + 1.9494 f (4) = 0.0313 . 3 0.22 f (x) = (6.33) (6.34) (6.35) (6.36) f (4),

El error de las dos primeras aproximaciones no es el mismo, pero es del mismo orden de magnitud O(h). La tercera aproximacin es mejor que o las anteriores; su error es del orden de O(h2 ). Los valores exactos son f (4) = 0.25, f (4) = 0.03125.

6.9.1

Derivadas parciales

Sea f : Rn R con derivadas dobles continuas. La frmula (6.35) se puede o generalizar a

6.9. DERIVACION NUMERICA

235

1 f f (1 , ..., xi1 , xi + h, xi+1 , ..., xn ) x () = x xi 2h f (1 , ..., xi1 , xi h, xi+1 , ..., xn ) + O(h2 ) x Tambin se puede escribir de manera ms compacta e a f ( + hei ) f ( hei ) x x f () = x + O(h2 ) xi 2h donde ei = (0, ..., 0,1, 0, ..., 0) Rn . La frmula (6.36) se puede generalizar a o 2f f ( + hei ) 2f () + f ( hei ) x x x () = x + O(h2 ) 2 2 h xi (6.38) (6.37)

(6.39)

o Ejemplo 6.8. Sean f (x1 , x2 ) = ex1 sen(x2 ). Obtenga una aproximacin de f 2f (2, 3) con h = 0.2 . (2, 3) y de x2 x2 1 f (2, 3.2) f (2, 2.8) f (2, 3) x2 0.4 = 7.2664401

2f f (2.2, 3) 2f (2, 3) + f (1.8, 3) (2, 3) 0.04 x2 1 = 1.0462241

6.9.2

En Scilab

Sea f : R R derivable. La aproximacin de la derivada se obtiene por o medio de derivative(f, x). Si en un archivo se dene la funcin o function y = func246(x) y = sqrt(x) endfunction

236

6.

INTEGRACION Y DIFERENCIACION

y se carga este archivo en Scilab, entonces la derivada en x = 4 se obtiene mediante der = derivative(func246, 4) Si se quiere obtener tambin la segunda derivada: e [der, der2] = derivative(func246, 4) Sea f : Rn R, por ejemplo, la denida en la siguiente funcin o function y = func245( x ) y = exp(x(1)) * sin(x(2)) endfunction Si se carga en Scilab el archivo donde est esta funcin, entonces para un a o vector columna x, la funcin derivative produce un vector la con el grao diente. x = [2 3] g = derivative(func245, x) Para obtener, adicionalmente, la matriz hessiana: x = [2 3] [g, A] = derivative(func245, x, H_form =blockmat) Sea f : Rn Rm , por ejemplo, la denida en la siguiente funcin o function fx = func247( x ) fx = zeros(3,1) fx(1) = exp(x(1)) * sin(x(2)) fx(2) = 3*x(1) + 4*x(2) fx(3) = x(1)*x(1) + 5*x(1)*x(2) + 3*x(2)*x(2) endfunction Si se carga en Scilab el archivo donde est esta funcin, entonces para un a o vector columna x, la funcin derivative produce una matriz m n, la o matriz jacobiana.

6.9. DERIVACION NUMERICA x = [2 3] J = derivative(func247, x)

237

Ejercicios
6.1 Calcule

1 0.2

ex dx

utilizando la frmula del trapecio y de Simpson, variando el nmero de o u subintervalos. Tambin por medio de la cuadratura de Gauss variando e el nmero puntos. Calcule los errores. Compare. u 6.2 Calcule
0 1

ex dx

utilizando la frmula de Simpson. Utilice seis cifras decimales. Tome o los valores n = 2, 4, 8, 16, 32... hasta que no haya variacin. o 6.3 Haga un programa para calcular ejercicio anterior.
b a f (x)dx,

siguiendo el esquema del

6.4 Observe, por ejemplo, que para n = 2 se evala la funcin en a, (a + u o b)/2, b. Para n = 4 se evala la funcin en a, a + (b a)/4, (a + b)/2, u o a + 3(b a)/4, b. Haga el programa eciente para que no evale la u funcin dos veces en el mismo punto. o 6.5 Haga un programa para calcular a f (x)dx , partiendo [a, b] en subintervalos y utilizando en cada subintervalo cuadratura de Gauss. 6.6 Considere los puntos (0.05, 2.0513), (0.10, 2.1052), (0.15, 2.1618), (0.20, 2.2214), (0.25, 2.2840), (0.30, 2.3499), (0.35, 2.4191), (0.40, 2.4918).
b

238

6.

INTEGRACION Y DIFERENCIACION

Calcule de la mejor manera posible


0.35 0.40 0.45

f (x)dx,
0.05 0.05

f (x)dx,
0.05

f (x)dx.

6.7 Considere los mismos puntos del ejercicio anterior. Calcule una aproximacin de f (0.25), f (0.225), f (0.30). o 6.8 Combine integracin numrica y solucin de ecuaciones para resolver o e o
x 0

et dt = 0.1.

Ecuaciones diferenciales
Este cap tulo se reere unicamente a ecuaciones diferenciales ordinarias. Generalmente una ecuacin diferencial ordinaria de primer orden con condio ciones iniciales, EDO1CI, se escribe de la forma y(x0 ) = y0 . y = f (x, y) para a x b, (7.1)

Frecuentemente la condicin inicial est dada sobre el extremo izquierdo del o a intervalo, o sea, a = x0 . Un ejemplo de EDO1CI es: xy + 3x2 , x [2, 4], y = 1 + x2 + y 2 y(2) = 5. Temas important simos como existencia de la solucin, unicidad o estabilio dad, no sern tratados en este texto. El lector deber remitirse a un libro a a de ecuaciones diferenciales. Aqu se supondr que las funciones satisfacen a todas las condiciones necesarias (continuidad, diferenciabilidad, condicin o de Lipschitz... ) para que la solucin exista, sea unica... o Como en todos los otros casos de mtodos numricos, la primera opcin para e e o resolver una EDO1CI es buscar la solucin anal o tica. Si esto no se logra, entonces se busca la solucin numrica que consiste en encontrar valores o e aproximados y1 , y2 , ..., yn tales que yi y(xi ), i = 1, ..., n, donde a = x0 < x1 < x2 < ... < xn = b. En muchos casos los valores xi estn igualmente espaciados, o sea, a ba xi = a + ih, i = 0, 1, ..., n, con h = . n 239

240

7.

ECUACIONES DIFERENCIALES

En varios de los ejemplos siguientes se aplicarn los mtodos numricos a e e para ecuaciones diferenciales con solucin anal o tica conocida. Esto se hace simplemente para comparar la solucin numrica con la solucin exacta. o e o

7.0.3

En Scilab

Consideremos la siguiente ecuacin diferencial: o

x+y + 4 + cos(x) , x2 + y 2 y(2) = 3. y = Antes de utilizar la funcin ode , es necesario crear en Scilab la funcin f y o o cargarla. La funcin ode evala aproximaciones del valor de y en valores o u del tercer parmetro, un vector la o columna o un nmero. El resultado es a u un vector la con las aproximaciones de la solucin en los valores deseados o (tercer parmetro). a Despues de denir y cargar function Dy = func158(x, y) Dy = ( x + y )/( x*x + y*y ) + 4 + cos(x) endfunction se obtiene la solucin aproximada mediante o x0 = 2 y0 = 3 t = 2:0.05:3; yt = ode(y0, x0, t, func158) Ahora es posible gracar el resultado mediante plot2d(t, yt)

7.1. METODO DE EULER

241

7.1

Mtodo de Euler e

Se aplica a una EDO1CI como en (7.1) utilizando puntos igualmente espaciados. Su deduccin es muy sencilla. o y (x0 ) Por otro lado y (x0 ) = f (x0 , y0 ). Entonces y(x0 + h) y0 + hf (x0 , y0 ). Si denotamos por y1 la aproximacin de y(x0 + h), entonces la frmula del o o mtodo de Euler es justamente e y1 = y0 + hf (x0 , y0 ). Aplicando varias veces el mismo tipo de aproximaciones, se tiene la frmula o general: yi+1 = yi + hf (xi , yi ). (7.2) y(x0 + h) y(x0 ) . h

Grcamente esto signica que y(xi + h) = y(xi+1 ) se aproxima por el valor a obtenido a partir de la recta tangente a la curva en el punto (xi , yi ). El valor y1 es una aproximacin de y(x1 ). A partir de y1 , no de y(x1 ), o se hace una aproximacin de y (x1 ). Es decir, al suponer que y2 es una o aproximacin de y(x2 ), se han hecho dos aproximaciones consecutivas y el o error pudo haberse acumulado. De manera anloga, para decir que y3 es una a aproximacin de y(x3 ), se han hecho tres aproximaciones, una sobre otra. o Sea (t, h) denida para t1 t t2 y para valores pequeos de h. Se dice n que (t, h) = O(hp ) si para valores pequeos de h existe una constante c tal que n |(t, h)| chp , t [t1 , t2 ].

242

7.

ECUACIONES DIFERENCIALES (x1 , y1 )

y(x0 + h) y0 = y(x0 )

x0 Figura 7.1: Mtodo de Euler e Tambin se acostumbra decir que e (t, h) chp .

x0 + h

El error local tiene que ver con el error cometido para calcular y(xi+1 ) suponiendo que yi es un valor exacto, es decir, yi = y(xi ). El error global es el error que hay al considerar yn como aproximacin de y(xn ) (n indica o el nmero de intervalos). u Los resultados sobre el error en el mtodo de Euler son: e y1 = y(x1 ) + O(h2 ) yn = y(xn ) + O(h). (7.3) (7.4)

Ejemplo 7.1. Resolver, por el mtodo de Euler, la ecuacin diferencial e o y = 2x2 4x + y

y(1) = 0.7182818 en el intervalo [1, 3], con h = 0.25.

La primera observacin es que esta ecuacin diferencial se puede resolver o o anal ticamente. Su solucin es y = ex 2x2 . Luego no deber ser resuelta o a numricamente. Sin embargo, el hecho de conocer su solucin exacta permite e o

7.1. METODO DE EULER

243

2 1 0 1

Figura 7.2: Ejemplo del mtodo de Euler e ver el error cometido por el mtodo numrico. e e y1 = y0 + hf (x0 , y0 ) = 0.7182818 + 0.25f (1, 0.7182818) = 0.3978523 = 0.7182818 + 0.25(0.7182818 + 2 12 4 1)

y2 = y1 + hf (x1 , y1 ) = 0.3978523 + 0.25f (1.25, 0.3978523) = 0.3978523 + 0.25(0.3978523 + 2 1.252 4 1.25) = 0.0285654 y3 = ... xi 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 y (xi ) 0.7182818 0.3978523 0.0285654 -0.3392933 -0.6428666 -0.8035833 -0.7232291 -0.2790364 0.6824545 y(xi ) 0.7182818 0.3653430 -0.0183109 -0.3703973 -0.6109439 -0.6372642 -0.3175060 0.5176319 2.0855369

En los primeros valores se observa que el error es muy pequeo. A partir de n x = 2 se empiezan a distanciar los valores y (x) y y(x). Si se trabaja con h =

244

7.

ECUACIONES DIFERENCIALES

0.1 se obtiene y (3) = 1.4327409; con h = 0.01 se obtiene y (3) = 2.0133187; con h = 0.001 se obtiene y (3) = 2.0782381. 3 El mtodo de Euler se puede escribir en Scilab mediante: e function [Y, X] = Euler(f, x0, y0, xf, n) // Metodo de Euler para la ecuacion diferencial // // y = f(x,y) // y(x0) = y0 // en intervalo [x0, xf] // // n = numero de subintervalos // Y, X seran vectores fila de n+1 elementos // Y contendra las aproximaciones de // y(x0) y(x0+h) y(x0+2h) ... y(xf) // con h = (xf-x0)/n // X contendra los valores x0 x0+h x0+2h ... xf h = (xf-x0)/n X = zeros(1,n+1) Y = X X(1) = x0 Y(1) = y0 xi = x0 yi = y0 for i=1:n yi = yi + h*f(xi,yi) xi = xi+h Y(i+1) = yi X(i+1) = xi end endfunction

7.2

Mtodo de Heun e

Este mtodo es una modicacin o mejora del mtodo de Euler y se utiliza e o e para el mismo tipo de problemas. Tambin se conoce con el nombre de e

7.2. METODO DE HEUN

245

y(x0 + h) y0 = y(x0 )

(x1 , y1 )

x0 Figura 7.3: Mtodo de Heun e

x0 + h

mtodo del trapecio. En el mtodo de Euler se utiliza la aproximacin e e o y(x + h) = y(x) + hy (x). En el mtodo de Heun se busca cambiar, en la aproximacin anterior, la e o derivada en x por un promedio de la derivada en x y en x + h.

y(x + h) y(x) + h o sea, y(x + h) y(x) + h

y (x) + y (x + h) 2

f (x, y(x)) + f (x + h, y(x + h)) 2

La frmula anterior no se puede aplicar. Sirve para aproximar y(x + h) pero o utiliza y(x + h). Entonces, en el lado derecho, se reemplaza y(x + h) por la aproximacin dada por el mtodo de Euler o e y(x + h) y(x) + h f (x, y(x)) + f (x + h, y(x) + hf (x, y(x))) 2

La anterior aproximacin suele escribirse de la siguiente manera: o K1 = hf (xi , yi ) K2 = hf (xi + h, yi + K1 ) 1 yi+1 = yi + (K1 + K2 ). 2 (7.5)

246

7.

ECUACIONES DIFERENCIALES

Ejemplo 7.2. Resolver, por el mtodo de Heun, la ecuacin diferencial e o

y(1) = 0.7182818

y = 2x2 4x + y

en el intervalo [1, 3], con h = 0.25.

K1 = hf (x0 , y0 ) = 0.25f (1, 0.7182818) K2 = hf (x0 + h, y0 + K1 ) = 0.25f (1.25, 0.397852) y1 = y0 + (K1 + K2 )/2 = 0.3734236 K1 = hf (x1 , y1 ) = 0.25f (1.25, 0.3734236) K2 = hf (x1 + h, y1 + K1 ) = 0.375493 = 0.25f (1.500000, 0.001971) = 0.375394 = 0.369287 = 0.320430

y2 = y1 + (K1 + K2 )/2 = 0.0020198 K1 = ...

7.3. METODO DEL PUNTO MEDIO

247

2 1 0 1

Figura 7.4: Ejemplo del mtodo de Heun e xi 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 y (xi ) 0.7182818 0.3734236 -0.0020198 -0.3463378 -0.5804641 -0.6030946 -0.2844337 0.5418193 2.0887372 y(xi ) 0.7182818 0.3653430 -0.0183109 -0.3703973 -0.6109439 -0.6372642 -0.3175060 0.5176319 2.0855369

En este ejemplo los resultados son mucho mejores. Por un lado, el mtodo e es mejor, pero, por otro, es natural tener mejores resultados pues hubo que evaluar 16 veces la funcin f (x, y), 2 veces en cada iteracin. En el o o ejemplo del mtodo de Euler hubo simplemente 8 evaluaciones de la funcin e o f (x, y). Al aplicar el mtodo de Heun con h = 0.5 (es necesario evaluar 8 e veces la funcin) se obtiene y (3) = 2.1488885, resultado no tan bueno como o 2.0887372, pero netamente mejor que el obtenido por el mtodo de Euler. Si e se trabaja con h = 0.1 se obtiene y (3) = 2.0841331; con h = 0.01 se obtiene y (3) = 2.0855081; con h = 0.001 se obtiene y (3) = 2.0855366. 3

7.3

Mtodo del punto medio e

Tambin este mtodo es una modicacin o mejora del mtodo de Euler y e e o e se utiliza para el mismo tipo de problemas. En el mtodo de Euler se utiliza e

248

7.

ECUACIONES DIFERENCIALES

y(x0 + h) y0 = y(x0 )

(x1 , y1 )

x0

x0 + h/2

x0 + h

Figura 7.5: Mtodo del punto medio e la aproximacin o y(x + h) = y(x) + hy (x). En el mtodo del punto medio se busca cambiar, en la aproximacin anterior, e o la derivada en x por la derivada en el punto medio entre x y x + h, o sea, por la derivada en x + h/2.

y(x + h) y(x) + h y (x + h/2) o sea, y(x + h) y(x) + h f ( x + h/2, y(x + h/2) ) Como no se conoce y(x + h/2), se reemplaza por la aproximacin que dar o a el mtodo de Euler con un paso de h/2. e y(x + h/2) y(x) + h f (x, y) 2 h f (x, y)) 2

y(x + h) y(x) + h f (x + h/2, y(x) +

La anterior aproximacin suele escribirse de la siguiente manera: o K1 = hf (xi , yi ) K2 = hf (xi + h/2, yi + K1 /2) yi+1 = yi + K2 . (7.6)

7.3. METODO DEL PUNTO MEDIO

249

Ejemplo 7.3. Resolver, por el mtodo del punto medio, la ecuacin difere o encial

y(1) = 0.7182818

y = 2x2 4x + y

en el intervalo [1, 3], con h = 0.25.

K1 = hf (x0 , y0 ) = 0.25f (1, 0.7182818) K2 = hf (x0 + h/2, y0 + K1 /2) = 0.25f (1.125, 0.558067) y1 = y0 + K2 = 0.352671 = 0.3656111 K1 = hf (x1 , y1 ) = 0.25f (1.25, 0.3656111) K2 = hf (x1 + h/2, y1 + K1 /2) = 0.25f (1.375, 0.176937) y2 = y1 + K2 = 0.385453 = 0.0198420 K1 = ... = 0.377347 = 0.320430

250

7.

ECUACIONES DIFERENCIALES

2 1 0 1

Figura 7.6: Ejemplo del mtodo del punto medio e xi 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 y (xi ) 0.7182818 0.3656111 -0.0198420 -0.3769851 -0.6275434 -0.6712275 -0.3795415 0.4121500 1.9147859 y(xi ) 0.7182818 0.3653430 -0.0183109 -0.3703973 -0.6109439 -0.6372642 -0.3175060 0.5176319 2.0855369

Tambin, en este ejemplo, los resultados son mucho mejores. De nuevo e hubo que evaluar 16 veces la funcin f (x, y), 2 veces en cada iteracin. o o Al aplicar el mtodo del punto medio con h = 0.5 (es necesario evaluar 8 e veces la funcin) se obtiene y (3) = 1.5515985, resultado no tan bueno como o 2.0887372, pero netamente mejor que el obtenido por el mtodo de Euler. Si e se trabaja con h = 0.1 se obtiene y (3) = 2.0538177; con h = 0.01 se obtiene y (3) = 2.0851903; con h = 0.001 se obtiene y (3) = 2.0855334. 3

7.4

Mtodo de Runge-Kutta e

El mtodo de Runge-Kutta o, ms bien, los mtodos de Runge-Kutta se aplie a e can a una EDO1CI como en (7.1) utilizando puntos igualmente espaciados.

7.4. METODO DE RUNGE-KUTTA La forma general del mtodo RK de orden n es la siguiente: e K1 = hf (xi , yi ) K2 = hf (xi + 2 h, yi + 21 K1 ) K3 = hf (xi + 3 h, yi + 31 K1 + 32 K2 ) . . . yi+1 = yi + R1 K1 + R2 K2 + ... + Rn Kn . Kn = hf (xi + n h, yi + n1 K1 + n2 K2 + + n,n1 Kn1 )

251

(7.7)

Se ve claramente que los mtodos vistos son de RK: el mtodo de Euler es e e uno de RK de orden 1, el mtodo de Heun y el del punto medio son mtodos e e de RK de orden 2. Mtodo de Euler: e K1 = hf (xi , yi ) yi+1 = yi + K1 . Mtodo de Heun: e K1 = hf (xi , yi ) K2 = hf (xi + h, yi + K1 ) 1 1 yi+1 = yi + K1 + K2 . 2 2 Mtodo del punto medio: e K1 = hf (xi , yi ) 1 1 K2 = hf (xi + h, yi + K1 ) 2 2 yi+1 = yi + 0K1 + K2 . Un mtodo muy popular es el siguiente mtodo RK de orden 4: e e K1 = hf (xi , yi ) K2 = hf (xi + h/2, yi + K1 /2) K3 = hf (xi + h/2, yi + K2 /2) K4 = hf (xi + h, yi + K3 ) yi+1 = yi + (K1 + 2K2 + 2K3 + K4 )/6. (7.11) (7.9) (7.8)

(7.10)

252

7.

ECUACIONES DIFERENCIALES

Ejemplo 7.4. Resolver, por el mtodo RK4 anterior, la ecuacin diferencial e o

y(1) = 0.7182818

y = 2x2 4x + y

en el intervalo [1, 3], con h = 0.25.

K1 = hf (x0 , y0 ) = 0.25f (1, 0.7182818) K2 = hf (x0 + h/2, y0 + K1 /2) = 0.25f (1.125, 0.558067) K3 = hf (x0 + h/2, y0 + K2 /2) = 0.25f (1.125, 0.541946) K4 = hf (x0 + h, y0 + K3 ) = 0.25f (1.25, 0.361581) y1 = y0 + (K1 + 2K2 + 2K3 + K4 )/6 = 0.3653606 = 0.378355 = 0.356701 = 0.352671 = 0.320430

K1 = hf (x1 , y1 ) = 0.25f (1.25, 0.3653606) K2 = hf (x1 + h/2, y1 + K1 /2) = 0.25f (1.375, 0.176656) = 0.385524 = 0.377410

7.4. METODO DE RUNGE-KUTTA

253

2 1 0 1

Figura 7.7: Ejemplo del mtodo Runge-Kutta 4 e K3 = hf (x1 + h/2, y1 + K2 /2) = 0.25f (1.375, 0.172599) K4 = hf (x1 + h, y1 + K3 ) = 0.380294 = 0.25f (1.5, 0.02117) = 0.386538

y2 = y1 + (K1 + 2K2 + 2K3 + K4 )/6 = 0.0182773 xi 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 y (xi ) 0.7182818 0.3653606 -0.0182773 -0.3703514 -0.6108932 -0.6372210 -0.3174905 0.5175891 2.0853898 y(xi ) 0.7182818 0.3653430 -0.0183109 -0.3703973 -0.6109439 -0.6372642 -0.3175060 0.5176319 2.0855369

En este ejemplo, los resultados son an mejores. Hubo que evaluar 32 veces u la funcin f (x, y), 4 veces en cada iteracin. Si se trabaja con h = 0.1 se o o obtiene y (3) = 2.0855314; con h = 0.01 se obtiene y (3) = 2.0855369; con h = 0.001 se obtiene y (3) = 2.0855369. 3

254

7.

ECUACIONES DIFERENCIALES

El mtodo RK4 se puede escribir en Scilab de la siguiente manera: e

function [Y, X] = RK4(f, x0, y0, xf, n) // Metodo Runge-Kutta 4 para la ecuacion diferencial // // y = f(x,y) // y(x0) = y0 // en intervalo [x0, xf] // // n = numero de subintervalos // // Y, X seran vectores fila de n+1 elementos // Y contendra las aproximaciones de // y(x0) y(x0+h) y(x0+2h) ... y(xf) // con h = (xf-x0)/n // X contendra los valores x0 x0+h x0+2h ... xf h = (xf-x0)/n X = zeros(1,n+1) Y = X X(1) = x0 Y(1) = y0 xi = x0 yi = y0 for i=1:n K1 = h*f(xi, yi) K2 = h*f(xi+h/2, yi+K1/2); K3 = h*f(xi+h/2, yi+K2/2); K4 = h*f(xi+h, yi+K3); xi = xi+h yi = yi + (K1 + 2*K2 + 2*K3 + K4)/6 Y(i+1) = yi X(i+1) = xi end endfunction

7.5. DEDUCCION DE RK2

255

7.5

Deduccin de RK2 o

En secciones anteriores se hizo la deduccin, de manera ms o menos ino a tuitiva, de los mtodos de Heun y del punto medio. Los dos resultan ser e mtodos de RK de orden 2. En esta seccin veremos una deduccin diferente e o o y general de RK2. El mtodo RK2 tiene el siguiente esquema: e K1 = hf (xi , yi ) K2 = hf (xi + 2 h, yi + 21 K1 ) yi+1 = yi + R1 K1 + R2 K2 . Como hay un solo coeciente y un solo coeciente , utilicmoslos sin e sub ndices: K1 = hf (xi , yi ) K2 = hf (xi + h, yi + K1 ) yi+1 = yi + R1 K1 + R2 K2 . Sea g una funcin de dos variables. Si g es diferenciable en el punto (, v ), o u entonces se puede utilizar la siguiente aproximacin de primer orden: o g g u u (7.12) g( + u, v + v) g(, v ) + u (, v ) + v (, v ). u u u v La aproximacin de segundo orden para y(xi + h) es: o h2 y (xi ) + O(h3 ) (7.13) 2 h2 y(xi + h) y(xi ) + hy (xi ) + y (xi ). (7.14) 2 En la aproximacin anterior, podemos tener en cuenta que y(xi ) = yi , y o que y (xi ) = f (xi , yi ). Adems, a y(xi + h) = y(xi ) + hy (xi ) + y (xi ) = d y (xi ) dx d f (xi , yi ) = dx f f y = f (xi , yi ) + f (xi , yi ) (xi ) x y x f f f (xi , yi ) + y (xi ) f (xi , yi ). = x y

256

7.

ECUACIONES DIFERENCIALES

Para acortar la escritura utilizaremos la siguiente notacin: o f := f (xi , yi ) f fx := f (xi , yi ) x f f (xi , yi ) fy := y y := y(xi ) y := y (xi ) = f (xi , yi ) = f y := y (xi ). Entonces y = fx + f fy h2 h2 fx + f fy . 2 2 Por otro lado, el mtodo RK2 se puede reescribir: e y(xi + h) y + hf + yi+1 = yi + R1 hf (xi , yi ) + R2 hf (xi + h, yi + K1 ). Utilizando (7.12): yi+1 = yi + R1 hf (xi , yi ) + R2 h f (xi , yi ) + h Utilizando la notacin se obtiene: o yi+1 = y + R1 hf + R2 h (f + hfx + K1 fy ) yi+1 = y + (R1 + R2 )hf + R2 h2 fx + R2 hK1 fy . Como K1 = hf , entonces yi+1 = y + (R1 + R2 )hf + R2 h2 fx + R2 h2 f fy . (7.16) Al hacer la igualdad y(xi + h) = yi+1 , en las ecuaciones (7.15) y (7.16) se comparan los coecientes de hf , de h2 fx y de h2 f fy y se deduce: R1 + R2 = 1, 1 R2 = , 2 1 R2 = . 2 f f (xi , yi ) + K1 (xi , yi ) . x y (7.15)

7.6. CONTROL DEL PASO Entonces = , 1 R2 = 2 R1 = 1 R 2 .

257

(7.17) (7.18) (7.19)

Si = 1, entonces = 1, R2 = 1/2 y R1 = 1/2, es decir, el mtodo de e Heun. Si = 1/2, entonces = 1/2, R2 = 1 y R1 = 0, es decir, el mtodo e del punto medio. Para otros valores de se tienen otros mtodos de RK de e orden 2.

7.6

Control del paso

Hasta ahora se ha supuesto que para hallar la solucin numrica de una o e ecuacin diferencial, los puntos estn igualmente espaciados, es decir, xi o a xi1 = h para i = 1, 2, ..., n. Esta pol tica no es, en general, adecuada. Es preferible utilizar valores de h pequeos cuando es indispensable para n mantener errores relativamente pequeos, y utilizar valores grandes de h n cuando se puede. Hay varios mtodos para el control de h. En uno de ellos, se supone conocido e yi , una muy buena aproximacin de y(xi ), y se aplica un mtodo con un paso o e h para obtener y aproximacin de y(xi + h). Tambin se aplica el mismo o e mtodo dos veces con el paso h/2 para obtener y , otra aproximacin de e o y(xi + h). Con estos dos valores se puede acotar el error y as saber si es necesario trabajar con un paso ms pequeo. a n En otro enfoque, el que veremos en esta seccin, se aplican dos mtodos o e diferentes, con el mismo h y con estas dos aproximaciones se acota el error. As se determina la buena o mala calidad de las aproximaciones. Supongamos que tenemos dos mtodos: el mtodo A con error local O(hp ) e e y el mtodo B con error local O(hp+1 ) (o con error local O(hq ), q p + e 1). Partimos de yi , muy buena aproximacin de y(xi ). Aplicando los dos o mtodos calculamos yA y yB , aproximaciones de y(xi + h). El control de e paso tiene dos partes: en la primera se obtiene una aproximacin del posible o error obtenido.

|error| e = 1 (yA , yB , h, p).

258

7.

ECUACIONES DIFERENCIALES

Si e es menor o igual que un valor dado, entonces se acepta yB como buena aproximacin de y(x + h). En caso contrario, es necesario utilizar un valor o de h ms pequeo. En ambos casos el valor de h se puede modicar, bien sea a n por necesidad (e > ), bien sea porque, siendo h aceptable, es conveniente modicarlo para el siguiente paso. Para ello se calcula un coeciente C0 que sirve para obtener C coeciente de h

C0 = 2 (yA , yB , h, p) C = (C0 , ...) h = Ch.

Los diferentes algoritmos dieren en la manera de calcular e, C0 y C (las funciones 1 , 2 y ). Ms an, para el mismo mtodo A y el mismo mtodo a u e e B hay diferentes algoritmos. Un mtodo muy popular es el de Runge-Kutta-Fehlberg, construido a e partir de un mtodo de RK de orden 5 (el mtodo A) y de un mtodo de e e e RK de orden 6 (el mtodo B). Una de sus ventajas est dada por el siguiente e a hecho: los valores K1 , K2 , K3 , K4 y K5 son los mismos para los dos mtodos. e Teniendo en cuenta la forma general (7.7) del mtodo RK, basta con dar los e valores i y ij . Recurdese que siempre K1 = hf (xi , yi ). e

7.6. CONTROL DEL PASO

259

i 2 3 4 5 6

i 1 4 3 8 12 13 1 1 2

i1 1 4 3 32 1932 2197 439 216 8 27

i2

...

9 32 7200 2197 8 2

7296 2197 3680 513 3544 2565

845 4104 1859 4104

(7.20) 11 40

yA = y i +

25 1408 2197 1 K1 + 0K2 + K3 + K4 K5 216 2565 4104 5 6656 28561 9 2 16 K1 + 0K2 + K3 + K4 K5 + K6 yB = y i + 135 12825 56430 50 55

Los errores locales son respectivamente O(h5 ) y O(h6 ). Realmente hay varias frmulas RK5 y RK6; las anteriores estn en [BuF85] y [EnU96]. Hay otras o a frmulas diferentes en [ChC99]. o La aproximacin del error est dada por o a |error| e = |yA yB | . h (7.21)

El coeciente para la modicacin del valor de h est dado por: o a C0 = 0.84 1/4 , e C = min{C0 , 4}, C = max{C, 0.1}. Las frmulas anteriores buscan que C no sea muy grande ni muy pequeo. o n Ms espec a camente, C debe estar en el intervalo [0.1, 4]. En la descripcin del algoritmo usaremos la siguiente notacin de Matlab y o o de Scilab. La orden u = [u; t]

(7.22)

260

7.

ECUACIONES DIFERENCIALES

signica que al vector columna u se le agrega al nal el valor t y el resultado se llama de nuevo u. METODO RUNGE-KUTTA-FEHLBERG datos: x0 , y0 , b, h0 , , hmin x = x0 , y = y0 , h = h0 X = [x0 ], Y = [y0 ] mientras x < b h = min{h, b x} hbien = 0 mientras hbien = 0 calcular ya , yB segn (7.20) u e = |yA yB |/h si e x = x + h, y = yB bienh = 1 X = [X; x], Y = [Y ; y] n-si C0 = 0.84(/e)1/4 C = max{C0 , 0.1}, C = min{C, 4} h = Ch si h < hmin ent parar n-mientras n-mientras La salida no deseada del algoritmo anterior se produce cuando h se vuelve demasiado pequeo. Esto se produce en problemas muy dif n ciles cuando, para mantener el posible error dentro de lo establecido, ha sido necesario disminuir mucho el valor de h, por debajo del l mite deseado. En una versin ligeramente ms eciente, inicialmente no se calcula yA ni o a yB . Se calcula directamente e= 1 128 2197 1 2 K1 K3 K4 + K5 + K6 . 360 4275 75240 50 55

Cuando el valor de h es adecuado, entonces se calcula yB para poder hacer la asignacin y = yB . o Ejemplo 7.5. Resolver, por el mtodo RKF con control de paso, la ecuacin e o

7.6. CONTROL DEL PASO diferencial y = 2x2 4x + y

261

y(1) = 0.7182818

en el intervalo [1, 3], con h0 = 0.5 y = 106 . yA = 0.01834063 e = 0.00006717

yB = 0.01830704 h = 0.5 no sirve. C0 = 0.29341805 C = 0.29341805 h = 0.14670902 yA = 0.51793321 yB = 0.51793329 e = 0.00000057 h = 0.14670902 sirve. x = 1.14670902 y = 0.51793329 C0 = 0.96535578 C = 0.96535578 h = 0.14162640 yA = 0.30712817 yB = 0.30712821 e = 0.00000029 h = 0.14162640 sirve. x = 1.28833543 y = 0.30712821 . . .

262

7.

ECUACIONES DIFERENCIALES

2 1 0 1

Figura 7.8: Ejemplo del mtodo Runge-Kutta-Fehlberg e

x 1.0000000 1.1467090 1.2883354 1.4505624 1.6192491 1.7525988 1.8855347 2.0046653 2.1139603 2.2163666 2.3134884 2.4062996 2.4954587 2.5814440 2.6646196 2.7452730 2.8236369 2.8999043 2.9742376 3.0000000

h 0.1467090 0.1416264 0.1622270 0.1686867 0.1333497 0.1329359 0.1191306 0.1092950 0.1024064 0.0971218 0.0928111 0.0891591 0.0859853 0.0831757 0.0806534 0.0783639 0.0762674 0.0743333 0.0257624

y (x) 0.7182818 0.5179333 0.3071282 0.0572501 -0.1946380 -0.3736279 -0.5206051 -0.6137572 -0.6566848 -0.6506243 -0.5948276 -0.4877186 -0.3273334 -0.1114979 0.1620898 0.4958158 0.8921268 1.3535162 1.8825153 2.0855366

y(x) 0.7182818 0.5179333 0.3071282 0.0572501 -0.1946380 -0.3736279 -0.5206051 -0.6137571 -0.6566847 -0.6506241 -0.5948275 -0.4877184 -0.3273332 -0.1114977 0.1620900 0.4958160 0.8921270 1.3535164 1.8825156 2.0855369

7.7. ORDEN DEL METODO Y ORDEN DEL ERROR

263

7.7

Orden del mtodo y orden del error e

Para algunos de los mtodos hasta ahora vistos, todos son mtodos de RK, e e se ha hablado del orden del mtodo, del orden del error local y del orden e del error global. El orden del mtodo se reere al nmero de evaluaciones de la funcin f en e u o cada iteracin. As por ejemplo, el mtodo de Euler es un mtodo de orden o e e 1 y el mtodo de Heun es un mtodo de orden 2. e e El orden del error local se reere al exponente de h en el error terico o cometido en cada iteracin. Si la frmula es o o y(x + h) = y(x) + R1 k1 + R2 K2 + + Rn Kn + O(hp ), se dice que el error local es del orden de hp , o simplemente, el error local es de orden p. El orden del error global se reere al exponente de h en el error obtenido al aproximar y(b) despus de hacer (b x0 )/h iteraciones. e Hemos visto seis mtodos, Euler, Heun, punto medio, un RK4, un RK5 y e un RK6. La siguiente tabla presenta los rdenes de los errores. o Mtodo e Euler Heun Punto medio RK4 RK5 RK6 Frmula o (7.2) (7.5) (7.6) (7.11) (7.20) (7.20) Orden del mtodo e 1 2 2 4 5 6 Error local O(h2 ) O(h3 ) O(h3 ) O(h5 ) O(h5 ) O(h6 )

El orden del error global es generalmente igual al orden del error local menos una unidad. Por ejemplo, el error global en el mtodo de Euler es O(h). e A medida que aumenta el orden del mtodo, aumenta el orden del error, es e decir, el error disminuye. Pero al pasar de RK4 a RK5 el orden del error no mejora. Por eso es ms interesante usar el RK4 que el RK5 ya que se a hacen solamente 4 evaluaciones y se tiene un error semejante. Ya con RK6 se obtiene un error ms pequeo, pero a costa de dos evaluaciones ms. a n a

264

7.

ECUACIONES DIFERENCIALES

7.7.1

Vericacin numrica del orden del error o e

Cuando se conoce la solucin exacta de una ecuacin diferencial, en muchos o o casos, se puede vericar el orden del error de un mtodo espec e co. Ms a an, se podr obtener el orden del error si ste no se conociera. u a e Sea O(hp ) el error local del mtodo. Se puede hacer la siguiente aproxie macin: o error = e chp . Al tomar logaritmo en la aproximacin anterior se obtiene o log(e) log(c) + p log(h) (7.23)

Para diferentes valores de h se evala el error cometido y se obtienen as varu ios puntos de la forma (log(hi ), log(ei ) ). Estos puntos deben estar, aproximadamente, sobre una recta. La pendiente de esta recta es precisamente p. El valor de p se puede obtener grcamente o por m a nimos cuadrados. Ejemplo 7.6. Obtener numricamente el orden del error local del mtodo e e de Heun usando la ecuacin diferencial o y(1) = 0.7182818, con h = 0.1, 0.12, 0.14, 0.16, 0.18 y 0.2. h x0 + h y (x0 + h) y(x0 + h) 0.10 1.10 0.584701 0.584166 0.12 1.12 0.556975 0.556054 0.14 1.14 0.529024 0.527568 0.16 1.16 0.500897 0.498733 0.18 1.18 0.472641 0.469574 0.20 1.20 0.444304 0.440117 e 0.000535 0.000921 0.001456 0.002164 0.003067 0.004187 log(h) -2.302585 -2.120264 -1.966113 -1.832581 -1.714798 -1.609438 log(e) -7.532503 -6.989970 -6.532007 -6.135958 -5.787212 -5.475793 y = 2x2 4x + y

En la siguiente grca, log(h) en las abscisas y log(e) en las ordenadas, los a puntos estn aproximadamente en una recta. a Al calcular numricamente los coecientes de la recta de aproximacin por e o m nimos cuadrados, se obtiene log(e) 2.967325 log(h) 0.698893 e 0.497135h2.97 . Estos resultados numricos concuerdan con el resultado terico. 3 e o

7.8. METODOS MULTIPASO EXPL ICITOS 5 6 7 8 2.5 2.0 1.5

265

Figura 7.9: Orden local

7.8

Mtodos multipaso expl e citos

Los mtodos RK son considerados como mtodos monopaso (unipaso) por e e la siguiente razn. El valor yi+1 se calcula unicamente a partir del punto o (xi , yi ). En los mtodos multipaso se utilizan otros puntos anteriores, por e ejemplo, para calcular yi+1 se utilizan los puntos (xi2 , yi2 ), (xi1 , yi1 ) y (xi , yi ). Veamos un caso particular. Supongamos que se conocen los valores y0 = y(x0 ), y1 = y(x1 ) y y2 = y(x2 ). Por facilidad para la deduccin, supongamos o que x0 = h, x1 = h y x2 = 2h. Sea p2 (x) el polinomio de grado menor o igual a 2 que interpola a f en los valores 0, h y 2h, es decir, el polinomio pasa por los puntos (0, f0 ), (h, f1 ) y (2h, f2 ), donde fi = f (xi , yi ). Este polinomio se puede obtener utilizando polinomios de Lagrange: p2 (x) = f0 (x h)(x 2h) (x 0)(x 2h) (x 0)(x h) + f1 + f2 . (0 h)(0 2h) (h 0)(h 2h) (2h 0)(2h h)

Despus de algunas factorizaciones se obtiene: e 1 (f0 2f1 + f2 )x2 + (3f0 + 4f1 f2 )hx + 2h2 f0 . 2h2 Por otro lado, por el teorema fundamental del clculo integral a p2 (x) =
x3 x2

y (x)dx = y(x3 ) y(x2 )


x3

y(x3 ) = y(x2 ) +
x2 3h

y (x)dx f (x, y)dx.

y(x3 ) = y(x2 ) +
2h

266

7.

ECUACIONES DIFERENCIALES

Si se reemplaza f (x, y) por el polinomio de interpolacin, se tiene: o


3h

y(x3 ) y(x2 ) + y(x3 ) y(x2 ) +

p2 (x)dx
2h 3h 2h

1 (f0 2f1 + f2 )x2 + 2h2 (3f0 + 4f1 f2 )hx + 2h2 f0 dx

1 19 (f0 2f1 + f2 ) h3 + 2 2h 3 5 (3f0 + 4f1 f2 ) h3 + 2h3 f0 2 h (7.24) y3 = y2 + (5f0 16f1 + 23f2 ) 12 La anterior igualdad se conoce con el nombre de frmula de Adams-Basho forth de orden 2 (se utiliza un polinomio de orden 2). Tambin recibe el e nombre de mtodo multipaso expl e cito o mtodo multipaso abierto de orden e 2. y3 = y2 + Si los valores y0 , y1 y y2 son exactos, o sea, si y0 = y(x0 ), y1 = y(x1 ) y y2 = y(x2 ), entonces los valores fi son exactos, o sea, f (xi , yi ) = f (xi , y(xi )) y el error est dado por a y(x3 ) = y(x2 ) + h 3 (5f0 16f1 + 23f2 ) + y (3) (z)h4 , z [x0 , x3 ]. 12 8 (7.25) h (5fi2 16fi1 + 23fi ). 12

La frmula (7.24) se escribe en el caso general o yi+1 = yi + (7.26)

Para empezar a aplicar esta frmula se requiere conocer los valores fj anteo riores. Entonces es indispensable utilizar un mtodo RK el nmero de veces e u necesario. El mtodo RK escogido debe ser de mejor calidad que el mtodo e e de Adams-Bashforth que estamos utilizando. Para nuestro caso podemos utilizar RK4. Ejemplo 7.7. Resolver, por el mtodo de Adams-Bashforth de orden 2, la e ecuacin diferencial o y(1) = 0.7182818 y = 2x2 4x + y

7.8. METODOS MULTIPASO EXPL ICITOS en el intervalo [1, 3], con h = 0.25. Al aplicar el mtodo RK4 dos veces se obtiene: e y1 = 0.3653606 y2 = 0.0182773. Entonces

267

f0 = f (x0 , y0 ) = 1.2817182 f2 = 1.5182773 = 0.3760843

f1 = f (x1 , y1 ) = 1.5096394

y3 = y2 + h(5f0 16f1 + 23f2 )/12 f3 = f (x3 , y3 ) = 1.2510843

y4 = 0.6267238 . . .

xi 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00

y (xi ) 0.7182818 0.3653606 -0.0182773 -0.3760843 -0.6267238 -0.6681548 -0.3706632 0.4320786 1.9534879

y(xi ) 0.7182818 0.3653430 -0.0183109 -0.3703973 -0.6109439 -0.6372642 -0.3175060 0.5176319 2.0855369

En este caso hubo que evaluar 8 veces la funcin para los dos valores de RK4 o y en seguida 6 evaluaciones para un total de 14 evaluaciones de la funcin o f. 3

268

7.

ECUACIONES DIFERENCIALES

2 1 0 1

Figura 7.10: Ejemplo del mtodo de Adams-Bashforth 2 e

MULTIPASO EXPL ICITO: ADAMS-BASHFORTH n 0 1 2 3 4 yi+1 = yi + hfi yi+1 = yi + yi+1 = yi + yi+1 = yi + yi+1 = yi + h (fi1 + 3fi ) 2 h (5fi2 16fi1 + 23fi ) 12 h (9fi3 + 37fi2 59fi1 + 55fi ) 24 h (251fi4 1274fi3 + 2616fi2 720 2774fi1 + 1901fi ) En la anterior tabla se muestran las principales frmulas. All n indica el o grado del polinomio de interpolacin usado. En algunos libros, n est asoo a ciado con nmero de puntos utilizados para la interpolacin (igual al grado u o del polinomio ms uno). Obsrvese que la primera frmula es simplemente a e o el mtodo de Euler. e error
1 2 2 y ()h 5 3 12 y ()h 3 (4) 4 8 y ()h 251 (5) 5 720 y ()h 95 (6) 6 288 y ()h

7.9. METODOS MULTIPASO IMPL ICITOS

269

7.9

Mtodos multipaso impl e citos

En estos mtodos se utiliza un polinomio de interpolacin, el mismo de los e o mtodos expl e citos, pero el intervalo de integracin var o a. Veamos un caso particular. Supongamos que se conocen los valores y0 = y(x0 ), y1 = y(x1 ) y y2 = y(x2 ). Por facilidad para la deduccin, supongamos o que x0 = h, x1 = h y x2 = 2h. Sea p2 (x) el polinomio de grado menor o igual a 2 que interpola a f en los valores 0, h y 2h, es decir, el polinomio pasa por los puntos (0, f0 ), (h, f1 ) y (2h, f2 ), donde fi = f (xi , yi ). Como se vio en la seccin anterior, o 1 (f0 2f1 + f2 )x2 + (3f0 + 4f1 f2 )hx + 2h2 f0 . 2h2

p2 (x) =

El teorema fundamental del clculo integral se usa de la siguiente manera: a

x2 x1

y (x)dx = y(x2 ) y(x1 )


x2

y(x2 ) = y(x1 ) +
x1 2h

y (x)dx f (x, y)dx.

y(x2 ) = y(x1 ) +
h

Si se reemplaza f (x, y) por el polinomio de interpolacin se tiene: o

2h

y(x2 ) y(x1 ) + y(x2 ) y(x1 ) +

p2 (x)dx
h 2h h

1 (f0 2f1 + f2 )x2 + 2h2 (3f0 + 4f1 f2 )hx + 2h2 f0 dx

270

7.

ECUACIONES DIFERENCIALES

y2 = y1 +

7 1 (f0 2f1 + f2 ) h3 + 2 2h 3 3 (3f0 + 4f1 f2 ) h3 + 2h3 f0 2 h y2 = y1 + (f0 + 8f1 + 5f2 ). 12

(7.27)

La anterior igualdad se conoce con el nombre de frmula de Adams-Moulo ton de orden 2 (se utiliza un polinomio de orden 2). Tambin recibe el e nombre de mtodo multipaso impl e cito o mtodo multipaso cerrado de orden e 2. Si los valores y0 , y1 y y2 son exactos, o sea, si y0 = y(x0 ), y1 = y(x1 ) y y2 = y(x2 ), entonces los valores fi son exactos, o sea, f (xi , yi ) = f (xi , y(xi )) y el error est dado por a y(x2 ) = y(x1 ) + h 1 (3) (f0 + 8f1 + 5f2 ) y (z)h4 , z [x0 , x2 ]. 12 24 (7.28)

La frmula (7.27) se escribe en el caso general o h (fi1 + 8fi + 5fi+1 ). (7.29) 12 Para empezar a aplicar esta frmula es indispensable conocer los valores fj o anteriores. Entonces se requiere utilizar un mtodo RK el nmero de veces e u necesario. El mtodo RK escogido debe ser de mejor calidad que el mtodo e e de Adams-Bashforth que estamos utilizando. Para nuestro caso podemos utilizar RK4. yi+1 = yi + Una dicultad ms grande, y espec a ca de los mtodos impl e citos, est dada a por el siguiente hecho: para calcular yi+1 se utiliza fi+1 , pero este valor es justamente f (xi+1 , yi+1 ). Cmo salir de este c o rculo vicioso? Inicialmente 0 , una primera aproximacin, por el mtodo de Euler. Con este se calcula yi+1 o e 1 0 0 valor se puede calcular fi+1 = f (xi+1 , yi+1 ) y en seguida yi+1 . De nuevo se 1 1 2 calcula fi+1 = f (xi+1 , yi+1 ) y en seguida yi+1 . Este proceso iterativo acaba k+1 k cuando dos valores consecutivos, yi+1 y yi+1 , son muy parecidos. Este mtodo recibe tambin el nombre de mtodo predictor-corrector. La e e e frmula queda entonces as o :
k+1 yi+1 = yi +

h k (fi1 + 8fi + 5fi+1 ). 12

(7.30)

7.9. METODOS MULTIPASO IMPL ICITOS El criterio de parada puede ser:


k+1 max{1, |yi |} k+1 k |yi yi |

271

Ejemplo 7.8. Resolver, por el mtodo de Adams-Moulton de orden 2, la e ecuacin diferencial o y = 2x2 4x + y

y(1) = 0.7182818

en el intervalo [1, 3], con h = 0.25 y = 0.0001. Al aplicar el mtodo RK4 una vez, se obtiene: e y1 = 0.3653606 Entonces f0 = f (x0 , y0 ) = 1.2817182

f1 = f (x1 , y1 ) = 1.5096394

Aplicando Euler se obtiene una primera aproximacin de y2 : o


0 y2 = 0.0120493

0 f2 = 1.5120493

Empiezan las iteraciones:


1 y2 = 0.0170487

1 f2 = 1.5170487 2 f2 = 1.5175694 2 y2 = 0.0175694

3 y2 = 0.0176237 = y2

Para calcular y2 se utilizan los valores: f1 = 1.5096394

f2 = 1.5176237.

272

7.

ECUACIONES DIFERENCIALES

Aplicando Euler se obtiene una primera aproximacin de y3 : o


0 y3 = 0.3970296

0 f3 = 1.2720296

Empiezan las iteraciones:


1 y3 = 0.3716132

1 f3 = 1.2466132 2 f3 = 1.2439657 3 f3 = 1.2436899

2 y3 = 0.3689657

3 y3 = 0.3686899

4 y3 = 0.3686612 = y3 . . .

xi 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00

y (xi ) 0.7182818 0.3653606 -0.0176237 -0.3686612 -0.6076225 -0.6315876 -0.3084043 0.5316463 2.1065205

y(xi ) 0.7182818 0.3653430 -0.0183109 -0.3703973 -0.6109439 -0.6372642 -0.3175060 0.5176319 2.0855369

En este caso hubo que evaluar 4 veces la funcin para el valor de RK4 y en o seguida, en cada uno de los otros 7 intervalos, una evaluacin ja ms las o a requeridas al iterar. En este ejemplo hubo, en promedio, 4 por intervalo, para un total de 32 evaluaciones de f . El valor nal y8 es ms exacto que a el obtenido por Adams-Bashforth, pero a costa de ms evaluaciones. 3 a Tericamente, los dos mtodos multipaso de orden 2 tienen un error local del o e mismo orden, O(h4 ), pero el coeciente en el mtodo multipaso expl e cito, 3/8, es nueve veces el coeciente en el error del mtodo impl e cito, 1/24.

7.9. METODOS MULTIPASO IMPL ICITOS

273

2 1 0 1

Figura 7.11: Ejemplo del mtodo de Adams-Moulton 2 e

MULTIPASO IMPL ICITO: ADAMS-MOULTON n 1 2 3 4 yi+1 = yi + yi+1 yi+1 yi+1 h (fi + fi+1 ) 2 h = yi + (fi1 + 8fi + 5fi+1 ) 12 h = yi + (fi2 5fi1 + 19fi + 9fi+1 ) 24 h = yi + (19fi3 + 106fi2 264fi1 720 +646fi + 251fi+1 ) error
1 12 y ()h3 1 24 y (3) ()h4 19 720 y (4) ()h5 27 1440 y (5) ()h6

La tabla anterior contiene las principales frmulas. All n indica el grado o del polinomio de interpolacin usado. Obsrvese que el mtodo de Heun o e e corresponde a una iteracin (una sola) del mtodo multipaso impl o e cito de orden 1.

274

7.

ECUACIONES DIFERENCIALES

7.10

Sistemas de ecuaciones diferenciales

Un sistema de m ecuaciones diferenciales de primer orden se puede escribir de la siguiente forma: dy1 = f1 (x, y1 , y2 , ..., ym ) dx dy2 = f2 (x, y1 , y2 , ..., ym ) dx . . . dym = fm (x, y1 , y2 , ..., ym ) dx

para x0 x b, con las condiciones iniciales


0 y1 (x0 ) = y1 0 y2 (x0 ) = y2 . . . 0 ym (x0 ) = ym .

Utilicemos la siguiente notacin: o y = (y1 , y2 , ..., ym )


0 0 0 y 0 = (y1 , y2 , ..., ym )

f (x, y) = f (x, y1 , y2 , ..., ym ) = ( f1 (x, y1 , ..., ym ), f2 (x, y1 , ..., ym ), ..., fm (x, y1 , ..., ym ) ). De esta manera, el sistema se puede escribir as : y = f (x, y), x0 x b

y(x0 ) = y 0 .

La solucin numrica del sistema de ecuaciones consiste en un conjunto de o e 0 , y 1 , y 2 , ..., y n , vectores y


i i i y i = (y1 , y2 , ..., ym ),

7.10.

SISTEMAS DE ECUACIONES DIFERENCIALES

275

i donde cada yj es una aproximacin: o

i yj yj (xk ).

Los mtodos vistos anteriormente se pueden generalizar de manera inmedie ata. Si se trata de los mtodo RK, entonces los Ki dejan de ser nmeros e u y pasan a ser vectores K i . Para y se utiliza un super ndice para indicar el intervalo, ya que los sub ndices se usan para las componentes del vector. Por ejemplo, las frmulas de RK4 se convierten en: o K 1 = hf (xi , y i ) K 2 = hf (xi + h/2, y i + K 1 /2) K 3 = hf (xi + h/2, y i + K 2 /2) K = hf (xi + h, y + K ) y i+1 = y i + (K 1 + 2K 2 + 2K 3 + K 4 )/6.
4 i 3

(7.31)

Ejemplo 7.9. Resolver el siguiente sistema de ecuaciones por RK4: 2y1 + x3 y2 , 1 x 2 x 3 y2 = y2 x y1 (1) = 1
y1 =

y2 (1) = 1

con h = 0.2. La solucin (exacta) de este sencillo sistema de ecuaciones es: o

y2 (x) = x3 .

y1 (x) = x

276 Para la solucin numrica: o e

7.

ECUACIONES DIFERENCIALES

K 4 = (0.2026222, 0.2793388) y 1 = (1.2006916, 0.5790634)

K 3 = (0.1871036, 0.4413223)

K 2 = (0.2136600, 0.3818182)

K 1 = (0.2, 0.6)

K 4 = (0.2011961, 0.1534542) y 2 = (1.4011269, 0.3647495) . . . y2 (xi ) 1.0 0.5790634 0.3647495 0.2443822 0.1716477 0.1251354 y1 (xi ) -1.0 -1.2 -1.4 -1.6 -1.8 -2.0

K 3 = (0.1912561, 0.2210035)

K 2 = (0.2093988, 0.2004450)

K 1 = (0.2001062, 0.2895317)

xi 1.0 1.2 1.4 1.6 1.8 2.0

y1 (xi ) -1.0 -1.2006916 -1.4011269 -1.6014497 -1.8017156 -2.0019491

y2 (xi ) 1.0 0.5787037 0.3644315 0.2441406 0.1714678 0.125

7.10.1

En Scilab

Consideremos el siguiente sistema de ecuaciones diferenciales: 2y1 + x3 y2 , x 3 y2 = y 2 x y1 (1) = 1


y1 =

y2 (1) = 1. Despues de denir y cargar

7.10.

SISTEMAS DE ECUACIONES DIFERENCIALES function fxy = func43(x, y) fxy = zeros(2,1) fxy(1) = 2*y(1)/x + x^3*y(2) fxy(2) = -3*y(2)/x endfunction

277

se utiliza la misma funcin ode , pero con los parmetros de dimensin o a o adecuada. x0 = 1 y0 = [-1 1] t = (1:0.2:2) yt = ode(y0, x0, t, func43) En este caso, yt es un matriz de dos las. En la la i estn las aproximaa ciones de los valores de yi (tj ). Escribir una funcin en Scilab para un sistema de ecuaciones diferenciales o es casi igual a la funcin para una ecuacin diferencial. A continuacin una o o o versin del mtodo RK4 para sistemas. o e function [Y, X] = RK4Sist(f, x0, y0, xf, n) // Metodo Runge-Kutta 4 para sistema de ecuaciones diferenciales // // y = f(x,y) // y(x0) = y0 // en intervalo [x0, xf] // // x0 es un numero // y0 es un vector columna, digamos p x 1. // La funcion f tiene dos parametros, // x un numero, y un vector columna, // su resultado es un vector columna. // // // // // n = numero de subintervalos. Y sera una matriz con p filas, n+1 columnas. X sera un vector fila de n+1 elementos. Cada columna de Y contendra las aproximaciones de

278

7.

ECUACIONES DIFERENCIALES

// y(x0) y(x0+h) y(x0+2h) ... y(xf) // con h = (xf-x0)/n // X contendra los valores x0 x0+h h = (xf-x0)/n p = size(y0,1) disp(p, p) X = zeros(1,n+1) Y = zeros(p,n+1) X(1) = x0 Y(:,1) = y0 xi = x0 yi = y0 for i=1:n K1 = h*f(xi, yi) K2 = h*f(xi+h/2, yi+K1/2); K3 = h*f(xi+h/2, yi+K2/2); K4 = h*f(xi+h, yi+K3); xi = xi+h yi = yi + (K1 + 2*K2 + 2*K3 + K4)/6 Y(:,i+1) = yi X(i+1) = xi end endfunction

x0+2h ... xf

7.11

Ecuaciones diferenciales de orden superior

Una ecuacin diferencial ordinaria, de orden m, con condiciones iniciales, se o puede escribir de la siguiente manera:

7.11.

ECUACIONES DIFERENCIALES DE ORDEN SUPERIOR

279

y (m) = f (x, y, y , y , ..., y (m1) ), y(x0 ) = y0


y (x0 ) = y0 y (x0 ) = y0 . . .

x0 x b

y (m1) (x0 ) = y0

(m1)

Esta ecuacin diferencial se puede convertir en un sistema de ecuaciones o diferenciales de primer orden, mediante el siguiente cambio de variables: u1 = y u2 = y u3 = y . . . um = y (m1) Entonces la ecuacin diferencial se convierte en el siguiente sistema: o u = u2 1 u = u3 2 u = u4 3 . . . u m1 = um u = f (x, u1 , u2 , ..., um ) m u1 (x0 ) = y0
u2 (x0 ) = y0 u3 (x0 ) = y0 . . .

um (x0 ) = y0 De forma ms compacta, a u(x0 ) = 0 ,

(m1)

u = F (x, u), x0 x b

280

7.
(m1)

ECUACIONES DIFERENCIALES

donde 0 = [y0 y0 y0 ... y0 ]T . Este sistema se puede resolver por los mtodos para sistemas de ecuaciones diferenciales de primer orden. e

Ejemplo 7.10. Resolver la ecuacin diferencial o 4y xy , 1 x 2, x2 y(1) = 3 y = y (1) = 10, por el mtodo RK4, con h = 0.2. e Sean u1 = y, u2 = y . u = u2 1 4u1 xu2 u = , 1 x 2, 2 x2 u1 (1) = 3 u2 (1) = 10. La solucin exacta es y = 4x2 x2 . Al aplicar el mtodo RK4 se obtiene: o e K 1 = (2, 0.4) K 2 = (2.04, 0.7900826) K 3 = (2.0790083, 0.7678437) K 4 = (2.1535687, 1.0270306) u1 = (5.0652642, 10.7571472) . . . xi 1.0 1.2 1.4 1.6 1.8 2.0 u1 (xi ) 3.0 5.0652642 7.3293797 9.8488422 12.65069 15.749173 u2 (xi ) 10.0 10.757147 11.928367 13.287616 14.742141 16.249097 y(xi ) 3.0 5.0655556 7.3297959 9.849375 12.651358 15.75

7.12.

ECUACIONES DIFERENCIALES CON CONDICIONES DE FRONTERA281

7.12

Ecuaciones diferenciales con condiciones de frontera

Una ecuacin diferencial de segundo orden con condiciones de frontera se o puede escribir de la forma y = f (x, y, y ), a x b,

y(a) = ya

(7.32)

y(b) = yb . Esta ecuacin diferencial se puede convertir en un sistema de dos ecuaciones o diferenciales, pero para obtener su solucin numrica se presenta un incono e = y (a). Esta dicultad se supera veniente: se deber conocer el valor ya a mediante el mtodo del disparo (shooting). e
Como no se conoce ya , se le asigna un valor aproximado inicial. Puede ser

ya

yb ya . ba

Con este valor inicial se busca la solucin numrica, hasta obtener o e


y (b) = y (b, ya ).

Este valor deber ser el valor conocido yb . Si no coinciden, es necesario moda icar la suposicin de ya hasta obtener el resultado deseado. Si y (b, ya ) < yb , o entonces se debe aumentar la pendiente inicial del disparo. De manera anloga, si y (b, ya ) > yb , se debe disminuir la pendiente inicial del disparo. a Lo anterior se puede presentar como la solucin de una ecuacin: o o
(ya ) = yb y (b, ya ) = 0.

Esta ecuacin se puede resolver, entre otros mtodos, por el de la secante o o e el de biseccin. o Para facilitar la presentacin del mtodo se considera el problema P (v), o e

282 donde:
v = aproximacin de ya , o

7.

ECUACIONES DIFERENCIALES

n = nmero de intervalos para la solucin numrica, u o e y = (0 , y1 , ..., yn ) = solucin numrica del siguiente problema: y o e y = f (x, y), a x b

y(a) = ya y (a) = v,

P(v)

(v) = yb yn = yb y (b, v).

(7.33)

Se desea encontrar v tal que (v ) = 0. Entonces la solucin numrica de o e ) es la solucin numrica de (7.32). Si se aplica el mtodo de la secante P (v o e e para resolver la ecuacin (v) = 0, el algoritmo es el siguiente: o METODO DEL DISPARO datos: f , a, b, ya , yb , , maxit, 0 r = max{1, |yb |} v0 = (yb ya )/(b a) y = solucin numrica de P(v0 ) o e 0 = y b yn si |0 | r ent parar v1 = v0 + 0 /(b a) y = solucin numrica de P(v1 ) o e 1 = y b yn si |1 | r ent parar para k = 1, ...,maxit = 1 0 si || 0 ent parar v2 = v1 1 (v1 v0 )/ y = solucin numrica de P(v2 ) o e 2 = y b yn si |2 | r ent parar v 0 = v 1 , v1 = v2 , 0 = 1 , 1 = 2 n-para OJO: no hubo convergencia.

7.12.

ECUACIONES DIFERENCIALES CON CONDICIONES DE FRONTERA283

Ejemplo 7.11. Resolver la ecuacin diferencial o 2 cos(2x) y 4x2 y , 0.2 x 0.7 x2 y(0.2) = 0.3894183 y = y(0.7) = 0.9854497, con h = 0.1 y utilizando RK4 para la solucin del sistema de ecuaciones o diferenciales asociado. La primera aproximacin de y (a) es o v0 = (0.9854497 0.3894183)/(0.7 0.2) = 1.19206278 Al resolver numricamente el problema P(1.19206278) se obtiene: e y5 = 0.94935663. El disparo result muy bajo. o 0 = 0.03609310 v1 = 1.19206278 + 0.03609310/(0.7 0.5) = 1.26424897 Al resolver numricamente el problema P(1.26424897) se obtiene: e y5 = 0.95337713 1 = 0.03207260 Primera iteracin del mtodo de la secante: o e v2 = 1.84009748 Al resolver numricamente el problema P(1.84009748) se obtiene: e y5 = 0.98544973

Este disparo fue preciso (no siempre se obtiene la solucin con una sola o iteracin de la secante). El ultimo vector y es la solucin. La solucin o o o exacta es y = sen(2x).

284 xi 0.2 0.3 0.4 0.5 0.6 0.7

7. y (xi ) 0.3894183 0.5647741 0.7174439 0.8415217 0.9320614 0.9854497

ECUACIONES DIFERENCIALES y(xi ) 0.3894183 0.5646425 0.7173561 0.8414710 0.9320391 0.9854497

7.13

Ecuaciones diferenciales lineales con condiciones de frontera

Una ecuacin diferencial lineal de segundo orden con condiciones de frontera o se puede escribir de la forma p(x)y + q(x)y + r(x)y = s(x), a x b, y(a) = ya y(b) = yb . Obviamente esta ecuacin se puede resolver por el mtodo del disparo, o e pero, dada la linealidad, se puede resolver usando aproximaciones numricas e (diferencias nitas) para y y y . El intervalo [a, b] se divide en n 2 subintervalos de tamao h = (b a)/n. n Los puntos xi estn igualmente espaciados (xi = a + ih). Se utilizan las a siguientes aproximaciones y la siguiente notacin: o
yi

(7.34)

yi1 2yi + yi+1 h2 yi1 + yi+1 yi 2h pi := p(xi ) qi := q(xi ) ri := r(xi ) si := s(xi ).

Entonces: pi yi1 + yi+1 yi1 2yi + yi+1 + qi + ri yi = si , i = 1, ..., n 1. h2 2h

7.13.

ECUACIONES LINEALES CON CONDICIONES DE FRONTERA285

Es decir, se tiene un sistema de n 1 ecuaciones con n 1 incgnitas, y1 , o y2 , ..., yn1 . yi1 + yi+1 2h2 ri yi 2h2 si yi1 2yi + yi+1 + hqi + = 2h2 2h2 2h2 2h2 2 (2pi hqi )yi1 + (4pi + 2h ri )yi + (2pi + hqi )yi+1 = 2h2 si 2pi Este sistema es tridiagonal. d1 u1 l1 d2 u2 l2 d3 u3 donde di = 4pi + 2h2 ri , li = 2pi+1 hqi+1 , i = 1, ..., n 1, y1 y2 y3 1 2 3

ln3 dn2 ln2 dn1

= , yn2 n2 un2 yn1 n1

(7.35)

ui = 2pi + hqi ,

1 = 2h2 s1 (2p1 hq1 )ya , i = 2h2 si , n1 = 2h2 sn1 (2pn1 + hqn1 )yb .

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

i = 1, ..., n 2,

Ejemplo 7.12. Resolver por diferencias nitas la ecuacin diferencial o x2 y + y + 4x2 y = 2 cos(2x), 0.2 x 0.7 y(0.2) = 0.3894183 y(0.7) = 0.9854497, con n = 5, es decir, h = 0.1.

286

7.

ECUACIONES DIFERENCIALES

Al calcular los coecientes del sistema tridiagonal se obtiene: d1 = 4p1 + 2h2 r1

u1 = 2p1 + hq1

d1 = 4(0.3)2 + 2(0.1)2 4(0.3)2 = 0.3528

u1 = 2(0.3)2 + 0.1(1) = 0.28 l1 = 2(0.4)2 0.1(1) = 0.22 u = (0.28, 0.42, 0.6), l1 = 2p2 hq2

d = (0.3528, 0.6272, 0.98, 1.4112), l = (0.22, 0.4, 0.62),

= (0.00186, 0.0278683, 0.0216121, 0.7935745). Su solucin es o (y1 , y2 , y3 , y4 ) = (0.5628333, 0.7158127, 0.8404825, 0.9315998). xi 0.2 0.3 0.4 0.5 0.6 0.7 y (xi ) 0.3894183 0.5628333 0.7158127 0.8404825 0.9315998 0.9854497 y(xi ) 0.3894183 0.5646425 0.7173561 0.8414710 0.9320391 0.9854497

Ejercicios
Escoja varias ecuaciones diferenciales (o sistemas de ecuaciones diferenciales) de las que conozca la solucin exacta. Fije el intervalo de o trabajo. Determine qu mtodos puede utilizar. Aplique varios de e e ellos. Compare los resultados. Cambie el tamao del paso. Compare n de nuevo. Un procedimiento adecuado para obtener las ecuaciones diferenciales consiste en partir de la solucin (una funcin cualquiera) y construir o o la ecuacin diferencial. o

7.13.

ECUACIONES LINEALES CON CONDICIONES DE FRONTERA287 La aplicacin de los mtodos se puede hacer de varias maneras: a o e mano con ayuda de una calculadora; parte a mano y parte con ayuda de software para matemticas como Scilab o Matlab; haciendo un a programa, no necesariamente muy sosticado, para cada mtodo. e A continuacin se presentan algunos ejemplos sencillos. o

7.1 y = ex y(1) = 0. Su solucin es y = ex o 7.2


y1 = 2y1 + y2 + 3 y2 = 4y1 y2 + 9

y x

ex x

y1 (0) = 3 y2 (0) = 5.

Su solucin es y1 (t) = e2t 2, y2 (t) = 4e2t + 1. o 7.3 2 y x(2 x) y(1) = 2 y =

y (1) = 1.

Su solucin es y = 2 ln(2 x) x 1. Tenga especial cuidado con el o intervalo de trabajo. 7.4 y + y + y + y = 4ex y(0) = 1 y (0) = 2 y (0) = 1 y (0) = 0. Su solucin es y = ex + sen(x). o

288 7.5

7.

ECUACIONES DIFERENCIALES

y(0) = 1

y y = e2x sen2 (x)

y() = e . Su solucin es y = ex + sen(x). o 7.6 y + ex y + y = 2ex + 1 + ex cos(x) y(0) = 1 y() = e . Su solucin es y = ex + sen(x). o

Ecuaciones diferenciales parciales


8.1 Generalidades

Sea u = u(x, y) una funcin de dos variables con derivadas parciales de orden o dos. Una ecuacin diferencial se llama cuasi-lineal si es de la forma o Auxx + Buxy + Cuyy = (x, y, u, ux , uy ), dosnde A, B y C son constantes. Hay tres tipos de ecuaciones cuasi-lineales. el ptica parablica si B 2 4AC = 0, o si B 2 4AC < 0,

hiperblica si B 2 4AC > 0. o Un ejemplo t pico de una ecuacin el o ptica es la ecuacin de Poisson o 2 u = uxx + uyy = f (x, y). Un caso particular es la ecuacin de Laplace o uxx + uyy = 0. Un ejemplo t pico de una ecuacin parablica es la ecuacin unidimensional o o o del calor ut = c2 uxx . 289

290

8. ECUACIONES DIFERENCIALES PARCIALES

Un ejemplo t pico de una ecuacin hiperblica es la ecuacin de onda o o o utt = c2 uxx . Hay dos grupos importantes de mtodos numricos para EDP: diferencias e e nitas y elementos nitos. En el primero las derivadas parciales se aproximan por medio de diferencias nitas. Las tres secciones siguientes tratan sobre mtodos de diferencias nitas. e

8.2

El pticas: ecuacin de Poisson o

Consideraremos un caso particular cuando el dominio es un rectangulo, = {(x, y) : a < x < b, c < y < d},

= frontera de .

La ecuacin de Poisson con condiciones de frontera de Dirichlet es la sio guiente: u(x, y) = f (x, y) en , (8.1)

u(x, y) = g(x, y) en .

Hay condiciones de frontera que utilizan derivadas con respecto al vector normal en la frontera. Estas condiciones se llaman condiciones de Neumann. Resolver numricamente la ecuacin diferencial consiste en obtener aproxie o maciones de u(xi , yj ), donde los puntos (xi , yj ) estn en . De manera ms a a precisa, sean nx Z, nx 1, ny Z, ny 1, ba , hx = nx + 1 dc hy = , ny + 1

xi = a + ihx , i = 1, ..., nx , yj = c + jhy , j = 1, ..., ny , uij u(xi , yj ), i = 1, ...nx , j = 1, ..., ny .

8.2. EL IPTICAS: ECUACION DE POISSON

291

d yny yj hy ui,j1 y1 c hx a x1 x2 xi xnx b ui,j+1 ui1,j uij ui+1,j

Figura 8.1: Divisin del rectngulo o a Usando la aproximacin o (t) se obtiene u(xi , yj ) Sea = hx /hy . ui,j+1 2uij + ui,j1 ui+1,j 2uij + ui1,j + 2 h2 h2 x x ui+1,j + ui1,j + 2 ui,j+1 + 2 ui,j1 (2 + 2 2 )uij u(xi , yj ) . h2 x u(xi , yj ) En el caso particular cuando h = hx = hy ui+1,j + ui1,j + ui,j+1 ui,j1 4uij . (8.4) h2 Al aplicar la aproximacin (8.3) en (8.1), y cambiando el signo aproximacin o o por el signo de igualdad, se obtiene u(xi , yj ) ui+1,j ui1,j 2 ui,j+1 2 ui,j1 + (2 + 2 2 )uij = h2 fij , x (8.5) ui+1,j 2uij + ui1,j ui,j+1 2uij + ui,j1 + . 2 hx h2 y (8.2) (t + h) 2(t) + (t h) h2

(8.3)

292

8. ECUACIONES DIFERENCIALES PARCIALES

donde fij = f (xi , yj ) son valores conocidos. Al considerar los nx ny puntos de la malla se obtiene un sistema de nx ny ecuaciones con nx ny incgnitas. o Para simplicar la notacin, sean o

n = nx m = ny N = nm h = hx h = hy = 2 = 2 + 2 2 j = g(a, yj ) j = g(b, yj ) i = g(xi , c) i = g(xi , d)

Entonces

ui+1,j ui1,j ui,j+1 ui,j1 + uij = h2 fij

(8.6)

Utilizaremos el siguiente orden para los puntos: primero los puntos de la primera la (la la horizontal inferior), en seguida los puntos de la segunda la, ..., y nalmente los puntos de la la superior. En cada la el orden es el usual, de izquierda a derecha. En este orden se plantean la ecuaciones: la ecuacin en (x1 , y1 ), en (x2 , y1 ), o

8.2. EL IPTICAS: ECUACION DE POISSON

293

..., en (xn , y1 ), en (x1 , y2 ), ... Para las variables utilizaremos el mismo orden 1 = u11 2 = u21 . . . n = un1 n+1 = u12 n+2 = u22 . . . 2n = un2 . . . N = unm Con el anterior orden para las variables la igualdad (8.6) se reescribe as : ui,j1 ui1,j + uij ui+1,j ui,j+1 = h2 fij El sistema de N ecuaciones con N incgnitas se escribe simplemente: o A = v. (8.7)

En alguno de los siguientes cuatro casos: i = 1, i = n, j = 1 y j = m, alguno(s) de los valores ukl corresponde al valor de u en la frontera. En este caso se utilizan las condiciones de frontera, es decir, los valores de g en el punto de frontera espec co. Como son valores conocidos, entonces pasan al lado derecho de la igualdad. A continuacin estn algunas de las igualdades. o a Al plantear la ecuacin en el punto (x1 , y1 ) se obtiene: o u10 u01 + u11 u21 u12 = h2 f11 . Es necesario cambiar u10 por el valor conocido 1 y cambiar u01 por el valor conocido 1 . Utilizando la notacin k se obtiene: o 1 2 n+1 = h2 f11 + 1 + 1 . En el punto (x2 , y1 ) se obtiene: u20 u11 + u21 u31 u22 = h2 f21 1 + 2 3 n+2 = h2 f21 + 2 .

294

8. ECUACIONES DIFERENCIALES PARCIALES

En el punto (x3 , y1 ) se obtiene: u30 u21 + u31 u41 u32 = h2 f31 En el punto (xn , y1 ) se obtiene: un0 un1,1 + un1 un+1,1 un2 = h2 fn1 En el punto (x1 , y2 ) se obtiene: u11 u02 + u12 u22 u13 = h2 f12 En el punto (x3 , y2 ) se obtiene: 3 n+2 + n+3 n+4 2n+3 = h2 f32 . Si n = nx = 3 y m = ny = 4, la matriz A tiene la siguiente forma: 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 u31 u22 + u32 u42 u33 = h2 f32 1 + n+1 n+2 2n+1 = h2 f12 + 2 . n1 + n 2n = h2 fn1 + n + 1 . 2 + 3 4 n+3 = h2 f31 + 3 .

Se puede observar que A es una matriz simtrica, tridiagonal por bloques, e de tamao m m bloques, donde cada bloque es de tamao n n. n n D In 0 In D In 0 In D . A= D In In D

A=

8.2. EL IPTICAS: ECUACION DE POISSON D es una matriz simtrica tridiagonal de tamao n n. e n 1 0 1 1 0 1 . D= 1 1


n j=1 j=i

295

A es de diagonal positiva dominante. En la mayor de las las a |aij | = 2 + 2 = aii .

En algunas las

n j=1 j=i

|aij | < aii .

Para resolver A = v se puede utilizar el mtodo de Gauss si m y n son e pequeos. Si N es muy grande no se puede almacenar completamente A n como matriz densa y, adems, el tiempo de clculo se vuelve muy grande. a a Hay varios mtodos que pueden ser ms ecientes para N grande, algunos e a son espec cos para la ecuacin de Poisson en un rectngulo. Por ejemplo se o a puede utilizar el mtodo de Gauss Seidel o el de sobrerrelajacin. Estos dos e o mtodos se pueden implementar sin almacenar los elementos no nulos de A. e Conociendo m, n, y se tiene toda la informacin sobre A. Tambin se o e pueden utilizar mtodos basados en la FFT (Fast Fourier Transform). Otros e mtodos son: el de reduccin c e o clica, el mtodo FACR (Fourier Analysis e Cyclic Reduction) y el mtodo de doble barrido de Cholesky. e Ejemplo 8.1. Resolver la ecuacin diferencial o u = 6x + 12y, 1 < x < 13, 2 < y < 7

u(a, y) = 1 + 2y 3

u(b, y) = 2197 + 2y 3 u(x, c) = 16 + x3 u(x, d) = 686 + x3 con nx = 3 y ny = 4.

296

8. ECUACIONES DIFERENCIALES PARCIALES

Entonces hx = 3, hy = 1, = 9, = 20, v = [235 2529 10531 519 810 1353 505 918 1367 6319 8235 16615]T . Al resolver el sistema 12 12 se obtiene u = [118 397 1054 192 471 1128 314 593 1250 496 775 1432]T . La ecuacin diferencial es muy sencilla, su solucin es u(x, y) = x3 + 2y 3 . o o En este caso, la solucin numrica obtenida es exacta. 3 o e

8.3

Parablicas: ecuacin del calor o o

La ecuacin unidimensional del calor es: o u 2u (x, t) = c2 2 (x, t), t x con las condiciones u(0, t) = v(t), u(L, t) = w(t), u(x, 0) = f (x), t0 (8.9) (8.10) (8.11) 0 < x < L, 0 < t , (8.8)

t0

0 x L.

La funcin u(x, t) indica la temperatura de una barra uniforme, en la posicin o o x y en el tiempo t. Generalmente las funciones v(t) y w(t) son constantes, es decir, se supone que la temperatura en los extremos de la barra es constante para todo tiempo t. De manera anloga a las ecuaciones el a pticas, se coloca en la regin o =]0, L[]0, +[ una malla determinada por los valores xi = i hx , tj = j ht , donde hx = L m i = 0, 1, 2, ..., m j = 0, 1, 2, ...

8.3. PARABOLICAS: ECUACION DEL CALOR

297

t3 t2 t1 0 0

u13 u12 u11 x1 u21 x2 um1,1 xm1 L

Figura 8.2: Malla para la ecuacin del calor o

El objetivo es encontrar valores uij , aproximaciones de los valores u(xi , tj ). Como se conoce la funcin u en la frontera de , entonces se conocen los o valores: u00 , u10 , ..., um0 , u01 , u02 , ..., u0j , ... um1 , um2 , ..., umj , ... Los valores buscados son: u11 , u21 , ..., um1,1 , u12 , u22 , ..., um1,2 , u13 , u23 , ..., um1,3 , . . . t = t1 t = t2 t = t3 t = 0, x = 0, x = L.

Cada uno de los paquetes anteriores tiene m 1 valores correspondientes a un tiempo jo tj . Aunque el problema est plantedao para 0 < t < +, obviamente no se a

298

8. ECUACIONES DIFERENCIALES PARCIALES

puede ir hasta innito. Entonces se toma un valor T adecuado y 0tT T ht = n tj = j ht , j = 0, 1, 2, ..., n. (8.12) (8.13) (8.14)

8.3.1

Mtodo expl e cito

La segunda derivada 2 u/x2 se aproxima como en el caso el ptico, la derivada u/t se aproxima hacia adelante:

ui+1,j 2uij + ui1,j 2u (xi , tj ) 2 x h2 x ui,j+1 uij u (xi , tj ) t ht Remplazando en (8.8) se obtiene

(8.15) (8.16)

ui+1,j 2uij + ui1,j ui,j+1 uij = c2 ht h2 x 2h c t c2 ht 2c2 ht ui,j+1 = 2 ui1,j + 1 uij + 2 ui+1,j hx h2 hx x ui,j+1 = ui1,j + uij + ui+1,j = c2 ht h2 x

(8.17) (8.18) (8.19)

= 1 2.

En la frmula (8.15) el error es del orden de O(h2 ), en (8.16) el error es del o x orden de O(ht ). El error en (8.17) es del orden de (ht + h2 ). x Los valores usados en (8.17) forman la molcula: e ui,j+1

ui1,j

uij

ui+1,j

8.3. PARABOLICAS: ECUACION DEL CALOR

299

Para calcular los valores u11 , u21 , ..., um1,1 se necesitan valores uk0 , pero estos son conocidos por corresponder a la condicin (8.11). Entonces los o valores u11 , u21 , ..., um1,1 , se calculan sin ningn problema. u Para calcular los valores u12 , u22 , ..., um1,2 se necesitan los valores u01 , u11 , u21 , ..., um1,1 , um1 . El primero y el ultimo estn dados por las condiciones a (8.9) y (8.10); los otros se acaban de calcular. Despus, de manera semejante, e se calculan los valores ui3 y as sucesivamente. Ejemplo 8.2. Aplicar las frmulas anteriores a la ecuacin diferencial o o u 2 2u (x, t) = (x, t), t 9 x2 con las condiciones u(0, t) = 5, t 0 u( , t) = 5, t 0 3 u(x, 0) = sen(3x) + 5, con m = 10 y n = 50. La solucin exacta de la ecuacin diferencial es o o u(x, t) = e2t sen(3x) + 5 . Al aplicar las frmulas se obtiene: o hx = /30 = 0.1047198 ht = 0.04 = 0.8105695 = 0.6211389 Para empezar, los valores u00 , u10 , u20 , ..., u10,0 son: 5, 5.309017, 5.5877853, 5.809017, 5.9510565, 6, 5.9510565, 5.809017, 5.5877853, 5.309017, 5. Para t = t1 = 0.04 son datos: u01 = 5, u10,0 = 5. u11 = u00 + u10 + u20 u11 = 5.2844983 u21 = u10 + u20 + u30 u21 = 5.5411479 u91 = u80 + u90 + u10,0 u91 = 5.2844983 0<x< , 0<t2 3

0x

. 3

300 Para t = t2 = 0.08

8. ECUACIONES DIFERENCIALES PARCIALES

u12 = u01 + u11 + u21 u12 = 5.261925 En la tabla siguiente aparecen los valores exactos u(xi , 2) y los valores obtenidos ui,50 . 5.0000000 5.0056598 5.0107657 5.0148177 5.0174192 5.0183156 5.0174192 5.0148177 5.0107657 5.0056598 5.0000000 5.0000000 9.2699374 3.1030622 16.178842 8.1110307 18.817809 8.1110307 16.178842 3.1030622 9.2699374 5.0000000

Se observa que los resultados obtenidos por las frmulas no son buenos. Pero o si se utiliza n = 100 s lo son. En la tabla siguiente estn los valores tericos, a o los obtenidos con n = 100 y los errores: 5.000000 5.005660 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000 5.000000 5.005394 5.010261 5.014123 5.016602 5.017456 5.016602 5.014123 5.010261 5.005394 5.000000 0.000000 0.000266 0.000505 0.000695 0.000817 0.000859 0.000817 0.000695 0.000505 0.000266 0.000000

El ejemplo anterior muestra resultados malos con n = 50 y bastante buenos con n = 100. Esto tiene una razn: el mtodo con las frmulas (8.17) es a o e o veces estable, a veces inestable (los errores de redondeo o truncamiento se

8.3. PARABOLICAS: ECUACION DEL CALOR

301

propagan exponencialmente). Este mtodo es condicionalmente estable (ver e [BuF85]). Si c2 ht 1 (8.20) h2 2 x el mtodo es estable. e Fcilmente se comprueba que, en el ejemplo anterior, a c2 ht = 0.8105695 h2 x c2 ht = 0.4052847 h2 x si n = 50 si n = 100

8.3.2

Mtodo impl e cito

La derivada u/t se aproxima hacia atrs: a ui,j ui,j1 u (xi , tj ) t ht 2u ui+1,j 2uij + ui1,j (xi , tj ) 2 x h2 x Remplazando en (8.8) se obtiene ui+1,j 2uij + ui1,j ui,j ui,j1 = c2 ht h2 x Si queremos calcular los valores ukj , para t = tj , y conocemos los valores para t = tj1 , entonces agrupamos as : c2 ht c2 ht ui1,j + 1 + 2 h2 hx x uij c2 ht ui+1,j = ui,j1 . h2 x

(8.21) (8.22)

De manera ms compacta: a ui1,j + uij ui+1,j = ui,j1 = (8.23) (8.24) (8.25)

c2 ht h2 x = 1 + 2.

302

8. ECUACIONES DIFERENCIALES PARCIALES

La frmula (8.23), al igual que en el mtodo expl o e cito, tiene un error de 2 ). orden O(ht + hx Los valores usados en (8.23) forman la molcula: e ui1,j ui,j ui+1,j

ui,j1 Al utilizar (8.23) para los m 1 puntos (x1 , tj ), (x2 , tj ), ..., (xm1 , tj ), se obtiene el siguiente sistema de ecuaciones: u1j 0 0 u2j 0 u3j (8.26)

0 0 0 0 0 0

... ... ...

um1,j

u1,j1 + u0j u2,j1 u3,j1

um1,j1 + umj

Este sistema tridiagonal se puede resolver por cualquier mtodo, pero es ms e a eciente resolverlo por un mtodo espec e co para sistemas tridiagonales, ver seccin (2.13). Adems, como la matriz del sistema es la misma para todas o a las iteraciones, entonces la factorizacin LU tridiagonal es la misma para o todas las iteraciones y se calcula unicamente una vez. As en cada iteracin , o se resuelve el sistema conociendo ya la factorizacin LU . o Los valores u0j y umj estn dados por los valores v(tj ) y w(tj ) provenientes a de las condiciones de frontera. Ejemplo 8.3. Aplicar este mtodo a la misma ecuacin diferencial e o u 2 2u (x, t) = (x, t), t 9 x2 con las condiciones u(0, t) = 5, t 0 u( , t) = 5, t 0 3 u(x, 0) = sen(3x) + 5, 0<x< , 0<t2 3

0x

. 3

8.3. PARABOLICAS: ECUACION DEL CALOR con m = 10 y n = 50. Al aplicar las frmulas se obtiene: o hx = /30 = 0.1047198 ht = 0.04 = 0.8105695 = 2.6211389

303

Para empezar, los valores u00 , u10 , u20 , ..., u10,0 son: 5, 5.309017, 5.5877853, 5.809017, 5.9510565, 6, 5.9510565, 5.809017, 5.5877853, 5.309017, 5. Los valores y denen la matriz del sistema (8.26) para todas las iteraciones. Para t = t1 = 0.04, los trminos independientes son: 9.3618643, e 5.5877853, 5.809017, 5.9510565, 6, 5.9510565, 5.809017, 5.5877853, 9.3618643 . La solucin del sistema es : 5.2863007, 5.5445763, 5.749545, 5.8811429, o 5.9264885, 5.8811429, 5.749545, 5.5445763, 5.2863007 . Estos valores corresponden a u11 , u21 , ..., u91 . La siguiente tabla muestra, para t = 2, los valores tericos, los valores o obtenidos por el mtodo y las diferencias: e 5.000000 5.005660 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000 5.000000 5.006792 5.012919 5.017781 5.020903 5.021979 5.020903 5.017781 5.012919 5.006792 5.000000 0.000000 -0.001132 -0.002153 -0.002963 -0.003484 -0.003663 -0.003484 -0.002963 -0.002153 -0.001132 0.000000

Si se considera n = 100, los valores para t = 2 son: 5.000000 5.005660 5.010766 5.014818 5.017419 5.000000 5.006315 5.012011 5.016532 5.019434 0.000000 -0.000655 -0.001245 -0.001714 -0.002015

304 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000

8. ECUACIONES DIFERENCIALES PARCIALES 5.020434 5.019434 5.016532 5.012011 5.006315 5.000000 -0.002119 -0.002015 -0.001714 -0.001245 -0.000655 0.000000

8.3.3

Mtodo de Crank-Nicolson e

De acuerdo con las frmulas (6.29) y (6.30) el valor o = uij ui,j1 ht

u se puede considerar como la aproximacin de o (xi , tj ) o bien como la t u aproximacin de o (xi , tj1 ). Es decir, t uij ui,j1 ht 2 u u (xi , tj1 ) = (xi , ), [tj1 , tj ], t ht 2 t2 uij ui,j1 ht 2 u u (xi , tj ) = + (xi , ), [tj1 , tj ]. t ht 2 t2 En ambos casos el error es del orden de O(ht ). El mismo valor puede ser interpretado de una tercera manera usando (6.32): uij ui,j1 h2 3 u u (xi , tj1 + ht /2) = t (xi , ), t ht 24 t3 [tj1 , tj ],

El valor tj1 + ht /2, que ser denotado por tj1/2 , es el punto medio entre a tj1 y tj . Al plantear la ecuacin diferencial en el punto (xi , tj1/2 ) tenemos: o 2u u (xi , tj1/2 ) = c2 2 (xi , tj1/2 ) t x Ahora remplazaremos ximaciones de u 2u por y (xi , tj1/2 ) por el promedio de aprot x2

2u en dos puntos vecinos: x2

uij ui,j1 c2 = ht 2 uij ui,j1 c2 = ht 2

2u 2u (xi , tj1 ) + 2 (xi , tj ) x2 x ui1,j1 2ui,j1 + ui+1,j1 ui1,j 2uij + ui+1,j + h2 h2 x x

8.3. PARABOLICAS: ECUACION DEL CALOR

305

Esta frmula tiene un error de orden O(h2 +h2 ). Ahora agruparemos dejando o x t a izquierda los valores buscados, t = tj , y a derecha los que se suponen conocidos, t = tj1 :

ui1,j + uij ui+1,j = ui1,j1 + ui,j1 + ui+1,j1 = = 2 =1+ =1 La molcula correspondiente a (8.27) es: e ui1,j ui,j ui+1,j c2 ht h2 x

(8.27) (8.28) (8.29) (8.30) (8.31)

ui1,j1 ui,j1 ui+1,j1 Al utilizar (8.27) para i = 1, 2, ..., m 1 se obtiene el sistema tridiagonal, que se puede resolver de manera eciente: 0 0 0 0 0 0 ... ... ... 0 u1j 0 u2j 0 u3j

u0,j1 + u1,j1 + u2,j1 + u0j u1,j1 + u2,j1 + u3,j1 u2,j1 + u3,j1 + u4,j1

um1,j

(8.32)

um2,j1 + um1,j1 + um,j1 + umj

Ejemplo 8.4. Resolver la misma ecuacin diferencial de los dos ejemplos o anteriores por el mtodo de Crank-Nicolson, con m = 10, T = 2, n = 50. e

306

8. ECUACIONES DIFERENCIALES PARCIALES

hx = 0.1047198 ht = 0.04 = 0.8105695 = 0.405284 = 1.8105695 = 0.1894305 Para empezar, los valores u00 , u10 , u20 , ..., u10,0 son: 5, 5.309017, 5.5877853, 5.809017, 5.9510565, 6, 5.9510565, 5.809017, 5.5877853, 5.309017, 5. Los valores y denen la matriz del sistema (8.32) para todas las iteraciones. Para t = t1 = 0.04, los trminos independientes son: 7.3231813, e 5.5644666, 5.7769216, 5.9133261, 5.9603279, 5.9133261, 5.7769216, 5.5644666, 7.3231813 . La solucin del sistema es : 5.2854339, 5.5429275, 5.7472756, 5.8784752, o 5.9236835, 5.8784752, 5.7472756, 5.5429275, 5.2854339. Estos valores corresponden a u11 , u21 , ..., u91 . La siguiente tabla muestra, para t = 2, los valores tericos, los valores o obtenidos por el mtodo y las diferencias: e 5.000000 5.005660 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000 5.000000 5.005836 5.011101 5.015280 5.017962 5.018887 5.017962 5.015280 5.011101 5.005836 5.000000 0.000000 -0.000176 -0.000336 -0.000462 -0.000543 -0.000571 -0.000543 -0.000462 -0.000336 -0.000176 0.000000

Si se considera n = 100, los valores para t = 2 son: 5.000000 5.005660 5.000000 5.005845 0.000000 -0.000186

8.3. PARABOLICAS: ECUACION DEL CALOR 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000 5.011119 5.015304 5.017990 5.018916 5.017990 5.015304 5.011119 5.005845 5.000000 -0.000353 -0.000486 -0.000571 -0.000601 -0.000571 -0.000486 -0.000353 -0.000186 0.000000

307

Los resultados obtenidos por el mtodo de Crank-Nicolson con n = 50 son e mejores que los obtenidos con el mtodo impl e cito. Los resultados obtenidos con el mtodo de Crank-Nicolson con n = 100 (h2 = 0.0004, h2 = 0.0109662, e t x h2 + h2 = 0.0113662), no mejoran (empeoran ligeramente) los obtenidos con x t n = 50 (h2 = 0.0016, h2 = 0.0109662, h2 + h2 = 0.0125662). En este caso t x t x el orden del error depende fundamentalmente de hx . Si se utiliza el mtodo e de Crank-Nicolson con m = 20 y n = 50 (h2 = 0.0016, h2 = 0.0027416, x t h2 + h2 = 0.0043416) los resultados mejoran notablemente: x t 5.000000 5.002865 5.005660 5.008315 5.010766 5.012951 5.014818 5.016319 5.017419 5.018090 5.018316 5.018090 5.017419 5.016319 5.014818 5.012951 5.010766 5.008315 5.005660 5.002865 5.000000 5.000000 5.002883 5.005694 5.008366 5.010831 5.013030 5.014908 5.016419 5.017526 5.018201 5.018428 5.018201 5.017526 5.016419 5.014908 5.013030 5.010831 5.008366 5.005694 5.002883 5.000000 0.000000 -0.000018 -0.000035 -0.000051 -0.000066 -0.000079 -0.000091 -0.000100 -0.000107 -0.000111 -0.000112 -0.000111 -0.000107 -0.000100 -0.000091 -0.000079 -0.000066 -0.000051 -0.000035 -0.000018 0.000000

308

8. ECUACIONES DIFERENCIALES PARCIALES

8.4

Hiperblicas: ecuacin de onda o o

Consideramos la siguiente ecuacin o 2u 2u (x, t) = c2 2 (x, t), t2 x con las condiciones u(0, t) = a, u(L, t) = b, t 0, 0 x L, (8.34) (8.35) (8.36) (8.37)

0 < x < L, 0 < t ,

(8.33)

u(x, 0) = f (x), u (x, 0) = g(x), t

t 0,

0 x L.

Esta ecuacin describe el movimiento en el tiempo de una cuerda vibrante, o de longitud L, ja en los extremos y de la que se conoce la posicin inicial o y la velocidad inicial. Generalmente los valores constantes a y b son iguales y nulos.

8.4.1

Mtodo expl e cito

La regin es la misma de la ecuacin del calor y se divide exactamente de o o la misma forma. Sea T un tiempo adecuado: hx = L m T ht = n xi = i hx , tj = j ht ,

i = 0, 1, 2, ..., m j = 0, 1, 2, ..., n.

Se desea conocer los valores uij , buenas aproximaciones de u(xi , tj ). Se utiliza la ecuacin diferencial en el punto (xi , tj ): o 2u 2u (xi , tj ) = c2 2 (xi , tj ) 2 t x (8.38)

8.4. HIPERBOLICAS: ECUACION DE ONDA

309

Aproximando las segundas derivadas por diferencias nitas en el punto (xi , tj ) se obtiene: ui1,j 2uij + ui+1,j ui,j1 2uij + ui,j+1 = c2 . 2 h2 ht x Si se suponen conocidos los valores para t = tj y para t = tj1 , entonces se puede obtener ui,j+1 : ui,j+1 = uij + (ui1,j + ui+1,j ) ui,j1 = c2 h2 t h2 x (8.39) (8.40) (8.41)

= 2 2 La molcula es: e ui,j+1 ui1,j uij ui,j1 ui+1,j

a La frmula (8.39), con error de orden O(h2 +h2 ), se puede aplicar fcilmente, o t x salvo para la obtencin de los valores ui1 ya que ser necesario conocer los o a valores ui,1 . Aproximaciones de estos valores se obtienen utilizando las condiciones (8.37) sobre la velocidad inicial, mediante la siguiente aproximacin cuyo error es del orden de O(h2 ), o t gi = g(xi ) ui,1 ui1 ui,1 , 2ht = ui1 2ht gi ,

(8.42)

Remplazando en (8.39) para j = 0 y teniendo en cuenta que uk0 = fk = f (xk ), 2ui1 = fi + (fi1 + fi+1 ) + 2ht gi ui1 = fi + (fi1 + fi+1 ) + ht gi , 2 2 ui1 = fi + (fi1 + fi+1 ) (ui1 2ht gi ) i = 1, 2, ..., m 1 (8.43)

Una vez calculados los valores ui1 por medio de (8.43), se utiliza (8.39) para j = 1, 2, ..., n, teniendo en cuenta que u0j = a y umj = b.

310

8. ECUACIONES DIFERENCIALES PARCIALES

Ejemplo 8.5. Resolver la ecuacin diferencial o 2u 2u (x, t) = 3 2 (x, t), t2 x con las condiciones u(0, t) = 0, t 0,

0 < x < 2, 0 < t ,

u(2, t) = 0, t 0, 1 u(x, 0) = x(2 x), 0 x 2, 4 u (x, 0) = 0, 0 x 2, t utilizando T = 12, m = 10, n = 300. Se puede comprobar que la solucin exacta de esta ecuacin diferencial es o o

u(x, t) =
k=1

Ak cos

kc t 2

sen

kx 2

Ak =

4(1 (1)k ) , 3 3 k c = 3.

Para la solucin numrica o e hx = 0.2 ht = 0.04 = 0.12 = 1.76 Los valores inciales ui0 son: 0, 0.09, 0.16, 0.21, 0.24, 0.25, 0.24, 0.21, 0.16, 0.09, 0. Para calcular los valores ui1 se utiliza (8.43) y se obtiene: 0, 0.0888, 0.1588, 0.2088, 0.2388, 0.2488, 0.2388, 0.2088, 0.1588, 0.0888, 0. Los dems valores uik se calculan usando (8.39). As los valores ui2 son: 0, a 0.085344, 0.1552, 0.2052, 0.2352, 0.2452, 0.2352, 0.2052, 0.1552, 0.085344, 0.

8.4. HIPERBOLICAS: ECUACION DE ONDA

311

A continuacin aparecen: los valores xi , los valores u(xi , 12) exactos y los o valores aproximados obtenidos por el mtodo: e 0.00 0.20 0.40 0.60 0.80 1.00 1.20 1.40 1.60 1.80 2.00 0.000000 0.021539 0.043078 0.064617 0.086097 0.096097 0.086097 0.064617 0.043078 0.021539 0.000000 0.000000 0.032374 0.057421 0.073748 0.080376 0.080269 0.080376 0.073748 0.057421 0.032374 0.000000

Este mtodo presenta problemas de inestabilidad. Se puede garantizar la e estabilidad (no la exactitud) si ht 1. (8.44) hx En el ejemplo anterior cht /hx = 0.3464. Si se hubiera aplicado el mtodo e con n = 100, cht /hx = 1.0392, los resultados ser an: c 0.00 0.20 0.40 0.60 0.80 1.00 1.20 1.40 1.60 1.80 2.00 0.000000 0. 0.021539 -3366402376293274. 0.043078 6403277832890416. 0.064617 -8813355840944206. 0.086097 10360721173025462. 0.096097 -10893906929301864. 0.086097 10360721173025462. 0.064617 -8813355840944206. 0.043078 6403277832890416. 0.021539 -3366402376293274. 0.000000 0.

8.4.2

Mtodo impl e cito

Consideremos la ecuacin diferencial en el punto (xi , tj ), o 2u 2u (xi , tj ) = c2 2 (xi , tj ) , 2 t x

312

8. ECUACIONES DIFERENCIALES PARCIALES

pero cambiando la doble derivada parcial con respecto a x, en el punto (xi , tj ), por el promedio de la derivada en los puntos vecinos (xi , tj1 ) y (xi , tj+1 ) : c2 2u (xi , tj ) = t2 2 2u 2u (xi , tj1 ) + 2 (xi , tj+1 ) x2 x

Ahora utilizamos aproximacin por diferencias nitas: o ui,j1 2uij + ui,j+1 c2 ui1,j1 2ui,j1 + ui+1,j1 = + 2 h2 h2 x t ui1,j+1 2ui,j+1 + ui+1,j+1 h2 x Ahora dejamos a la izquierda los valores desconocidos y a la derecha los que son conocidos: 2ui,j1 4uij + 2ui,j+1 = (ui1,j1 2ui,j1 + ui+1,j1

ui1,j+1 + ui,j+1 ui+1,j+1 = 4uij ui,j1 + (ui1,j1 + ui+1,j1 ) (8.45) = c2 h2 t h2 x = 2 + 2 (8.46) (8.47)

+ ui1,j+1 2ui,j+1 + ui+1,j+1 )

Aplicando la igualdad (8.45) en los puntos (x1 , tj ), (x2 , tj ), ..., (xm1 , tj ), se obtiene el siguiente sistema tridiagonal, de tamao (m 1) (m 1): n 0 u1,j+1 u2,j+1 . . .

= um2,j+1 um1,j+1 0 0 0 4u1j u1,j1 + (a + u2,j1 ) 4u2j u2,j1 + (u1,j1 + u3,j1 ) . . . 4um2,j um2,j1 + (um3,j1 + um1,j1 ) 4um1,j um1,j1 + (um2,j1 + b)

(8.48)

8.4. HIPERBOLICAS: ECUACION DE ONDA

313

Este sistema tridiagonal se puede resolver ecientemente. Para empezar, tambin es necesario calcular los valores ui1 por medio de (8.43). Despus e e es necesario resolver n 1 veces el sistema (8.48). Este mtodo impl e cito no es inestable.

Ejercicios
2u 2u (x, t) = (x, t), para 0 < x < 1 t2 x2 y 0 < t con las condiciones u(0, t) = u(1, t) = 0, u(x, 0) = sen(x), u (x, 0) = 0. La solucin exacta es u(x, t) = sen(x) cos(t). Obtenga o t la solucin aproximada para t = 3 con m = 10, n = 60 y con n = 20. o Compare con la solucin exacta. o

8.1 Considere la ecuacin diferencial o

Valores propios
9.1 Preliminares

Sea A Rnn , una matriz cuadrada real, un nmero , real o complejo, es u un valor propio de A si existe un vector columna real o complejo no nulo v Cn1 tal que Av = v. En ese caso se dice que v es un vector propio asociado al valor propio . Fcilmente se comprueba que si = 0, entonces tambin v es un veca e tor propio asociado a . Generalmente se usan ms los vectores propios a normalizados, es decir, ||v||2 = 1. Ejemplo 9.1. Sea 8 2 1 A = 1 7 3 . 1 1 6

Como

entonces 10 es un valor propio de A y [9 7 4]T es un vector propio de A asociado a 10. El vector columna [0.7448453 0.5793241 0.3310424]T es un vector propio normalizado asociado a 10. Con frecuencia se utiliza otra caracterizacin de los valores propios. o 314

8 2 1 9 90 1 7 3 7 = 70 , 1 1 6 4 40

9.1. PRELIMINARES

315

Av = v Av Iv = 0 Av v = 0

(A I)v = 0 Como v = 0 es solucin de un sistema homogneo, entonces A no puede ser o e invertible, es decir det(A I) = 0. (9.1)

Como A es real, se puede demostrar que p() = det(A I) es un polinomio real de grado n: p() = pA () = 0 + 1 + 2 2 + + n n . (9.2)

Este polinomio se llama el polinomio caracter stico de A (algunas veces se considera que el polinomio caracter stico es det(I A)). Entonces, para matrices peque as, se pueden calcular los valores propios, obteniendo las n ra ces del polinomio caracter stico de A. Ejemplo 9.2. A= 1 2 3 4 1 2 3 4

det(A I) = det

= 2 5 + 10 1 = 2.5 + i 15/2 2 = 2.5 i 15/2

= (1 )(4 ) + 8

Denotaremos con espec(A) el conjunto de valores propios de A y o i ser un valor propio cualquiera. Para el complejo z = a + ib, el mdulo, a o norma o tamao ser n a |z| = x2 + y 2 , que coincide con valor absoluto para nmeros reales. u A continuacin algunas deniciones y resultados sobre valores propios. Estos o resultados no estn necesariamente en el orden conceptual ni en orden para a una posible demostracin. Adems uno puede ser corolario de otro o pueden o a corresponder al mismo concepto dicho de otra forma.

316

9. VALORES PROPIOS

a. Dos matrices A y B son semejantes si existe una matriz C tal que A = C 1 BC. b. A es ortogonal si A1 = AT . c. Se denota con A o AH la matriz transjugada de A, es decir, A = (A)T = AT . d. A es hermitiana (o herm tica) si A = A . e. A es unitaria si A1 = A . f. Una matriz A es diagonalizable si es semejante una matriz diagonal, es decir, existe B invertible y D diagonal tales que D = B 1 AB. Resultados: 1. n = (1)n n1 = (1)n1 traza(A) 0 = det(A).
n

2.
i=1 n

i = traza(A)

3.
i=1

i = det(A)

4. Hay n valores propios, reales o complejos, y pueden estar repetidos. 5. Si n es impar, hay por lo menos un valor propio real. 6. El nmero de valores propios estrictamente complejos (no reales) es u par. 7. Sean 1 , 2 , ..., k valores propios distintos de A y v 1 , v 2 , ..., v k vectores propios asociados correspondientes, entonces estos vectores propios son linealmente independientes.

9.1. PRELIMINARES

317

8. Teorema de Cayley-Hamilton. Si p es el polinomio caracter stico de A, entonces p(A) = 0. 9. Si A y B son semejantes, A = C 1 BC, entonces espec(A) = espec(B). 10. Teorema de Schur. Toda matriz A es semejante a una matriz triangular superior (cuyos elementos diagonales son los valores propios de A). Dicho de otra forma, existe U invertible y T triangular superior tales que T = U 1 AU . Esta matriz U es unitaria. 11. Si U es unitaria, en particular ortogonal, ||U x||2 = ||x||2 . As se dice , que las matrices unitarias conservan la norma euclidiana. 12. Si A es simtrica, todos los valores propios son reales. e 13. Si A es diagonal, triangular superior o triangular inferior, entonces los valores propios son los elementos diagonales. 14. Teorema espectral. Si A es simtrica, entonces xisten vectores propios e v 1 , v 2 , ..., v n ortonormales. Si Q = v 1 v 2 ... v n , entonces Q es ortogonal y QT AQ es una matriz diagonal (con los valores propios de A en la diagonal). 15. Sea A simtrica. La matriz es denida positiva sssi los valores propios e son positivos. 16. Sea A simtrica. La matriz es semidenida positiva sssi los valores e propios son no negativos. 17. Si A no es invertible, = 0 es un valor propio. 18. Si A es invertible, espec(A) sssi 1/ espec(A1 ). 19. espec(A) sssi t espec(A tI). 20. Para cualquier norma matricial generada || ||, || ||A||. 21. Si A es ortogonal, || = 1, para cualquier valor propio real o complejo.

318

9. VALORES PROPIOS

9.1.1

En Scilab

Los valores propios se calculan por medio de la funcin spec (en Matlab o se usa eig). Si se ha denido una matriz cuadrada a , entonces la orden

spec(a)

da como resultado un vector columna con los n valores propios. La orden

[V, L] = spec(a)

produce una matriz L diagonal, cuyos elementos diagonales son los valores propios y una matriz V cuyas columnas son vectores propios normalizados asociados correspondientes.

9.2

Mtodo de la potencia e

Este mtodo se puede aplicar para hallar 1 , el valor propio dominante de e una matriz diagonalizable A, cuando ste existe, o sea, si e

|1 | > |2 | |3 | |n |. Una primera versin del mtodo de la potencia es muy sencilla. Dado un x0 o e inicial xk+1 = Axk , k = 0, 1, 2, ... (9.3)

Sea {v 1 , v 2 , ..., v n } una base formada por vectores propios asociados a los valores propios 1 , 2 , ..., n respectivamente. Entonces x0 = 0 se puede

9.2. METODO DE LA POTENCIA expresar como combinacin de los vectores propios o x0 = 1 v 1 + 2 v 2 + ... + n v n x1 = Ax0 x1 = A(1 v 1 + 2 v 2 + ... + n v n ) x1 = 1 Av 1 + 2 Av 2 + ... + n Av n x1 = 1 1 v 1 + 2 2 v 2 + ... + n n v n x2 = Ax1 = A(1 1 v 1 + 2 2 v 2 + ... + n n v n ) x2 = 1 1 Av 1 + 2 2 Av 2 + ... + n n Av n x2 = 1 2 v 1 + 2 2 v 2 + ... + n 2 v n 1 2 n . . . xk = 1 k v 1 + 2 k v 2 + ... + n k v n 1 2 n
n

319

xk = 1 k 1

v1 +
i=2

i 1

i 1

vi

Esta ultima factorizacin est bien denida si 1 = 0, o sea, si x0 no es o a ortogonal a v 1 . Como |i /1 | < 1, entonces para valores grandes de k xk 1 k v 1 . 1 De manera anloga a xk+1 1 k+1 v 1 . 1 Entonces xk+1 1 xk . Al tomar xk , una componente no nula de xk , j xk+1 j xk j 1 .

320 Ejemplo 9.3. Partiendo de x0 = (1, 1, 1), de 1 2 4 5 A= 7 8

9. VALORES PROPIOS hallar el valor propio dominante 3 6 . 8

k1 A continuacin estn los valores k, xk , xk , xk , xk /x1 : o a 1 2 3 1

1 2 3 4 5 6 7 8 9 10 11 12

-6.000000 105.000000 -1617.000000 25176.000000 -3.915870e+05 6.091293e+06 -9.475172e+07 1.473890e+09 -2.292677e+10 3.566324e+11 -5.547518e+12 8.629321e+13

-15.000000 237.000000 -3681.000000 57267.000000 -8.907930e+05 1.385655e+07 -2.155426e+08 3.352826e+09 -5.215415e+10 8.112726e+11 -1.261957e+13 1.963010e+14

-23.000000 346.000000 -5399.000000 83959.000000 -1.306040e+06 2.031577e+07 -3.160177e+08 4.915744e+09 -7.646579e+10 1.189447e+12 -1.850218e+13 2.878067e+14

-6.00000000 -17.50000000 -15.40000000 -15.56957328 -15.55397998 -15.55540148 -15.55527176 -15.55528360 -15.55528252 -15.55528262 -15.55528261 -15.55528261

El mecanismo anterior puede conducir hasta una buena aproximacin de 1 , o pero tiene un inconveniente: ||xk || . La solucin es normalizar. Sea o z 0 = x0 . z k = Axk1 , xk = zk ||z k ||2 . k = 1, 2, 3, ... (9.4) (9.5)

Ejemplo 9.4. Usar las frmulas anteriores, partiendo de x0 = (1, 1, 1), para o hallar el valor propio dominante de 1 2 3 A = 4 5 6 . 7 8 8
k1 k A continuacin estn los valores k, xk , xk , xk , z1 /x1 : o a 1 2 3

-0.213470

-0.533676

-0.818303

-6.00000000

9.2. METODO DE LA POTENCIA 2 3 4 5 6 7 8 9 10 11 12 0.242870 -0.240212 0.240454 -0.240432 0.240434 -0.240434 0.240434 -0.240434 0.240434 -0.240434 0.240434 0.548191 -0.546829 0.546954 -0.546942 0.546943 -0.546943 0.546943 -0.546943 0.546943 -0.546943 0.546943 0.800313 -0.802045 0.801887 -0.801902 0.801900 -0.801901 0.801901 -0.801901 0.801901 -0.801901 0.801901

321 -17.50000000 -15.40000000 -15.56957328 -15.55397998 -15.55540148 -15.55527176 -15.55528360 -15.55528252 -15.55528262 -15.55528261 -15.55528261

El siguiente esquema, adems de incluir la normalizacin, tiene una manera a o ms eciente de aproximar . a Algoritmo de la potencia para k = 1, ...,maxit z k = Axk1 zk xk = k ||z ||2 T k = xk z k 1 k1 si |k 1 | , parar 1 n-para El proceso se detiene satisfactoriamente cuando dos aproximaciones, k y 1 k1 1 , son muy parecidas. La salida no deseada se tiene cuando se llega al nmero mximo de iteraciones. u a La rapidez de la convergencia est ligada al valor |1 /2 |. Si este valor a es cercano a 1 , la convergencia es lenta. Si es mucho mayor que 1 , la convergencia es rpida. a Ejemplo 9.5. Hallar el valor propio 1 4 A= 7 partiendo de x0 = (1, 1, 1). dominante de 2 3 5 6 8 8

k k k Los siguientes valores corresponden a k, z1 , z2 , z3 , xk , xk , xk , k : 1 2 3 1

322 1 2 3 4 5 6 7 8 9 10 11 -6.000000 -0.213470 3.735732 0.242870 -3.740191 -0.240212 3.740005 0.240454 -3.740024 -0.240432 3.740022 0.240434 -3.740022 -0.240434 3.740022 0.240434 -3.740022 -0.240434 3.740022 0.240434 -3.740022 -0.240434 -15.000000 -0.533676 8.432082 0.548191 -8.514312 -0.546829 8.507264 0.546954 -8.507910 -0.546942 8.507851 0.546943 -8.507857 -0.546943 8.507856 0.546943 -8.507856 -0.546943 8.507856 0.546943 -8.507856 -0.546943

9. VALORES PROPIOS -23.000000 -0.818303 12.310128 0.800313 -12.488120 -0.802045 12.472478 0.801887 -12.473909 -0.801902 12.473779 0.801900 -12.473791 -0.801901 12.473790 0.801901 -12.473790 -0.801901 12.473790 0.801901 -12.473790 -0.801901

28.10693865 15.38164285 15.57034584 15.55390218 15.55540852 15.55527112 15.55528366 15.55528251 15.55528262 15.55528261 15.55528261

El ultimo xk obtenido es una buena aproximacin de un vector propio nor o malizado asociado a 1 . 3

9.3

Mtodo de la potencia inversa e

Este mtodo se puede aplicar para hallar n , el valor propio menos domie nante de una matriz diagonalizable e invertible A, cuando ste existe, o sea, e si |1 | |2 | |3 | > |n | > 0. Si A es invertible y tiene valores propios 1 , 2 ,..., n , entonces los valores propios de A1 son 1 1 1 , , ..., . 1 2 n El valor propio dominante de A1 es justamente 1/n . Entonces se puede aplicar el mtodo de la potencia a A1 . En lugar de escribir expl e citamente

9.3. METODO DE LA POTENCIA INVERSA

323

z k = A1 xk1 es preferible presentarlo como la solucin del sistema Az k = o k1 . x Potencia inversa para k = 1, ...,maxit resolver Az k = xk1 zk xk = k ||z ||2
k 1 = xk z k
T

k1 k si |1 1 | , parar

n-para
k Cuando se obtenga la convergencia, n 1/1 .

Ejemplo 9.6. Aplicar, partiendo de x0 = (1, 1, 1), el mtodo de la potencia e inversa para obtener el valor propio n de la matriz 1 2 3 A = 4 5 6 . 7 8 8 1 2 3 4 5 6 7 8 1.000000 0.707107 3.771236 0.543702 3.839896 0.520948 3.818745 0.518766 3.816531 0.518557 3.816317 0.518537 3.816297 0.518535 3.816295 0.518535 -1.000000 -0.707107 -5.421152 -0.781572 -5.810817 -0.788337 -5.807259 -0.788900 -5.806630 -0.788954 -5.806567 -0.788959 -5.806561 -0.788960 -5.806560 -0.788960 0.000000 0.000000 2.121320 0.305832 2.412678 0.327321 2.424942 0.329422 2.425988 0.329622 2.426087 0.329641 2.426096 0.329643 2.426097 0.329643 1.41421356 6.93621735 7.37098425 7.36121039 7.35991006 7.35978177 7.35976946 7.35976828

324 9 10 11 12 3.816294 0.518535 3.816294 0.518535 3.816294 0.518535 3.816294 0.518535 -5.806560 -0.788960 -5.806560 -0.788960 -5.806560 -0.788960 -5.806560 -0.788960

9. VALORES PROPIOS 2.426097 0.329643 2.426097 0.329643 2.426097 0.329643 2.426097 0.329643

7.35976817 7.35976816 7.35976815 7.35976815

Entonces n 1/7.35976815 = 0.135873845

9.4

Factorizacin QR o

Sea A Rmn . Una factorizacin QR de A consiste en encontrar matrices o Q y R tales que A = QR. Q Rmm es ortogonal. R Rmn es triangular superior ( rij = 0 si i > j ). El proceso de factorizacin QR, por medio de diferentes clases de matrices o ortogonales, va obteniendo ceros en lugares adecuados. Supongamos que por medio de Q1 ortogonal, la matriz Q1 A tiene ceros en sitios adecuados. Ahora, con Q2 ortogonal, se busca que al hacer el producto Q2 Q1 A haya ceros en otros sitios, sin perder los que ya ten Q1 A. Finalmente se obtiene a Qr Qr1 Q2 Q1 A = R triangular superior. Como las matrices Q son ortogonales, entonces QT QT QT QT Qr Qr1 Q2 Q1 A = QT QT QT QT R 1 2 r1 r 1 2 r1 r A = QR

A = QT QT QT QT R 1 2 r1 r

En los programas, generalmente se empieza con A y sobre ella se va reescribiendo el producto Q1 A, despus Q2 Q1 A. Al nal se tendr, en donde e a

9.4. FACTORIZACION QR

325

estaba A, la matriz R. Por otro lado, se puede empezar con Q = I, y encima se va reescribiendo el producto IQT , despus QT QT . Finalmente en Q se e 1 1 2 tendr el producto QT QT QT QT . a r1 r 1 2

9.4.1

Matrices de Householder

Sea v Rn1 , v = 0, u = v/||v|| (vector columna de norma 1). Una matriz de Householder es una matriz de la forma H = Hv = H(v) = In 2 v v
T

v v T = In 2uuT .

A veces, al mismo tiempo que se obtiene el vector v deseado, se calcula el nmero u 2 = T , v v entonces es comn expresar H en funcin de v y de , aunque no es u o ncesario. Simplemente, desde el punto de vista de eciencia, si se conoce no es interesante volverlo a calcular (son 2n 1 ops). H = H(v, ) = In v v T . La matriz H tiene dos caracter sticas importantes, es simtrica y ortogonal. e Ademas, si x Rn1 se puede escoger v para que Hv x < e1 > . En Algebra Lineal, dados x1 , x2 , ... xk vectores del espacio vectorial en consideracin, < x1 , x2 , ..., xk > denota el subespacio generado por estos o vectores, es decir, el conjunto de todas las combinaciones lineales de estos vectores: < x1 , x2 , ..., xk >= {1 x1 + 2 x2 + + k xk : i R}. Entonces, Hv x = e1 . Sea U = { Rn1 : v T = 0}, o sea, el hiperplano perpendicular a v y que pasa por el origen. Dicho de otra forma, U es el complemento ortogonal del subespacio generado por v, U = < v > .

326

9. VALORES PROPIOS

Sea x Rn1 , y = Hx, p = (x + y)/2, o sea, el punto medio del segmento que une a x con y. Se puede vericar que v T p = 0 , o sea, p U . Si z =xp se puede vericar que pT z = 0. Como p + z = x, entonces se deduce que p es la proyeccin de x sobre U , y o como p es el punto medio entre x y y, entonces y es el punto simtrico de x e con respecto a hiperplano U o la reexin de x con respecto a U . o Como H es ortogonal, entonces ||y|| = ||x||. Si se desea que y = e1 , entonces y = ||x|| e1 . Sea U , o sea, v T = 0. Fcilmente se comprueba que a (x y)T = 0 . Si x = y, entonces x = ||x|| e1 . Basta con tomar H = I, y as Hx = e1 . , Si x = y, se puede tomar v = x ||x||e1 Ejemplo 9.7. 2 x = 1 , 2 O tambin, e 2 x = 1 , 2 3 y = 0 , 0 1 v = 1 , 2 2/3 1/3 2/3 2/3 H = 1/3 2/3 2/3 2/3 1/3 3 y = 0 , 0 5 v = 1 , 2 2/3 1/3 2/3 H = 1/3 14/15 2/15 2/3 2/15 11/15

9.4. FACTORIZACION QR

327

Es usual escoger v tal que v1 = 1, as slo se requiere almacenar los valores v2 , o v3 , ..., vn . Generalmente estos valores se pueden almacenar donde estaban x2 , x3 , xn . Adems, no es necesario construir expl a citamente H, basta con conocer v y . Denotaremos por H(x) la matriz que proyecta x sobre el subespacio < e1 >. La siguiente funcin, ver [Par80] y [GoVa96], presenta una manera eciente o de calcular v y a partir de un vector columna x. Est escrita en seua docdigo utilizando parcialmente notacin de Scilab. o o [v, ] = vHouse(x) n = dim (x) t = x(2 : n)T x(2 : n) v = [ 1 ; x(2 : n) ] si t = 0 =0 sino = x2 + t 1 si x1 0 v1 = x1 sino v1 = t/(x1 + ) n-si 2 2 = 2v1 /(t + v1 ) v = v/v1 n-si n vHouse En resumen, dado x = Rn ,

[v, ] = vHouse(x) H(x) = H(v, ) = I vv T . Ejemplo 9.8. 2 x = 1 , 2 1 v = 1/5 , 2/5 5 . 3

328

9. VALORES PROPIOS

9.4.2

Matrices de Givens

Esta es otra clase de matrices ortogonales. Sea un ngulo y a c = cos() s = sen(), La matriz de Givens, en Rnn , es simplemente un rotacin denida en el o plano de las variables i y k: 1 0 . . . 0 G = G(i, k, c, s, n) = . . . 0 . . . 0 0 1 .. . 0 0 0 0 0 c .. s 0 . c . 0 .. 0 0 s 0 0 0 i 0 k 1

El producto y = GT x se calcula muy fcilmente: a cxi sxk yj = sxi + cxk xj si j = i, si j = k, en los dems casos. a

Si se desea que yk = 0, basta con tomar c= s= xi x2 i + x2 k xk , .

x2 + x2 i k

En la prctica, es mejor utilizar la siguiente versin para el clculo de c y s a o a (ver [GoVa96]),

9.4. FACTORIZACION QR [c, s] = csGivens(a, b) si b = 0 c=1 s=0 sino si |b| > |a| t = a/b s = 1/ 1 + t2 c = st sino t = b/a c = 1/ 1 + t2 s = ct n-si n-si n csGivens Por medio de esta funcin o c s s c Ejemplo 9.9. Para el vector a 2 = b 3 y as c s s c
T T

329

r a . = 0 b

por medio de la funcin se obtiene o

c = 0.5547002 s = 0.8320503

2 3.6055513 = . 3 0

9.4.3

Factorizacin QR con matrices de Householder o

Para facilitar la presentacin del algoritmo, usaremos la siguiente notacin. o o Si H Rpp es una matriz de Householder, con p n, H H = H(n, H) = I 0 np 0 H si p = n si p < n

330 La matriz H Rnn tambin es ortogonal. e

9. VALORES PROPIOS

En lo que sigue se supondr que A siempre indica la matriz obtenida al hacer a los productos efectuados hasta este momento, o sea, Qk Q2 Q1 Ainicial . Inicialmente se supone que Q = Im y se buscan ceros por debajo de a11 , o sea, se construye Q1 = H1 Rmm tal que H1 A( : , 1) = 1 e1 Rm1 : [v, ] = vHouse(A(1 : m, 1)) H1 = H(v, ) A = H1 A
T Q = QH1 = QH1 .

En seguida, se trabaja unicamente con las las 2,..., m de A. Se construye H2 R(m1)(m1) tal que H2 A(2 : m, 2) = 2 e1 R(m1)1 , o sea, [v, ] = vHouse(A(2 : m, 2)) H2 = H(v, ) H2 = H(m, H2 ) A = H2 A Q = QH2

En general, [v, ] = vHouse(A(k : m, k)) Hk = H(v, ) Hk = H(m, Hk ) A = Hk A Q = QHk

Como se supone que en la iteracin k, las columnas 1, ..., k1 de A son nulas o debajo de la diagonal, entonces no es necesario recalcularlas. La presentacin o

9.4. FACTORIZACION QR formal anterior es exacta pero ineciente, es mejor [v, ] = vHouse(A(k : m, k)) Hk = H(v, ) A(k : m, : ) = Hk A(k : m, : ) Q( : , k : m) = Q( : , k : m)Hk

331

A continuacin hay dos presentaciones de la factorizacin QR por medio de o o matrices de Householder, la primera versin es ms fcil de presentar. o a a [Q, R] = QR_House (A) [m, n] = tamao(A) n Q = Im para k = 1 : min(m, n) [v, ] = vHouse(A(k : m, k) H = H(v, ) H = H(m, H) A=H A Q = QH n-para R=A n QR_House Esta segunda versin es mucho ms eciente. o a [Q, R] = QR_House (A) [m, n] = tamao(A) n Q = Im para k = 1 : min(m, n) [v, ] = vHouse(A(k : m, k) H = H(v, ) A(k : m, k : n) = H A(k : m, k : n) Q( : , k : m) = Q( : , k : m) H n-para R=A n QR_House

332 Ejemplo 9.10. Obtener la factorizacin QR de o 2 3 4 5 4 3 2 1 0 A= 1 2 3 4 5 4 utizando matrices de Householder. k = 1 beta = 0.717157 v : 1 -0.98598563 H = 0.2828427 0.7071068 0.2828427 -0.1414214 -0.5656854 = 7.0710678 0 0 0 0

9. VALORES PROPIOS

-0.39439425

0.19719713

0.78878851

0.7071068 0.3028029 -0.2788789 0.1394394 0.5577577

0.2828427 -0.2788789 0.8884485 0.0557758 0.2231031

-0.1414214 0.1394394 0.0557758 0.9721121 -0.1115515

-0.5656854 0.5577577 0.2231031 -0.1115515 0.5537938

7.0710678 -0.0140144 -0.6056057 -1.1971971 -1.7887885

5.939697 1.0874867 -0.7650053 -2.6174973 -2.4699893

= 0.2828427 0.7071068 0.2828427 -0.1414214 -0.5656854 0.7071068 0.3028029 -0.2788789 0.1394394 0.5577577 0.2828427 -0.2788789 0.8884485 0.0557758 0.2231031 -0.1414214 0.1394394 0.0557758 0.9721121 -0.1115515 -0.5656854 0.5577577 0.2231031 -0.1115515 0.5537938 ----------------------------------------------------------------k = 2 beta = 1.006267 v : 1 0.26914826 0.53206814 0.79498802 H =

9.4. FACTORIZACION QR -0.0062674 -0.2708351 -0.5354028 -0.7999705 A = 7.0710678 0 0 0 0 -0.2708351 0.9271052 -0.1441027 -0.2153107 -0.5354028 -0.1441027 0.7151292 -0.4256388 -0.7999705 -0.2153107 -0.4256388 0.3640330

333

7.0710678 2.236068 0 0 0

5.939697 3.5777088 -0.0947664 -1.2925295 -0.4902926

= 0.2828427 0.4472136 0.2128929 -0.2797022 -0.7722974 0.7071068 -0.4472136 -0.4807445 -0.2596204 -0.0384964 0.2828427 -0.4472136 0.8431415 -0.0337898 0.0892790 -0.1414214 -0.4472136 -0.1021209 0.6599727 -0.5779337 -0.5656854 -0.4472136 -0.0473832 -0.6462647 -0.2451463 ----------------------------------------------------------------k=3 beta = 1.068392 v : 1 0.87309062 0.33118770 H = -0.0683918 -0.9328028 -0.3538382 = 7.0710678 0 0 0 0 = 0.2828427 0.7071068 0.2828427 -0.1414214 0.4472136 -0.4472136 -0.4472136 -0.4472136 0.5196152 0.2886751 -0.0577350 -0.4041452 -0.0119059 0.4121526 -0.8203366 0.3962781 -0.6707147 0.2163259 -0.2090802 -0.6779604

-0.9328028 0.1855786 -0.3089328

-0.3538382 -0.3089328 0.8828131

7.0710678 2.236068 0 0 0

5.939697 3.5777088 1.3856406 0 0

334 -0.5656854 Observaciones: -0.4472136 0.6928203

9. VALORES PROPIOS 0 0

No es necesario calcular expl citamente las matrices H (en el ejemplo anterior aparecen, pero simplemente de manera ilustrativa). Basta con conocer y v. Es necesario implementar ecientemente el producto Hk A(k : m, : ) a partir de la informacin: A(k : m, : ), y v. o De manera anloga, es necesario implementar ecientemente el proa ducto Q( : , k : m)Hk a partir de la informacin: Q( : , k : m), y o v.

9.4.4

Factorizacin QR con matrices de Givens o

Al utilizar matrices ortogonales de Givens, tambin se busca, columna por e columna, anular los elementos debajo de la diagonal. Con matrices de Householder, se utilizaba una matriz para cada columna. Con matrices de Givens, en la columna k, se utiliza una matriz para anular am,k , despus otra matriz e para anular am1,k , despus otra matriz para anular am2,k y , nalmente, e otra matriz para anular ak+1,k . [Q, R] = QR_Givens(A) [m, n] = tamao(A) n Q = Im para k = 1 : min(m, n) para i = m : 1 : k + 1 [c, s] = csGivens(ai1,k , aik ) G = G(i 1, i, c, s, m) A = GT A Q = QG n-para n-para R=A n QR_Givens

9.4. FACTORIZACION QR Ejemplo 9.11. Obtener la factorizacin QR de o 2 3 4 5 4 3 2 1 0 A= 1 2 3 4 5 4 utizando matrices de Givens. k = 1 i = 5 c = -0.242536 G = 1 0 0 1 0 0 0 0 0 0 A = 2 5 2 4.1231056 0 Q = 1 0 0 1 0 0 0 0 0 0 i = 4 c = -0.436436 G = 1 0 0 1 0 0 0 0 0 0

335

s = 0.970143 0 0 1 0 0 0 0 0 -0.2425356 -0.9701425 0 0 0 0.9701425 -0.2425356

3 4 1 5.3357838 -0.7276069 0 0 1 0 0

4 3 0 4.6081769 -1.940285 0 0 0 0.9701425 -0.2425356

0 0 0 -0.2425356 -0.9701425

s = 0.899735 0 0 -0.4364358 -0.8997354 0 0 0 0.8997354 -0.4364358 0 0 0 0 0 1

336 = 2 5 -4.5825757 0 0 Q = 1 0 0 1 0 0 0 0 0 0 ... k = 3 ... i = 4 c = -0.612372 A = -7.0710678 0 0 0 0 Q = -0.2828427 -0.7071068 -0.2828427 0.1414214 0.5656854 A

9. VALORES PROPIOS

3 4 -5.2372294 -1.4289915 -0.7276069 0 0 -0.4364358 0.2182179 0.8728716

4 3 -4.1461399 -2.0111733 -1.940285 0 0 0.8997354 0.1058512 0.4234049 0 0 0 0.9701425 -0.2425356

s = 0.790569 -7.0710678 -2.236068 0 0 0 -0.4472136 0.4472136 0.4472136 0.4472136 0.4472136 -5.939697 -3.5777088 -1.3856406 0 0 -0.5196152 -0.2886751 0.0577350 0.4041452 -0.6928203 0.6708204 -0.2236068 0.2236068 0.6708204 0 0 0.4082483 -0.8164966 0.4082483 0

Para que la (o una) factorizacin QR de A sea eciente hay que tener en o cuenta, entre otros, los siguietes detalles: No es necesario calcular expl citamente las matrices G (en el ejemplo anterior aparecen, pero simplemente de manera ilustrativa). Basta con conocer c, s, e i. Obsrvese que siempre se trata de las las i 1 e i. e Es necesario implementar ecientemente el producto GT A a partir de la informacin: A, c y s. o

9.4. FACTORIZACION QR

337

De manera anloga, es necesario implementar ecientemente el proa ducto QG a partir de la informacin: Q, c y s. o En general para efectuar, sobre B, el producto G(i, j, c, s, m)T B basta con hacer:

x = B(i, : ) B(j, : ) = s x + c B(j, : ) B(i, : ) = c B(i, : ) s B(j, : )

En el proceso de factorizacin QR, si se est buscando un cero en la posicin o a o (i, k) de la matriz A, se modican unicamente, la las i 1 e i, pero se debe tener en cuenta que las columnas 1, ..., k 1 son nulas por debajo de la diagonal. Entonces se reduce el nmero de operaciones. u

ai1,k = c ai1,k s aik aik = 0 t = A(i 1, k + 1 : n)

A(i 1, k + 1 : n) = c t s A(i, k + 1 : n) A(i, k + 1 : n) = s t + c A(i, k + 1 : n)

En general para efectuar, sobre B, el producto B G(i, j, c, s, m) basta con hacer:

x = B( : , i) B( : , i) = c B( : , i) + s B( : , j) B( : , j) = s x + c B( : , j)

9.4.5

Solucin por m o nimos cuadrados

Una de las aplicaciones importantes de la factorizacin QR es la solucin o o de sistemas de ecuaciones lineales por m nimos cuadrados. El mtodo ms e a

338

9. VALORES PROPIOS

popular para m nimos cuadrados es el de las ecuaciones normales. Sin embargo, en los casos, cuando el condicionamiento de A es muy grande comparado comparado con el residuo m nimo [GoVa96], el mtodo QR resulta e ms preciso y estable. a Una propiedad important sima de las matrices ortogonales es que preservan la norma euclidiana. Si Q es ortogonal, entonces ||Qx|| = ||x||. Esto quiere decir que obtener el m nimo de ||Axb||2 es equivalente a buscar 2 2 para cualquier matriz ortogonal P . Si QR = A el m nimo de ||P Ax P b||2 es la factorizacin QR de A, entonces, se desea minimizar o ||QT Ax QT b||2 = ||QT QRx QT b||2 = ||Rx QT b||2 . 2 2 2 Sea A Rmn , c = QT b, R= U , 0qn c= d , r

con U Rpn triangular superior, cuya ultima la no es nula, d Rp1 , r Rq1 , p + q = m. Entonces Rx c = Ux d r

||Ax b||2 = ||U x d||2 + ||r||2 . 2 2 2 Basta con buscar x solucin de U x = d. Si el sistema anterior tiene o solucin, entonces o min ||Ax b||2 = ||r||2 . 2 2 n
xR

Si U es cuadrada ( Rnn ) e invertible, la solucin es unica. o Ejemplo 9.12. Resolver por m nimos cuadrados el sistema Ax = b, donde 29.1 2 3 4 33.9 5 4 3 1 0 , b = 7.0 A= 2 20.1 1 2 3 38.9 4 5 4

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS339 Q = -0.2828427 -0.7071068 -0.2828427 0.1414214 0.5656854 = -7.0710678 0 0 0 0

-0.4472136 0.4472136 0.4472136 0.4472136 0.4472136

-0.5196152 -0.2886751 0.0577350 0.4041452 -0.6928203

0.6708204 -0.2236068 0.2236068 0.6708204 0

0 0.4082483 -0.8164966 0.4082483 0

-7.0710678 -2.236068 0 0 0

-5.939697 -3.5777088 -1.3856406 0 0 -5.6753531 0.0223607 -0.0816497

c : U

-59.029274

-21.108482

= -7.0710678 0 0

-7.0710678 -2.236068 0

-5.939697 -3.5777088 -1.3856406 -5.6753531

d : r x : :

-59.029274 0.0223607 2.0208333

-21.108482 -0.0816497 2.8866667

4.0958333

As ||r||2 = 0.0071667 . , 2

9.5

Mtodo QR para valores propios de matrices e simtricas e

El mtodo ms popular para obtener los valores propios de una matriz e a simtrica (todos reales) es el mtodo QR. Es posiblemente el ms ecente e e a para casos generales. El proceso tiene dos pasos: 1. Obtener, por matrices ortogonales, una matriz T tridiagonal simtrica e semejante a A, o sea encontrar Q ortogonal tal que

340

9. VALORES PROPIOS

QAQT = T tridiagonal simtrica. e 2. Obtener los valores propios de T .

9.5.1

Tridiagonalizacin por matrices de Householder para o matrices simtricas e

Sea A Rnn simtrica, H = H(n, H(A(2 : n, 1)). Es claro que HA es e nula, en la columna 1, por debajo de la subdiagonal. Se puede observar, y tambin demostrar, que HAH, adems de ser nula en la primera columna e a por debajo de la subdiagonal, tambin es nula en la primera la a la derecha e de la superdiagonal, y obviamente tambin es simtrica.... e e Ejemplo 9.13. A = 2 3 4 5 = 1 0 0 0

3 -1 0 1

4 0 -2 8

5 1 8 10

0 0.4242641 0.5656854 0.7071068

0 0.5656854 0.4441896 -0.6947630

0 0.7071068 -0.6947630 0.1315463

H A = 2 7.0710678 0 0 H A H = 2 7.0710678 0 0

3 0.2828427 -1.2604484 -0.5755605

4 4.5254834 -6.4464829 2.4418963

5 12.020815 -2.8284271 -3.5355339

7.0710678 11.18 -6.1814444 -1.3628445

0 -6.1814444 -1.6113918 3.2154369

0 -1.3628445 3.2154369 -2.5686082

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS341 Este proceso se realiza en la otras columnas y las y se obtiene una matriz tridiagonal, simtrica, semejante a A. Como es costumbre, los productos e realizados se reescriben sobre A. A = triHouse(A) n = dim (A) para k = 1 : n 2 x = A(k + 1 : n, k) H = H(x) H = H(n, H) A = HAH n-para n triHouse Ejemplo 9.14. A = 2. 3. 4. 3. - 1. 0. 4. 0. - 2. 5. 1. 8. k = 1 H = 0.4242641 0.5656854 0.7071068 = 2. 7.0710678 0. 0.

5. 1. 8. 10.

0.5656854 0.4441896 - 0.6947630

0.7071068 - 0.6947630 0.1315463

7.0710678 11.18 - 6.1814444 - 1.3628445

0. - 6.1814444 - 1.6113918 3.2154369

0. - 1.3628445 3.2154369 - 2.5686082

k = 2 H = - 0.9765473 - 0.2153028

- 0.2153028 0.9765473

342 A = 2. 7.0710678 0. 0.

9. VALORES PROPIOS

7.0710678 11.18 6.3298973 0.

0. 6.3298973 - 0.3036510 - 2.7160739

0. 0. - 2.7160739 - 3.876349

Tal como est descrito el algoritmo, se supone que se hace expl a citamente el producto HAH. En realidad se puede hacer de manera ms eciente, a teniendo en cuenta que una parte de H es la identidad, que se conoce el nuevo valor de ak+1,k , que debajo habr ceros, y que HAH tambin es a e simtrica. e A = triHouse(A) n = dim (A) para k = 1 : n 2 x = A(k + 1 : n, k) [v, ] = vHouse(x) p = A(k + 1 : n, k + 1 : n) v w = p (/2) (pT v) v ak+1,k = ak,k+1 = ||x|| A(k + 2 : n, k) = 0 A(k, k + 2 : n) = 0 A(k + 1 : n, k + 1 : n) = A(k + 1 : n, k + 1 : n) v wT w v T n-para n triHouse

9.5.2

Tridiagonalizacin por matrices de Givens para matrio ces simtricas e

Con los conceptos e ideas de la factorizacin QR por medio de matrices o de Givens y de la tridiagonalizacin con matrices de Householder, resulta o naturalmente el proceso de tridiagonalizacin con matrices de Givens. o Primero se busca tridiagonalizar la primera columna y primera la, o sea, se buscan ceros por debajo de la subdiagonal y a la derecha de la superdiagonal. Para ello se busca un cero en la posicin (n, 1), despus en o e la posicin (n 1, 1), as sucesivamente hasta la posicin (3, 1). Al mismo o o tiempo se hace lo anlogo con la primera la. a Despus se trabaja con segunda columna y segunda la, y as sucesivamente, e hasta la columna y la n 2.

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS343 A = triGivens(A) n = dim (A) para k = 1 : n 2 para i = n : 1 : k + 2 [c, s] = csGivens(ai1,k , aik ) G = G(i 1, i, c, s, n) A = GT AG n-para n-para n triHouse Ejemplo 9.15. A = 2 3 4 5

3 -1 0 1

4 0 -2 8

5 1 8 10

k = 1 i = 4 c = -0.624695 A = 2 3 -6.4031242 0

s = 0.780869

3 -1 -0.7808688 -0.6246950

-6.4031242 -0.7808688 13.121951 4.097561

0 -0.6246950 4.097561 -5.1219512

i = 3 c = 0.424264 A = 2 7.0710678 0 0

s = 0.905539

7.0710678 11.18 -4.9257204 -3.9755349

0 -4.9257204 0.9419512 1.1727625

0 -3.9755349 1.1727625 -5.1219512

k = 2 i = 4

344 c = 0.778168 A = 2 7.0710678 0 0 s = -0.628057

9. VALORES PROPIOS

7.0710678 11.18 -6.3298973 0

0 -6.3298973 -0.3036510 -2.

0 0 -2.7160739 -3.876349

No sobra recordar que el producto GT AG debe ser hecho de manera eciente, realizando unicamente las operaciones necesarias.

9.5.3

Valores propios de matrices tridiagonales simtricas e

Sea T una matriz tridiagonal simtrica. En lo que sigue en esta seccin, se e o supone que T es tridiagonal simtrica. e La matriz T puede ser el resultado del proceso de tridiagonalizacin de o Householder o de Givens. La matriz T se llama no reducida, [GoV96] pg. 416, si todos lo elementos a subdiagonales (y los superdiagonales) son no nulos. Una matriz es reducida si algn elemento subdiagonal o (superdiagonal) es nulo. u Ejemplo 2 3 0 3 4 5 0 5 6 0 0 7 0 0 0 0 0 0 9.16. Una matriz no reducida y dos reducidas: 2 3 2 3 0 0 0 0 0 0 0 3 4 3 4 5 0 0 0 0 0 0 7 0 0 , 0 5 6 7 0 0 , 0 5 0 0 0 0 7 8 0 0 8 9 0 0 0 0 0 0 0 10 11 9 10 11 0 0 0 0 0 0 11 12 0 11 12

0 5 6 0 0 0

0 0 0 0 0 0 0 0 0 8 0 0 0 10 11 0 11 12

T siempre se puede expresar como una matriz diagonal por bloques, donde cada bloque es de tamao es 1 1 o de mayor tamao pero tridiagonal no n n reducido. En el primer caso del ejemplo anterior hay un solo bloque, en el segundo hay dos. En el tercer caso hay tres bloques, uno de ellos es 1 1. Para encontrar los valores propios de T basta con encontrar los de cada bloque tridiagonal simtrico no reducido, agregando los bloques 1 1 que e son valores propios de T .

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS345 El objetivo, a partir de ahora, es encontar los valores propios de T no reducida. Sea T = QR la factorizacin QR de A y sea T + = RQ o QT QR = QT T R = QT T T + = RQ = QT T Q. Luego T + es simtrica y semejante a T . Adems se puede demostrar que e a tambin es tridiagonal. e Ejemplo 9.17. T = 2 3 0 0

3 4 5 0

0 5 6 7

0 0 7 8

= -3.6055513 0 0 0 = -0.5547002 -0.8320503 0 0 = 6.1538462 4.1666469 0 0

-4.9923018 -5.0076864 0 0

-4.1602515 -5.8371805 -7.6563459 0

0 -6.9892556 -7.4712474 2.8863072

-0.0460830 0.0307220 -0.9984651 0

0.3365427 -0.2243618 -0.0224362 -0.9142743

0.7595545 -0.5063697 -0.0506370 0.4050957

T+

4.1666469 5.6743747 7.644594 0

0 7.644594 7.0025484 -2.6388764

0 0 -2.6388764 1.1692308

Un proceso, un poco lento, para hallar los valores propios de T , consiste en hacer T = T + y repetir varias veces. Se puede demostrar que la matriz que se va obteniendo tiende a ser reducida. Dicho en palabras populares, la tridiagonal se va adelgazando en alguna parte.

346

9. VALORES PROPIOS repetir QR = T factorizacin QR de T o T = RQ n-repetir

Ejemplo 9.18. Aplicar el proceso anterior hasta que T sea reducida. En este ejemplo se supone que T es reducida cuando para algn elemento subu 10 . diagonal |ti+1,i | 10 T = 2 3 0 0 3 4 5 0 0 5 6 7 0 0 7 8

k = 1 T+ = 9.8718663 -4.486006 0 0

-4.486006 10.134151 -4.5625729 0

0 -4.5625729 -1.1770851 -0.7764250

0 0 -0.7764250 1.1710681

k = 2 T+ = 13.296028 -3.5861468 0 0

-3.5861468 8.2428763 1.7266634 0

0 1.7266634 -2.7961816 0.3062809

0 0 0.3062809 1.2572771

k = 10 T+ = 15.191934 -0.0059687 0 0

-0.0059687 6.6303783 0.0035727 0

0 0.0035727 -3.100073 0.0002528

0 0 0.0002528 1.2777606

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS347

k = 20 T+ = 15.191938 -0.0000015 0 0

-0.0000015 6.6303755 0.0000018 0

0 0.0000018 -3.1000743 3.577E-08

0 0 3.577E-08 1.2777606

k = 27; matriz reducida: T+ = 15.191938 -4.514E-09 0 0

-4.514E-09 6.6303755 -8.713E-09 0

0 -8.713E-09 -3.1000743 -7.229E-11

0 0 -7.230E-11 1.2777606

Denotemos por espec(A) el conjunto de valores propios de A. Cuando se hace un desplazamiento en los elementos diagonales de una matriz, los valores propios quedan desplazados igualmente, o sea, espec(A) sssi s espec(A sI).

Hacer un desplazamiento adecuado en T puede acelerar notablemente la convergencia. Ejemplo 9.19. Aplicar el mismo proceso a T sI, con s = 1, hasta que para algn elemento |ti+1,i | 1010 . u T = 2 3 0 0 3 4 5 0 0 5 6 7 0 0 7 8

T - s I = 1 3 3 3 0 5 0 0

0 5 5 7

0 0 7 7

348

9. VALORES PROPIOS

k = 9, matriz reducida: T+ = 14.191935 -0.0052796 0 0

-0.0052796 5.5882374 0.6389663 0

0 0.6389663 -4.057933 -8.844E-12

0 0 -8.844E-12 0.2777606

T + s I 15.191935 -0.0052796 0 0

-0.0052796 6.5882374 0.6389663 0

0 0.6389663 -3.057933 -8.844E-12

0 0 -8.844E-12 1.2777606

Aunque hay varias maneras de calcular desplazamientos, uno de los ms a utilizados es el desplazamiento de Wilkinson d = tn1,n1 tnn = tnn + d signo(d) d2 + t2 n,n1 = tnn t2 n,n1 d + signo(d) d 2 + t2 n,n1

Para una matriz T Rnn tridiagonal, simtrica y no reducida, el proceso e que se aplica es el siguiente: mientras T sea no reducida clculo de a T = T I QR = T factorizacin QR de T o T = RQ T = T + I para i = 1 : n 1 si |ai+1,i | ( |aii | + |ai+1,i+1 | ) ai+1,i = 0 ai,i+1 = 0 n-si n-para n-mientras

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS349 En [GoVa96], p. 420, se encuentra una descripcin eciente de la parte o principal de este proceso, desde el clculo de hasta T = T + I. a Ejemplo 9.20. Hallar, por el proceso descrito anteriormente, una matriz tridiagonal semejante a la siguiente matriz tridiagonal: 8 3 0 0 3 6 4 0 T = 0 4 10 6 0 0 6 0

Con un propsito simplemente informativo, los valores propios obtenidos o por la funcin spec son o 13.50417 , k = 1 mu = T 2.8102497 1.9698954 , 5.0194039 , 10.51487

-mu I 5.1897503 3 0 0

3 3.1897503 -4 0

0 -4 -12.81025 -6

0 0 -6 -2.8102497

T+ = RQ 7.2885019 2.0988427 0 0 T + mu I 10.098752 2.0988427 0 0

2.0988427 -9.5701241 8.9042431 0

0 8.9042431 -4.1976395 -0.6390185

0 0 -0.6390185 -0.7617370

2.0988427 -6.7598744 8.9042431 0

0 8.9042431 -1.3873898 -0.6390185

0 0 -0.6390185 2.0485127

k = 2 mu =

2.1635102

350 T -mu I 7.9352413 2.0988427 0 0

9. VALORES PROPIOS

2.0988427 -8.9233846 8.9042431 0

0 8.9042431 -3.5509 -0.6390185

0 0 -0.6390185 -0.1149975

T+ = RQ 7.8706324 -3.26714 0 0 T + mu I 10.034143 -3.26714 0 0

-3.26714 -14.885642 -2.4468061 0

0 -2.4468061 2.5541744 0.0357613

0 0 0.0357613 -0.1932052

-3.26714 -12.722132 -2.4468061 0

0 -2.4468061 4.7176845 0.0357613

0 0 0.0357613 1.970305

k = 3 mu = T

1.9698396

-mu I 8.064303 -3.26714 0 0

-3.26714 -14.691972 -2.4468061 0

0 -2.4468061 2.7478449 0.0357613

0 0 0.0357613 0.0004654

T+ = RQ 7.1298463 5.6488809 0 0 T + mu I 9.0996859 5.6488809 0 0

5.6488809 -14.048752 0.5009906 0

0 0.5009906 3.0394919 0.0000006

0 0 0.0000006 0.0000557

5.6488809 -12.078913 0.5009906 0

0 0.5009906 5.0093315 0.0000006

0 0 0.0000006 1.9698954

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS351 k = 4 mu = 1.9698954 T -mu I 7.1297905 5.6488809 0 0

5.6488809 -14.048808 0.5009906 0

0 0.5009906 3.0394362 0.0000006

0 0 0.0000006 1.379E-13

T+ = RQ 4.4614948 -9.0220625 0 0 T + mu I 6.4313901 -9.0220625 0 0 T reducida 6.4313901 -9.0220625 0 0

-9.0220625 -11.390431 -0.1052167 0

0 -0.1052167 3.049355 1.656E-22

0 0 -2.585E-17 7.811E-16

-9.0220625 -9.4205358 -0.1052167 0

0 -0.1052167 5.0192503 1.656E-22

0 0 -2.585E-17 1.9698954

-9.0220625 -9.4205358 0.1052167 0

0 -0.1052167 5.0192503 0

0 0 0 1.9698954

En una matriz simtrica tridiagonal se busca desde la esquina S.E. hacia e la esquina N.O., el primer bloque de tamao superior a uno que sea no n reducido. A este bloque se le aplica el procedimiento anterior (hasta que el bloque sea reducido). El proceso general acaba cuando la matriz resultante es diagonal.

Ejemplo 9.21. Obtener los valores propios de la siguiente matriz tridiagonal simtrica: e

352

9. VALORES PROPIOS 2 8 0 0 0 0 8 2 0 0 0 0 0 0 8 3 0 0 A= 0 3 6 4 0 0 0 0 0 4 10 6 0 0 0 0 6 0

i1 i2 :

T inicial 8 3 0 3 6 -4 0 -4 -10 0 0 -6 mu = 2.810250 T final 10.098752 2.0988427 0 0 i1 i2 : 3 6

0 0 -6 0

2.0988427 -6.7598744 8.9042431 0

0 8.9042431 -1.3873898 -0.6390185

0 0 -0.6390185 2.0485127

T inicial 10.098752 2.0988427 0 0 mu = 2.163510 T final 10.034143 -3.26714 0 0 i1 i2 : 3 6

2.0988427 -6.7598744 8.9042431 0

0 8.9042431 -1.3873898 -0.6390185

0 0 -0.6390185 2.0485127

-3.26714 -12.722132 -2.4468061 0

0 -2.4468061 4.7176845 0.0357613

0 0 0.0357613 1.970305

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS353 T inicial 10.034143 -3.26714 0 0 mu = 1.969840 T final 9.0996859 5.6488809 0 0 i1 i2 : 3 6

-3.26714 -12.722132 -2.4468061 0

0 -2.4468061 4.7176845 0.0357613

0 0 0.0357613 1.970305

5.6488809 -12.078913 0.5009906 0

0 0.5009906 5.0093315 0.0000006

0 0 0.0000006 1.9698954

T inicial 9.0996859 5.6488809 0 0 mu = 1.969895 T final 6.4313901 -9.0220625 0 0 A = -2 8 0 0 0 0

5.6488809 -12.078913 0.5009906 0

0 0.5009906 5.0093315 0.0000006

0 0 0.0000006 1.9698954

-9.0220625 -9.4205358 -0.1052167 0

0 -0.1052167 5.0192503 -1.058E-22

0 0 8.383E-17 1.9698954

8 -2 0 0 0 0 3 5

0 0 6.4313901 -9.0220625 0 0

0 0 -9.0220625 -9.4205358 -0.1052167 0

0 0 0 -0.1052167 5.0192503 0

0 0 0 0 0 1.9698954

i1 i2 :

T inicial 6.4313901

-9.0220625

354 -9.0220625 0 mu = 5.020017 T final -6.2865541 11.012094 0 i1 i2 : 3 5 -9.4205358 -0.1052167 -0.1052167 5.0192503

9. VALORES PROPIOS

11.012094 3.2972548 -0.0000058

0 -0.0000058 5.0194039

T inicial -6.2865541 11.012094 0 mu = 5.019404 T final -12.629095 -4.5002992 0 A = -2 8 0 0 0 0

11.012094 3.2972548 -0.0000058

0 -0.0000058 5.0194039

-4.5002992 9.6397959 2.079E-17

0 2.575E-17 5.0194039

8 -2 0 0 0 0 3

0 0 -12.629095 -4.5002992 0 0 4

0 0 -4.5002992 9.6397959 0 0

0 0 0 0 5.0194039 0

0 0 0 0 0 1.9698954

i1 i2 :

T inicial -12.629095 -4.5002992 -4.5002992 9.6397959 mu = 10.514870 T final -13.50417 3.384E-16

-2.914E-16 10.51487

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS355

= -2 8 0 0 0 0

8 -2 0 0 0 0 1 2

0 0 -13.50417 0 0 0

0 0 0 10.51487 0 0

0 0 0 0 5.0194039 0

0 0 0 0 0 1.9698954

i1 i2 :

T inicial -2 8 8 -2 mu = -10.000000 T final 6 -1.735E-18 A = 6 0 0 0 0 0

-8.782E-17 -10

0 -10 0 0 0 0

0 0 -13.50417 0 0 0

0 0 0 10.51487 0 0

0 0 0 0 5.0194039 0

0 0 0 0 0 1.9698954

En los resultados anteriores, i1 e i2 indican la la inicial y nal de la primera submatriz no reducida que se encuentra y con la que se va a trabajar.

356

9. VALORES PROPIOS

Bibliograf a
[AlK02] Allaire G. y Kaber S.M., Alg`bre linaire numrique, Ellipses, Paris, e e e 2002. [Atk78] Atkinson Kendall E., An Introduction to Numerical Analysis, Wiley, New York, 1978. [BuF85] Burden R.L. y Faires J.D., Numerical Analysis, 3a. ed., PrindleWeber-Schmidt, Boston, 1985. [Dem97] Demmel J.W., Applied Numerical Linear Algebra, SIAM, Philadelphia, 1997. [GoV96] Golub G.H. y Van Loan C.H., Matrix Computations, 3rd ed., Johns Hopkins University Press, Baltimore, 1996. [KiC94] Kincaid D. y Cheney W., Anlisis numrico, Addison-Wesley Iberoaa e mericana, Wilmington, 1994. [Man04] Mantilla I., Anlisis Numrico, Universidad Nacional, Fac. de Ciena e cias, Bogot, 2004 a [Par80] Parlett B.N. The Symmetric Eigenvalue Problem, Prentice-Hall, Englewood Clis, 1980. [Ste98] Stewart G.W., Matrix Algorithms, Volume I: Basic Decompositions, Siam, Philadelphia, 1998.

INDICE ANAL ITICO


divididas de Newton, 181 Adams-Bashforth nitas, 192 frmula de, 266 o diferencias nitas, 284, 290 Adams-Moulton frmula de, 270 o ecuaciones aproximacin, 169 o diferenciales ordinarias, 239 aproximacin por m o nimos cuadrados, ecuaciones diferenciales 204 con condiciones de frontera, 281 de orden superior, 278 base, 172, 205 lineales con condiciones de froncondiciones de frontera tera, 284 ecuaciones diferenciales con, 281 sistemas de, 274 ecuaciones diferenciales lineales con, ecuaciones normales, 63 284 error, 230 control del paso, 257 global, 214, 215, 217, 220, 242 convergencia orden del, 263 cuadrtica, 12, 128 a local, 214, 217, 242 lineal, 12 mtodo de Euler, 263 e cuadratura mtodo de Heun, 263 e de Gauss-Hermite, 232 mtodo del punto medio, 263 e de Gauss-Laguerre, 232 mtodo RK4, 263 e de Gauss-Legendre, 225, see cuadratura mtodo RK5, 263 e de Gauss mtodo RK6, 263 e orden del, 263 def, 210 mtodo de Euler, 242 e derivacin o orden del, 263 numrica, 232 e Euler derivadas parciales, 62 mtodo de, 241, 251 e determinante, 51 orden del mtodo de, 263 e diagonal estrictamente dominante por las, 79 factorizacin o de Cholesky, 52, 59 diferencias 357

358 LU, 39 PA=LU, 46 frmula o de Adams-Bashforth, 266 de Simpson, 216 deAdams-Moulton, 270 del trapecio, 211 formulas de Newton-Cotes, 211, 221 frmulas o de Newton-Cotes, 216 abiertas, 222 cerradas, 221 funciones de la base, 172, 205

INDICE ANAL ITICO

matriz de diagonal estrictamente dominante por las, 79 de Givens, 67 de Householder, 67 denida positiva, 49, 51, 79 jacobiana, 147 positivamente denida, see matriz denida positiva mtodo e de Cholesky, 49, 59 de colocacin, 170 o de Euler, 241, 251 de Gauss, 30 de Gauss con pivoteo parcial, 41, Gauss, see mtodo de Gauss e 46 Gauss-Seidel, see mtodo de Gausse de Gauss-Seidel, 76 Seidel de Heun, 244, 251 de la biseccin, 133 o Heun de la secante, 130 mtodo de, 244, 251 e de Newton, 124, 145 orden del mtodo de, 263 e de Newton en Rn , 146, 147 de punto jo, 138, 145 integracin numrica, 209 o e de Regula Falsi, 135 interpl, 171 de Regula Falsi modicado, 137 interpolacn polinomial, 174 o de Runge-Kutta (RK), 250 interpolacin, 169171 o de Runge-Kutta-Fehlberg, 258, 260 de Lagrange, 175 del disparo (shooting), 281, 282 linea, 171 del punto medio, 247, 251 por diferencias divididas, 187 del trapecio, 244 por diferencias nitas, 194 multipaso abierto, 266 interpolacin polinomial por trozos, o multipaso cerrado, 270 197 multipaso expl cito, 266 intg, 210 multipaso impl cito, 270 orden del, 263 Lagrange, see interpolacin de Lao predictor-corrector, 270 grange RK, 250 Matlab, 24 RK2, 255 matrices deduccin del, 255 o ortogonales, 67 RK4, 251

INDICE ANAL ITICO RK5, 258 RK6, 258 RKF, 258 mtodos e de Runge-Kutta, 250 indirectos, 76 iterativos, 76 multipaso expl citos, 265 multipaso impl citos, 269 RK, 250 m nimos cuadrados, see solucin por... o notacin de Matlab, 24 o notacin de Scilab, 24 o nmero u de operaciones, 28, 37, 58 ode, 240 orden del error, 263 vericacin numrica, 264 o e del error global, 263 del error local, 263 del mtodo, 263 e de Euler, 263 de Heun, 263 del punto medio, 263 RK4, 263 RK5, 263 RK6, 263 orden de convergencia, 127, 128, 131 pivote, 41 pivoteo parcial, 41 total, 41 polinomios de Legendre, 231 polinomios de Lagrange, 176 punto medio mtodo del, 247, 251 e orden del mtodo de, 263 e

359

Raphson, see mtodo de Newton-Raphson e RK, see mtodo de Runge-Kutta e RK4, see mtodo RK4 e RKF, see Runge-Kutta-Fehlberg Runge-Kutta mtodo de, 250 e Runge-Kutta-Fehlberg mtodo de, 258, 260 e Scilab, 24 Seidel, see mtodo de Gauss-Seidel e seudosolucin, 64 o sistema diagonal, 25 triangular inferior, 29 triangular superior, 26 sistemas de ecuaciones diferenciales, 274 solucin o de ecuaciones, 120 de sistemas lineales, 22 de un sistema diagonal, 25 triangular inferior, 29 triangular superior, 26 por m nimos cuadrados, 61 spline, 197 spline, 172 tabla de diferencias divididas, 184 de diferencias nitas, 193 tasa de convergencia, 12 trazador cbico, 197 u trazador cubico, 172 triangularizacin, 30, 33, 37 o valor propio, 51

You might also like