Está en la página 1de 368

METODOS NUMERICOS CON SCILAB

Hctor Manuel Mora Escobar e hectormora@yahoo.com hmmorae@unal.edu.co www.hectormora.info 19 de agosto de 2012

Indice general
NOTACION 1. Preliminares 1.1. Repaso de algunos conceptos de clculo . . . . . . . . . . . . a 1.2. Sucesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Polinomio de Taylor . . . . . . . . . . . . . . . . . . . . . . . 1.4. Derivadas parciales . . . . . . . . . . . . . . . . . . . . . . . . 1.5. Teorema espectral para matrices simtricas . . . . . . . . . . e 1.6. Notacin O grande . . . . . . . . . . . . . . . . . . . . . . . . o 1.7. Orden de convergencia . . . . . . . . . . . . . . . . . . . . . . 1.8. Nmeros en un computador . . . . . . . . . . . . . . . . . . . u 1.9. Truncamiento y redondeo . . . . . . . . . . . . . . . . . . . . 1.10. Error absoluto y relativo . . . . . . . . . . . . . . . . . . . . . 1.11. Errores lineal y exponencial . . . . . . . . . . . . . . . . . . . 1.12. Condicionamiento de un problema . . . . . . . . . . . . . . . 2. Solucin de sistemas de lineales o 2.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Notacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 2.3. Mtodos ingenuos . . . . . . . . . . . . . . . . . . . . . . . . . e 2.4. Sistema diagonal . . . . . . . . . . . . . . . . . . . . . . . . . i

VII

1 1 4 6 10 11 12 13 16 18 18 19 21 24 24 26 26 27

INDICE GENERAL 2.5. Sistema triangular superior . . . . . . . . . . . . . . . . . . . 2.5.1. Nmero de operaciones . . . . . . . . . . . . . . . . . u 2.6. Sistema triangular inferior . . . . . . . . . . . . . . . . . . . . 2.7. Mtodo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . e 2.7.1. Nmero de operaciones . . . . . . . . . . . . . . . . . u 2.8. Factorizacin LU . . . . . . . . . . . . . . . . . . . . . . . . . o 2.9. Mtodo de Gauss con pivoteo parcial . . . . . . . . . . . . . . e 2.10. Factorizacin LU =PA . . . . . . . . . . . . . . . . . . . . . . o 2.11. Mtodo de Cholesky . . . . . . . . . . . . . . . . . . . . . . e 2.11.1. Matrices denidas positivas . . . . . . . . . . . . . . 2.11.2. Factorizacin de Cholesky . . . . . . . . . . . . . . . o 2.11.3. Nmero de operaciones de la factorizacin . . . . . . u o 2.11.4. Solucin del sistema . . . . . . . . . . . . . . . . . . o 2.12. Solucin por m o nimos cuadrados . . . . . . . . . . . . . . . . 2.12.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 2.12.2. Ecuaciones normales . . . . . . . . . . . . . . . . . . 2.13. Sistemas tridiagonales . . . . . . . . . . . . . . . . . . . . . . 2.14. Clculo de la inversa a 3. Mtodos iterativos e 3.1. Mtodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . e 3.2. Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Normas matriciales . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Condicionamiento de una matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ii 28 31 31 32 39 41 43 48 51 52 54 60 61 63 64 64 68 73 78 78 84 85 85 98 98

3.5. Mtodo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . 103 e 3.6. Mtodo iterativo general . . . . . . . . . . . . . . . . . . . . . 104 e

INDICE GENERAL

iii

3.7. Mtodo de sobrerrelajacin . . . . . . . . . . . . . . . . . . . 105 e o 3.8. Mtodos de minimizacin . . . . . . . . . . . . . . . . . . . . 112 e o 3.9. Mtodo del descenso ms pendiente . . . . . . . . . . . . . . . 114 e a 3.10. Mtodo del gradiente conjugado . . . . . . . . . . . . . . . . . 117 e 4. Solucin de ecuaciones no lineales o 122

4.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.2. Mtodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . 126 e 4.2.1. Orden de convergencia . . . . . . . . . . . . . . . . . . 129 4.3. Mtodo de la secante . . . . . . . . . . . . . . . . . . . . . . . 132 e 4.4. Mtodo de la biseccin . . . . . . . . . . . . . . . . . . . . . . 135 e o 4.5. Mtodo de Regula Falsi . . . . . . . . . . . . . . . . . . . . . 137 e 4.6. Modicacin del mtodo de Regula Falsi . . . . . . . . . . . . 139 o e 4.7. Mtodo de punto jo . . . . . . . . . . . . . . . . . . . . . . . 140 e 4.7.1. Modicacin del mtodo de punto jo . . . . . . . . . 146 o e 4.7.2. Mtodo de punto jo y mtodo de Newton e e . . . . . . 147 4.8. Mtodo de Newton en Rn . . . . . . . . . . . . . . . . . . . . 148 e 4.8.1. Matriz jacobiana . . . . . . . . . . . . . . . . . . . . . 149 4.8.2. Frmula de Newton en Rn . . . . . . . . . . . . . . . . 149 o 4.9. Mtodo de Muller . . . . . . . . . . . . . . . . . . . . . . . . . 152 e 4.10. Mtodo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . 160 e 5. Interpolacin y aproximacin o o 171

5.1. Interpolacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 o 5.1.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.1.2. Caso general . . . . . . . . . . . . . . . . . . . . . . . 174 5.2. Interpolacin polinomial de Lagrange . . . . . . . . . . . . . . 177 o 5.2.1. Algunos resultados previos . . . . . . . . . . . . . . . 178 5.2.2. Polinomios de Lagrange . . . . . . . . . . . . . . . . . 178

INDICE GENERAL

iv

5.2.3. Existencia, unicidad y error . . . . . . . . . . . . . . . 181 5.3. Diferencias divididas de Newton . . . . . . . . . . . . . . . . . 183 5.3.1. Tabla de diferencias divididas . . . . . . . . . . . . . . 186 5.3.2. Clculo del valor interpolado . . . . . . . . . . . . . . 189 a 5.4. Diferencias nitas . . . . . . . . . . . . . . . . . . . . . . . . . 194 5.4.1. Tabla de diferencias nitas . . . . . . . . . . . . . . . 195 5.4.2. Clculo del valor interpolado . . . . . . . . . . . . . . 196 a 5.5. Trazadores cbicos, interpolacin polinomial por trozos, splines 199 u o 5.6. Aproximacin por m o nimos cuadrados . . . . . . . . . . . . . 206 6. Integracin y diferenciacin o o 211

6.1. Integracin numrica . . . . . . . . . . . . . . . . . . . . . . . 211 o e 6.2. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 6.3. Frmula del trapecio . . . . . . . . . . . . . . . . . . . . . . . 213 o 6.3.1. Errores local y global . . . . . . . . . . . . . . . . . . 216

6.4. Frmula de Simpson . . . . . . . . . . . . . . . . . . . . . . . 218 o 6.4.1. Errores local y global . . . . . . . . . . . . . . . . . . 219

6.5. Otras frmulas de Newton-Cotes . . . . . . . . . . . . . . . . 223 o 6.5.1. Frmulas de Newton-Cotes abiertas . . . . . . . . . . 224 o 6.6. Cuadratura adaptativa . . . . . . . . . . . . . . . . . . . . . . 225 6.7. Cuadratura de Gauss-Legendre . . . . . . . . . . . . . . . . . 227 6.7.1. Polinomios de Legendre . . . . . . . . . . . . . . . . . 233 6.8. Cuadratura de Gauss-Leguerre y Gauss-Hermite . . . . . . . 234 6.9. Derivacin numrica . . . . . . . . . . . . . . . . . . . . . . . 234 o e 6.9.1. Derivadas parciales . . . . . . . . . . . . . . . . . . . . 236 6.9.2. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 237 7. Ecuaciones diferenciales 241

7.0.3. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 242

INDICE GENERAL

7.1. Mtodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . 243 e 7.2. Mtodo de Heun . . . . . . . . . . . . . . . . . . . . . . . . . 246 e 7.3. Mtodo del punto medio . . . . . . . . . . . . . . . . . . . . . 249 e 7.4. Mtodo de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . 252 e 7.5. Deduccin de RK2 . . . . . . . . . . . . . . . . . . . . . . . . 257 o 7.6. Control del paso . . . . . . . . . . . . . . . . . . . . . . . . . 259 7.7. Orden del mtodo y orden del error . . . . . . . . . . . . . . . 265 e 7.7.1. Vericacin numrica del orden del error . . . . . . . . 266 o e 7.8. Mtodos multipaso expl e citos . . . . . . . . . . . . . . . . . . 267 7.9. Mtodos multipaso impl e citos . . . . . . . . . . . . . . . . . . 271 7.10. Sistemas de ecuaciones diferenciales . . . . . . . . . . . . . . 276 7.10.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 278 7.11. Ecuaciones diferenciales de orden superior . . . . . . . . . . 280 7.12. Ecuaciones diferenciales con condiciones de frontera . . . . . 283 7.13. Ecuaciones lineales con condiciones de frontera . . . . . . . . 286 8. Ecuaciones diferenciales parciales 291

8.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 8.2. El pticas: ecuacin de Poisson . . . . . . . . . . . . . . . . . . 292 o 8.3. Parablicas: ecuacin del calor . . . . . . . . . . . . . . . . . 298 o o 8.3.1. Mtodo expl e cito . . . . . . . . . . . . . . . . . . . . . 300 8.3.2. Mtodo impl e cito . . . . . . . . . . . . . . . . . . . . . 303 8.3.3. Mtodo de Crank-Nicolson . . . . . . . . . . . . . . . 306 e 8.4. Hiperblicas: ecuacin de onda . . . . . . . . . . . . . . . . . 310 o o 8.4.1. Mtodo expl e cito . . . . . . . . . . . . . . . . . . . . . 310 8.4.2. Mtodo impl e cito . . . . . . . . . . . . . . . . . . . . . 313 9. Valores propios 316

9.1. Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316

INDICE GENERAL

vi

9.1.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 320 9.2. Mtodo de la potencia . . . . . . . . . . . . . . . . . . . . . . 320 e 9.3. Mtodo de la potencia inversa . . . . . . . . . . . . . . . . . . 324 e 9.4. Factorizacin QR . . . . . . . . . . . . . . . . . . . . . . . . . 326 o 9.4.1. Matrices de Householder . . . . . . . . . . . . . . . . . 327 9.4.2. Matrices de Givens . . . . . . . . . . . . . . . . . . . . 330 9.4.3. Factorizacin QR con matrices de Householder . . . . 331 o 9.4.4. Factorizacin QR con matrices de Givens . . . . . . . 336 o 9.4.5. Solucin por m o nimos cuadrados . . . . . . . . . . . . 339 9.5. Mtodo QR para valores propios de matrices simtricas . . . 341 e e 9.5.1. Tridiagonalizacin por matrices de Householder para o matrices simtricas . . . . . . . . . . . . . . . . . . . . 342 e 9.5.2. Tridiagonalizacin por matrices de Givens para mao trices simtricas . . . . . . . . . . . . . . . . . . . . . 344 e 9.5.3. Valores propios de matrices tridiagonales simtricas . 346 e

NOTACION
[a, b] = {x R : a x b}, intervalo cerrado. ]a, b[ = {x R : a < x < b}, intervalo abierto. Tambin es usual denotar el e intervalo abierto por (a, b) pero puede confundirse con la pareja ordenada (a, b). [[i, j]] = {n Z : i n j}, intervalo de enteros (i y j son enteros). C[a, b] es el conjunto de funciones continuas que van del intervalo [a, b] en los reales. C 1 [a, b] es el conjunto de funciones denidas sobre [a, b] cuya primera derivada existe y es continua. 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 o que f es de clase C n . C [a, b] es el conjunto de funciones que se pueden derivar tantas veces como se desee. Por ejemplo: 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]. Rmn = conjunto de matrices reales de tamao mn. Si A Rmn , entonces n a11 a12 . . . a1n a21 a22 . . . a2n A= . . . .. . . . . . . . am1 am2 . . . amn vii Rn = {(x1 , x2 , . . . , xn ) : xj R, j}

aij es la entrada (elemento o componente) de A en la la i y en la columna j. Rn1 = conjunto de matrices columna de n componentes. R1n = conjunto de matrices la de n componentes. R11 = R. AT = la transpuesta de la matriz A. Rn := Rn1 , es decir, x1 x2 x = (x1 , x2 , . . . , xn ) := . . . xn
T

x = x1 x2 . . . xn

Ai = ai1 ai2 . . . ain , la i-sima de la matriz A. e a1j a2j Aj = . , columna j-sima de la matriz A. e . . amj
n

=
i=1 n

|xi | x2 i
1/2

x x

=
i=1

= max |xi |
1in

f () x

= f () = gradf () = gradiente de f calculado en x x x

viii

f () = 2 f () = Hf () = H() = Hessiano o matriz hessiana de f en x x x x x 2f x x2 () 1 2f () x f () = x1 x2 x . . . 2f () x x1 xn 2f () . . . x x2 x1 2f () x ... x2 2 . .. . . . 2f () . . . x x2 xn 2f () x xn x1 2f () x xn x2 . . . 2f () x x2 n

f () = x f () x xn

f () x x1 f () x x2 . . .

ej = j-sima columna de la matriz identidad e

Rn = {(x1 , x2 , ..., xn ) : xi 0, i}, el ortante no negativo de Rn . +

(A) = max{|i |C : i es valor propio de A}, radio espectral de A. : n del ejemplo. x = max{n Z : n x}, parte entera o parte entera inferior o piso de x. x = min{n Z : n x}. parte entera superior o techo de x. En la escritura de numeros decimales, los enteros estn separados de los a decimales por medio de un punto. No se usa la notacin espaola (los enteros o n estn separados de los decimales por una coma). No se utiliza un s a mbolo para separar las unidades de mil de las centenas.

ix

Cap tulo 1

Preliminares
1.1. 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 nmero real L es el l u mite de f cuando x tiende a c, denotado por, lim f (x) = L ,
xc

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 () f (c) f (c + h) f (c) = lim . c h0 h c lim En este caso, el l mite es la derivada de f en c y se denota por f (c). 1

CAP ITULO 1. PRELIMINARES f () x

f () x a x x b

Figura 1.1: Teorema de valores extremos 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 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

CAP ITULO 1. PRELIMINARES

M t

m a c c b

Figura 1.2: Teorema del valor intermedio

c Figura 1.3: Teorema de Rolle

Figura 1.4: Teorema del valor medio

CAP ITULO 1. PRELIMINARES

1.2.

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

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 Ejemplos de sucesiones: un = 1/n2 , vn = 5+

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 e e o u de Fibonacci (Leonardo de Pisa) se dene por: 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

lim xn = L

o xn L
n

CAP ITULO 1. PRELIMINARES o simplemente, si no hay confusin, o xn L Ejemplo 1.1. Sea 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 . 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 .

CAP ITULO 1. PRELIMINARES 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.3.

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

CAP ITULO 1. PRELIMINARES 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

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:

CAP ITULO 1. PRELIMINARES

|Rn (x)|

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

(1.3)

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 (0) = 1 f (n) (0) = 1 ex = 1 + x + e =
x n=0

x2 x3 x4 + + + 2 3! 4!

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)

CAP ITULO 1. PRELIMINARES

f (0) = 0 f (0) = 1 f (0) = 0 f (4) (0) = 0 f (0) = 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 )

CAP ITULO 1. PRELIMINARES

10

|error|

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

|error| 0.0004731 sen(3) |error| 0.0000668

|error| 0.0004731 0.1411 = 0.0000668

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

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

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

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

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

(1.4) (1.5) (1.6)

(n + 1)!
k=0

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

1.4.

Derivadas parciales

Sea f : Rn R y x Rn . Si se dejan jas todas las variables salvo la primera, se obtiene una funcin de una sola variable. Se puede entonces o pensar en buscar (puede existir o no existir) la derivada de esta nueva funcin. Se obtiene as la derivada parcial de f con respecto a x1 . De manera o ms precisa, si el siguiente l a mite existe, ste es la derivada parcial de f con e respecto a x1 evaluada en x, denotada como aparece a continuacin: o f f (1 + h, x2 , ..., xn ) f (1 , x2 , ..., xn ) x x () = lim x . h0 x1 h De manera anloga a f (1 , x2 + h, x3 , ..., xn ) f (1 , x2 , x3 , ..., xn ) x x f () = lim x . h0 x2 h

CAP ITULO 1. PRELIMINARES

11

Con frecuencia se utilizan las derivadas parciales, no en un punto espec co como x = (2, 2, 4, 1/3), sino en un punto variable. Para obtener las derivadas paraciales se utilizan las mismas reglas de la derivacin en una o variable, considerando las otras variables como constantes. Por ejemplo, si f (x1 , x2 , x3 , x4 ) = (4x3 + 6x4 )9 + 5x1 x2 + 8x4 , 1 f x1 f x2 f x3 f x4 = 9(4x3 + 6x4 )8 (12x2 ) + 5x2 , 1 1 = 5x1 , = 0, = 54(4x3 + 6x4 )8 + 8. 1

1.5.

Teorema espectral para matrices simtricas e

Este teorema important simo algunas veces no aparece en los libros intro ductorios de Algebra Lineal, razn por la cual est en este cap o a tulo de preliminares. Teorema 1.6. Si A es una matriz real simtrica, existe una matriz Q ortoe gonal (Q1 = QT o QQT = I) tal que D = QT AQ , donde D es una matriz diagonal. Otra manera de decirlo es: A es diagonalizable por medio de una matriz ortogonal. Estas dos matrices Q y D, en general, no son unicas. Sin embargo los ele mentos diagonales de D son los valores propios de A, siempre reales por ser A simtrica. Las columnas de la matriz Q son vectores propios normalizados e de A.

CAP ITULO 1. PRELIMINARES Ejemplo 1.6. 1 2 2 3 0 2 5 D= 0 2+ 5 1+ 5 1+ 55 2 2 5 Q= A=


1+ 5 2 5 1+ 5 2 5

12

1.6.

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

Ejemplo 1.7. 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 ).

CAP ITULO 1. PRELIMINARES

13

Segn la notacin O grande, el residuo para el polinomio de Taylor (1.5) se u o puede expresar Rn ( + h) = O(hn+1 ). x

1.7.

Orden de convergencia

Sea {xk } una sucesin de nmeros reales con l o u mite L tal que xk = L para todo k. Se dice que la convergencia tiene convergencia lineal, si el siguiente l mite existe. |xk+1 L| lim = ]0, 1[. k |xk L| Se dice que la convergencia tiene orden de convergencia p > 1, si el siguiente l mite existe. |xk+1 L| lim = > 0. k |xk L|p En este caso se dice que es la tasa de convergencia. Obsrvese que cuando e p = 1 (convergencia lineal), se exige adems que < 1. a

La convergencia se llama superlineal si lim |xk+1 L| = 0. |xk L| |xk+1 L| = 1. |xk L|

La convergencia se llama sublineal si lim

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


k

lim

el orden de convergencia es superior a p.

|xk+1 L| =0 |xk L|p

Lo ideal es tener rdenes de convergencia altos con tasas pequeas. Una o n convergencia sublineal es una convergencia muy lenta. Una convergencia cuadrtica es muy buena, por ejemplo, el mtodo de Newton que se ver en a e a un cap tulo posterior.

CAP ITULO 1. PRELIMINARES

14

1 o Ejemplo 1.8. 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. Entonces podemos decir que la convergencia es sublineal. 1 o Ejemplo 1.9. xk = k . Esta sucecin converge a 0. Directamente veamos 2 que pasa con p = 1 1 k+1 |xk+1 L| = lim 2 lim 1 k k |xk L|1 2k 2k = lim k+1 k 2 1 = lim k 2 1 = 2 Entonces la sucesin tiene convergencia lineal con tasa 1/2. o Ejemplo 1.10. 69 10 xn = 6 + (xn1 6)2 , x1 = Los primeros valores son los siguientes:

n 2.

CAP ITULO 1. PRELIMINARES n 1 2 3 4 5 6 7 8 9 10 Se puede mostrar que xn = 6 + yn , n = 1, 2, ... 9 y1 = 10 2 yn = yn1 , n = 2, 3, ... yn = 9 10


2n1

15

xn 6.900000000000000 6.810000000000000 6.656100000000000 6.430467210000001 6.185302018885185 6.034336838202925 6.001179018457774 6.000001390084524 6.000000000001933 6.000000000000000

, n = 1, 2, ...

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


2 yk p k yk k

lim

2p = lim yk

Si p = 1, el l mite es 0, es decir, la convergencia es superlineal. Si p = 2 el l mite es 1, luego la convergencia es cuadrtica. Cuando la convergencia es a cuadrtica, el nmero de d a u gitos decimales exactos se va duplicando (aproximadamente) en cada iteracin. En el ejemplo, para los valores de n = 6, 7, o 8, 9, el nmero de d u gitos decimales exactos (ceros en este caso) es 1, 2, 5, 11.

CAP ITULO 1. PRELIMINARES

16

1.8.

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 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)

CAP ITULO 1. PRELIMINARES

17

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 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. Para evitar el ensayo y error se puede utilizar la siguiente secuencia de rdenes o 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.

CAP ITULO 1. PRELIMINARES

18

1.9.

Truncamiento y redondeo

Sea x un real (supuesto positivo por facilidad de presentacin), o x = 0.d1 d2 dk 10n 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.10.

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:

CAP ITULO 1. PRELIMINARES

19

error absoluto = |x x| , |x x| . error relativo = |x| Ejemplo 1.11. 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 %. Los principales casos en los que los errores pueden ser grandes o pueden inducir errores 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.11.

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 en o e 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.

CAP ITULO 1. PRELIMINARES

20

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. Ejemplo 1.12. Consideremos la sucesin denida as (ver [KiC94]): o x0 = 1 () Se puede demostrar que () xn = 1 , n = 0, 1, 2, ... 3n x1 = 1/3 13 4 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 todas las cifras que utiliza Scilab, x obtenido por la frmula de recurrencia n o obtenido por la frmula (*) pero trabajando con 8 cifras signicativas y xn o de recurrencia (*) pero trabajando con 4 cifras signicativas.

CAP ITULO 1. PRELIMINARES 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

21

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

1.12.

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

CAP ITULO 1. PRELIMINARES Ejemplo 1.13. Consideremos el sistema de ecuaciones Ax = b, donde A= 10.01 10.00 10.00 9.99 , b= 20.01 19.99 .

22

La solucin exacta de este problema es o x = [1 1]T , Consideremos ahora un sistema de ecuaciones muy parecido, Ax = b , unica mente hay cambios pequeos en b, 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.

Ejercicios
1.1 Obtenga p2 (x), el polinomio de Taylor de orden 2, para f (x) = ex alrededor de x = 0.5. Utilice 6 cifras decimales. Calcule p2 (0.7). Por medio de (1.3) obtenga una cota para el error. Compare con el error realmente cometido. 1.2 Como el ejercicio 1, para f (x) = ex , x = 0.5 y p3 (0.7). 1.3 Como el ejercicio 1, para f (x) = x, x = 1 y p2 (1.1). 1.4 Como el ejercicio 1, para f (x) = ln x, x = 1 y p2 (0.9). 1.5 Como el ejercicio 1, para f (x) = seng (x) (la funcin seno para el o a ngulo en grados), x = 90 y p3 (80). 1.6 Sea f (x) = cos(x), x = 0. Cul es el m a nimo valor de n para el cual la cota del error segn (1.3) es menor o igual a 106 para pn (0.1)? u

CAP ITULO 1. PRELIMINARES

23

1.7 Sea f (x) = cos(x), x = 0. Cul es el mayor valor de t para el cual la a cota del error segn (1.3) es menor o igual a 106 para p2 (t)? u 1.8 Sea x = 0.6. Obtenga su expresin binaria. Sea x la expresin truncada o o a cuatro d gitos binarios (despus del punto). Cules son los errores e a absoluto y relativo? Sea x la expresin redondeada a cuatro d o gitos. Cules son los errores absoluto y relativo? Las mismas preguntas con a ocho d gitos.

Cap tulo 2

Solucin de sistemas de o ecuaciones lineales


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 24

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

25

a = [ 2 3; 4 5], b = [-5; -7], x=a\b da como resultado x =

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 en u el mismo computador no son siempre iguales, pero s parecidos. Las funciones tic y toc permiten obtener una medida del tiempo de un proceso.

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

26

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 1 se calcula muy en deducciones tericas o, en muy raros casos, cuando A 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 b1 a12 a13 a11 b1 a13 det b2 a22 a23 det a21 b2 a23 b3 a32 a33 a31 b3 a33 x1 = , x2 = , 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 columa

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

27

na; 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 .

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 hace 1000 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 e cofactores es francamente inmanejable: 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

28

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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

29

Reemplazando x2 , x3 y x4 por sus valores, se obtiene x1 = 1. En general, para resolver un sistema triangular, primero se calcula xn = bn /ann . Con este valor se puede calcular xn1 , y as sucesivamente. Conoci dos 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: SOLUCION DE SISTEMA TRIANGULAR 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.

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

30

// // // // // // // //

res valdra

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 x = [] 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 orden a v = u(4:2) produce un vector vac es decir, [ ]. Adems o, 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

31

2.5.1.

N mero de operaciones u

Una de las maneras de medir la rapidez o lentitud de un mtodo es medie ante el conteo del nmero de operaciones. Usualmente se tienen en cuenta las u sumas, restas, multiplicaciones y divisiones entre nmeros de punto otante, u 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 point e 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 de una o suma, entonces se acostumbra a dar el nmero de multiplicaciones (o diviu siones). El diseo de los procesadores actuales muestra tendencia al hecho n 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)

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

32

El esquema del algoritmo es el siguiente: 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

33

Ejemplo 2.3. Consideremos el siguiente sistema de ecuaciones: 4x1 + 3x2 2x3 + x4 = 4

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

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

+ x3 + x4 = 8

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

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 4 3 2 1 3 2 1 5 8 2 3 1 2 7 5 0 1 1 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 buscar cero en la posicin (3,1) se hace la siguiente operacin: o o la3 la3 (2/4)la1 3 -0.25 4.5 0 -2 2.5 0 1 1 4.25 2.5 1 4 -11 -5 -8

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

4 0 0 -5

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

34

Para buscar cero en la posicin (4,1) se hace la siguiente operacin: o o la4 la4 (5/4)la1 3 -0.25 4.5 3.75 -2 2.5 0 -1.5 1 4.25 2.5 2.25

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

4 0 0 0

4 -11 -5 -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).

4 0 0 0

4 -11 -203 -5.6

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

35

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 Lo anterior se puede reescribir as : 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 bi = bi lik bk A(i, k + 1 : n) = A(i, k + 1 : n) lik A(k, k + 1 : n)

En resumen, el esquema de la triangularizacin es: o TRIANGULARIZACION DE UN SISTEMA 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.

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

36

para k = 1, ..., n 1 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 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 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. TRIANGULARIZACION CON CONTROL DE PIVOTE para 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 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 function [a, b, indic] = triangulariza(a, b, eps) // Triangulariza un sistema de ecuaciones

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

37

// con matriz invertible. // // 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

38

if abs(a(i,k)) >= eps 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.

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

39

[n1, n2] = size(a) [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

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 miso mo nmero de operaciones. Entonces para la obtener ceros en la primera u columna: 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.

CAP ITULO 2.

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

40

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 n n3 3 3 3

Nmero de multiplicaciones y divisiones: u


n1 n1

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

(i2 + 2i) =

n3 n3 n2 5n + 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

41

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:

Siguiendo con el ejemplo:

La matriz L, con unos en la diagonal, los coecientes lik= lik = aik /akk . 1 0 l21 1 L = l31 l32 . . . 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.

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

42

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 y2 0 0 y3 y4 1 . Al resolver

8 30 = 15 2 8.0 24.0 = 451.0 11.2

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

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

se obtiene la solucin nal x = o

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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

43

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

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 el e a pivote, akk , es nulo o casi nulo. Como el pivote (el elemento akk en la iteracin o k) va a ser divisor para el clculo de lik, y como el error de redondeo o de a 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 de o {|aij | : k i, j n}. En este caso es necesario intercambiar dos las y dos

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

44

columnas. As se consigue mejorar un poco la precisin con respecto al mto o e do de pivoteo parcial, pero a un costo nada despreciable. En el mtodo de e pivoteo parcial se busca el mayor valor entre n k + 1 valores. 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, adems de operaa a ciones de asignacin, por lo menos p 1 comparaciones. Estas operaciones o no son de punto otante y son ms rpidas que ellas, pero para n grande, a a el tiempo utilizado no es despreciable. En el mtodo de pivoteo parcial hay e 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 o gasta bastante ms tiempo. El balance aconseja preferir el pivoteo parcial. a TRIANGULARIZACION CON PIVOTEO PARCIAL para k = 1, ..., n buscar m, tal que |amk | = max{|akk |, |ak+1,k |, ..., |ank |} si |amk | ent salir si m > k ent intercambiar(A(k, k : n), A(m, k : n)) intercambiar(bk , bm ) n-si 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 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 La matriz aumentada es: 4 3 -2 -5

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

+ x3 + x4 = 8 -2 1 1 1 1 5 2 1 4 -8 -7 -8

3 2 3 0

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

45

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

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

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

-8 -3.8 1.4 -10.2667

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

46

Al resolver el sistema triangular superior, se encuentra la solucin: o x = (1, 0, 1, 2) . 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 siguiente, tomado de [Atk78], se resuelve inicialmente por el mtodo de Gauss e sin pivoteo y despus con pivoteo parcial. Los clculos se hacen con cuatro e a 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

0.6867 -0.1081 0.0078

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

47

La solucin del sistema triangular da: o x = ( 0.2163, 0.2979, 0.3197 ). 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 residuo o resto, r = Ax b. Si x es la solucin exacta, entonces la norma de su resto o 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

48

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

1.0000 0.1390 -0.0033

x = ( 0.2267, 0.2770, 0.3300 ). 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

49

Una matriz de permutacin P se puede representar de manera ms compacta o a n con la siguiente convencin: por medio de un vector p R 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. 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

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 donde .

Inicialmente p = (1, 2, 3, 4). Para buscar el mejor pivote, se intercambian las las 1 y 4. -5 0 1 1 3 2 1 5 . p = (4, 2, 3, 1), -2 3 1 2 4 3 -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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

50

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 Para buscar el mejor pivote, se intercambian las las 3 y 4. -5 0 1 1 0.4 3 0.6 1.6 p = (4, 3, 1, 2), -0.8 1 -1.8 0.2 -0.6 0.6667 1.2 4.5333 .

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

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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

51

Si se desea resolver el sistema Ax = b a partir de la descomposicin P A = o 1 LU x = b, o sea, P T LU x = b. Sean z = LU x LU , se considera el sistema P 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. Ejemplo 2.7. Para la matriz A del ejemplo b = [4 8 7 8]T . -8 -7 z = Pb = 4 -8 anterior, resolver Ax = b con

-8 -3.8 Ly = z , entonces y = 1.4 -9.3333 1 0 U x = y , entonces x = -1 -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.

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

52

2.11.1.

Matrices denidas positivas

Una matriz simtrica es denida positiva si e xT Ax > 0, x Rn , x = 0. 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 (2.5)

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

x1 x2 . . .
n n

xn

=
i=1 j=i

aij xi xj .

Si A es simtrica, e
n n1 n

x Ax =
i=1

aii x2 i

+2
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. Ejemplo 2.9. Sea A la matriz nula de orden n. Entonces xT 0 x = 0. Luego la matriz nula no es denida positiva. 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 sumandos a son nulos, es decir, si y solamente si x2 = 0 y x1 = 0, o sea, cuando x = 0. Luego A es denida positiva.

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

53

Ejemplo 2.11. Sea A = 1 2 2 4 .

xT Ax = x2 + 4x2 + 4x1 x2 1 2 = (x1 + 2x2 )2 . Obviamente xT Ax 0. Pero si x = (6, 3), entonces xT Ax = 0. Luego A no es denida positiva. 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. Ejemplo 2.13. Sea A = 1 2 3 4 .

Como A no es simtrica, entonces no es denida positiva. e Sean 1 , 2 , . . . , n los valores propios de A. Si A es simtrica, entonces todos e 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).

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

54

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

CAP ITULO 2. Entonces

SOLUCION DE SISTEMAS DE LINEALES

55

u11 0 u12 u22

u11 u12 0 u22

1 2 2 5

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

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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

56

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= Entonces u11 0 u12 u22 u11 u12 0 u22 = 1 2 2 3 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 u11 u1k u1j u1n . . . . . . u1k ukk ukk ukj ukn . . . . . . u1j ukj ujj ujj ujn . . . . . . u1n ukn ujn unn unn El producto de la la 1 de U T por la columna 1 de U da: u2 = a11 . 11 Luego u11 = a11 . (2.6) + u2 = 3 22

El producto de la la 1 de U T por la columna j de U da: u11 u1j = a1j .

CAP ITULO 2. Luego

SOLUCION DE SISTEMAS DE LINEALES

57

u1j =

a1j , u11

j = 2, ..., n.

(2.7)

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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES u11 = u12 = u13 u14 u22 = u23 = u24 16 = 4 = 3 =2 = 4

58

12 4 8 = 4 16 = 4

18 (3)2 = 3 =0 = 1

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

u33 = u34 = u44 = Entonces,

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

5 (22 + 02 ) = 1

46 ( (4)2 + (1)2 + (2)2 ) = 5 . 4 3 2 4 0 3 0 1 . = 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), t, ukk = 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

59

tiene la matriz A. Al nalizar, en la parte triangular superior del espacio 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. FACTORIZACION DE CHOLESKY 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 //************

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

60

n = size(A,1) U = zeros(n,n) 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:

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES Sumas y restas Multiplicaciones, divisiones y ra ces n(1) (n 1)2 (n 2)3 1(n)

61

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)

Nmero de sumas y restas: u


n1 i=1

(n i)i =

n3 n n3 . 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 n3 n2 n + + . 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 T que resolver U 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 para u resolver el sistema est dado por la factorizacin ms la solucin de dos a o a o sistemas triangulares. Nmero de operaciones u n3 n3 + 2 n2 3 3

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

62

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 no e 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 0 3 U= 0 0

es denida positiva): 2 0 . 2

y = (19, 3, 4). Finalmente, al resolver U x = y se obtiene x = (3, 1, 2). La implementacin en Scilab de la solucin de un sistema con matriz simtrio o e ca y denida positiva se puede hacer por medio de una funcin que llama o tres 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.

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

63

// // 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 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, que es 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 que a adems el rango de A es n. Es muy probable que este sistema no tenga solua cin, es decir, tal vez no existe x que cumpla exactamente las m igualdades. o Se desea que Ax = b, Ax b Ax b = 0,
2 2 2

= 0,

Ax b

Ax b

= 0, = 0.

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).

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

64

2.12.1.

En Scilab

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 2 3 43 4 5 x1 = 77 x2 6 7 109 basta con

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.

Ecuaciones normales

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 .

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 .

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

65

Escribiendo de manera matricial, f =2(A1 x b1 )a11 + 2(A2 x b2 )a21 + 2(A3 x b3 )a31 x1 + 2(A4 x b4 )a41 . Si B es una matriz y u un vector columna, entonces (Bu)i = Bi u. 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

1 2 3

= 0, = 0, = 0

A (Ax b) Es decir,

AT (Ax b)

AT (Ax b) = 0,

AT A x = AT b .

(2.16)

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

66

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. 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: 2 1 0 3.1 x 1 2 3 1 8.9 x2 = 2 3.1 2 1 x3 5 4 2 0.1

La solucin por m o nimos cuadrados es:

Las ecuaciones normales dan: x1 4.0 34 20 15 20 25 12 x2 = 20.5 x3 23.4 15 12 14 x = (2.0252, 1.0132, 2.9728) .

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES 0.0628 0.0196 0.0039 . 0.0275

67

El error, Ax b, es:

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:

cuadrados: 3 x1 9 x2 = 3 x3 0

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. Ejemplo 2.18. Resolver por m nimos cuadrados: 3 2 1 0 1 2 x1 = 6 2 2 x2 6 5 4 34 20 20 25 x1 x2 = 48 15

x1 3 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

68

En este caso, el sistema inicial ten solucin exacta y la solucin por m a o o nimos cuadrados coincide con ella. La solucin por m o nimos cuadrados de un sistema sobredeterminado tambin se puede hacer en Scilab mediante (a*a)\(a*b) o por medio de e 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

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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

69

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 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: d1 u1 0 0 0 0 1 0 0 0 0 0 f1 1 0 0 0 0 0 0 0 d2 u2 0 0 0 d3 u3 0 f2 1 0 0 0 0 0 0 0 f3 1 0 0 =A. 0 0 0 0 0 d4 .. .. . . 0 0 0 0 0 0 0 0 dn1 un1 1 0 0 0 0 0 0 dn 0 0 0 0 fn1 1 Sean Fi la la i de L y Cj la columna j de U . Entonces los productos de las

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

70

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

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 (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 se e tiene: y 1 = b1 , fi1 yi1 + yi = bi , d n x n = yn , di xi + ui xi+1 = yi .

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

71

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 8 2 4 0 0 3 1 5 6 0 , b= A= 2 . 0 4 5 1 10 0 0 1 2 Entonces d1 = 2 , 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 ,

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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

72

Ahora la solucin de los sistemas Ly = b, U x = y : o y1 = 8,

y4 = 10 0.034483 54 = 8.137931 , 8.137931 = 4, x4 = 2.034483 54 1 4 = 2, x3 = 29 13 6 2 x2 = = 1 , 1 8 4 (1) x1 = = 2 . 2

y3 = 2 4 13 = 54 ,

y2 = 1 1.5 (8) = 13 ,

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 .

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 . 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 alu u macenan 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 subdiagonales 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

73

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

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 teo parcial). Se utiliza un vector p en Zn1 que tiene toda la informacin 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES

74

los elementos de A y p se utiliza la notacin usual con sub o ndices.

datos: A, resultados: la inversa almacenada en A, indic Parte 1: 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 Parte 2: 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 Parte 3: 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

CAP ITULO 2.

SOLUCION DE SISTEMAS DE LINEALES Parte 4: Reordenamiento de columnas para k = n 1 : 1 : 1 si pk = k A( : , k) A( : , pk ) n-si n-para

75

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

4.0000 2.0000 0.0000 1.0000

-2.0000 1.0000 -4.0000 -1.0000

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 4.0000 -3.0000 0.0000 -2.0000 -3.0000 1.0000 A despues de operaciones -5.0000 1.0000 2.0000 0.4000 -4.4000 3.2000 -0.8000 -2.2000 1.6000 0.4000 -3.4000 0.2000 k = 2 m = 2 p : 2 2 3 A despues de operaciones -5.0000 1.0000 2.0000

1.0000 -2.0000 -4.0000 -1.0000 1.0000 -2.4000 -3.2000 -1.4000

1.0000

CAP ITULO 2. 0.4000 -0.8000 0.4000

SOLUCION DE SISTEMAS DE LINEALES -4.4000 0.5000 0.7727 3.2000 0.0000 -2.2727 -2.4000 -2.0000 0.4545

76

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

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

-0.1000 0.2000 -0.1000 -0.5000

-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

CAP ITULO 2. 1.0000 0.4000 0.4000 -0.8000 U -5.0000 0.0000 0.0000 0.0000 P : 0 1 0 0 1 0 0 0 0 0 0 1

SOLUCION DE SISTEMAS DE LINEALES 0.0000 1.0000 0.7727 0.5000 1.0000 -4.4000 0.0000 0.0000 0 0 1 0 0.0000 0.0000 1.0000 -0.0000 2.0000 3.2000 -2.2727 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 -2.4000 0.4545 -2.0000

77

Cap tulo 3

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 e o de los mtodos llamados indirectos o iterativos. En ellos se comienza con e x0 = (x0 , x0 , ..., x0 ), una aproximacin inicial de la solucin. A partir de x0 o o n 1 2 1 = (x1 , x1 , ..., x1 ). se construye una nueva aproximacin de la solucin, 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 2 , n mero total de elementos elementos no nulos es pequeo comparado con n 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 x2 , o a x3 , ..., xn no se modican. El clculo de x1 se hace de tal manera que se a 78

CAP ITULO 3. METODOS ITERATIVOS 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

79

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 se a a 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).

CAP ITULO 3. METODOS ITERATIVOS

80

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).

CAP ITULO 3. METODOS ITERATIVOS 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

81

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 converge para cualquier x0 inicial. Tericamente el mtodo de Gauss-Seidel se deber detener cuando xk o e a < . Sin embargo la condicin anterior necesita conocer x , que es prex o cisamente lo que se est buscando. Entonces, de manera prctica el mtodo a a e de GS se detiene cuando xk xk+n < . 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

CAP ITULO 3. METODOS ITERATIVOS y xk xk+n estn relacionadas. a


n

82

bi xi bi xi xi Sean

aij xj
j=1,j=i

aii
n j=1

aij xj + aii xi ,

aii bi Ai x . xi + aii

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 k es solucin si y solamente si r = 0, o sea, si y solamente = 0. Lo x o anterior 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

CAP ITULO 3. METODOS ITERATIVOS 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

83

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

CAP ITULO 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

84

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.

CAP ITULO 3. METODOS ITERATIVOS

85

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

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

||x||

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

CAP ITULO 3. METODOS ITERATIVOS

86

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|| ||B|| = 4 8 = 32

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

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

CAP ITULO 3. METODOS ITERATIVOS

87

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

CAP ITULO 3. METODOS ITERATIVOS

88

(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:

CAP ITULO 3. METODOS ITERATIVOS

89

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 norma || || en Rn , la norma generada o subordinada sobre Rnn se denota por ||| ||| . Cuando no hay ambig edad, es la notacin ms usual, u o a ||A|| indica la norma generada evaluada en la matriz A y ||x|| 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 |.

CAP ITULO 3. METODOS ITERATIVOS

90

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 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 A= Entonces AT A = 1 2 3 4 10 10 10 20 ||A||F =
i,j

(aij )2

(3.8)

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 |

CAP ITULO 3. METODOS ITERATIVOS Demostracin. o ||A||1 = max ||Ax||1


||x||1 =1 n i=1 n i=1 n

91

= max = max

||x||1 =1

|(Ax)i | |Ai x|
n

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

||x||1 =1

|xj |

|aij |

= max

||x||1 =1

|xj |sj

donde sj =

n i=1 |aij |.

Si j , j 0 para todo j, entonces


n

j=1

j j

Luego

max j
j

n j=1

j .

CAP ITULO 3. METODOS ITERATIVOS

92

||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 k

||A||1 ||Ae ||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).

CAP ITULO 3. METODOS ITERATIVOS Demostracin. o ||A||2 = max ||Ax||2 ||A||2 2 ||A||2 2 = max ||Ax||2 2
||x||2 =1 ||x||2 =1

93

= 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

CAP ITULO 3. METODOS ITERATIVOS

94

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 v AT Av 1 v 1 T 1 v 1 1 v 1 T v 1 1 .
n 1T

pra todo x con ||x||2 = 1

Proposicin 3.4. ||A|| = max o


i

j=1

|aij |

CAP ITULO 3. METODOS ITERATIVOS Demostracin. o ||A|| = max ||Ax||


||x|| =1

95

= max max |(Ax)i |


||x|| =1 i

= max max |Ai x|


||x|| =1 i n i j=1 n

= max max |
||x|| =1

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 n

|akj | = max
i

xj =

j=1

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

signo(akj ) =

CAP ITULO 3. METODOS ITERATIVOS

96

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

||A|| ||Ax|| = max |Ai x|

||x|| = 1,

si

||x|| = 1,

||A|| |Ak x|
n

= |Ai x|

para todo i,

=
j=1 n

akj

|akj | 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.

CAP ITULO 3. METODOS ITERATIVOS


n

97

||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 ||A||2 = ||A||F sssi r(A) = 1. 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. || || no es la norma generada por ninguna norma || || ya que ||I||F = F n = 1. n max |aij | es matricial (ver [Man04]).
i,j i,j

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

CAP ITULO 3. METODOS ITERATIVOS

98

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. n e n En realidad es mejor considerar cambios relativos. Se espera que si el valor ||b||/||b|| es pequeo, entonces tambin ||x||/|||| sea pequeo. Las n e x n deducciones que siguen relacionan los dos cambios relativos.

x = x x

= A1 (b + b) A1 b = A1 b. Al utilizar una norma y la norma matricial generada se obtiene ||x|| ||A1 || ||b||.

= A1 b A1 b

CAP ITULO 3. METODOS ITERATIVOS Por otro lado b = Ax ||b|| ||A|| |||| x ||A|| 1 |||| x ||b|| Multiplicando la primera y la ultima desigualdad ||x|| ||b|| ||A|| ||A1 || . |||| x ||b||

99

(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|| 10 7 6 4 (3.10)

Ejemplo 3.5. Calcular 1 (A), 2 (A) y (A) para la matriz A= .

CAP ITULO 3. METODOS ITERATIVOS Entonces A1 = AT A = A1 A1 =


T

100

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.

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.

CAP ITULO 3. METODOS ITERATIVOS 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|| (A) = 0.0005376. ||b|| 10 10 10 9 , b= 20.01 19.99 , b = 20.02 19.98 .

101

La matriz A es muy bien condicionada y entonces cambios pequeos en b n producen cambios pequeos en x. 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 .

CAP ITULO 3. METODOS ITERATIVOS Al resolver los dos sistemas se obtiene: x = [1 1]T , x = [1998 2002]T , x = [1999 2001]T , ||x|| = 2000.0002, ||x|| ||b|| (A) = 2000.0008. ||b||

102

La matriz A es muy mal condicionada y entonces cambios pequeos en b n pueden producir cambios muy grandes en la solucin. 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 .

CAP ITULO 3. METODOS ITERATIVOS

103

La matriz A, la misma del ejemplo anterior, es muy mal condicionada y entonces cambios pequeos en b pueden producir cambios muy grandes en la n solucin. Sin embargo los cambios en la solucin, aunque no despreciables, no o o fueron tan grandes como en el ejemplo anterior, o sea, ||x||/||x|| est lejos a de la cota superior. 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

CAP ITULO 3. METODOS ITERATIVOS En cambio en el mtodo de Jacobi: e x2 = En el mtodo de GS: e x3 = 45 + 2 1.775 3 3.09 = 3.928 . 10 19 2 1.2 0 1.6 = 3.32 . 5

104

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.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 o a de 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

CAP ITULO 3. METODOS ITERATIVOS

105

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 Ai x , ri i = , aii xi = xi + i .

CAP ITULO 3. METODOS ITERATIVOS

106

El el mtodo SOR unicamente cambia la ultima asignacin, introduciendo e o un parmetro , a ri = bi Ai x , 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 0 = (1, 1, 1, 1). partiendo de x 25 5 1 2 2 10 0 4 2 3 , b= A= 35 . 3 3 8 2 33 1 4 1 6

CAP ITULO 3. METODOS ITERATIVOS Entonces r1 = b1 A1 x = 25 4 = 21 21 = 4.2 1 = 5 1 = 5.88 x1 = 1 + 5.88 = 6.88 r2 = 10 9 = 19 19 = 4.75 2 = 4 2 = 6.65

107

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 4 = = 0.681792 6 4 = 0.954508 x4 = 1 0.954508 = 0.045492

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

x1 = 6.880000 + 7.228905 = 0.348905

La siguiente tabla muestra las primeras 15 iteraciones completas

CAP ITULO 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

108

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

CAP ITULO 3. METODOS ITERATIVOS 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

109

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 pree gunta Cmo escoger ? La respuesta no es sencilla. Algunas veces se hace o simplemente 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

CAP ITULO 3. METODOS ITERATIVOS de punto jo con 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 = +

110

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.

CAP ITULO 3. METODOS ITERATIVOS (M ) 1

111

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

CAP ITULO 3. METODOS ITERATIVOS

112

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,

CAP ITULO 3. METODOS ITERATIVOS 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

113

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 maye or de los mtodo de minimizacin son iterativos. En casi todos, en cada a e o iteracin, 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 (t) = f (xk + tdk ) es cuadrtica (en R). Como A es denida positiva, repa resenta una parbola que abre hacia arriba y el punto cr a tico, tc , corresponde a un minimizador. (3.15)

CAP ITULO 3. METODOS ITERATIVOS

114

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
kT

= (Axk b)

(3.17) (3.18) (3.19)

tk = xk+1

d dk T dk Adk = x k + tk d k .

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 0 1 . x = 1

CAP ITULO 3. METODOS ITERATIVOS 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

115

-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

CAP ITULO 3. METODOS ITERATIVOS x20 : 1.999763 -2.999821 4.000032

116

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

CAP ITULO 3. METODOS ITERATIVOS 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

117

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

CAP ITULO 3. METODOS ITERATIVOS de la direccin anterior, o dk = f (xk ) + k dk1 .

118

(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.

CAP ITULO 3. METODOS ITERATIVOS 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

119

Ejemplo 3.13. Resolver el sistema Ax = b por el mtodo GC, partiendo e de x1 = (1, 1, 1), donde 55 19 6 8 b = 22 . A = 6 5 2 , 24 8 2 4

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

120

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

CAP ITULO 3. METODOS ITERATIVOS

121

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.

Cap tulo 4

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 122

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

123

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 sucesie vamente se construye la sucesin {xk } con el objetivo, no siempre cumplido, o de que lim xk = x .
k

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

124

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

125

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 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. = 0.0182285 = 0.9957334 lo cual indica que no se obtuvo una ra z. =

fx

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

126

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.

CAP ITULO 4. k 0 1 2 3 4 5 6

SOLUCION DE ECUACIONES NO LINEALES 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

127

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

128

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 f o o u . Fundamentalmente hay dos posibilidades: 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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

129

// 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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

130

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 que o la convergencia es cuadrtica o de orden superior. La frase x0 est sua a cientemente cerca de x , entonces... quiere decir que existe > 0 tal 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 (xxn ) f () + (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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

131

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,

CAP ITULO 4. es decir

SOLUCION DE ECUACIONES NO LINEALES

132

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 Si en o cil. 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)

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

133

y = f (x)

(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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

134

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

135

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.

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

136

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 a a puede haber en la iteracin k, o e k E k = bk a k . Como el tamao de un intervalo es exactamente la mitad del anterior n 1 bk ak = (bk1 ak1 ), 2 entonces bk ak = Finalmente bk a k = 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
k

1 2

bk ak , (b0 a0 ) , , b0 a 0 b0 a 0 2k , b0 a 0 , k log 2 log log b0 a0 k log 2 1 2


k

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

137

y = f (x)

(bk , f (bk ))

ak c k 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 .

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

138

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

Cuando y = 0 se tiene el punto de corte x = ck , c k = 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 signo o 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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

139

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 a k 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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

140

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 x . Por tal motivo se dice que x es un punto jo de la funcin g. 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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES 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

141

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES y=x

142

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

143

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

144

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

145

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 |g (x )| < 1 el mtodo converge. 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 informao cin ms detallada. La solucin est en el intervalo [2, 3]; consideremos un o a o a

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

146

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 4 el valor de y Entre 1 + y g (x) es positivo. Luego g decrece en [1 + , y crece [ 3, 4]. Entonces 3] en g([1 + , 3]) = [g(1 + ), 3] [2, 3] y g([ 3, 4]) = [ 3, 2.375]. En conse cuencia g(I) = [ 3, 2.375] I. Entonces el mtodo de punto jo converge e = 3 para cualquier x0 ]1, 4]. Este resultado se puede generalizar al ax 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. 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 x = e o g(x) y los puntos (xi , g(xi )), (xj , g(xj )), sobre la grca de g. Estos puntos a pueden provenir directamente o no del mtodo de punto jo. es decir, se e 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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

147

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 ).

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

148

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 F1 (x) F2 (x) F (x) = . . . . Fn (x) 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) 2x1 + 3x2 x3 5 = 0
2

(4.15)

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

149

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 (x) 1 JF (x) = F (x) = . . . 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, 2x1 + x2 x1 1 F (x) = 2 3x3 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 )

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

150

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 x1 x 2 x = (x , x , ..., x ) o x = . . 1 2 n . . x n

o El mtodo empieza con un vector x0 = (x0 , x0 , ..., x0 ), aproximacin inicial e n 1 2 . Mediante (4.17) se construye una sucesin de vectores de la solucin x 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 .

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

151

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 2x1 + 3x2 x3 5 = 0

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 x2 = 2.4110 + 4.6537 = 2.2428 1.7514 0.5048 1.2466

1 2 1 F (x0 ) = 2 12 9 6 6 4

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

152

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 . 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, exisa ten 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 estrictamente complejas tambin es par. As un u ces e 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 ).

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

153

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). 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 a por los puntos (x0 , f (x0 )), (x1 , f (x1 )) y (x2 , f (x2 )); el siguiente valor x3 est dado por el (un) punto tal que P (x3 ) = 0. a 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 (x2 ) = c. f (x1 ) = a(x1 x2 )2 + b(x1 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)

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

154

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 necea sariamente 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.

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

155

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 Hay que utilizar aritmtica compleja e R = 66.134333i = 38.5 + 66.134333i x3 = 0.368852 + 1.084169i f (x3 ) = 12.981325 9.579946i d = 0.25

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

156

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

CAP ITULO 4. x2 = 1.

SOLUCION DE ECUACIONES NO LINEALES

157

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

f (x0 ) = 16

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

158

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. 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 que z 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. 2.445428

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

159

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/ x 0 = x 1 , x 1 = x 2 , x 2 = x 3 , f0 = f1 , f1 = f2 f2 = p(x2 ) n-para k 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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

160

4.10.

Mtodo de Bairstow e

Sirve para hallar las ra reales o complejas de un polinomio de grado mayces or 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 dxe divisor de p. Cuando se hace la divisin entre p o 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) + Rx + S.

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

161

u1 = v 1 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: u1 = v 1 u2 = v2 dv1 ui = vi dvi1 evi2 , i = 3, ..., n + 1.

Las frmulas para calcular los vi son o

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

162

v 1 = u1 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 v 1 = u1 u2 dv1 v2 = u3 dv2 ev1 v3 = u4 dv3 ev2 v4 = un+1 dvn evn1 vn+1 =

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

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

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

163

resolver el sistema

vn (dk , ek ) dk k k k = v e n+1 (d , e ) 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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

164

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

=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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

165

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

166

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

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES


4.0000 21.0000 45.0000 18.0000 -163.0000

167

J 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

CAP ITULO 4.
1.1025 -0.5225

SOLUCION DE ECUACIONES NO LINEALES


4.4099

168

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

CAP ITULO 4.
-0.4345

SOLUCION DE ECUACIONES NO LINEALES

169

-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 e = 0.8660624

r2 = 0.5063681 0.4219784 i es ra de p, z

x2 + 0.9339455 x + 0.8660624 divide a p , r4 = 0.4669728 0.8049837 i es ra de p, z 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

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.

CAP ITULO 4.

SOLUCION DE ECUACIONES NO LINEALES

170

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 + x 2 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.

Cap tulo 5

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 () valor aproximado de f , o en otros casos, dado un x, se desea obtener f x de f (). x 171

CAP ITULO 5. y

INTERPOLACION Y APROXIMACION

172

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 ejemo o plo, una ecuacin diferencial) o como resultado de un proceso numrio e co. 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.

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

173

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

CAP ITULO 5. 3 2 1

INTERPOLACION Y APROXIMACION

174

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

CAP ITULO 5. 3 2 1

INTERPOLACION Y APROXIMACION

175

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 De manera compacta se tiene a = y. (5.1)

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

176

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

Entonces

que efectivamente pasa por los puntos dados.

4 a = 3 , f (x) = 4 3x + 2x2 , 2

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)

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

177

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 se tiene 1 a1 0.3679 0.1353 7.3891 54.5982 a2 = 2 5 a3 20.0855 403.4288

Entonces

que efectivamente tambin pasa por los puntos dados. 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 n 1), que pase exactamente por esos puntos, es decir, p(xi ) = yi , i = 1, 2, ..., n. (5.2)

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

178

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 )

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

179

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 x2 2x 3 (x 1)(x 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, n1. El denominador es el producto de n 1 nmeros, ninguno de los cuales es u nulo, luego el denominador es un nmero no nulo. En resumen, Lk es un u 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).

CAP ITULO 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.

180

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

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). 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

CAP ITULO 5. 7 6 5 4 3 2 1 0 0

INTERPOLACION Y APROXIMACION

181

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)

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

182

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!, (n) (x) E(t), (t) n! G(n) (x) = f (n) (x) E(t), (t) n! E(t) = 0. G(n) () = f (n) () (t) G(n) (x) = E (n) (x) Entonces E(t) = (t) (n) f (). n!

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)

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

183

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] max |f


zIt (n)

p(5.8) = 0.4654393

(z)| = 0.9589243

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

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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

184

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).

CAP ITULO 5. Obviamente

INTERPOLACION Y APROXIMACION

185

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

(5.9)

(5.10)

(5.11)

CAP ITULO 5. Por otro lado,

INTERPOLACION Y APROXIMACION

186

f [x2 , x1 ] f [x1 , x2 ] x3 x1 f [x2 , x3 ] f [x1 , x2 ] x3 x1 Luego

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:

CAP ITULO 5. xi x1 x2 x3 x4 x5 fi f1 f2

INTERPOLACION Y APROXIMACION f [xi , xi+1 ] f [x1 , x2 ] f [x1 , x2 , x3 ] f [x2 , x3 ] f [x1 , x2 , x3 , x4 ] f [x2 , x3 , x4 ] f [x3 , x4 ] f [x2 , x3 , x4 , x5 ] f [x3 , x4 , x5 ] f [x4 , x5 ] f [xi , xi+1 , xi+2 ] f [xi , xi+1 , xi+2 , xi+3 ]

187

f3 f4 f5

En la tabla anterior, dados 5 puntos, estn las diferencias divididas hasta de a orden 3. Claro est, se hubiera podido calcular tambin la diferencia dividida a e de orden 4, que estar colocada en una columna adicional a la derecha. a La elaboracin de la tabla es relativamente sencilla. Las dos primeras columo nas 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 de la la e 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).

CAP ITULO 5.

INTERPOLACION Y APROXIMACION xi 0 .5 1 2 3 4 fi 0.0000 0.7071 0.5858 1.0000 0.4142 1.4142 0.3179 1.7321 0.2679 2.0000 Df [xi ] 1.4142 0.8284 0.1144 0.0482 0.0250 0.3570 0.0265 0.0077 D2 f [xi ] D3 f [xi ]

188

El valor 1.4142 es simplemente (0.7071 0)/(0.5 0). El valor 0.2679 es simplemente (2 1.7321)/(4 3). El valor 0.1144 es simplemente (0.4142 .5858)/(2 .5). El valor 0.0077 es simplemente (0.0250 0.0482)/(4 1). 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 semejantes o a: x = x(:) y = y(:) n = size(x,1) DD = zeros(n,m+1);

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

189

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) 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 a o as 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 ) . . .

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

190

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 deo a o termina 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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

191

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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

192

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.

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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

193

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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

194

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

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 pero k f sin tener expl mite calcular i citamente los valores k1 fj . La segunda igualdad permite el proceso inverso al clculo de las diferencias nitas (se a 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 mf i Dm f [xi ] = f [xi , ..., xi+m ] = (5.30) m! hm

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

195

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 f
3

3 f1 3 f2

La elaboracin de la tabla es muy sencilla. Las dos primeras columnas coro responden 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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

196

El valor 0.1895 es simplemente 1.4142 1.2247. El valor 0.0330 es simplemente 0.0352 0.0682. 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!

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

197

Desarrollando los factoriales y simplicando se tiene a b = 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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

198

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 . 0 = 1, 1 = 1(1.92) = 1.92, 2 = 1.92(1.92 1)/2 = .8832, 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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

199

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).

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

200

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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

201

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 los a 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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

202

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 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 (bi+1 + bi )hi + ci = ci+1

(5.39)

(5.40)

(5.41)

(5.42)

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

203

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 + hi1 1 hi 1 (di di1 ) (2bi1 + bi ) = (di+1 di ) (2bi + bi+1 ) hi1 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 tiene: e hi1 bi1 + 3 2hi1 2hi + 3 3 bi + 1 1 hi bi+1 = (di1 di ) + (di+1 di ). 3 hi1 hi

Multiplicando por 3: hi1 bi1 + 2(hi1 + hi )bi + hi bi+1 = 3 3 (di1 di ) + (di + di+1 ). hi1 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.

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

204

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)

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

205

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 1 0 0 0 0 b1 1 4 1 0 0 b2 0 0 1 4 1 0 b3 = 3 . 0 0 1 4 1 b4 6 0 0 0 0 1 b5 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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

206

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

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

207

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 (x2 ) + a2 2 (x2 ) + + an n (x2 ) y2 a1 1 (x1 ) + a2 2 (x1 ) + + an n (x1 ) y1 f (x) = a1 1 (x) + a2 2 (x) + + an n (x).

a1 1 (x3 ) + a2 2 (x3 ) + + an n (x3 ) y3 . . . 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.

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

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)

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

208

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=

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

209

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).

CAP ITULO 5.

INTERPOLACION Y APROXIMACION

210

5.6 Considere los puntos (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 parboa la 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 m o o nimos cuadrados.

Cap tulo 6

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 numricil, o e ca. 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.

211

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

212 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)

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

213

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 mltia u x plo de m, n = km. La integral x0n f (x)dx se puede separar en intervalos

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

214

x0 x1 x2 xm x2m xnm a Figura 6.2: Divisin en subintervalos o ms pequeos: a n


xn xm x2m

xn b

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 x xh + y1 , p1 (x) = y0 h h y1 y0 p1 (x) = y0 + x . h p1 (x) = y0

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

215

y0

y1

x0

x1

Figura 6.3: Frmula del trapecio o Entonces


x1 h

p1 (x)dx =
x0 0

(y0 + x

y1 y 0 )dx h

h2 y1 y0 , = y0 h + 2 h y0 y1 = h( + ), 2 2 x1 y0 + y 1 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 . 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

CAP ITULO 6.
xn

INTEGRACION Y DIFERENCIACION

216

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 f (x)dx h(


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

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

217

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

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 algunos casos, la frmula del error permite anar un poco ms. Si f (x) > o a + eloc , entonces la 0 (f estrictamente convexa) en [x0 , x1 ] y como I = I 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].

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 .

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 ]

CAP ITULO 6. Sean

INTEGRACION Y DIFERENCIACION

218

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

CAP ITULO 6.
2h

INTEGRACION Y DIFERENCIACION 4h2 1 8h3 (y0 2y1 + y2 ) + h (3y0 + 4y1 y2 ) 2h2 3 2

219

p2 (x)dx =
0

+ 2h2 (2h)y0 ,
2h 0

1 4 1 p2 (x)dx = h( y0 + y1 + y2 ). 3 3 3
x2 x0

Entonces

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 f (x)dx

h (y0 + 4y1 + 2y2 + 4y3 + + 4yn1 + yn ) 3 h ( y0 + 4 3


k k1

(6.7)

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 .

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

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION
h

220

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.

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

221

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),

e(h) =

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

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

222

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)

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

223

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

3 h (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 xm x0

f (x)dx

pm (x)dx.
x0

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

224

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

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

225

El valor exacto, con 8 cifras decimales, es 1.22554093, entonces el error es 0.00014935 . 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 relao ciona 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, I = Im + F Supongamos que

b a p (q) ) f (), n

(b a)p+1 (q) f (). np

(b a)p+1 (q) f (), np 2p

f (q) () f (q) (). Entonces

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

226

I In + 2p G In + en , I I m + G I n + 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 mtoe do (la frmula de Newton-Cotes), f , a, b, n0 , , nmax . 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 n caso contrario, se continua duplicando el nmero de subintervalos. De todas u est previsto un mmero mximo de subintervalos nmax , ya que es posible a u a que 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

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

227

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

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

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

228

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.

CAP ITULO 6. Recordemos que

INTEGRACION Y DIFERENCIACION

229

1 1

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

w 1 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

w 1 x1 + w 2 x2 = w 1 x2 + w 2 x2 = 1 2 w 1 x3 + w 2 x3 = 1 2 Por suposiciones de simetr a,

x2 dx =

2 , 3

x3 dx = 0.

x1 < 0 < x2 , w1 = w2 . x1 = x2 ,

CAP ITULO 6. Entonces

INTEGRACION Y DIFERENCIACION

230

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 w 1 x2 + w 2 x2 + w 3 x2 = , 1 2 3 3 w1 x3 + w2 x3 + w3 x3 = 0, 1 2 3 2 w 1 x4 + w 2 x4 + w 3 x4 = , 1 2 3 5 w1 x5 + w2 x5 + w3 x5 = 0. 1 2 3 Por suposiciones de simetr a, x1 < 0 = x2 < x3 , x1 = x3 , w1 = w3 . Entonces 2w1 + w2 = 2, 2 2w1 x2 = , 1 3 2 . 2w1 x4 = 1 5 1 , 3 1 . 3

CAP ITULO 6. Finalmente,

INTEGRACION Y DIFERENCIACION

231

3 5 , w1 = ,x1 = 9 5 8 w2 = ,x2 = 0, 9 3 5 w3 = ,x3 = . 9 5 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 =

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION
0.8 0.2

232

ex dx

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 . 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) () .

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

233

6.7.1.

Polinomios de Legendre

Las frmulas de cuadratura vistas son las frmulas de Gauss-Legendre. En elo o las estn involucrados los polinomios ortogonales de Legendre. Tambin hay a e 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 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.19) 1 d (x2 1)n . dxn


n

2n n!

(6.20)

(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

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

234

Las abscisas de las frmulas de cuadratura de Gauss-Legendre son exactao mente las ra ces de Pn (x). Adems, a wi =
1 Pn (x) 1 dx, (x ) Pn i 1 x xi 1 2 wi = (Pn (xi ))2 1 x2 i

(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

CAP ITULO 6. En general,

INTEGRACION Y DIFERENCIACION

235

f (xi ) =

h (yi+1 yi ) f (), [xi , xi+1 ] h 2 (yi yi1 ) h f (xi ) = + f (), [xi1 , xi ] h 2

(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 f (xi ) = (yi+1 yi ) + O(h), h (yi yi1 ) f (xi ) = + O(h). h

Para n = 2, sea s = (x x0 )/h, s(s 1) 2 f0 , 2 2 x x0 x x 0 x x 0 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,

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 f (xi ) =

(6.31)

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

236

En [YoG72], pgina 357, hay una tabla con varias frmulas para diferena o ciacin numrica. Para la segunda derivada, una frmula muy empleada es: o e o yi+1 2yi + yi1 h2 (4) f () , [xi1 , xi+1 ], h2 12 yi+1 2yi + yi1 + O(h2 ). f (xi ) = h2 f (xi ) = (6.32)

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 (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. f (x) = 2.0494 2 = 0.2470 0.2 2 1.9494 = 0.2532 f (4) 0.2 2.0494 1.9494 f (4) = 0.2501 2 0.2 2.0494 2 2 + 1.9494 f (4) = 0.0313 . 0.22 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 las o anteriores; su error es del orden de O(h2 ). Los valores exactos son f (4) = 0.25, f (4) = 0.03125. (6.33) (6.34) (6.35) (6.36) f (4),

6.9.1.

Derivadas parciales

Sea f : Rn R con derivadas dobles continuas. La frmula (6.35) se puede o generalizar a

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

237

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

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

238

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.

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

239

x = [2 3] J = derivative(func247, x)

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

CAP ITULO 6.

INTEGRACION Y DIFERENCIACION

240

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.

Cap tulo 7

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 241

CAP ITULO 7.

ECUACIONES DIFERENCIALES

242

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)

CAP ITULO 7.

ECUACIONES DIFERENCIALES

243

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 ].

CAP ITULO 7.

ECUACIONES DIFERENCIALES (x1 , y1 )

244

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 el o 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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

245

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 =

CAP ITULO 7.

ECUACIONES DIFERENCIALES

246

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

247

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) + y (x + h) 2

y(x + h) y(x) + h o sea, y(x + h) y(x) + h

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)

CAP ITULO 7.

ECUACIONES DIFERENCIALES

248

Ejemplo 7.2. Resolver, por el mtodo de Heun, la ecuacin diferencial e o

y(1) = 0.7182818 en el intervalo [1, 3], con h = 0.25.

y = 2x2 4x + y

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 = ...

CAP ITULO 7.

ECUACIONES DIFERENCIALES

249

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.

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

250

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)

CAP ITULO 7.

ECUACIONES DIFERENCIALES

251

Ejemplo 7.3. Resolver, por el mtodo del punto medio, la ecuacin difere o encial y = 2x2 4x + y

y(1) = 0.7182818 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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

252

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 hubo e que evaluar 16 veces la funcin f (x, y), 2 veces en cada iteracin. Al aplicar el o o mtodo del punto medio con h = 0.5 (es necesario evaluar 8 veces la funcin) e o se obtiene y (3) = 1.5515985, resultado no tan bueno como 2.0887372, pero netamente mejor que el obtenido por el mtodo de Euler. Si se trabaja e 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.

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.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

253

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 ) (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)

CAP ITULO 7.

ECUACIONES DIFERENCIALES

254

Ejemplo 7.4. Resolver, por el mtodo RK4 anterior, la ecuacin diferencial e o y = 2x2 4x + y

y(1) = 0.7182818 en el intervalo [1, 3], con h = 0.25. K1 = hf (x0 , y0 ) = 0.25f (1, 0.7182818) = 0.320430

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 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 = 0.378355 = 0.356701 = 0.352671

CAP ITULO 7.

ECUACIONES DIFERENCIALES

255

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.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

256

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

257

7.5.

Deduccin de RK2 o

En secciones anteriores se hizo la deduccin, de manera ms o menos intuitio a va, de los mtodos de Heun y del punto medio. Los dos resultan ser mtodos e e de RK de orden 2. En esta seccin veremos una deduccin diferente y general o o 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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

258

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)

CAP ITULO 7. Entonces

ECUACIONES DIFERENCIALES

259

= , 1 R2 = 2 R1 = 1 R2 .

(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).

CAP ITULO 7.

ECUACIONES DIFERENCIALES

260

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

261

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 = yi +

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 = yi + 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)

CAP ITULO 7.

ECUACIONES DIFERENCIALES

262

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= 128 2197 1 2 1 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

CAP ITULO 7. diferencial

ECUACIONES DIFERENCIALES

263

y(1) = 0.7182818

y = 2x2 4x + y

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

264

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

265

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 del e 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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

266

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 an, a u se podr obtener el orden del error si ste no se conociera. 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. e o

CAP ITULO 7.

ECUACIONES DIFERENCIALES 5 6 7 8 2.5 2.0 1.5

267

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

268

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 mtoe e do 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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

269

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 f0 = f (x0 , y0 ) = 1.2817182

y3 = y2 + h(5f0 16f1 + 23f2 )/12 f3 = f (x3 , y3 ) = 1.2510843 = 0.3760843

f2 = 1.5182773

f1 = f (x1 , y1 ) = 1.5096394

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.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

270

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

271

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 p2 (x) = 1 (f0 2f1 + f2 )x2 + (3f0 + 4f1 f2 )hx + 2h2 f0 . 2h2

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

272

7 1 (f0 2f1 + f2 ) h3 + 2 2h 3 3 (3f0 + 4f1 f2 ) h3 + 2h3 f0 2 h y2 = y1 + (f0 + 8f1 + 5f2 ). 12 y2 = y1 +

(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 se calcula yi+1 o e 1 0 0 este valor se puede calcular fi+1 = f (xi+1 , yi+1 ) y en seguida yi+1 . De nuevo 1 1 2 se calcula fi+1 = f (xi+1 , yi+1 ) y en seguida yi+1 . Este proceso iterativo k+1 k acaba cuando dos valores consecutivos, yi+1 y yi+1 , son muy parecidos. Este mtodo recibe tambin el nombre de mtodo predictor-corrector. e e e La frmula queda entonces as o :
k+1 yi+1 = yi +

h k (fi1 + 8fi + 5fi+1 ). 12

(7.30)

CAP ITULO 7.

ECUACIONES DIFERENCIALES

273

El criterio de parada puede ser:


k+1 max{1, |yi |} k+1 k |yi yi |

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.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

274

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 o en seguida, en cada uno de los otros 7 intervalos, una evaluacin ja ms o a las 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 el a obtenido por Adams-Bashforth, pero a costa de ms evaluaciones. a Tericamente, los dos mtodos multipaso de orden 2 tienen un error local o e del 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.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

275

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 (19fi3 + 106fi2 264fi1 = yi + 720 +646fi + 251fi+1 ) 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. error
1 12 y ()h3 1 24 y (3) ()h4 19 720 y (4) ()h5 27 1440 y (5) ()h6

CAP ITULO 7.

ECUACIONES DIFERENCIALES

276

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 vectores y 0 , y 1 , y 2 , ..., y n ,


i i i y i = (y1 , y2 , ..., ym ),

CAP ITULO 7.

ECUACIONES DIFERENCIALES

277

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 i . Para y se utiliza un super y pasan a ser vectores K 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 4 = hf (xi + h, y i + K 3 ) y i+1 = y i + (K 1 + 2K 2 + 2K 3 + K 4 )/6. Ejemplo 7.9. Resolver el siguiente sistema de ecuaciones por RK4: 2y1 + x 3 y2 , 1 x 2 x 3 y2 = y2 x y1 (1) = 1
y1 =

(7.31)

y2 (1) = 1 con h = 0.2.

La solucin (exacta) de este sencillo sistema de ecuaciones es: o y1 (x) = x

y2 (x) = x3 .

CAP ITULO 7.

ECUACIONES DIFERENCIALES

278

Para la solucin numrica: o e K 2 = (0.2136600, 0.3818182) K 1 = (0.2, 0.6)

K 4 = (0.2026222, 0.2793388) y 1 = (1.2006916, 0.5790634)

K 3 = (0.1871036, 0.4413223)

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 + x 3 y2 , x 3 y2 = y2 x y1 (1) = 1


y1 =

y2 (1) = 1. Despues de denir y cargar

CAP ITULO 7.

ECUACIONES DIFERENCIALES

279

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

280

// 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:

CAP ITULO 7.

ECUACIONES DIFERENCIALES

281

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES
(m1)

282

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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

283

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 a modicar la suposicin de ya hasta obtener el resultado deseado. Si y (b, ya ) < o yb , 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

CAP ITULO 7. donde:

ECUACIONES DIFERENCIALES

284

v = aproximacin de ya , o

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 = yb yn si |0 | r ent parar v1 = v0 + 0 /(b a) y = solucin numrica de P(v1 ) o e 1 = yb 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 = yb yn si |2 | r ent parar v 0 = v 1 , v 1 = v 2 , 0 = 1 , 1 = 2 n-para OJO: no hubo convergencia.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

285

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 exacta o o o es y = sen(2x).

CAP ITULO 7.

ECUACIONES DIFERENCIALES xi 0.2 0.3 0.4 0.5 0.6 0.7 y (xi ) 0.3894183 0.5647741 0.7174439 0.8415217 0.9320614 0.9854497 y(xi ) 0.3894183 0.5646425 0.7173561 0.8414710 0.9320391 0.9854497

286

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 y y . (diferencias nitas) para 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. 2 h 2h

CAP ITULO 7.

ECUACIONES DIFERENCIALES

287

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. 1 y1 d1 u1 y2 2 l1 d2 u2 y3 3 l2 d3 u3 , = yn2 n2 ln3 dn2 un2 n1 yn1 ln2 dn1 donde di = 4pi + 2h2 ri , li = 2pi+1 hqi+1 ,
2

(7.35)

ui = 2pi + hqi ,

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

1 = 2h s1 (2p1 hq1 )ya , i = 2h2 si ,


2

n1 = 2h sn1 (2pn1 + hqn1 )yb .

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.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

288

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 ele e los. Compare los resultados. Cambie el tamao del paso. Compare de n 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

CAP ITULO 7.

ECUACIONES DIFERENCIALES

289

La aplicacin de los mtodos se puede hacer de varias maneras: a mano o e con ayuda de una calculadora; parte a mano y parte con ayuda de software para matemticas como Scilab o Matlab; haciendo un programa, a 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

y2 (0) = 5.

y1 (0) = 3

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

CAP ITULO 7. 7.5

ECUACIONES DIFERENCIALES

290

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

Cap tulo 8

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 . 291

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES Un ejemplo t pico de una ecuacin hiperblica es la ecuacin de onda o o o utt = c2 uxx .

292

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 .

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

293

d yn y 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 . u(xi , yj ) ui,j+1 2uij + ui,j1 ui+1,j 2uij + ui1,j + 2 2 hx h2 x ui+1,j + ui1,j + 2 ui,j+1 + 2 ui,j1 (2 + 2 2 )uij u(xi , yj ) . h2 x 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)

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)

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

294

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

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

295

..., 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 .

CAP ITULO 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: 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 .

296

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=

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

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES 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

297

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.

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES Entonces hx = 3, hy = 1, = 9, = 20,

298

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. 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 posio cin x y en el tiempo t. Generalmente las funciones v(t) y w(t) son cono stantes, 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, ...

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

299

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

CAP ITULO 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.

300

(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,j+1 uij ui+1,j 2uij + ui1,j = c2 ht h2 x c2 ht 2c2 ht c2 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

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

301

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< , 3 0<t2

0x

. 3

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES Para t = t2 = 0.08 u12 = u01 + u11 + u21 u12 = 5.261925

302

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

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

303

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 = c2 ht h2 x (8.23) (8.24) (8.25)

= 1 + 2.

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

304

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< , 3 0<t2

0x

. 3

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES con m = 10 y n = 50. Al aplicar las frmulas se obtiene: o hx = /30 = 0.1047198 ht = 0.04 = 0.8105695 = 2.6211389

305

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

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000 5.020434 5.019434 5.016532 5.012011 5.006315 5.000000 -0.002119 -0.002015 -0.001714 -0.001245 -0.000655 0.000000

306

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

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

307

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 que se puede resolver de manera eciente: 0 0 ... 0 u1j 0 u2j ... 0 0 ... 0 u3j 0 0 u0,j1 + u1,j1 + u2,j1 + u0j u1,j1 + u2,j1 + u3,j1 u2,j1 + u3,j1 + u4,j1 el sistema tridiagonal,

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

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

308

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

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES 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

309

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

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

310

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)

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

311

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 fcilo t x mente, salvo para la obtencin de los valores ui1 ya que ser necesario o a conocer los 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.

CAP ITULO 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,

312

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) = Ak =
k=1

Ak cos

kc t 2

sen

kx 2

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. A continuacin aparecen: los valores xi , los valores u(xi , 12) exactos y los o valores aproximados obtenidos por el mtodo: e

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES 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

313

Este mtodo presenta problemas de inestabilidad. Se puede garantizar la e estabilidad (no la exactitud) si c ht 1. hx (8.44)

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: 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 ) , t2 x

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

314

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)

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

315

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

Cap tulo 9

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 . Fcila mente se comprueba que si = 0, entonces tambin v es un vector propio e asociado a . Generalmente se usan ms los vectores propios normalizados, a 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 316

90 9 8 2 1 1 7 3 7 = 70 , 40 4 1 1 6

CAP ITULO 9. VALORES PROPIOS

317

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

que coincide con valor absoluto para nmeros reales. u

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 ,

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.

CAP ITULO 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 .

318

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.

CAP ITULO 9. VALORES PROPIOS

319

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 1 , v 2 , ..., v n ortonormales. Si Q = v 1 v 2 ... v n , entonces Q es v 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.

CAP ITULO 9. VALORES PROPIOS

320

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

CAP ITULO 9. VALORES PROPIOS 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 2 n 1 . . . xk = 1 k v 1 + 2 k v 2 + ... + n k v n n 2 1
n

321

x =

1 k 1

v +
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 x k 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 .

CAP ITULO 9. VALORES PROPIOS Ejemplo 9.3. Partiendo de x0 = (1, 1, 1), de 1 2 4 5 A= 7 8

322 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 o 1 , 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 3 2 1

-0.213470

-0.533676

-0.818303

-6.00000000

CAP ITULO 9. VALORES PROPIOS 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

323 -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 = x k 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

CAP ITULO 9. VALORES PROPIOS 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 -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

324

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 .

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

CAP ITULO 9. VALORES PROPIOS

325

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

CAP ITULO 9. VALORES PROPIOS 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 2.426097 0.329643 2.426097 0.329643 2.426097 0.329643 2.426097 0.329643

326

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

CAP ITULO 9. VALORES PROPIOS

327

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 Adems, si x Rn1 se puede escoger v para que a H v 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 > .

CAP ITULO 9. VALORES PROPIOS

328

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. 3 2 1 , y = 0 , x= 0 2 O tambin, e 2 x = 1 , 2 3 y = 0 , 0 5 v = 1 , 2 1 v = 1 , 2 2/3 1/3 2/3 H = 1/3 14/15 2/15 2/3 2/15 11/15 2/3 1/3 2/3 2/3 H = 1/3 2/3 2/3 2/3 1/3

CAP ITULO 9. VALORES PROPIOS

329

Es usual escoger v tal que v1 = 1, as slo se requiere almacenar los valores o v2 , 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 seudocdigo a o utilizando parcialmente notacin de Scilab. 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 v 1 = 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

CAP ITULO 9. VALORES PROPIOS

330

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 plano de las variables i y k: 1 0 0 0 1 0 . .. . . . 0 0 c G = G(i, k, c, s, n) = . .. . . . 0 0 s . . . 0 0 0 El producto y = GT x se calcula muy cxi sxk yj = sxi + cxk xj c= s= fcilmente: a si j = i, si j = k, en los dems casos. a rotacin denida en el o 0 0 s c . 0 .. 0 0 0 i 0 k 1

Si se desea que yk = 0, basta con tomar xi x2 + x2 i k x2 i xk + x2 k , .

En la prctica, es mejor utilizar la siguiente versin para el clculo de c y s a o a (ver [GoVa96]),

CAP ITULO 9. VALORES PROPIOS [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

331

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

CAP ITULO 9. VALORES PROPIOS La matriz H Rnn tambin es ortogonal. e

332

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 (m1)(m1) tal que H A(2 : m, 2) = e1 R(m1)1 , o sea, H2 R 2 2 [v, ] = vHouse(A(2 : m, 2)) H2 = H(v, ) H2 = H(m, H2 ) A = H2 A Q = QH 2

En general, [v, ] = vHouse(A(k : m, k)) Hk = H(v, ) Hk = H(m, Hk ) A = Hk A Q = QH k

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

CAP ITULO 9. VALORES PROPIOS 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

333

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

CAP ITULO 9. VALORES PROPIOS 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

334

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

CAP ITULO 9. VALORES PROPIOS -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

335

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

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

CAP ITULO 9. VALORES PROPIOS -0.5656854 Observaciones: -0.4472136 0.6928203 0 0

336

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

CAP ITULO 9. VALORES PROPIOS 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 = i = c = G 1 5 -0.242536 = 1 0 0 1 0 0 0 0 0 0 = 2 5 2 4.1231056 0 = 1 0 0 1 0 0 0 0 0 0

337

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

i = 4 c = -0.436436 G = 1 0 0 1 0 0 0 0 0 0

s = 0.899735 0 0 -0.4364358 -0.8997354 0 0 0 0.8997354 -0.4364358 0 0 0 0 0 1

CAP ITULO 9. VALORES PROPIOS = 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

338

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

CAP ITULO 9. VALORES PROPIOS

339

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 de o o sistemas de ecuaciones lineales por m nimos cuadrados. El mtodo ms poe a pular para m nimos cuadrados es el de las ecuaciones normales. Sin embargo,

CAP ITULO 9. VALORES PROPIOS

340

en los casos, cuando el condicionamiento de A es muy grande comparado comparado con el residuo m nimo [GoVa96], el mtodo QR resulta ms pree a ciso y estable. 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 2 3 4 29.1 5 33.9 4 3 1 0 , b = 7.0 A= 2 1 2 3 20.1 4 5 4 38.9

CAP ITULO 9. VALORES PROPIOS Q = -0.2828427 -0.7071068 -0.2828427 0.1414214 0.5656854 = -7.0710678 0 0 0 0

341

-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

CAP ITULO 9. VALORES PROPIOS

342

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

CAP ITULO 9. VALORES PROPIOS

343

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

CAP ITULO 9. VALORES PROPIOS A = 2. 7.0710678 0. 0.

344

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.

CAP ITULO 9. VALORES PROPIOS 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

345

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

CAP ITULO 9. VALORES PROPIOS c = 0.778168 A = 2 7.0710678 0 0 s = -0.628057

346

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 0 5 0 5 6 7 0 0 7 0 0 , 0 0 7 8 0 0 , 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 .

CAP ITULO 9. VALORES PROPIOS

347

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.

CAP ITULO 9. VALORES PROPIOS repetir QR = T factorizacin QR de T o T = RQ n-repetir

348

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

CAP ITULO 9. VALORES PROPIOS

349

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

CAP ITULO 9. VALORES PROPIOS

350

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) = tnn d 2 + t2 n,n1 d 2 + t2 n,n1 t2 n,n1

d + signo(d)

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

CAP ITULO 9. VALORES PROPIOS

351

En [GoVa96], p. 420, se encuentra una descripcin eciente de la parte prino cipal 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

CAP ITULO 9. VALORES PROPIOS T -mu I 7.9352413 2.0988427 0 0

352

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

CAP ITULO 9. VALORES PROPIOS k = 4 mu = 1.9698954 T -mu I 7.1297905 5.6488809 0 0

353

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

CAP ITULO 9. VALORES PROPIOS 2 8 0 0 0 0 8 2 0 0 0 0 0 0 8 3 0 0 A= 0 0 3 6 4 0 0 0 0 4 10 6 0 0 0 0 6 0 i1 i2 : 3 6

354

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

CAP ITULO 9. VALORES PROPIOS T inicial 10.034143 -3.26714 0 0 mu = 1.969840 T final 9.0996859 5.6488809 0 0 i1 i2 : 3 6

355

-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

0 0 6.4313901 -9.0220625 0 0 5

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

CAP ITULO 9. VALORES PROPIOS -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

356

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

CAP ITULO 9. VALORES PROPIOS

357

= -2 8 0 0 0 0

8 -2 0 0 0 0 1

0 0 -13.50417 0 0 0 2

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.

CAP ITULO 9. VALORES PROPIOS

358

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.

También podría gustarte