Está en la página 1de 368

METODOS NUMERICOS CON SCILAB

H ector Manuel Mora Escobar 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 c alculo . . . . . . . . . . . . 1.2. Sucesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Polinomio de Taylor . . . . . . . . . . . . . . . . . . . . . . . 1.4. Derivadas parciales . . . . . . . . . . . . . . . . . . . . . . . . 1.5. Teorema espectral para matrices sim etricas . . . . . . . . . . 1.6. Notaci on O grande . . . . . . . . . . . . . . . . . . . . . . . . 1.7. Orden de convergencia . . . . . . . . . . . . . . . . . . . . . . 1.8. N umeros en un computador . . . . . . . . . . . . . . . . . . . 1.9. Truncamiento y redondeo . . . . . . . . . . . . . . . . . . . . 1.10. Error absoluto y relativo . . . . . . . . . . . . . . . . . . . . . 1.11. Errores lineal y exponencial . . . . . . . . . . . . . . . . . . . 1.12. Condicionamiento de un problema . . . . . . . . . . . . . . . 2. Soluci on de sistemas de lineales 2.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Notaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. M etodos ingenuos . . . . . . . . . . . . . . . . . . . . . . . . . 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. N umero de operaciones . . . . . . . . . . . . . . . . . 2.6. Sistema triangular inferior . . . . . . . . . . . . . . . . . . . . 2.7. M etodo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . 2.7.1. N umero de operaciones . . . . . . . . . . . . . . . . . 2.8. Factorizaci on LU . . . . . . . . . . . . . . . . . . . . . . . . . 2.9. M etodo de Gauss con pivoteo parcial . . . . . . . . . . . . . . 2.10. Factorizaci on LU =PA . . . . . . . . . . . . . . . . . . . . . . 2.11. M etodo de Cholesky . . . . . . . . . . . . . . . . . . . . . . 2.11.1. Matrices denidas positivas . . . . . . . . . . . . . . 2.11.2. Factorizaci on de Cholesky . . . . . . . . . . . . . . . 2.11.3. N umero de operaciones de la factorizaci on . . . . . . 2.11.4. Soluci on del sistema . . . . . . . . . . . . . . . . . . 2.12. Soluci on por m nimos cuadrados . . . . . . . . . . . . . . . . 2.12.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 2.12.2. Ecuaciones normales . . . . . . . . . . . . . . . . . . 2.13. Sistemas tridiagonales . . . . . . . . . . . . . . . . . . . . . . 2.14. C alculo de la inversa 3. M etodos iterativos 3.1. M etodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . 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. M etodo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . 103 3.6. M etodo iterativo general . . . . . . . . . . . . . . . . . . . . . 104

INDICE GENERAL

iii

3.7. M etodo de sobrerrelajaci on . . . . . . . . . . . . . . . . . . . 105 3.8. M etodos de minimizaci on . . . . . . . . . . . . . . . . . . . . 112 3.9. M etodo del descenso m as pendiente . . . . . . . . . . . . . . . 114 3.10. M etodo del gradiente conjugado . . . . . . . . . . . . . . . . . 117 4. Soluci on de ecuaciones no lineales 122

4.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.2. M etodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . 126 4.2.1. Orden de convergencia . . . . . . . . . . . . . . . . . . 129 4.3. M etodo de la secante . . . . . . . . . . . . . . . . . . . . . . . 132 4.4. M etodo de la bisecci on . . . . . . . . . . . . . . . . . . . . . . 135 4.5. M etodo de Regula Falsi . . . . . . . . . . . . . . . . . . . . . 137 4.6. Modicaci on del m etodo de Regula Falsi . . . . . . . . . . . . 139 4.7. M etodo de punto jo . . . . . . . . . . . . . . . . . . . . . . . 140 4.7.1. Modicaci on del m etodo de punto jo . . . . . . . . . 146 4.7.2. M etodo de punto jo y m etodo de Newton . . . . . . 147 4.8. M etodo de Newton en Rn . . . . . . . . . . . . . . . . . . . . 148 4.8.1. Matriz jacobiana . . . . . . . . . . . . . . . . . . . . . 149 4.8.2. F ormula de Newton en Rn . . . . . . . . . . . . . . . . 149 4.9. M etodo de Muller . . . . . . . . . . . . . . . . . . . . . . . . . 152 4.10. M etodo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . 160 5. Interpolaci on y aproximaci on 171

5.1. Interpolaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.1.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.1.2. Caso general . . . . . . . . . . . . . . . . . . . . . . . 174 5.2. Interpolaci on polinomial de Lagrange . . . . . . . . . . . . . . 177 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. C alculo del valor interpolado . . . . . . . . . . . . . . 189 5.4. Diferencias nitas . . . . . . . . . . . . . . . . . . . . . . . . . 194 5.4.1. Tabla de diferencias nitas . . . . . . . . . . . . . . . 195 5.4.2. C alculo del valor interpolado . . . . . . . . . . . . . . 196 5.5. Trazadores c ubicos, interpolaci on polinomial por trozos, splines 199 5.6. Aproximaci on por m nimos cuadrados . . . . . . . . . . . . . 206 6. Integraci on y diferenciaci on 211

6.1. Integraci on num erica . . . . . . . . . . . . . . . . . . . . . . . 211 6.2. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 6.3. F ormula del trapecio . . . . . . . . . . . . . . . . . . . . . . . 213 6.3.1. Errores local y global . . . . . . . . . . . . . . . . . . 216

6.4. F ormula de Simpson . . . . . . . . . . . . . . . . . . . . . . . 218 6.4.1. Errores local y global . . . . . . . . . . . . . . . . . . 219

6.5. Otras f ormulas de Newton-Cotes . . . . . . . . . . . . . . . . 223 6.5.1. F ormulas de Newton-Cotes abiertas . . . . . . . . . . 224 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. Derivaci on num erica . . . . . . . . . . . . . . . . . . . . . . . 234 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. M etodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . 243 7.2. M etodo de Heun . . . . . . . . . . . . . . . . . . . . . . . . . 246 7.3. M etodo del punto medio . . . . . . . . . . . . . . . . . . . . . 249 7.4. M etodo de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . 252 7.5. Deducci on de RK2 . . . . . . . . . . . . . . . . . . . . . . . . 257 7.6. Control del paso . . . . . . . . . . . . . . . . . . . . . . . . . 259 7.7. Orden del m etodo y orden del error . . . . . . . . . . . . . . . 265 7.7.1. Vericaci on num erica del orden del error . . . . . . . . 266 7.8. M etodos multipaso expl citos . . . . . . . . . . . . . . . . . . 267 7.9. M etodos multipaso impl 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: ecuaci on de Poisson . . . . . . . . . . . . . . . . . . 292 8.3. Parab olicas: ecuaci on del calor . . . . . . . . . . . . . . . . . 298 8.3.1. M etodo expl cito . . . . . . . . . . . . . . . . . . . . . 300 8.3.2. M etodo impl cito . . . . . . . . . . . . . . . . . . . . . 303 8.3.3. M etodo de Crank-Nicolson . . . . . . . . . . . . . . . 306 8.4. Hiperb olicas: ecuaci on de onda . . . . . . . . . . . . . . . . . 310 8.4.1. M etodo expl cito . . . . . . . . . . . . . . . . . . . . . 310 8.4.2. M etodo impl cito . . . . . . . . . . . . . . . . . . . . . 313 9. Valores propios 316

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

INDICE GENERAL

vi

9.1.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 320 9.2. M etodo de la potencia . . . . . . . . . . . . . . . . . . . . . . 320 9.3. M etodo de la potencia inversa . . . . . . . . . . . . . . . . . . 324 9.4. Factorizaci on QR . . . . . . . . . . . . . . . . . . . . . . . . . 326 9.4.1. Matrices de Householder . . . . . . . . . . . . . . . . . 327 9.4.2. Matrices de Givens . . . . . . . . . . . . . . . . . . . . 330 9.4.3. Factorizaci on QR con matrices de Householder . . . . 331 9.4.4. Factorizaci on QR con matrices de Givens . . . . . . . 336 9.4.5. Soluci on por m nimos cuadrados . . . . . . . . . . . . 339 9.5. M etodo QR para valores propios de matrices sim etricas . . . 341 9.5.1. Tridiagonalizaci on por matrices de Householder para matrices sim etricas . . . . . . . . . . . . . . . . . . . . 342 9.5.2. Tridiagonalizaci on por matrices de Givens para matrices sim etricas . . . . . . . . . . . . . . . . . . . . . 344 9.5.3. Valores propios de matrices tridiagonales sim etricas . 346

NOTACION
[a, b] = {x R : a x b}, intervalo cerrado. ]a, b[ = {x R : a < x < b}, intervalo abierto. Tambi en es usual denotar el 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 notaci on C [a, b] = C 0 [a, b]. Algunas veces, por brevedad, se dice 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 m as peque no contiene a c y a d. Por ejemplo I (3, 5) = [3, 5], I (2, 1.8) = [1.8, 2]. Rmn = conjunto de matrices reales de tama no mn. Si A Rmn , entonces 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- esima de la matriz A. a1j a2j Aj = . , columna j - esima de la matriz A. . . amj
n

=
i=1 n

| xi | x2 i
1/2

x x

=
i=1

= max |xi |
1in

f ( x)

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

viii

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

f ( x) = f ( x) xn

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

ej = j - esima columna de la matriz identidad

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

(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 est an separados de los decimales por medio de un punto. No se usa la notaci on espa nola (los enteros est an separados de los decimales por una coma). No se utiliza un s mbolo para separar las unidades de mil de las centenas.

ix

Cap tulo 1

Preliminares
1.1. Repaso de algunos conceptos de c alculo

En lo que sigue, mientras no se diga lo contrario, se considera una funci on f : R R y c un n umero real. Se dice que el n umero real L es el l 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 funci on f es continua en c si lim f (x) existe y
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 h 0 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 ( x) f (x) para todo x [a, b] . Este punto x se llama minimizador absoluto o global o punto de m nimo global de f en [a, b]. De manera an aloga, existe por lo menos un punto x , maximizador global o punto de m aximo global, tal que f ( x) f (x) para todo x [a, b] . 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 funci on continua en [a, b], 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 funci on continua 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 sucesi on es simplemente una funci on que va del conjunto de los n umeros naturales en los reales:

u :N R

n un

Algunas veces las sucesiones est an denidas para los naturales positivos (no para el 0). Como se observa, habitualmente se escribe un en lugar de u(n). Es frecuente denotar la sucesi on {un }nN o {un } on, n=0 o, si no hay confusi de manera a un m as simple, {un } o un . Ejemplos de sucesiones: un = 1/n2 , vn = 5+

m3 2m (1)n , w = . m n3 100m2 + 20m Una sucesi on se puede denir de manera recurrente a partir del primer t ermino o de los primeros t erminos. Por ejemplo, la sucesi on de n umeros 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 sucesi on xn converge al n umero L, o que L es el l mite de la sucesi on, si dado cualquier > 0 (generalmente peque no), existe un natural 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 confusi on, 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 sucesi on xn tiende a + y se escribe 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 sucesi on no es convergente pero, como se observa, se utiliza la misma notaci on. De manera an aloga se dene y denota cuando la sucesi on tiende a .

CAP ITULO 1. PRELIMINARES La sucesi on geom etrica an converge o diverge dependiendo de a:

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 funci on f : R R continua y derivable cuantas veces sea necesario y sea x un valor jo. Se desea encontrar p P1 tal que p( x) = f ( x) y p ( x) = f ( x). Este polinomio es exactamente p(x) = f ( x) + f ( x)(x x ). Ahora se desea encontar p P2 tal que p( x) = f ( x ), p ( x) = f ( x), p ( x) = f ( x). Entonces p(x) = f ( x) + f ( x)(x x ) + f ( x) (x x )2 . 2

CAP ITULO 1. PRELIMINARES De manera general, sea p Pn tal que p( x) = f ( x ), p ( x) = f ( x), p ( x) = f ( x), . . . p(n) ( x) = f (n) ( x). Este polinomio es

p(x) = f ( x) + f ( 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, x) ). Si f es de clase C , entonces f (x) =
k=0

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

La anterior expresi on es el desarrollo en serie de Taylor de f alrededor de 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 ) = e x 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 ( x + h) = Rn ( x + h) = f ( x + h) =

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

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

(1.4) (1.5) (1.6)

(n + 1)!
k=0

f (k) ( x) k 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 funci on de una sola variable. Se puede entonces pensar en buscar (puede existir o no existir) la derivada de esta nueva funci on. Se obtiene as la derivada parcial de f con respecto a x1 . De manera m as precisa, si el siguiente l mite existe, este es la derivada parcial de f con respecto a x1 evaluada en x , denotada como aparece a continuaci on: f f ( x1 + h, x 2 , ..., x n ) f ( x1 , x 2 , ..., x n ) ( x) = lim . h 0 x1 h De manera an aloga f ( x1 , x 2 + h, x 3 , ..., x n ) f ( x1 , x 2 , x 3 , ..., x n ) f ( x) = lim . h 0 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 derivaci on en una variable, considerando las otras variables como constantes.
9 Por ejemplo, si f (x1 , x2 , x3 , x4 ) = (4x3 1 + 6x4 ) + 5x1 x2 + 8x4 ,

f x1 f x2 f x3 f x4

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

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

1.5.

Teorema espectral para matrices sim etricas

Este teorema important simo algunas veces no aparece en los libros intro ductorios de Algebra Lineal, raz on por la cual est a en este cap tulo de preliminares. Teorema 1.6. Si A es una matriz real sim etrica, existe una matriz Q ortogonal (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 u nicas. Sin embargo los elementos diagonales de D son los valores propios de A, siempre reales por ser A sim etrica. Las columnas de la matriz Q son vectores propios normalizados de A.

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


1+ 5 2 5 1+ 5 2 5

12

1.6.

Notaci on O grande

Algunas veces es u til comparar aproximadamente el comportamiento de dos funciones en las cercan as de 0. Se dice que, cuando x 0, f (x) = O(g (x)) si existen dos constantes positivas C y (peque na) tales que | 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

Seg un la notaci on O grande, el residuo para el polinomio de Taylor (1.5) se puede expresar Rn ( x + h) = O(hn+1 ).

1.7.

Orden de convergencia

Sea {xk } una sucesi on de n umeros reales con l 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. Obs ervese que cuando p = 1 (convergencia lineal), se exige adem as que < 1.

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 cuadr atica. Si


k

lim

el orden de convergencia es superior a p.

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

Lo ideal es tener ordenes de convergencia altos con tasas peque nas. Una convergencia sublineal es una convergencia muy lenta. Una convergencia cuadr atica es muy buena, por ejemplo, el m etodo de Newton que se ver a en un cap tulo posterior.

CAP ITULO 1. PRELIMINARES

14

1 on converge a . Veamos que pasa Ejemplo 1.8. xk = + . Esta suceci 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 on converge a 0. Directamente veamos Ejemplo 1.9. xk = k . Esta suceci 2 que pasa con p = 1 1 k +1 |xk+1 L| = lim 2 lim 1 1 k k | xk L| 2k 2k = lim k+1 k 2 1 = lim k 2 1 = 2 Entonces la sucesi on tiene convergencia lineal con tasa 1/2. 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 = yn 1 , 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 | xk L| yk = 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 cuadr atica. Cuando la convergencia es cuadr atica, el n umero de d gitos decimales exactos se va duplicando (aproximadamente) en cada iteraci on. En el ejemplo, para los valores de n = 6, 7, 8, 9, el n umero de d gitos decimales exactos (ceros en este caso) es 1, 2, 5, 11.

CAP ITULO 1. PRELIMINARES

16

1.8.

N umeros en un computador

Sea x un m umero real positivo. La representaci on decimal normalizada de 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 m aximo permitidos para n dependen del computador, del sistema 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 dem as son basura producida por Scilab para satisfacer el formato deseado. Esto nos indica que en Scilab, en la representaci on interna de un n umero, no hay m as de 16 cifras signicativas. Relacionado con el concepto anterior, est a el epsilon de la m aquina, que se dene as : maq = min{t > 0 : 1 + t = 1} La anterior denici on usa los n umeros utilizados en el computador. Este conjunto de n umeros es nito y la denici on tiene sentido. Obviamente si los valores t se tomaran en R, el valor epsilon de la m aquina estar a mal denido. Una manera aproximada de obtener el epsilon de la m aquina consiste en 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 n umero positivo y peque no es considerado como nulo, 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. Despu es de varios ensayos 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 ordenes x = 1; while x/10 > 0.0 x0 = x; x = x/10; end x_final = x0 El resultado obtenido es 9.881-323 . Obs ervese que x toma los valores 1, 1/10, 1/100, ... Sin embargo el resultado obtenido no es exactamente una potencia de 10. Ahora queremos averiguar qu e tan grandes pueden ser los n umeros en Scilab. 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 presentaci on), x = 0.d1 d2 dk 10n su representaci on normalizada y t un entero positivo menor que k . El n umero obtenido por truncamiento con t cifras signicativas es x = 0.d1 d2 dt 10n Dicho de otra forma, se quitan los u ltimos 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( x + 0. 00 0 5 10n ) , t)
t 1

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 posici on t es 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, volvi endose 10 y se escribe t = 0, pero hay que agregar (llevar) 1 al d gito dt1 , etc.

1.10.

Error absoluto y relativo

Si x es un n umero real y x es una aproximaci on se denen el error absoluto (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 n umeros reales, x el redondeo de x con n = 5 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 zyz , 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 tama nos muy diferentes. 2. Resta de cantidades muy parecidas. 3. Divisi on por un n umero cercano a cero. 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 num ericos, muy frecuentemente, es necesario realizar muchas operaciones aritm eticas. Sea e0 el error inicial en los datos o en la primera operaci on y en el error despu es de n operaciones. El error inicial incide en las operaciones siguientes y los errores, en la gran mayor a de los casos, 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 (propagaci on exponencial del error) es 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 sucesi on denida as (ver [KiC94]): x0 = 1 () Se puede demostrar que () xn = 1 , n = 0, 1, 2, ... 3n x1 = 1/3 13 4 x n = x n 1 x n 2 , 3 3 n 2.

La siguiente tabla muestra los valores de x n obtenidos en Scilab aplicando la f ormula expl cita (**), x n obtenido por la f ormula de recurrencia (*) con todas las cifras que utiliza Scilab, x obtenido por la f ormula de recurrencia n (*) pero trabajando con 8 cifras signicativas y x n obtenido por la f ormula 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 x n (**) 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 x n (*) 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 n 8 cifras 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 n 4 cifras 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 f ormula de recurrencia es un proceso inestable. La inestabilidad se nota m as cuando hay menos cifras signicativas.

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 peque nos en los datos, se obtienen cambios peque nos en la soluci on. Un problema es mal condicionado si al hacer cambios peque nos en los datos, puede haber cambios grandes en la soluci on. Cuando no hay un m etodo exacto de soluci on, se dice que un problema es mal condicionado si, para todos los m etodos utilizados, al hacer cambios peque nos en los datos, puede haber cambios grandes en la soluci on.

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 soluci on exacta de este problema es x = [1 1]T , Consideremos ahora un sistema de ecuaciones muy parecido, Ax = b , u nicamente hay cambios peque nos en b, b = 20.02 19.98 .

La soluci on exacta de este problema es x = [1998 2002]T , Este problema es mal condicionado, cambios peque nos en b produjeron cambios grandes en la soluci on. M as adelante se ver a c omo determinar el buen 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 funci on seno para el angulo en grados), x = 90 y p3 (80). 1.6 Sea f (x) = cos(x), x = 0. Cu al es el m nimo valor de n para el cual la cota del error seg un (1.3) es menor o igual a 106 para pn (0.1)?

CAP ITULO 1. PRELIMINARES

23

1.7 Sea f (x) = cos(x), x = 0. Cu al es el mayor valor de t para el cual la cota del error seg un (1.3) es menor o igual a 106 para p2 (t)? 1.8 Sea x = 0.6. Obtenga su expresi on binaria. Sea x la expresi on truncada a cuatro d gitos binarios (despu es del punto). Cu ales son los errores absoluto y relativo? Sea x la expresi on redondeada a cuatro d gitos. Cu ales son los errores absoluto y relativo? Las mismas preguntas con ocho d gitos.

Cap tulo 2

Soluci on de sistemas de ecuaciones lineales


Uno de los problemas num ericos m as frecuentes, o tal vez el m as frecuente, consiste en resolver un sistema de ecuaciones de la forma Ax = b (2.1)

donde A es una matriz cuadrada, de tama no n n, invertible. Esto quiere decir que el sistema tiene una u nica soluci on. Se trata de resolver un sistema de ecuaciones de orden mucho mayor que 2. En la pr actica se pueden encontrar sistemas de tama no 20, 100, 1000 o mucho m as grandes. Puesto que se trata de resolver el sistema con la ayuda de un computador, entonces las operaciones realizadas involucran errores de redondeo o truncamiento. La soluci on obtenida no es absolutamente exacta, pero se desea que la acumulaci on de los errores sea relativamente peque na 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.

DE SISTEMAS DE LINEALES SOLUCION

25

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

2. - 3. Una manera que tambi en permite obtener la soluci on es x = inv(a)*b, pero es ineciente en tiempo y de menor precisi on. Ejemplo 2.1. Las siguientes ordenes de Scilab 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 an alogo 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 a un en el mismo computador no son siempre iguales, pero s parecidos. Las funciones tic y toc permiten obtener una medida del tiempo de un proceso.

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

26

2.2.

Notaci on

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 a la notaci on de Matlab y Scilab. parte de un vector: x(5 : 7) = (x5 , x6 , x7 ), la i- esima: Ai = A(i, :), columna j - esima: Aj = A(:, j ), parte de la la i- esima: A(i, 1 : 4) = [ ai1 ai2 ai3 ai4 ] parte de la columna j - esima: A(2 : 4, j ) = [ a2j a3j a4j ]T submatriz: A(3 : 6, 2 : 5) .

2.3.

M etodos ingenuos

Te oricamente, resolver el sistema Ax = b es equivalente a la expresi on x = A1 b. Es claro que calcular la inversa de una matriz es mucho m as dispendioso que resolver un sistema de ecuaciones; entonces, este camino s olo se utiliza 1 en deducciones te oricas o, en muy raros casos, cuando A se calcula muy f acilmente. Otro m etodo que podr a utilizarse para resolver Ax = b es la regla de Cramer. Para un sistema de orden 3 las f ormulas son: 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 c alculo se puede hacer utilizando cualquier la o cualquier colum-

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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 n umero de multiplicaciones necesarias para calcular, por cofactores, el determinante de una matriz de orden n. La f ormula anterior nos indica 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 n umero total de multiplicaciones necesarias 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 peque no, n = 20, 21! = 5.1091E 19. 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 m etodo de cofactores es francamente inmanejable: tiempo > 5.1091E 10 segundos = 16.2 siglos.

2.4.

Sistema diagonal

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

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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 soluci on de un sistema diagonal se obtiene mediante bi , i = 1, ..., n. (2.2) aii Como los elementos diagonales son no nulos, no hay ning un problema para 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, c omo se resuelve un sistema de orden 4. 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 ecuaci on, se deduce que x4 = 5.6/2.8 = 2. A partir de la tercera ecuaci on 45x3 = 203 (79x4 ) 203 (79x4 ) x3 = 45 Reemplazando x4 por su valor, se obtiene x3 = 1. A partir de la segunda ecuaci on 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 ecuaci on, 4x1 = 4 (3x2 2x3 + x4 ) 4 (3x2 2x3 + x4 ) x1 = 4

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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. Conocidos los valores xi+1 , xi+2 , ..., xn , la ecuaci on i- esima es 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 divisi on. El esquema del algoritmo es el siguiente: DE SISTEMA TRIANGULAR SOLUCION 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 funci on completa podr a ser as : 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.

DE SISTEMAS DE LINEALES SOLUCION

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 funci on anterior se puede escribir un poco m as corta. Sea u = [ 2 3 5 7 11 13]. La orden v = u(4:2) produce un vector vac o, es decir, [ ]. Adem as s = 3.1 - u(4:2)*u(6:5) asignar a a s el valor 3.1. Entonces el c alculo de x(n) se puede hacer dentro 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.

DE SISTEMAS DE LINEALES SOLUCION

31

2.5.1.

N umero de operaciones

Una de las maneras de medir la rapidez o lentitud de un m etodo es mediante el conteo del n umero de operaciones. Usualmente se tienen en cuenta las sumas, restas, multiplicaciones y divisiones entre n umeros de punto otante, aunque hay m as operaciones fuera de las anteriores, por ejemplo las comparaciones y las operaciones entre enteros. Las cuatro operaciones se conocen con el nombre gen erico de operaciones de punto otante ops (oating point operations). Algunas veces se hacen dos grupos: por un lado sumas y restas, y por otro multiplicaciones y divisiones. Si se supone que el tiempo necesario para efectuar una multiplicaci on es bastante mayor que el tiempo de una suma, entonces se acostumbra a dar el n umero de multiplicaciones (o divisiones). El dise no de los procesadores actuales muestra tendencia al hecho de que los dos tiempos sean comparables. Entonces se acostumbra a evaluar el n umero de ops. Sumas y restas c alculo de xn c alculo de xn1 c alculo de xn2 ... c alculo de x2 c alculo de x1 Total 0 1 2 n2 n2 /2 n1 n/2 Multiplicaciones y divisiones 1 2 3 n1 n n2 /2 + n/2

N umero total de operaciones de punto otante: n2 .

2.6.

Sistema triangular inferior

La soluci on de un sistema triangular inferior Ax = b, A triangular inferior, es an aloga al caso de un sistema triangular superior. Primero se calcula x1 , despu es x2 , enseguida x3 y as sucesivamente hasta xn . bi xi =
i 1 j =1

aij xj (2.3)

aii

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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 n umero de operaciones es exactamente el mismo del caso triangular superior.

2.7.

M etodo de Gauss

El m etodo de Gauss para resolver el sistema Ax = b tiene dos partes; la primera es la triangularizaci on del sistema, es decir, por medio de operaciones 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 soluci on de Ax = b es exactamente la misma soluci on de A x = b . La segunda parte es simplemente la soluci on del sistema triangular superior. Para una matriz, con ndices entre 1 y n, el esquema de triangularizaci on se 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 m as: para k = 1, ..., n 1 para i = k + 1, ..., n buscar ceros en la posici on de aik . n-para i n-para k

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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 x2 8 3 2 1 5 = 2 3 1 2 x3 7 8 x4 5 0 1 1

Es usual trabajar u nicamente con los n umeros, olvidando temporalmente los xi . M as a un, se acostumbra trabajar con una matriz ampliada, resultado de 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 posici on (2,1), la 2 y columna 1, se hace la siguiente operaci on: la2nueva la2vieja (3/4)la1

Para buscar cero en la posici on (3,1) se hace la siguiente operaci on: 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 m as sencilla la escritura la expresi on anterior se escribir a simplemente: 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.

DE SISTEMAS DE LINEALES SOLUCION

34

Para buscar cero en la posici on (4,1) se hace la siguiente operaci on: 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 posici on (3,2) se hace la siguiente operaci on: 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 posici on (4,2) se hace siguiente operaci on: 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 posici on (4,3) se hace la siguiente operaci on: 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 ecuaci on resultante, se calcula x3 , despu es x2 y x1 . x = (1, 0, 1, 2).

4 0 0 0

4 -11 -203 -5.6

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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 posici on (i, k ) se hace la operaci on 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 seguir an siendo cero. Adem as, las operaciones se hacen de tal manera que aik se vuelva cero. Entonces aik no se calcula puesto que dar a 0. Luego los c alculos se hacen en la la i a partir 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 triangularizaci on es: DE UN SISTEMA TRIANGULARIZACION 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 triangularizaci on, toda la columna A(k : n, k ) es nula o casi nula, entonces A es singular.

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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 efect ua. 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. CON CONTROL DE PIVOTE TRIANGULARIZACION 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.

DE SISTEMAS DE LINEALES SOLUCION

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.

DE SISTEMAS DE LINEALES SOLUCION

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.

DE SISTEMAS DE LINEALES SOLUCION

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 umero de operaciones

En el m etodo de Gauss hay que tener en cuenta el n umero de operaciones de cada uno de los dos procesos: triangularizaci on y soluci on del sistema triangular. Triangularizaci on Consideremos inicialmente la b usqueda de cero en la posici on (2, 1). Para 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 divisi on para calcular 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 posici on (3, 1) se necesita exactamente el mismo n umero de operaciones. Entonces para la obtener ceros en la primera columna: Sumas y restas cero en la posici on de a21 cero en la posici on de a31 ... cero en la posici on de an1 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 posici on de a32 . Para buscar ceros en la columna 2 se van a necesitar (n 2)(n 1) sumas y (n 2)n multiplicaciones.

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION 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

N umero de sumas y restas:


n 1 i=1

i(i + 1) =

n 1 i=1

(i 2 + i ) =

n3 n n3 3 3 3

N umero de multiplicaciones y divisiones:


n 1 i=1

i(i + 2) =

n 1 i=1

(i2 + 2i) =

n3 n3 n2 5n + 3 2 6 3

N umero de operaciones: 2n3 n2 7n 2n3 n3 n n3 n2 5n + + = + 3 3 3 2 6 3 2 6 3 Proceso completo El n umero de operaciones para las dos partes, triangularizaci on y soluci on del sistema triangular, es 2n3 3n2 7n 2n3 + 3 2 6 3 Para valores grandes de n el n umero de operaciones de la soluci on del sistema triangular es despreciable con respecto al n umero de operaciones de la triangularizaci on.

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

41

2.8.

Factorizaci on LU

Si durante el proceso del m etodo de Gauss no fue necesario intercambiar las, entonces se puede demostrar que se obtiene f acilmente la factorizaci on 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, f acilmente se comprueba que LU = A. Esta factorizaci on es u til para resolver otro sistema Ax = b, exactamente con la misma matriz de coecientes, pero con diferentes t erminos independientes. Ax = b, LU x = b, Ly = b, donde En resumen: U x = y.

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

42

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

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

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

0 y1 0 y2 0 y3 y4 1 . Al resolver

8 30 = 15 2 8.0 24.0 = 451.0 11.2

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

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

se obtiene la soluci on nal x =

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 an si se volviera a empezar el proceso. La factorizaci on A = LU es un subproducto gratuito del m etodo de Gauss; gratuito en tiempo y en requerimientos de memoria. No se requiere tiempo adicional puesto que el c alculo de los lik se hace dentro del m etodo de 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 u nicamente un peque no cambio:

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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 a la informaci on 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 informaci on de 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.

M etodo de Gauss con pivoteo parcial

En el m etodo de Gauss cl asico, u nicamente se intercambian las cuando el pivote, akk , es nulo o casi nulo. Como el pivote (el elemento akk en la iteraci on k ) va a ser divisor para el c alculo de lik, y como el error de redondeo o de truncamiento se hace mayor cuando el divisor es cercano a cero, entonces es muy conveniente buscar que el pivote sea grande en valor absoluto. Es decir, hay que evitar los pivotes que sin ser nulos son cercanos a cero. En el m etodo de Gauss con pivoteo parcial se busca el elemento dominante, 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 precisi on de la soluci on nal obtenida. Se dice que el pivoteo es total si en la iteraci on k se busca el mayor valor de {|aij | : k i, j n}. En este caso es necesario intercambiar dos las y dos

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

44

columnas. As se consigue mejorar un poco la precisi on con respecto al m etodo de pivoteo parcial, pero a un costo nada despreciable. En el m etodo de 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 m aximo entre p elementos, entonces hay que hacer, adem as de operaciones de asignaci on, por lo menos p 1 comparaciones. Estas operaciones no son de punto otante y son m as r apidas que ellas, pero para n grande, el tiempo utilizado no es despreciable. En el m etodo de pivoteo parcial hay aproximadamente n2 /2 comparaciones, en el pivoteo total aproximadamente n3 /6. En resumen, con el pivoteo total se gana un poco de precisi on, pero se gasta bastante m as tiempo. El balance aconseja preferir el pivoteo parcial. CON PIVOTEO PARCIAL TRIANGULARIZACION 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 m etodo de Gauss con pivoteo parcial el siguiente 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.

DE SISTEMAS DE LINEALES SOLUCION

45

El valor dominante de A(2 : 4, 2) es 3 y est a en la la 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 a en la la 4. Entonces se 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.

DE SISTEMAS DE LINEALES SOLUCION

46

Al resolver el sistema triangular superior, se encuentra la soluci on: x = (1, 0, 1, 2) . En Scilab la b usqueda del valor dominante y su la se puede hacer mediante: [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 m etodo de Gauss con pivoteo parcial, pero no muestra sus ventajas. El ejemplo siguiente, tomado de [Atk78], se resuelve inicialmente por el m etodo de Gauss sin pivoteo y despu es con pivoteo parcial. Los c alculos se hacen con cuatro cifras decimales. 0.729x1 + 0.81x2 + 0.9x3 = x1 + x2 + 0.6867

x3 = .8338

1.331x1 + 1.21x2 + 1.1x3 = 1 Con la soluci on exacta, tomada con cuatro cifras decimales, es x = ( 0.2245, 0.2814, 0.3279 ). Al resolver el sistema por el m etodo de Gauss, con cuatro cifras decimales 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.

DE SISTEMAS DE LINEALES SOLUCION

47

La soluci on del sistema triangular da: x = ( 0.2163, 0.2979, 0.3197 ). Sea x la soluci on exacta del sistema Ax = b. Para comparar x1 y x2 , dos aproximaciones de la soluci on, se miran sus distancias a x : x1 x , x2 x .

Si x1 x < x2 x , entonces x1 es, entre x1 y x2 , la mejor aproximaci on de x . Cuando no se conoce x , entonces se utiliza la norma del vector residuo o resto, r = Ax b. Si x es la soluci on exacta, entonces la norma de su resto vale cero. Entonces hay que comparar Ax1 b , Ax2 b .

Para la soluci on obtenida por el m etodo de Gauss, sin pivoteo, Ax b = 1.0357e-004 , x x = 0.0202 .

En seguida est a el m etodo de Gauss con pivoteo parcial, haciendo c alculos 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.

DE SISTEMAS DE LINEALES SOLUCION

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 soluci on del sistema triangular da:

1.0000 0.1390 -0.0033

x = ( 0.2267, 0.2770, 0.3300 ). El c alculo del residuo y la comparaci on con la soluci on exacta da: 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 soluci on obtenida sin pivoteo, aunque algo mayor. La comparaci on directa con la soluci on exacta favorece notablemente al m etodo de pivoteo parcial: 0.0053 y 0.0202, relaci on de 1 a 4 aproximadamente. Adem as, visualmente se observa la mejor calidad de la soluci on obtenida con pivoteo.

2.10.

Factorizaci on LU =PA

Si se aplica el m etodo de Gauss con pivoteo parcial muy probablemente se hace por lo menos un intercambio de las y no se puede obtener la factorizaci on A = LU , pero s se puede obtener la factorizaci on LU = P A. Las matrices L y U tienen el mismo signicado de la factorizaci on LU . P es una matriz de permutaci on, es decir, se obtiene mediante permutaci on de las de la matriz identidad I . Si P y Q son matrices de permutaci on, entonces: P Q es una matriz de permutaci on. P 1 = P T (P es ortogonal). P A es una permutaci on de las las de A. AP es una permutaci on de las columnas de A.

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

49

Una matriz de permutaci on P se puede representar de manera m as compacta n por medio de un vector p R con la siguiente convenci on: 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 factorizaci on LU , los valores lik se almacenan en 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 factorizaci on LU = P A, 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.

DE SISTEMAS DE LINEALES SOLUCION

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 u ltima matriz y en el arreglo p est a toda la informaci on necesaria 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.

DE SISTEMAS DE LINEALES SOLUCION

51

Si se desea resolver el sistema Ax = b a partir de la descomposici on P A = 1 T LU , se considera el sistema P LU x = b, o sea, P LU x = b. Sean z = LU x y y = U x. La soluci on de Ax = b tiene tres pasos: 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 factorizaci on se puede obtener mediante la orden [L, U, P] = lu(A)

2.11.

M etodo de Cholesky

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

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

52

2.11.1.

Matrices denidas positivas

Una matriz sim etrica es denida positiva si 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 sim etrica,
n

x Ax =
i=1

aii x2 i

+2

n 1

aij xi xj .

i=1 j =i+1

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 .

2 xT Ax = x2 1 + 5x2 + 4x1 x2 2 2 = x2 1 + 4x1 x2 + 4x2 + x2

= (x1 + 2x2 )2 + x2 2. Obviamente xT Ax 0. Adem as xT Ax = 0 si y solamente si los dos sumandos 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.

DE SISTEMAS DE LINEALES SOLUCION

53

Ejemplo 2.11. Sea A = 1 2 2 4 .

2 xT Ax = x2 1 + 4x2 + 4x1 x2

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

2 xT Ax = x2 1 + 3x2 + 4x1 x2

= (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 sim etrica, entonces no es denida positiva. Sean 1 , 2 , . . . , n los valores propios de A. Si A es sim etrica, entonces todos sus valores propios son reales. Sea i el determinante de la submatriz de A, de tama no i i, obtenida al 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.

DE SISTEMAS DE LINEALES SOLUCION

54

La denici on 2.5 tiene relaci on directa con el nombre matriz denida positiva. Sin embargo, no es una manera f acil o pr actica de saber cu ando una matriz sim etrica es denida positiva, sobre todo si A es grande. El teorema siguiente presenta algunas de las caracterizaciones de las matrices denidas positivas. Para matrices peque nas (n 4) la caracterizaci on por medio de los i puede ser la de aplicaci on m as sencilla. La u ltima caracterizaci on, llamada factorizaci on de Cholesky, es la m as adecuada para matrices grandes. En [Str86], [NoD88] y [Mor01] hay demostraciones y ejemplos. Teorema 2.1. Sea A sim etrica. Las siguientes armaciones son equivalentes. 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.

Factorizaci on de Cholesky

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

CAP ITULO 2. Entonces

DE SISTEMAS DE LINEALES SOLUCION

55

u11 0 u12 u22

u11 u12 0 u22

1 2 2 5

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

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

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

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

56

Entonces, aunque existe U tal que A = U T U , sin embargo no existe la factorizaci on de Cholesky de A ya que U no es invertible. Sea A= Entonces u11 0 u12 u22 u11 u12 0 u22 = 1 2 2 3 1 2 2 3

u2 11 = 1 u11 u12 = 2, u2 12 Se deduce que u11 = 1 u12 = 2, u2 22 = 1. Entonces no existe la factorizaci on de Cholesky de A. En el caso general, u11 u11 u1k u1j u1n . . . . . . u1k ukk u u u kk kj kn . . . . . . 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 11 = a11 . Luego u11 = a11 . (2.6) + u2 22 = 3

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

CAP ITULO 2. Luego

DE SISTEMAS DE LINEALES SOLUCION

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 c alculo de los elementos de U 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 ik = akk
i=1 k 1 i=1 2 u2 ik + ukk = akk .

Luego ukk = akk


k 1 i=1

u2 ik ,

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 akj
k 1 i=1

uik uij , k = 2, ..., n, j = k + 1, ..., n. (2.9)

ukj =

ukk

Si consideramos que el valor de la sumatoria es 0 cuando el l mite inferior es m as grande que el l mite superior, entonces las f ormulas 2.8 y 2.9 pueden 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.

DE SISTEMAS DE LINEALES SOLUCION 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 factorizaci on de Cholesky no existe cuando en la f ormula 2.8 la cantidad dentro del radical es negativa o nula. Utilizando el producto entre matrices, las f ormulas 2.8 y 2.9 se pueden reescribir as : 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.

DE SISTEMAS DE LINEALES SOLUCION

59

tiene la matriz A. Al nalizar, en la parte triangular superior del espacio ocupado por A estar a U. 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 factorizaci on de Cholesky. Si acaba normalmente, la matriz A es denida positiva. Si en alg un momento t , entonces A no es denida positiva. DE CHOLESKY FACTORIZACION datos: A, para k = 1, ..., n c alculo de t seg un (2.10) si t ent salir akk = t para j = k + 1, ..., n c alculo de akj seg un (2.12) n-para j n-para k La siguiente es la implementaci on en Scilab, utilizando las operaciones matriciales 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.

DE SISTEMAS DE LINEALES SOLUCION

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 umero de operaciones de la factorizaci on

Para el c alculo del n umero de operaciones supongamos que el tiempo necesario para calcular una ra z cuadrada es del mismo orden de magnitud que el tiempo de una multiplicaci on. Sumas y restas c alculo c alculo c alculo c alculo c alculo c alculo ... c alculo 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.

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

61

c alculo c alculo c alculo ... c alculo

de U1 de U2 de U3 de Un

n(0) (n 1)1 (n 2)2 1(n 1)

N umero de sumas y restas:


n 1 i=1

(n i )i =

n3 n n3 . 6 6

N umero de multiplicaciones, divisiones y ra ces:


n i=1

(n + 1 i )i =

n3 n2 n n3 + + . 6 2 3 6

N umero total de operaciones: n3 n3 n2 n + + . 3 2 6 3

2.11.4.

Soluci on del sistema

Una vez obtenida la factorizaci on de Cholesky, resolver Ax = b es lo mismo T que resolver U U x = b. Al hacer el cambio de variable U x = y , la soluci on 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 f acil. El primero es triangular inferior, el segundo triangular superior. El n umero total de operaciones para resolver el sistema est a dado por la factorizaci on m as la soluci on de dos sistemas triangulares. N umero de operaciones n3 n3 + 2 n2 3 3

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

62

Esto quiere decir que para valores grandes de n, resolver un sistema, con A denida positiva, por el m etodo de Cholesky, gasta la mitad del tiempo requerido por el m etodo de Gauss. El m etodo de Cholesky se utiliza para matrices denidas positivas. Pero no es necesario tratar de averiguar por otro criterio si la matriz es denida positiva. Simplemente se trata de obtener la factorizaci on de Cholesky de A sim etrica. Si fue posible, entonces A es denida positiva y se contin ua con la soluci on de los dos sistemas triangulares. Si no fue posible obtener la factorizaci on de Cholesky, entonces A no es denida positiva y no se puede aplicar el m etodo de Cholesky para resolver Ax = b. 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 factorizaci on de Cholesky es posible (A 4 3 3 U= 0 0 0

es denida positiva): 2 0 . 2

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

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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 funci on, y = sol_UT_y_b(U, b) resuelve el sistema U T y = b , pero se tiene la informaci on de U . Si se sabe con certeza que la matriz es denida positiva, en lugar de Cholesky, es preferible usar la funci on de Scilab chol, que es m as eciente.

2.12.

Soluci on por m 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 m as las que columnas, m n, y que adem as el rango de A es n. Es muy probable que este sistema no tenga soluci on, es decir, tal vez no existe x que cumpla exactamente las m igualdades. 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 m as peque no posible. Se desea minimizar esa cantidad, min Ax b
2 2

(2.15)

El vector x que minimice Ax b 2 on por m nimos cuadrados. 2 se llama soluci Como se ver a m as adelante, tal x existe y es u nico (suponiendo que las columnas de A son linealmente independientes).

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

64

2.12.1.

En Scilab

La orden para hallar por la soluci on por m 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 animo de hacer m as clara la deducci on, supongamos que A es una , 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.

DE SISTEMAS DE LINEALES SOLUCION

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.

DE SISTEMAS DE LINEALES SOLUCION

66

Las ecuaciones (2.16) se llaman ecuaciones normales para la soluci on (o seudosoluci on) de un sistema de ecuaciones por m nimos cuadrados. La matriz AT A es sim etrica de tama no n n. En general, si A es una matriz T m n de rango r, entonces A A tambi en es de rango r (ver [Str86]). Como se supuso que el rango de A es n, entonces AT A es invertible. M as a un, AT A es denida positiva. Por ser AT A invertible, hay una u nica soluci on de (2.16), o sea, hay un solo vector x que hace que las derivadas parciales sean nulas. En general, las derivadas parciales nulas son simplemente una condici on necesaria para obtener el m nimo de una funci on (tambi en lo es para m aximos o para puntos de silla), pero en este caso, como AT A es denida positiva, f es convexa, y entonces anular las derivadas parciales se convierte en condici on necesaria y suciente para el m nimo. En resumen, si las columnas de A son linealmente independientes, entonces la soluci on por m nimos cuadrados existe y es u nica. Para obtener la soluci on por m nimos cuadrados se resuelven las ecuaciones normales. Como AT A es denida positiva, (2.16) se puede resolver por el m etodo de Cholesky. Si m n y al hacer la factorizaci on de Cholesky resulta que AT A no es denida positiva, entonces las columnas de A son linealmente dependientes. Si el sistema Ax = b tiene soluci on exacta, esta coincide con la soluci on por m nimos cuadrados. Ejemplo 2.16. Resolver por m nimos cuadrados: 2 1 0 3.1 x1 1 2 8.9 3 x2 = 2 3.1 2 1 x3 5 4 2 0.1

La soluci on por m 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.

DE SISTEMAS DE LINEALES SOLUCION 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 m etodo de Cholesky; no se puede obtener la factorizaci on de Cholesky, luego AT A no es denida positiva, es decir, las columnas de A son linealmente dependientes. Si se aplica el m etodo de Gauss, se obtiene que AT A es singular y se concluye que 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 soluci on por m nimos cuadrados es: x = (2, 1) . El error, Ax b, es: 0 0 . 0 0

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

68

En este caso, el sistema inicial ten a soluci on exacta y la soluci on por m nimos cuadrados coincide con ella. La soluci on por m nimos cuadrados de un sistema sobredeterminado tambi en se puede hacer en Scilab mediante (a*a)\(a*b) o por medio de pinv(a)*b , pero ambas son menos ecientes que a\b . La implementaci on eciente de la soluci on por m nimos cuadrados, v a ecuaciones normales, debe tener en cuenta algunos detalles. No es necesario construir toda la matriz sim etrica AT A (n2 elementos). Basta con almacenar en un arreglo de tama no n(n + 1)/2 la parte triangular superior de AT A. Este almacenamiento puede ser por las, es decir, primero los n elementos de la primera la, enseguida los n 1 elementos de la segunda la a partir del elemento diagonal, despu es los n 2 de la tercera la a partir del elemento 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 soluci on por el m etodo de Cholesky debe tener en cuenta este tipo de estructura de almacenamiento de la informaci on. Otros m etodos ecientes para resolver sistemas de ecuaciones por m 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.

DE SISTEMAS DE LINEALES SOLUCION

69

Estos sistemas se presentan en algunos problemas particulares, por ejemplo, al resolver, mediante diferencias nitas, una ecuaci on diferencial lineal de segundo orden con condiciones de frontera o en el c alculo de los coecientes de un trazador c ubico (spline). Obviamente este sistema se puede resolver mediante el m etodo de Gauss. Pero dadas las caracter sticas especiales es mucho m as eciente sacar provecho de ellas. Se puede mostrar que si A admite descomposici on LU , entonces estas dos matrices tambi en guardan la estructura de A, es decir, L, adem as de ser triangular inferior, tiene ceros por debajo de la subdiagonal y U , adem as de ser triangular superior, tiene ceros por encima de la superdiagonal. 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 f2 1 0 0 0 0 0 0 0 d3 u3 0 0 0 d4 0 0 f3 1 0 0 0 0 =A. .. .. . . 0 0 0 0 0 0 0 0 d n 1 u n 1 1 0 0 0 0 0 0 dn 0 0 0 0 fn 1 1 Sean Fi la la i de L y Cj la columna j de U . Entonces los productos de las

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

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 : d1 = a11 u1 = a12 f1 d1 = a21 f1 u1 + d2 = a22 u2 = a23 f2 d2 = a32 f2 u2 + d3 = a33 u3 = a34

Fi Ci+1 :

fi1 ui1 + di = aii

fi1 di1 = ai,i1 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 despu es U x = y . Al explicitar las anteriores igualdades se tiene: y 1 = b1 , f i 1 y i 1 + y i = bi , d n x n = yn ,

di xi + ui xi+1 = yi .

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

71

Las f ormulas expl citas son: y 1 = b1 , y i = bi f i 1 y i 1 , 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= 0 4 5 2 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.

DE SISTEMAS DE LINEALES SOLUCION

72

Ahora la soluci on de los sistemas Ly = b, U x = y : 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 f ormulas (2.17) y (2.18) se pueden utilizar sin ning un problema si todos los di son no nulos. Alg un elemento diagonal de U resulta nulo si la matriz A no es invertible o si simplemente A no tiene factorizaci on LU . 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 factorizaci on LU . En este u ltimo caso, se obtiene d1 = 0 . 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 n umeros. Mejor a un, en el mismo sitio donde inicialmente se almacenan los elementos diagonales de A se pueden almacenar los elementos diagonales de U a medida que se van calculando, donde se almacenan los elementos subdiagonales de A se pueden almacenar los elementos 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 implementaci on eciciente utiliza 4 vectores d, f , u y b. El primero y el cuarto est an en Rn , los otros dos est an en Rn1 . Al comienzo

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

73

d, f , u contienen datos de A y los t erminos independientes est an en b. Al nal d, f , u contienen datos de L, U y la soluci on nal (los xi ) estar a en b. DE SISTEMA TRIDIAGONAL SOLUCION 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 f i 1 bi 1 n-para bn bn = dn para i = n 1, n 2, ..., 1 bi ui bi+1 bi = di n-para

2.14.

C alculo de la inversa

En la mayor a de los casos no es necesario calcular expl 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 continuaci on est a el algoritmo para el c aculo de la inversa, tomado y adaptado de [Stewart 98], basado en la factorizaci on LU = P A (con pivoteo parcial). Se utiliza un vector p en Zn1 que tiene toda la informaci on indispensable para obtener la matriz P , pero no representa directamente la permutaci on. Al principio p es simplemente (1, 2, ..., n 1). S olamente se utiliza memoria para una matriz. Al principio est a A; al nal del algoritmo, si indic = 1, est a la inversa. Cuando indic = 0, la matriz es singular o casi singular. Se utiliza la notaci on de Matlab y Scilab para las submatrices de A. Para

CAP ITULO 2.

DE SISTEMAS DE LINEALES SOLUCION

74

los elementos de A y p se utiliza la notaci on usual con sub ndices.

datos: A, resultados: la inversa almacenada en A, indic n Parte 1: Factorizacio 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 lculo de U 1 Parte 2: Ca 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 lculo de U 1 L1 Parte 3: Ca 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.

DE SISTEMAS DE LINEALES SOLUCION 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

DE SISTEMAS DE LINEALES SOLUCION -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

DE SISTEMAS DE LINEALES SOLUCION 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

M etodos iterativos
Los m etodos de Gauss y Cholesky hacen parte de los m etodos directos o nitos. Al cabo de un n umero nito de operaciones, en ausencia de errores de redondeo, se obtiene x soluci on del sistema Ax = b. El m etodo de Jacobi, Gauss-Seidel, SOR (sobrerrelajaci on), hacen parte de los m etodos llamados indirectos o iterativos. En ellos se comienza con 0 0 x0 = (x0 , on inicial de la soluci on. A partir de x0 1 x2 , ..., xn ), una aproximaci 1 1 se construye una nueva aproximaci on de la soluci on, x1 = (x1 1 , x2 , ..., xn ). 1 2 A partir de x se construye x (aqu el super ndice indica la iteraci on y no indica una potencia). As sucesivamente se construye una sucesi on de vectores {xk }, con el objetivo, no siempre garantizado, de que
k

lim xk = x .

Generalmente los m etodos indirectos son una buena opci on cuando la matriz es muy grande y dispersa o rala (sparse ), es decir, cuando el n umero de 2 elementos no nulos es peque no comparado con n , n umero total de elementos de A. En estos casos se debe utilizar una estructura de datos adecuada que permita almacenar u nicamente los elementos no nulos.

3.1.

M etodo de Gauss-Seidel

En cada iteraci on del m etodo de Gauss-Seidel, hay n subiteraciones. En la primera subiteraci on se modica u nicamente x1 . Las dem as coordenadas x2 , x3 , ..., xn no se modican. El c alculo de x1 se hace de tal manera que se 78

CAP ITULO 3. METODOS ITERATIVOS satisfaga la primera ecuaci on. x1 1 = x1 i


0 0 b1 (a12 x0 2 + a13 x3 + + a1n xn ) , a11 = x0 i = 2, ..., n. i ,

79

En la segunda subiteraci on se modica u nicamente x2 . Las dem as coordenadas x1 , x3 , ..., xn no se modican. El c alculo de x2 se hace de tal manera que se satisfaga la segunda ecuaci on. x2 2 = x2 i
1 1 b2 (a21 x1 1 + a23 x3 + + a2n xn ) , a22 = x1 i = 1, 3, ..., n. i ,

As sucesivamente, en la n- esima subiteraci on se modica u nicamente xn . Las dem as coordenadas x1 , x2 , ..., xn1 no se modican. El c alculo de xn se hace de tal manera que se satisfaga la n- esima ecuaci on. xn n = xn i
n 1 n 1 n 1 ) bn ( a n 1 x 1 + a n3 x3 + + ann xn , ann n 1 = 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 iteraci on completa (n subiteraciones), se utiliza el u ltimo x obtenido como aproximaci on inicial y se vuelve a empezar; se calcula x1 de tal manera que se satisfaga la primera ecuaci on, luego se calcula x2 ... A continuaci on est an las iteraciones siguientes para el ejemplo anterior. 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

Te oricamente, el m etodo de Gauss-Seidel puede ser un proceso innito. En la pr actica el proceso se acaba cuando de xk a xk+n los cambios son muy peque nos. Esto quiere decir que el x actual es casi la soluci on x . Como el m etodo no siempre converge, entonces otra detenci on del proceso, no deseada pero posible, est a determinada cuando el n umero de iteraciones realizadas es igual a un n umero m aximo de iteraciones previsto. El siguiente ejemplo no es convergente, ni siquiera empezando de una aproximaci on inicial muy cercana a la soluci on. La soluci on exacta es x = (1, 1, 1). 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 m etodo de Gauss-Seidel. 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 m etodo puede ser convergente. En la pr actica, con frecuencia, es muy 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 m etodo de Gauss-Seidel converge para cualquier x0 inicial. Teorema 3.2. Si A es denida positiva, entonces el m etodo de Gauss-Seidel converge para cualquier x0 inicial. Te oricamente el m etodo de Gauss-Seidel se deber a detener cuando xk x < . Sin embargo la condici on anterior necesita conocer x , que es precisamente lo que se est a buscando. Entonces, de manera pr actica el m etodo de GS se detiene cuando xk xk+n < . Dejando de lado los super ndices, las f ormulas del m etodo de Gauss-Seidel se pueden reescribir para facilitar el algoritmo y para mostrar que xk x

CAP ITULO 3. METODOS ITERATIVOS y xk xk+n est an relacionadas.


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 i esima ecuaci on al utilizar el x actual. Si ri = 0, entonces la ecuaci on i- esima se satisface perfectamente. El valor i es la modicaci on que sufre xi en una iteraci on. Sean r = (r1 , r2 , ..., rn ), = (1 , 2 , ..., n ). Entonces xk+n = xk + . Adem as k x es soluci on si y solamente si r = 0, o sea, si y solamente = 0. Lo anterior justica que el m etodo de GS se detenga cuando . La norma 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 m etodo de Gauss-Seidel es:

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 continuaci on hay una versi on, no muy eciente, que permite mostrar los 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 implementaci on eciente para matrices dispersas, se requiere una estructura en la que se almacenan u nicamente 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 abstracci on del concepto de tama no de un vector. Consideremos el vector que va de (0, 0, 0) a (2, 3, 4). Su tama no o magnitud es simplemente 22 + 32 + (4)2 = 29

Sea V un espacio vectorial real. Una norma es una funci on

(x) = 0 sssi

(x) 0, x V,

:V R

x = 0, (desigualdad triangular)

(x) = || (x), R, x V, Ejemplos cl asicos de normas en Rn son:

(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 a denido el producto, es interesante contar con normas que tengan caracter 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, adem as de las propiedades usuales 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 com un de construir normas que sean matriciales y compatibles 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

Proposici on 3.1. La denici on anterior est a bien hecha, es decir, ||| |||| es una norma, es matricial y es compatible con || ||. Demostraci on. Sea (A) = sup
x=0

||Ax|| ||x||

Ante todo es necesario mostrar que la funci on est a bien denida, o sea, 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 funci on ( ) = ||A || es continua y el conjunto S = { Rn : || || = 1} es compacto (cerrado y acotado), luego (S ) es compacto, en particular acotado, es decir, (A) = sup (S ) < . Adem as el sup se alcanza en un 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 denici on ||v || = 1. (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

x X

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


x X x X

(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 o la norma || || en Rn , la norma generada o subordinada sobre Rnn se denota por ||| ||| . Cuando no hay ambig uedad, es la notaci on m as usual, ||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 m as usadas, las normas matriciales generadas son:
n

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

1j n

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 tambi en de Schur. 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,

Proposici on 3.2. . ||A||1 = max


j

i=1

|aij |

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

Proposici on 3.3. ||A||2 =

(AT A).

CAP ITULO 3. METODOS ITERATIVOS Demostraci on. ||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 sim etrica y semidenida positiva, todos sus valores propios 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 2 1 ||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

Proposici on 3.4. ||A|| = max


i

j =1

|aij |

CAP ITULO 3. METODOS ITERATIVOS Demostraci on. ||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 yx tales que


n j =1 n

|akj | = max
i

x j =

j =1

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

signo(akj ) =

CAP ITULO 3. METODOS ITERATIVOS

96

||A|| ||Ax ||
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 t erminos donde akj = 0 no se consideran. Proposici on 3.5. . Si || || es una norma matricial, entonces existe por lo menos una norma vectorial compatible con ella. Demostraci on. Sean X = [x 0 0 0] Rnn y ||x|| = ||X || . Se 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 2 ||A||1 ||A|| (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 c omo son los cambios en la soluci on cuando se cambia ligeramente el vector de t erminos independientes b. De manera m as precisa, sea x la soluci on de Ax = b y x la soluci on de Ax = b . Se puede suponer que b = b + b, x = x + x. Se espera que si ||b|| es peque na, entonces tambi en ||x|| es peque na. En realidad es mejor considerar cambios relativos. Se espera que si el valor ||b||/||b|| es peque no, entonces tambi en ||x||/||x || sea peque no. Las 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 u ltima desigualdad ||x|| ||b|| ||A|| ||A1 || . ||x || ||b||

99

(3.9)

El valor ||A|| ||A1 || se llama condicionamiento o n umero de condici on de la 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 m ultiplo de una matriz ortogonal (o unitaria). La desigualdad (3.10) indica que si (A) es peque no, entonces un cambio relativo en b peque no produce un cambio relativo en x peque no. 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 peque nos en b producen cambios peque nos en x. 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 = [1999 2001]T , ||x|| = 2000.0002, ||x|| ||b|| (A) = 2000.0008. ||b|| x = [1998 2002]T ,

102

La matriz A es muy mal condicionada y entonces cambios peque nos en b pueden producir cambios muy grandes en la soluci on. 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 peque nos en b pueden producir cambios muy grandes en la soluci on. Sin embargo los cambios en la soluci on, aunque no despreciables, no fueron tan grandes como en el ejemplo anterior, o sea, ||x||/||x|| est a lejos de la cota superior. En Scilab el condicionamiento para la norma euclidiana se calcula por medio de cond( A ).

3.5.

M etodo de Jacobi

Este m etodo se parece al m etodo GS, tambi en se utiliza la ecuaci on i- esima para calcular xi y el c alculo de xi se hace de la misma forma. Pero un valor reci en calculado de xi no se utiliza inmediatamente. Los valores nuevos de xi 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 m etodos. Para calcular x2 en el m etodo GS se usa el valor x1 = 1.775 reci en calculado: x2 = 19 2 1.775 0 1.6 = 3.09 . 5

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

104

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

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

3.6.

M etodo iterativo general

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

Al aplicar varias veces la f ormula anterior, se est a buscando un punto jo de la funci on f (x) = M x + p. Al aplicar el teorema de punto jo de Banach, uno de los resultados m as importantes del an alisis matem atico, se tiene el siguiente resultado. Teorema 3.3. Si existe una norma matricial || || tal que ||M || < 1. entonces existe un u nico punto jo x tal que x = M x + p. Este punto se puede obtener como l mite de la iteraci on (3.11) para cualquier x0 inicial. En algunos casos el criterio anterior se puede aplicar f acilmente al encontrar una norma adecuada. Pero por otro lado, si despu es de ensayar con varias normas, no se ha encontrado una norma que sirva, no se puede concluir que no habr a convergencia. El siguiente criterio es m as preciso pero puede ser num ericamente m as dif cil de calcular.

CAP ITULO 3. METODOS ITERATIVOS

105

Teorema 3.4. La iteraci on de punto jo (3.11) converge si y solamente si (M ) < 1. El radio espectral de una matriz cuadrada M , denotado generalmente (M ), es la m axima norma de los valores propios de M (reales o complejos), (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 r apida cuando (M ) es peque no (cercano a 0). 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 m etodo de Jacobi: MJ = D 1 ( L + U ) , pJ = D1 b. Para el m etodo GS MGS = (D + L)1 U, pGS = (D + L)1 b.

3.7.

M etodo de sobrerrelajaci on

Este m etodo, conocido como SOR (Successive Over Relaxation), se puede considerar como una generalizaci on del m etodo GS. La f ormulas que denen el m etodo GS son: ri = bi Ai x , ri i = , aii xi = xi + i .

CAP ITULO 3. METODOS ITERATIVOS

106

El el m etodo SOR u nicamente cambia la u ltima asignaci on, introduciendo un par ametro , ri = bi Ai x , ri , i = aii xi = xi + i .

(3.12)

Si 0 < < 1 se tiene una subrrelajaci on, si 1 < se tiene la sobrerrelajaci on propiamente dicha. Si = 1, se tiene el m etodo GS. Una escogencia adecuada de mejora la convergencia del m etodo GS. Este m etodo se usa en algunas t ecnicas de soluci on de ecuaciones diferenciales parciales. Una condici on necesaria para que el m etodo SOR converja, ver [Dem97], es que 0 < < 2. Para matrices denidas positivas el m etodo SOR converge para cualquier en el intervalo ]0, 2[. Ejemplo 3.10. Resolver el sistema Ax = b por el m etodo SOR con = 1.4 0 partiendo de x = (1, 1, 1, 1). 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 Sobrerrelajaci on, = 1.4. 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 soluci on del mismo sistema por el m etodo GS. La soluci on exacta es x = (2, 1, 3, 4). Se aprecia que en la iteraci on 15 se tiene una mejor aproximaci on de la soluci on con el m etodo de sobrerrelajaci on.

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 m etodo SOR depende de la escogencia de y queda entonces la pregunta C omo escoger ? La respuesta no es sencilla. Algunas veces se hace 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 te orico. Tal es el caso de la soluci on, por diferencias nitas, de la ecuaci on de Poisson en un rect angulo. All se demuestra que opt = 2 1 + sin m+1

Este resultado y otros te oricos se basan en el radio espectral de la matriz de la iteraci on de punto jo. Se puede mostrar que el m etodo SOR se puede expresar como una iteracion

CAP ITULO 3. METODOS ITERATIVOS de punto jo con MSOR = (D + L)1 (1 )D U , pSOR = (D + L)1 b. La deducci on anterior proviene de descomponer 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 m etodo GS MGS = (D + L)1 U, pGS = (D + L)1 b. Para el ejemplo 3.10, con = 1.4, 0.400000 0.280000 0.560000 0.560000 0 . 000000 0 . 400000 0 . 700000 1.050000 xk+1 = 0.210000 0.063000 0.261500 0.607250 0.044333 0.453367 0.583683 0.852358

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

7.000000 k 3.500000 x + 4.287500 . 1.799583

La siguiente tabla nos muestra los valores del n umero de iteraciones y del 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: M etodo SOR: y radio espectral

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 variaci on del radio espectral (M ) al variar . Proviene de un conjunto de datos m as amplio que el de la tabla anterior.

CAP ITULO 3. METODOS ITERATIVOS

112

El mejor valor de es aproximadamente 1.55. Esto coincide, en la tabla, con el menor n umero de iteraciones. El siguiente es el esquema del algoritmo de sobrerrelajaci on, muy parecido 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 m etodo de sobrerrelajaci on, como el de GS, es u til para sistemas dispersos en los que la matriz se ha almacenado de manera dispersa. Si la matriz es dispersa pero se almacena como si fuera densa, el m etodo de Gauss, en la mayor a de los casos, debe resultar mejor.

3.8.

M etodos de minimizaci on

Si A es una matriz sim etrica y denida positiva, la soluci on del sistema Ax = b (3.13)

es exactamente el mismo punto x que resuelve el siguiente problema de optimizaci on: 1 T x Ax bT x. (3.14) min f (x) = 2 Como A es denida positiva, entonces f es convexa (m as a un, es estrictamente 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 funci on cuadr atica estrictamente convexa (3.14). Para minimizar funciones sin restricciones hay muchos m etodos. La mayor a de los m etodo de minimizaci on son iterativos. En casi todos, en cada iteraci on, dado un punto xk , hay dos pasos importantes: en el primero se calcula una direcci on dk . Normalmente esta direcci on cumple con la propiedad f (xk )T dk < 0. Esto garantiza que la direcci on sea de descenso, es decir, que para t sucientemente peque no 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 m etodos. Si f es cuadr atica (en Rn ), entonces k k (t) = f (x + td ) es cuadr atica (en R). Como A es denida positiva, representa una par abola que abre hacia arriba y el punto cr 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.

M etodo del descenso m as pendiente

Un m etodo muy popular, pero no necesariamente muy eciente, es el m etodo de Cauchy, tambi en llamado m etodo del gradiente o m etodo del descenso m as pendiente. En este m etodo la direcci on es simplemente el opuesto del 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 m etodo del descenso m as pendiente para resolver 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 x = 1 . 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 m etodo del descenso m as pendiente para resolver 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 m etodo del descenso m as pendiente, cuando 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.

M etodo del gradiente conjugado

Dentro del grupo de m etodos de direcciones conjugadas, est a el m etodo del gradiente conjugado. Este m etodo se adapta muy bien cuando la matriz es dispersa. Tiene la ventaja adicional que, aunque es un m etodo iterativo, a lo m as en n iteraciones se obtiene la soluci on exacta, si no hay rerrores de redondeo. En el m etodo GC la direcci on se construye agregando a f (xk ) un m ultiplo

CAP ITULO 3. METODOS ITERATIVOS de la direcci on anterior, d k = f ( x k ) + k d k 1 .

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 soluci on de un sistema lineal por medio del m etodo GC, 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 f ormulas que completan la denici on del m etodo GC son: 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 m etodo GC tiene las siguientes propiedades: dk es direcci on de descenso. f (xk ) < f (xk1 ). las direcciones son conjugadas con respecto a A. Si no hay errores de redondeo, entonces x = xk para alg un k n + 1. Cuando se llega a xn+1 y no se obtiene la soluci on con la precisi on deseada, 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 = k 1 2 2 ||r ||2 d k = r k + k d k 1 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 m etodo GC, partiendo 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 2 = 665,


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

d2 Ad2 = 2.570462, t2 = 0.547034,

||r2 ||2 2 = 1.406129, 1.406129 = 0.002114, 2 = 665 d2 = (0.533293, 0.960655, 0.449268),


T

x3 = (1.608191, 1.893660, 1.654819), r3 = (0.156138, 0.427083, 0.727877),

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

d3 Ad3 = 0.527433, t3 = 1.396545, x4 = (1, 2, 3),

d3 = (0.435497, 0.076145, 0.963221),

x1 = x4 = (1, 2, 3), r1 = (0, 0, 0).

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 exito el m etodo GC, se requiere simplemente poder efectuar el producto 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 multiplicaci on de un escalar por un vector. Todo esto hace que sea un m etodo muy u til para matrices muy grandes pero muy poco densas.

Cap tulo 4

Soluci on de ecuaciones no lineales


Uno de los problemas m as corrientes en matem aticas consiste en resolver una ecuaci on, es decir, encontrar un valor x R que satisfaga f (x) = 0, donde f es una funci on de variable y valor real, o sea, f : R R. Este x se llama soluci on de la ecuaci on. A veces tambi en se dice que x es una ra z o un cero. Algunos ejemplos sencillos de ecuaciones son: x5 3x4 + 10x 8 = 0,

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

En algunos casos no se tiene una expresi on sencilla de f , sino que f (x) 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.

DE ECUACIONES NO LINEALES SOLUCION

123

la ra z. Algunos m etodos requieren que f sea derivable. Para la aplicaci on de algunos teoremas de convergencia, no para el m etodo en s , se requieren derivadas de orden superior. Los m etodos generales de soluci on de ecuaciones sirven u nicamente para hallar ra ces reales. Algunos m etodos espec cos para polinomios permiten obtener ra ces complejas. Los m etodos presuponen que la ecuaci on f (x) = 0 tiene soluci on. Es necesario, antes de aplicar mec anicamente los m etodos, estudiar la funci on, averiguar si tiene ra ces, ubicarlas aproximadamente. En algunos casos muy dif ciles no es posible hacer un an alisis previo de la funci on, entonces hay que utilizar de manera mec anica uno o varios m etodos, pero sabiendo que podr an ser inecientes o, simplemente, no funcionar. La mayor a de los m etodos parten de x0 , aproximaci on inicial de x , a partir del cual se obtiene x1 . A partir de x1 se obtiene x2 , despu es x3 , y as sucesivamente se construye la sucesi on {xk } con el objetivo, no siempre cumplido, de que lim xk = x .
k

El proceso anterior es te oricamente innito, y obtendr a la soluci on despu es de haber hecho un n umero innito de c alculos. En la pr actica el proceso se detiene cuando se obtenga una aproximaci on sucientemente buena de x . Esto querr a decir que el proceso se detendr a cuando |xk x | , para un dado. El anterior criterio supone el conocimiento de x , que es justamente lo buscado. Entonces se utiliza el criterio, este si aplicable, |f (xk )| . En la mayor a de los casos, cuanto m as cerca est e x0 de x , m as r apidamente se obtendr a una buena aproximaci on de x . Otros m etodos parten de un intervalo inicial [a0 , b0 ], en el cual se sabe que existe una ra z x . A partir de el, se construye otro intervalo [a1 , b1 ], contenido en el anterior, en el que tambi en est a x y que es de menor tama no. De manera an aloga se construye [a2 , b2 ]. Se espera que la sucesi on formada

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

124

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

[ a 0 , b0 ] ,

lim (bk ak ) = 0.

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

Cualquiera de los puntos del u ltimo intervalo es una buena aproximaci on de x .

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

4.1.

En Scilab

Para resolver f (x) = 0, donde f es una funci on de variable y valor real, se utiliza fsolve. Por ejemplo para resolver x ex cos(x) + 0.1 = 0, 1 + x2 es necesario denir una funci on de Scilab donde est e f y despu es utilizar fsolve. function fx = func156(x) fx = ( x - exp(x) )/( 1 + x*x ) - cos(x) + 0.1 endfunction Despues de haber cargado esta funci on, se utiliza fsolve d andole como par ametros, la aproximaci on inicial y la funci on: r = fsolve(0, func156) Con otra aproximaci on inicial podr a dar otra ra z. Un par ametro opcional, que puede acelerar la obtenci on de la soluci on, es otra funci on de Scilab donde est e denida la derivada.

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

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 m as c omodo no tener que denir la derivada, pero no hacerlo puede hacer menos eciente el uso de fsolve . La funci on fsolve trabaja bien pero no siempre encuentra una soluci on. 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 a que el usuario ingenuamente suponga que ese valor corresponde a una ra z. Realmente la funci on no tiene ra ces. Es conveniente utilizar fsolve con tres par ametros de salida, [x, fx, info] = fsolve(1, f13) fx ser a el valor de f13 evaluada en x, e info valdr a 1 si se obtuvo la soluci on con la precisi on deseada. Para nuestro ejemplo los valores ser an info 4. = 0.0182285 = 0.9957334 lo cual indica que no se obtuvo una ra z. =

fx

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

126

y = f (x)

(x0 , f (x0 ))

(x1 , f (x1 )) x2 x1 x0

Figura 4.1: M etodo de Newton

4.2.

M etodo de Newton

Tambi en se conoce como el m etodo de Newton-Raphson. Dado x0 , se construye 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 m etodo de Newton a la ecuaci on x5 3x4 +10x8 = 0, partiendo de x0 = 3.

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

DE ECUACIONES NO LINEALES SOLUCION 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 m etodo converge a estas ra ces. Si se toma x0 = 2.1, se esperar a que el m etodo vaya hacia una de las ra 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 m etodo de Newton es muy popular por sus ventajas: Sencillez. Generalmente converge. En la mayor a de los casos, cuando converge, lo hace r apidamente. Tambi en tiene algunas desventajas: Puede no converger. Presenta problemas cuando f (xk ) 0. Requiere poder evaluar, en cada iteraci on, el valor f (x). La implementaci on del m etodo de Newton debe tener en cuenta varios aspectos. Como no es un m etodo totalmente seguro, debe estar previsto un

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

128

n umero m aximo de iteraciones, llamado por ejemplo maxit. Para una precisi on f , la detenci on deseada para el proceso iterativo se tiene cuando |f (xk )| f . Otra detenci on posible se da cuando dos valores de x son casi 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 m etodo de 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 implementaci on en Scilab, es necesario determinar c omo se eval ua f y f . Fundamentalmente hay dos posibilidades: Hacer una funci on para evaluar f y otra para evaluar f . Hacer una funci on donde se eval ue al mismo tiempo f y f . En la siguiente implementaci on del m etodo de Newton, la funci on f debe 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.

DE ECUACIONES NO LINEALES SOLUCION

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 sucesi on denida por 4.1.

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

130

Si x0 est a sucientemente cerca de x , entonces


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 sucesi on converge a x . El segundo dice que la convergencia es cuadr atica o de orden superior. La frase x0 est a sucientemente cerca de x , entonces... quiere decir que existe > 0 tal que si x0 [x , x + ] I , entonces... Demostraci on.

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 ) 2 f ( ) + ( x x ) + ( x x ) , n n 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=

(4.4)

Sea I = [x , x + ] M= 2 min |f (x)|


x I

max |f (x)|
x I

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

131

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

|x xn+1 | M |x xn |2 . En particular, M | x x1 | = (M | x x 0 | )2 . Sea x0 tal que M | x x0 | < 1 . Entonces M | x x1 | < (M | x x 0 | )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 x n | ( M | x x n 1 | ) 2 ,


n

| x x n | M | x x n 1 | ,

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

DE ECUACIONES NO LINEALES SOLUCION

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 comprobaci on, despu es de que se calcul o una ra z, se puede ver si la sucesi on muestra aproximadamente convergencia cuadr atica. Sea ek = xk x . La sucesi on |ek |/|ek1 |2 deber a acercarse a |f (x )|/ (2|f (x )|). 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.

M etodo de la secante

Uno de los inconvenientes del m etodo de Newton es que necesita evaluar f (x) en cada iteraci on. Algunas veces esto es imposible o muy dif cil. Si en el m etodo de Newton se modica la f ormula 4.1 reemplazando f (xk ) por una aproximaci on f ( x k ) f ( x k 1 ) , f (xk ) x k x k 1 entonces se obtiene f (xk )(xk xk1 ) f ( x k ) f ( x k 1 )

xk+1 = xk

(4.6)

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

133

y = f (x)

(x0 , f (x0 ))

(x1 , f (x1 )) x2 x1 x0

Figura 4.2: M etodo de la secante

En el m etodo de Newton se utilizaba la recta tangente a la curva en el punto (xk , f (xk )). En el m etodo de la secante se utiliza la recta (secante) que pasa por los puntos (xk , f (xk )) y (xk1 , f (xk1 )). Ejemplo 4.2. Aplicar el m etodo de la secante a la ecuaci on x5 3x4 + 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 m etodo de la secante tiene orden de convergencia 1+ 5 1.618 2

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

134

Como el m etodo de la secante es semejante al m etodo de Newton, entonces tienen aproximadamente las mismas ventajas y las mismas desventajas, salvo dos aspectos: La convergencia del m etodo de la secante, en la mayor a de los casos, es menos r apida que en el m etodo de Newton. El m etodo de la secante obvia la necesidad de evaluar las derivadas. El esquema del algoritmo es semejante al del m etodo de Newton. Hay varias 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 m etodo de la secante se puede implementar en Scilab as : 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.

DE ECUACIONES NO LINEALES SOLUCION

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.

M etodo de la bisecci on

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

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

136

Usualmente se dene el error asociado a una aproximaci on como ek = | x k x | . En el m etodo de la bisecci on, dado el intervalo [ak , bk ], ak < bk , no se tiene un valor de xk . Se sabe que en [ak , bk ] hay por lo menos una ra z. Cualquiera de los valores en el intervalo podr a ser xk . Sea Ek el m aximo error que puede haber en la iteraci on k , e k E k = bk a k . Como el tama no de un intervalo es exactamente la mitad del anterior 1 bk a k = ( bk 1 a k 1 ) , 2 entonces bk ak = Finalmente bk a k = Obviamente Ek 0 y 1 2 1 2 1 2
k

( bk 2 a k 2 ) . ( b0 a 0 ) .

Esto quiere decir que la sucesi on de cotas del error tiene convergencia lineal (orden 1) y tasa de convergencia 1/2. En el m etodo de la bisecci on se puede saber por anticipado el n umero de iteraciones necesarias para obtener un tama no deseado,
k

1 1 Ek = . Ek 1 2 2

1 2

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


k

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

137

y = f (x)

(bk , f (bk ))

ak c k bk Figura 4.3: M etodo Regula Falsi

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

4.5.

M etodo de Regula Falsi

Igualmente se conoce con el nombre de falsa posici on. Es una modicaci on del m etodo de la bisecci on. Tambi en empieza con un intervalo [a0 , b0 ] donde f es continua y tal que f (a0 ) y f (b0 ) tienen signo diferente. En el m etodo de bisecci on, en cada iteraci on, u nicamente se tiene en cuenta el signo de f (ak ) y de f (bk ), pero no sus valores: no se est a utilizando toda la informaci on disponible. Adem as es de esperar que si f (ak ) est a m as cerca de 0 que f (bk ), entonces puede ser interesante considerar, no el punto medio, sino un punto m as cercano a ak . De manera an aloga, si f (bk ) est a m as cerca de 0 que f (ak ), entonces puede ser interesante considerar, no el punto medio, sino un punto m as cercano a bk . En el m etodo de Regula Falsi se considera el punto donde la recta que pasa 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.

DE ECUACIONES NO LINEALES SOLUCION

138

La ecuaci on de la recta es: y f (a k ) = f ( bk ) f ( a k ) (x a k ) bk a k

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

Esta f ormula es semejante a la de la secante. Como f (ak ) y f (bk ) tienen signo diferente, entonces f (bk ) f (ak ) tiene signo contrario al de f (ak ). Entonces f (ak )/(f (bk ) f (ak )) > 0. Usando de nuevo que f (ak ) y f (bk ) tienen signo diferente, entonces |f (ak )|/|f (bk ) f (ak )| < 1. Luego 0 < f (ak )/(f (bk ) f (ak )) < 1. Esto muestra que ak < ck < bk . Partiendo de un intervalo inicial [a0 , b0 ], en la iteraci on k se tiene el intervalo [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 z en el intervalo [ak , ck ] = [ak+1 , bk+1 ]; f (ak )f (ck ) > 0; en este caso hay una ra z en el intervalo [ck , bk ] = [ak+1 , bk+1 ]. Ejemplo 4.3. Aplicar el m etodo de Regula Falsi a la ecuaci on x5 3x4 + 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 (a k ) -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 (c k ) -4.054857 -4.108820 -4.161744 -4.213478 -4.263862 -4.312734 -4.528370 -4.744664 -4.554769 -0.000001

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

139

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

lim (bk ak ) = 0.

Esto quiere decir que el m etodo no es seguro. Entonces, en una implementaci on, es necesario trabajar con un n umero m aximo de iteraciones.

4.6.

Modicaci on del m etodo de Regula Falsi

Los dos m etodos, bisecci on y Regula Falsi, se pueden combinar en uno solo de la siguiente manera. En cada iteraci on se calcula mk y ck . Esto dene 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 a un, el de menor tama no. En un caso muy especial, cuando mk y ck coinciden, se tiene simplemente una iteraci on del m etodo de bisecci on. 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 a 0 ) ,

lim (bk ak ) = 0.

Ejemplo 4.4. Aplicar la modicaci on del m etodo de Regula Falsi a la ecuaci on x5 3x4 + 10x 8 = 0, partiendo de [2, 5].
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.

DE ECUACIONES NO LINEALES SOLUCION

140

La modicaci on es mucho mejor que el m etodo de Regula Falsi. Adem as, el n umero de iteraciones de la modicaci on debe ser menor o igual que el n umero de iteraciones del m etodo de bisecci on. Pero para comparar equitativamente el m etodo de bisecci on y la modicaci on de Regula Falsi, es necesario tener en cuenta el n umero de evaluaciones de f (x). En el m etodo de bisecci on, en k iteraciones, el n umero de evaluaciones de f est a dado por: nbisec = 2 + kbisec En la modicaci on de Regula Falsi, nmodif = 2 + 2 kmodif

4.7.

M etodo de punto jo

Los m etodos vistos se aplican a la soluci on de la ecuaci on f (x) = 0. El m etodo de punto jo sirve para resolver la ecuaci on g (x) = x. (4.8)

Se busca un x tal que su imagen, por medio de la funci on g , sea el mismo x . Por tal motivo se dice que x es un punto jo de la funci on g . La aplicaci on del m etodo es muy sencilla. A partir de un x0 dado, se aplica varias veces la f ormula xk+1 = g (xk ). (4.9) Se espera que la sucesi on {xk } construida mediante (4.9) converja hacia x . En algunos casos el m etodo, adem as de ser muy sencillo, es muy eciente; en otros casos la eciencia es muy peque na; nalmente, en otros casos el m etodo denitivamente no sirve. Ejemplo 4.5. Resolver x3 + x2 + 6x + 5 = 0. Esta ecuaci on se puede escribir en la forma x3 + x2 + 5 x= 6 Aplicando el m etodo de punto jo a partir de x0 = 1 se tiene:

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION 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 aproximaci on de una ra z, x 0.851295. En este caso el m etodo funcion o muy bien. Utilicemos ahora otra expresi on para x = g (x): x3 + 6x + 5 x= x Aplicando el m etodo de punto jo a partir de x0 = 0.851, muy buena aproximaci on de la ra z, se tiene: 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 aproximaci on de la soluci on, no hay convergencia. Antes de ver un resultado sobre convergencia del m etodo de punto jo, observemos su interpretaci on gr aca. La soluci on de g (x) = x est a determinada por el punto de corte, si lo hay, entre las gr acas y = g (x) y y = x. Despu es de dibujar las dos funciones, la construcci on de los puntos x1 , x2 , x3 ... se hace de la siguiente manera. Despu es de situar el valor x0 sobre el 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.

DE ECUACIONES NO LINEALES SOLUCION 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 gr acamente la utilizaci on del m etodo; en los dos primeros casos hay convergencia; en los otros dos no hay, aun si la aproximaci on inicial es bastante buena. En seguida se presentan dos teoremas (demostraci on en [Atk78]) sobre la convergencia del m etodo de punto jo; el primero es m as general y m as preciso, el segundo es una simplicaci on del primero, de m as f acil aplicaci on 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 u nico x en [a, b] soluci on de x = g (x) y la iteraci on de punto jo (4.9) converge a x para todo x0 [a, b].

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

143

y=x

y = g (x)

x0 x1 x2 x3 x Figura 4.5: M etodo de punto jo (a)

y=x

y = g (x)

x0

x2 x x3

x1

Figura 4.6: M etodo de punto jo (b)

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

144

y = g (x)

y=x

x x0 x2

x3

x4

Figura 4.7: M etodo de punto jo (c)

y = g (x)

y=x

x3

x1 x x0 x2

x4

Figura 4.8: M etodo de punto jo (d)

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

145

Teorema 4.3. Sea x soluci on de x = g (x), g continuamente diferenciable en un intervalo abierto I tal que x I , |g (x )| < 1. Entonces la iteraci on de punto jo (4.9) converge a x para todo x0 sucientemente cerca de x . El caso ideal (la convergencia es m as r apida) se tiene cuando g (x ) 0.

En los dos ejemplos num ericos anteriores, para resolver x3 + x2 + 6x + 5 = 0, 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 num ericos concuerdan con el u ltimo teorema. Dos de los ejemplos gr acos anteriores muestran justamente que cuando |g (x )| < 1 el m etodo converge. 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 r apida. Este m etodo es muy 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 2 apidamente que si x0 est a sucientemente cerca 1.5/x = 0, se concluye r etodo converge. de 3, entonces el m La aplicaci on del teorema 4.2 no es tan inmediata, pero se obtiene informaci on m as detallada. La soluci on est a en el intervalo [2, 3]; consideremos un

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

146

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

4.7.1.

Modicaci on del m etodo de punto jo

La convergencia del m etodo de punto jo se puede tratar de mejorar retomando las ideas del m etodo de la secante. Consideremos la ecuaci on x = g (x) y los puntos (xi , g (xi )), (xj , g (xj )), sobre la gr aca de g . Estos puntos pueden provenir directamente o no del m etodo de punto jo. es decir, se puede tener que xi+1 = g (xi ) y que xj +1 = g (xj ), pero lo anterior no es obligatorio. La idea consiste simplemente en obtener la ecuaci on de la recta que pasa por esos dos puntos y buscar la intersecci on con la recta y = x. La abcisa del punto dar a un nuevo valor xk .

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

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.

M etodo de punto jo y m etodo de Newton

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

Si se desea resolver esta ecuaci on por el m etodo de punto jo, la convergencia es m as r apida cuando g (x ) = 0, o sea, 1 + cf (x ) = 0, c = 1 f (x ) .

Entonces al aplicar el m etodo de punto jo a (4.13), se tiene la f ormula xk+1 = xk f (xk ) . f (x ) (4.14)

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

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

148

4.8.

M etodo de Newton en Rn

Consideremos ahora un sistema de n ecuaciones con n inc ognitas; por ejemplo, x2 1 + x1 x2 + x3 3 = 0 (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 m etodos usuales para sistemas de ecuaciones lineales. Lo que se hace, como en el m etodo de Newton en R, es utilizar aproximaciones de primer orden (llamadas tambi en aproximaciones lineales). Esto es simplemente la generalizaci on de la aproximaci on por una recta. Un sistema de n ecuaciones con n inc ognitas se puede escribir de la forma F1 (x1 , x2 , ..., xn ) = 0 F2 (x1 , x2 , ..., xn ) = 0 . . . Fn (x1 , x2 , ..., xn ) = 0, donde cada Fi es una funci on de n variables con valor real, o sea, Fi : Rn R. Denotemos x = (x1 , x2 , ..., xn ) y F1 (x) F2 (x) F (x) = . . . . Fn (x) As F es una funci on de variable vectorial y valor vectorial, F : Rn Rn , 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 a dirigido principalmente a estudiantes de segundo semestre, quienes todav a no conocen el c alculo en varias variables, entonces no habr a una deducci on (ni formal ni intuitiva) del m etodo, simplemente se ver a como una generalizaci on del m etodo en R.

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

149

4.8.1.

Matriz jacobiana

La matriz jacobiana de la funci on F : Rn Rn , denotada por JF ( x) o por F ( x), es una matriz de tama no n n, en la que en la i- esima la est an las 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.

F ormula de Newton en Rn

La f ormula del m etodo de Newton en R, 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.

DE ECUACIONES NO LINEALES SOLUCION

150

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

Su interpretaci on, muy natural, aparece a continuaci on. Sea x , un vector de n componentes, soluci on del sistema (4.16). Dependiendo de la conveniencia se podr a escribir x1 x 2 x = (x o x = . . 1 , x2 , ..., xn ) . . x n

0 0 on inicial El m etodo empieza con un vector x0 = (x0 1 , x2 , ..., xn ), aproximaci de la soluci on x . Mediante (4.17) se construye una sucesi on de vectores k , ..., xk )} con el deseo de que xk x . En palabras, el vector , x {xk = (xk 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 c alculo de una inversa, la f ormula se puede reescribir

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

d k = F ( x k )1 F ( x k )

F ( x k ) d k = F ( x k ) F ( x k ) 1 F ( x k ) , F (xk ) dk = F (xk ). En esta u ltima expresi on se conoce (o se puede calcular) la matriz F (xk ). Tambi en se conoce el vector F (xk ). O sea, simplemente se tiene un sistema de ecuaciones lineales. La soluci on de este sistema es el vector dk . Entonces las f ormulas para el m etodo de Newton son: resolver F (xk ) dk = F (xk ), x
k+1

(4.18)

= x +d .

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

151

Ejemplo 4.7. Resolver el sistema x2 1 + x1 x2 + x3 3 = 0 (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 continuaci on se presentan los resultados de F (xk ), F (xk ), dk , xk+1 . k = 2 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 = 37 , d0 = 0.5890 resolver 2 12 9 d0 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 = 4.8656 , d1 = 4.6537 2.0000 3.7397 7.2329 d1 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.

DE ECUACIONES NO LINEALES SOLUCION

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.

M etodo de Muller

Este m etodo sirve para hallar ra 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 ces reales. Sin embargo (teorema fundamental del Algebra) se puede garantizar que tiene n ra ces complejas (algunas de ellas pueden ser reales). De manera m as precisa, existen r1 , r2 , ..., rn C tales que p(ri ) = 0, i = 1, 2, ..., n. El polinomio p se puede expresar en funci on de sus ra 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 z entonces r = a ib, el conjugado de r, tambi en es ra z. Esto garantiza que los polinomios de grado impar tienen por lo menos una ra z real. Para los polinomios de grado par, el n umero de ra ces reales es par y el n umero de ra ces estrictamente complejas tambi en es par. As un polinomio de grado par puede tener cero ra ces reales. Para las ra ces complejas (x r)(x r ) divide a p(x). (x r)(x r ) = (x a ib)(x a + ib) = (x a)2 + b2 = x2 2ax + (a2 + b2 ).

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

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 m as sencillo. Si se halla una ra z real r entonces q (x) = (x r) divide a p(x). Si se obtiene una ra z compleja r = a + ib, entonces q (x) = x2 2ax + (a2 + b2 ) divide a p(x). Este proceso de obtener un polinomio de grado menor cuyas ra ces sean ra ces del polinomio inicial se llama deaci on. En el m etodo de la secante, dados dos valores x0 y x1 se busca la recta que pasa por los puntos (x0 , f (x0 )), (x1 , f (x1 )); el siguiente valor x2 est a dado por el punto donde la recta corta el eje x. En el m etodo de Muller, en lugar de una recta, se utiliza una par abola. Dados tres valores x0 , x1 y x2 , se construye la par abola P (x) que pasa por los puntos (x0 , f (x0 )), (x1 , f (x1 )) y (x2 , f (x2 )); el siguiente valor x3 est a dado por el (un) punto tal que P (x3 ) = 0. La par abola se puede escribir de la forma P (x) = a(x x2 )2 + b(x x2 ) + c. 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,

Despu es de algunos c alculos se obtiene 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.

DE ECUACIONES NO LINEALES SOLUCION

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 b2 b2 + 4ac 2c b R2 = = 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 iteraci on se obtiene la par abola utilizando x1 , x2 y x3 para obtener x4 . Si en una iteraci on D = b2 4ac < 0 es necesario utilizar, a partir de ah , aritm etica compleja (Scilab lo hace autom aticamente). Eso hace que los siguientes valores a, b y c no sean necesariamente reales. Muy posiblemente b2 4ac tampoco es real. Para utilizar (4.20) es necesario obtener la ra z cuadradada de un complejo. Sean z un complejo, el angulo (en radianes) formado con el eje real (eje 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.

DE ECUACIONES NO LINEALES SOLUCION

155

Cuando b no es real, es necesario modicar ligeramente (4.20). Se escoge el signo para que el denominador tenga m axima norma: 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 ces de p(x) = 2x5 + x4 + 4x3 + 19x2 18x + 40 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 aritm etica compleja R = 66.134333i = 38.5 + 66.134333i x3 = 0.368852 + 1.084169i f (x3 ) = 12.981325 9.579946i d = 0.25

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

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. Tambi en se hubiera podido volver a utilizar x0 = 0, x1 = 0.5 y

CAP ITULO 4. x2 = 1.

DE ECUACIONES NO LINEALES SOLUCION

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.

DE ECUACIONES NO LINEALES SOLUCION

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 ces de p(x) son: 0.75 + 1.1989579i 0.75 1.1989579i 0.222714 + 2.009891i 0.222714 2.009891i. El m etodo de Muller tiene orden de convergencia no inferior a 1.84... Este valor proviene de la ra z mas grande de 3 2 1 = 0. Esto hace que sea un poco menos r apido que el m etodo de Newton (orden 2) pero m as r apido que el m etodo de la secante (orden 1.68). El m etodo no tiene sentido si hay valores iguales (o muy parecidos) entre x0 , x1 y x2 . Adem as esto har a que no se pueda calcular a ni b. Tampoco 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.

DE ECUACIONES NO LINEALES SOLUCION

159

METODO DE MULLER PARA UNA RA IZ datos: p, x0 , x1 , x2 , f , 0 , maxit aritm etica = real 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 seg un (4.19) D = b2 4ac si aritm etica=compleja etica=real y D < 0 ent aritm 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( x 2 ) n-para k Si el algoritmo anterior acaba normalmente, info valdr a 1 y r ser a una ra 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 n umero de ra ces reales sea peque no, comparado con el de ra ces complejas, se puede trabajar todo el tiempo con aritm etica compleja.

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

160

4.10.

M etodo de Bairstow

Sirve para hallar las ra ces reales o complejas de un polinomio de grado mayor o igual a 4, mediante la obtenci on de los factores cuadr aticos m onicos del polinomio. Cuando es de grado 3, se halla una ra z real por el m etodo de Newton, y despu es de la deaci on se calculan las 2 ra ces del polinomio cuadr atico resultante. Sea p(x) = n xn + n1 xn1 + n2 xn2 + ... + 1 x + 0 reescrito como p(x) = u1 xn + u2 xn1 + u3 xn2 + ... + un x + un+1 (4.22)

Se desea encontrar x2 dx e divisor de p. Cuando se hace la divisi on entre p y un polinomio cuadr atico cualquiera, se obtiene un residuo r(x) = Rx + S . 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 inc ognitas,

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.

DE ECUACIONES NO LINEALES SOLUCION

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 f ormulas es u til introducir dos coecientes adicionales, vn 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 f ormulas para calcular los vi son

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

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 m etodo de Newton se tiene:

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

163

resolver el sistema

v n ( d k , ek ) d k = k vn+1 (dk , ek ) e d k dk dk+1 + = e k ek ek+1

(4.24) (4.25)

donde J es la matriz jacobiana vn (dk , ek ) d J = vn+1 ( d k , ek ) d C alculo de las derivadas parciales:

vn k k (d , e ) e . vn+1 k k (d , e ) e

v1 =0 d v2 = v1 d vi1 vi2 vi = v i 1 + d +e d d d

v1 e v2 e vi e vi e

=0 =0 vi1 vi2 + v i 2 + e e e vi1 vi2 = v i 2 + d +e e e =d

Explicitando las derivadas parciales con respecto a d se tiene

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

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 = v i 1 + d +e d d = v2 + d

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

(4.26)

Es importante observar que estas f ormulas son an alogas a las de la divisi on sint etica doble, que permiten obtener, a partir de los valores ui , los valores vi . La derivar se tiene: v1 d v2 d v3 d vi d =0 = w1 = w2 = w i 1

Explicitando las derivadas parciales con respecto a e se tiene

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

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 = w i 2

Entonces

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

= w n 1 = w n 2 = wn = w n 1

CAP ITULO 4.

DE ECUACIONES NO LINEALES SOLUCION

166

Es decir, la matriz jacobiana es simplemente J= w n 1 w n 2 . w n w n 1 (4.27)

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

DE ECUACIONES NO LINEALES SOLUCION


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

DE ECUACIONES NO LINEALES SOLUCION


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

DE ECUACIONES NO LINEALES SOLUCION

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 z de p,

q (x) = 4 x3 + 9.0509449 x2 + 8.4283219 x + 4.6032625 . Al aplicar el m etodo de Bairstow a q (x) con d0 = 1 y e0 = 1 se obtiene: d = 0.9339455 e = 0.8660624

r2 = 0.5063681 0.4219784 i es ra z de p,

x2 + 0.9339455 x + 0.8660624 divide a p , r4 = 0.4669728 0.8049837 i es ra z de p, r3 = 0.4669728 + 0.8049837 i es ra z de p,

q (x) = 4 x + 5.3151629 . La u ltima ra z es r5 = 1.3287907 .

Ejercicios
Trate de resolver las ecuaciones propuestas, utilice m etodos diferentes, compare 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.

DE ECUACIONES NO LINEALES SOLUCION

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 1 x1 x2 + 3x1 4x2 + 10 = 0, 4.9 x1 + x2 + 2x1 x2 31 = 0,

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

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

Cap tulo 5

Interpolaci on y aproximaci on
En muchas situaciones de la vida real se tiene una tabla de valores correspondientes a dos magnitudes relacionadas; por ejemplo, A no 1930 1940 1950 1960 1970 1980 1985 1990 1995 Poblaci on 3425 5243 10538 19123 38765 82468 91963 103646 123425

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

, sencilla y f y se desea obtener una funci on f acil de calcular, aproximaci on de f , o en otros casos, dado un x , se desea obtener f ( x) valor aproximado de f ( x). 171

CAP ITULO 5. y

Y APROXIMACION INTERPOLACION

172

x Figura 5.1: Puntos o datos iniciales

Figura 5.2: Interpolaci on Los valores f (xi ) pueden corresponder a: Datos o medidas obtenidos experimentalmente. Valores de una funci on f que se conoce pero tiene una expresi on anal tica muy complicada o de evaluaci on dif cil o lenta. Una funci on de la que no se conoce una expresi on anal tica, pero se puede conocer f (x) como soluci on de una ecuaci on funcional (por ejemplo, una ecuaci on diferencial) o como resultado de un proceso num erico. pase exactamente por los puntos conocidos, Cuando se desea que la funci on f (xi ) = f (xi ) i, f se habla de interpolaci on o de m etodos de colocaci on, gura 5.2. En los dem as casos se habla de aproximaci on, gura 5.3. En este cap tulo se ver a aproximaci on por m nimos cuadrados.

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

173

Figura 5.3: Aproximaci on

5.1.
5.1.1.

Interpolaci on
En Scilab

Cuando hay m puntos (x1 , y1 ), (x2 , y2 ), ..., (xm , ym ) se desea obtener la funci on interpolante, una funci on que pase por esos puntos, con el objetivo de evaluarla en otros valores x intermedios. La funci on interpln permite hacer interpolaci on lineal (la funci on interpolante es continua y af n por trozos). Tiene dos par ametros, el primero es 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 par ametro es un vector donde est an los valores x en los que se desea evaluar la funci on interpolante (af n por trozos). 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 gr aca resultante es semejante a la de la gura 5.4.

CAP ITULO 5. 3 2 1

Y APROXIMACION INTERPOLACION

174

Figura 5.4: Interpolaci on lineal con interpln

Tambi en se puede hacer interpolaci on utilizando funciones spline o trazadores c ubicos. Para hacer esto en Scilab, se requieren dos pasos. En el primero, 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 funci on spline interpolante. En el segundo paso, mediante interp, se eval ua la funci on interpolante en los valores dados por un vector, primer par ametro de interp. 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 gr aca resultante es semejante a la de la gura 5.5.

5.1.2.

Caso general

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

CAP ITULO 5. 3 2 1

Y APROXIMACION INTERPOLACION

175

Figura 5.5: Interpolaci on con funciones spline

Supongamos que estas funciones son 1 , 2 , ..., n . Entonces, (x) = a1 1 (x) + a2 2 (x) + + an n (x). f basta conocer Como las funciones de la base son conocidas, para conocer f 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 combinaci on lineal de las otras. Por ejemplo, las funciones 1 (x) = 4, 2 (x) = 6x2 20 y 3 (x) = 2x2 no son linealmente independientes. (xi ) = yi , para Los escalares a1 , a2 , ..., an se escogen de tal manera que f i = 1, 2, ..., n. Entonces a 1 1 ( x 1 ) + a 2 2 ( x 1 ) + + a n n ( x 1 ) = y1 a 1 1 ( x 2 ) + a 2 2 ( x 2 ) + + a n n ( x 2 ) = y2 . . .

a 1 1 ( x n ) + a 2 2 ( x n ) + + a n n ( x n ) = yn Las m igualdades anteriores se pueden escribir matricialmente: 1 ( x 1 ) 2 ( x 1 ) n ( x 1 ) a1 y1 1 ( x 2 ) 2 ( x 2 ) n ( x 2 ) a 2 y2 . = . . . . . . . . 1 ( x n ) 2 ( x n ) n ( x n ) an yn De manera compacta se tiene a = y. (5.1)

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

176

La matriz es una matriz cuadrada n n, a es un vector columna n 1, y es un vector columna n 1. Son conocidos la matriz y el vector columna y . El vector columna a es el vector de inc ognitas. Como las funciones de la base son linealmente independientes, entonces las columnas de son linealmente independientes. En consecuencia, es invertible y (5.1) se puede resolver (num ericamente). 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 funci on de interpolaci on. 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 (x) = 4 3x + 2x2 , a = 3 , f 2

La interpolaci on polinomial (las funciones utilizadas son 1, x, x2 , ...) para problemas peque nos con matrices sin problemas, se puede realizar en Scilab, mediante ordenes semejantes a: 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.

Y APROXIMACION INTERPOLACION

177

xx = (x(1):0.05:x(n)); yp = horner(p, xx); Hay ejemplos cl asicos de los problemas que se pueden presentar con valores relativamente peque nos, n = 20. 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 funci on de interpolaci on. 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 tambi en pasa por los puntos dados.

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

5.2.

Interpolaci on polinomial de Lagrange

que pasa por los puntos es En la interpolaci on de Lagrange la funci on f un polinomio, pero el polinomio se calcula utilizando polinomios de Lagrange, sin resolver expl citamente un sistema de ecuaciones. Te oricamente, el polinomio obtenido por interpolaci on polinomial (soluci on de un sistema de ecuaciones) es exactamente el mismo obtenido por interpolaci on de Lagrange. Dados n puntos ( x 1 , y1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) , 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.

Y APROXIMACION INTERPOLACION

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 inc ognitas (los coecientes del polinomio). Este sistema lineal se puede resolver y se tendr a la soluci on. Una manera m as adecuada de encontrar p es por medio 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.

Y APROXIMACION INTERPOLACION

179

La construcci on de los polinomios de Lagrange, para los datos del u ltimo 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, n 1. El denominador es el producto de n 1 n umeros, ninguno de los cuales es nulo, luego el denominador es un n umero no nulo. En resumen, Lk es un polinomio de grado n 1. Reemplazando se verica que Lk se anula en todos los xi , salvo en xk , Lk (xi ) = 0 si i = k, 1 si i = k. (5.4)

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

p( x ) =
k=1

yk L k ( x ) .

(5.5)

Por construcci on p es un polinomio en Pn1 . Reemplazando, f acilmente se 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.

Y APROXIMACION INTERPOLACION 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 pr actica se usa la interpolaci on de Lagrange de grado 2 o 3, m aximo 4. Si hay muchos puntos, estos se utilizan por grupos de 3 o 4, m aximo 5 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 interpolaci on es 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 ordenes semejantes a 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

Y APROXIMACION INTERPOLACION

181

Figura 5.6: Un ejemplo de interpolaci on polinomial

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 construcci on, r Pn , adem as r(xi ) = 0, i = 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 (f tiene derivadas intervalo que contiene a x1 , x2 , ..., xn , t; f CI t 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 a dado por: E (t) = f (t) pn1 (t) = (t x1 )(t x2 ) (t xn )f (n) ( )/n! para alg u n It . (5.6)

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

182

Demostraci on. Si t = xi para alg un i, entonces se tiene trivialmente el 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 CI t

G( x i ) = E ( x i )

(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
n) (n ) E (n ) ( x ) = f (n ) ( x ) p( (x), n (x) = f

(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 informaci on necesaria para aplicar (5.6). Algunas veces se tiene informaci on necesaria para obtener una cota superior del valor absoluto del error. | E ( t) | |(t)| max |f (n) (z )| n ! z I t (5.7)

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

183

Ejemplo 5.5. Considere los valores de la funci on seno en los puntos 5, 5.2, 5.5 y 6. Sea p el polinomio de interpolaci on. Obtenga una cota para error 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 soluci on de un sistema de 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


z I t (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 c alculos para la interpolaci on polin omica. En la interpolaci on de Lagrange se construye expl 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 f acilmente el valor p(x) para cualquier x. Supongamos de nuevo que tenemos los mismos n puntos, ( x 1 , f1 ) , ( x 2 , f2 ) , . . . , ( x n 1 , fn 1 ) , ( x n , fn ) . Con ellos se obtiene p = pn1 Pn1 . Si se consideran u nicamente los primeros n 1 puntos ( x 1 , f1 ) , ( x 2 , f2 ) , . . . , ( x n 1 , fn 1 ) ,

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

184

se puede construir pn2 Pn2 . Sea c(x) la correcci on que permite pasar de pn2 a pn1 , pn 1 ( x ) = pn 2 ( x ) + c ( x ) , es decir, c(x) = pn1 (x) pn2 (x).

Por construcci on, c es un polinomio en Pn1 . Adem as, c(xi ) = pn1 (xi ) pn2 (xi ) = 0, i = 1, 2, ..., n 1. La f ormula anterior dice que c tiene n 1 ra ces diferentes x1 , x2 , ..., xn1 , entonces c(x) = n1 (x x1 )(x x2 ) (x xn1 ). f ( x n ) = pn 1 ( x n ) = pn 2 ( x n ) + c ( x n ) ,

f (xn ) = pn2 (xn ) + n1 (xn x1 )(xn x2 )(xn x3 ) (xn xn1 ).

De la u ltima 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 ( x n ) pn 2 ( x n ) (xn x1 )(xn x2 ) (xn xn1 )

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

Esta f ormula es la que se utiliza para calcular pn1 (x), una vez que se sepa 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

Y APROXIMACION INTERPOLACION

185

p0 ( x ) = f ( x 1 ) . Por denici on, consistente con lo visto antes, f [x1 ] := f (x1 ), que se generaliza a f [xi ] := f (xi ), i. Las dem as diferencias divididas se deducen de (5.8), 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 ] = Deducci on de f [x1 , x2 , x3 ] : 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 ( x 3 ) p1 ( x 3 ) , f [ x1 , x2 , x3 ] = (x3 x1 )(x3 x2 ) = ... f1 ( x 3 x 2 ) f2 ( x 3 x 1 ) + f3 ( x 2 x 1 ) f [ x1 , x2 , x3 ] = (x3 x2 )(x3 x1 )(x2 x1 ) f [xi+1 ] f [xi ] xi+1 xi p1 ( x 2 ) po ( x 2 ) , 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,

Y APROXIMACION INTERPOLACION

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 ( x 3 x 2 ) f2 ( x 3 x 1 ) + f3 ( x 2 x 1 ) = (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 generalizaci on para diferencias divididas de orden j es: f [xi , xi+1 , ..., xi+j ] = f [xi+1 , ..., xi+j ] f [xi , ..., xi+j 1 ] x i+ j x i (5.13)

Las f ormulas anteriores dan sentido al nombre diferencias divididas. Cuando no se preste a confusi on, se puede utilizar la siguiente notaci on: 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 ] D 2 f [ xi ] = , xi+2 xi D j f [ xi ] = Dj 1 f [xi+1 ] Dj 1 f [xi ] x i+ j x i (5.15) (5.16) (5.17) (5.14)

(5.18)

5.3.1.

Tabla de diferencias divididas

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

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

Y APROXIMACION INTERPOLACION 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, est an las diferencias divididas hasta de orden 3. Claro est a, se hubiera podido calcular tambi en la diferencia dividida de orden 4, que estar a colocada en una columna adicional a la derecha. La elaboraci on de la tabla es relativamente sencilla. Las dos primeras columnas corresponden a los datos. La tercera columna, la de las diferencias divididas de primer orden, f [xi , xi+1 ], se obtiene mediante la resta de dos elementos consecutivos de la columna anterior dividida por la resta de los dos elementos correspondientes de la primera columna. Por ejemplo, f [x3 , x4 ] = (f4 f3 )/(x4 x3 ). Obs ervese que este valor se coloca en medio de la la de f3 y de la la de f4 . Para el c alculo de una diferencia dividida de segundo orden, cuarta columna, 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 c alculo de una diferencia dividida de tercer orden, quinta columna, 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.

Y APROXIMACION INTERPOLACION 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 D 2 f [ xi ] D 3 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 D 0 f [ xi ] = f (xi ) n-para i para j = 1, ..., m para i = 1, ..., n j calcular Dj f [xi ] seg un (5.18) 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 ordenes semejantes a: x = x(:) y = y(:) n = size(x,1) DD = zeros(n,m+1);

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

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 alg un m todos los valores f [xk , xk+1 , ..., xk+m ] son iguales (o aproximadamente iguales), entonces f es (aproximadamente) un polinomio de grado m. Si para alg un r todos los valores f [xk , xk+1 , ..., xk+r ] son nulos (o aproximadamente nulos), entonces f es (aproximadamente) un polinomio de grado r 1.

5.3.2.

C alculo del valor interpolado

La f ormula (5.8) se puede reescribir a partir de un punto xk , pues no siempre 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 an aloga, queda en funci on de pm2 (x) y as sucesivamente se obtiene:
m

pm ( x ) =

i=0

El proceso para el c alculo es el siguiente:

D i f [ xk ]

i 1

j =0

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

Y APROXIMACION INTERPOLACION

190

Se observa que para calcular pj (x) hay multiplicaciones que ya se hicieron para obtener pj 1 (x); entonces, no es necesario repetirlas sino organizar el proceso de manera m as eciente. 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 ) + D 1 f [ x k ] 1 p2 ( x ) = p1 ( x ) + D 2 f [ x k ] 2 p3 ( x ) = p2 ( x ) + D 3 f [ x k ] 3 p4 ( x ) = p3 ( x ) + D 4 f [ x k ] 4

Unicamente queda por precisar la escogencia del punto inicial o de referencia xk . Si se desea evaluar pm ( x), cu al debe ser xk ? Recordemos que se supone que los puntos x1 , x2 , ..., xn est an ordenados y que m, orden del polinomio de interpolaci on, es menor o igual que n 1. Obviamente, aunque no es absolutamente indispensable, tambi en se supone que x / {x1 , x2 , ..., xn }. 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 extrapolaci on y se debe escoger xk = x1 si x < x1 . En el caso opuesto, x > xn , se toma x k = x n m . En los dem as casos, se desea que x est e lo m as cerca posible del intervalo [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 interpolaci on cuadr atica y por interpolaci on c ubica una aproximaci on de f (1.69). El primer paso consiste en determinar el xk . Para ello u nicamente se tienen en cuenta los valores xi . xi 0 .5 1 2 3 4 Para el caso de la interpolaci on cuadr atica, una simple inspecci on visual determina que hay dos posibilidades para xk . La primera es xk = 0.5, intervalo [0.5, 2]. La segunda es xk = 1, intervalo [1, 3]. Cu al es mejor?

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

191

Para medir la cercan a se puede usar la distancia de x al promedio de los 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 x i + x i+ m , 2 xi + xi+1 + xi+2 + + xi+m vi = , m+1 |x uk | = min{|x ui | : x [xi , xi+m ]}, ui =
i

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

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


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 utilizaci on de vi que, aunque requiere m as operaciones, tiene en cuenta todos los xj pertenecientes a [xi , xi+m ]. Los resultados num ericos para la interpolaci on cuadr atica dan: xi 0 .5 1 2 3 4 ui |x ui | 0.44 0.31 vi |x vi | 0.5233 0.3100

1.25 2.00

1.1667 2.0000

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

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

192

Una vez escogido xk = 1 para obtener la aproximaci on cuadr atica de f (1.69), los c alculos dan: 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 interpolaci on c ubica, xk = 0.5: 0 = 1, 1 = 1(1.69 0.5) = 1.19, p0 (x) = 0.7071, p1 (x) = 0.7071+0.5858(1.19) p1 (x) = 1.404202 2 = 1.19(1.69 1) = 0.8211, p2 (x) = 1.404202 0.1144(0.8211) p2 (x) = 1.310268 3 = 0.8211(1.69 2) =0.254541, p3 (x) = 1.310268+0.0265(0.254541) p3 (x) = 1.303523.

El esquema del algoritmo para calcular pm ( x), a partir de la tabla de diferencia divididas, es el siguiente: determinar k px = f (xk ) gi = 1.0 para j = 1, ..., m gi = gi ( x x k +j 1 ) 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 ordenes semejantes a: n = length(x); if t <= x(1) k = 1 else if t >= x(n) k = n-m; else

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

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 o la tabla de diferencias divididas DD y se conoce k , 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 ( x), con m < n 1, es u til cuando se va a evaluar una aproximaci on de f en pocos puntos, sucientemente separados entre s . Cuando hay muchos valores x para obtener una aproximaci on de f , puede suceder que dos de los x sean cercanos pero al obtener el mejor xk resulten dos xk diferentes con dos aproximaciones bastante diferentes, cuando se esperaban dos aproximaciones parecidas. En la secci on de splines hay un ejemplo detallado.

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

194

5.4.

Diferencias nitas

Cuando los puntos (x1 , f (x1 )), (x2 , f (x2 )), (x3 , f (x3 )), ..., (xn , f (xn )), est an 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+ k j , j

(5.28)

fi+ k =
j =0

k j fi . j

(5.29)

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

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

195

5.4.1.

Tabla de diferencias nitas

La tabla de diferencias nitas tiene una estructura an aloga a la tabla de diferencias divididas. Se usa para ejemplos peque nos hechos a mano. 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 elaboraci on de la tabla es muy sencilla. Las dos primeras columnas corresponden a los datos. A partir de la tercera columna, para calcular cada elemento se hace la resta de dos elementos consecutivos de la columna anterior. Por ejemplo, f3 = f4 f3 . Obs ervese que este valor se coloca en 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.

Y APROXIMACION INTERPOLACION

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 ( x i ) n-para i para j = 1, ..., m para i = 1, ..., n j j fi = j 1 fi+1 j 1 fi n-para i n-para j

5.4.2.

C alculo del valor interpolado

Teniendo en cuenta la relaci on entre diferencias divididas y nitas (5.30), la igualdad (5.20) se puede escribir m i 1 i fk pm ( x ) = ( x x k +j ) . i! hi
i=0 j =0 1 El valor i! se puede escribir i as, sea s = (x xk )/h, es j =0 (j + 1). Adem decir, x = xk + sh. Entonces, x xk+j = xk + sh xk jh = (s j )h. i 1 m i fk (s j )h pm ( x ) = i! hi j =0 i=0 m i f i 1 k = (s j ) i! i=0 m j =0

=
i=0

i fk

i 1

j =0

sj j+1

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

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

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 u ltima expresi on sirve para cualquier valor real a y cualquier entero no a = 1. Entonces, negativo b, con la convenci on de que 0
i 1 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 c alculo de manera recurrente 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 est an igualmente espaciados = 1, = = = = s 0 s 1 s 2 s 3 s s1 2 s2 3 s3 4

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

198

los valores, ui y vi coinciden. x i + x i+ 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 c alculos es: 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.

Y APROXIMACION INTERPOLACION

199

0 0 1 2 3 4 5

Figura 5.7: Puntos o datos iniciales

5.5.

Trazadores c ubicos, interpolaci on polinomial 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 m etodo presenta un gran 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). Despu es de algunos c alculos se obtiene 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 tambi en se presenta una discontinuidad. 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.

Y APROXIMACION INTERPOLACION

200

0 0 1 2 3 4 5

Figura 5.8: Interpolaci on cuadr atica por trozos no continua

0 0 1 2 3 4 5

Figura 5.9: Interpolaci on cuadr atica por trozos continua

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

201

Obviamente ya no hay discontinuidades pero la gr aca no es suave, es decir, la funci on interpolante no es diferenciable. Los trazadores c ubicos (splines c ubicos) remedian este inconveniente. En cada intervalo [xi , xi+1 ] se utiliza un polinomio c ubico y los coecientes 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 c ubico se dene as : 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 c ubico. 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. Adem as, es necesario tratar algunos detalles adicionales en los extremos de los intervalos. Entonces, S (xi ) = yi , i = 1, ..., n,
Si (xi+1 ) = Si +1 (xi+1 ), i = 1, ..., n 2,

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

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

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

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

202

condiciones anteriores se convierten en: Si (xi ) = di = yi


2 Sn1 (xn ) = an1 h3 n1 + bn1 hn1 + cn1 hn1 + dn1 = yn 2 ai h3 i + bi hi + ci hi + di = di+1

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

3ai h2 i + 2bi hi + ci = ci+1

6ai hi + 2bi = 2bi+1 i = 1, ..., n 2. Sea dn := yn una variable adicional. Esta variable se utilizar au nicamente en las f ormulas intermedias, pero no aparece en las f ormulas nales.

i = 1, ..., n 2,

ai h3 i

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

= 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 i + ci hi + di = di+1 3 h2 i (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: c i 1 = 1 hi1 ( d i d i 1 ) 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.

Y APROXIMACION INTERPOLACION

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 ( d i d i 1 ) (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 t erminos independientes, se tiene: hi1 bi 1 + 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 v alida para i = 1, ..., n 2. Es decir, hay n 2 ecuaciones con n inc ognitas. El sistema se completa seg un las condiciones 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, Sn 1 (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 ), Sn 1 ( x n ) = f ( x n ) .

(5.46)

Al explicitar las condiciones de frontera libre se tiene:


Sn 1 (x) = 6an1 (x xn1 ) + 2bn1 S1 (x1 ) = 2b1 = 0 Sn 1 ( x n ) S1 (x) = 6a1 (x x1 ) + 2b1

(5.47) (5.48)

= 3an1 hn1 + bn1 = 0.

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

204

Adem as del resultado anterior (b1 = 0), se puede introducir una variable adicional bn = 0. Esto permite que la ecuaci on (5.44) se pueda aplicar para i = n 1. Recu erdese que ya se introdujo dn = yn y que para todo i se tiene di = yi . Entonces se tiene un sistema de n ecuaciones con n inc ognitas, escrito de la forma Ab = , (5.49) donde 1 0 0 0 h1 2(h1 + h2 ) h2 0 0 h 2( h + h ) h 2 2 3 3 0 0 h 2( h + h ) h 3 3 4 4 A= 0 0 hn2 2(hn2 + hn1 ) hn1 0 0 0 1 b1 b2 b3 b= , . . . bn 1 bn 0 3 3 ( y y ) + ( y + y ) 1 2 2 3 h1 h2 3 3 ( y 2 y 3 ) + ( y3 + y4 ) h h 2 3 = . . . . 3 3 ( yn 2 yn 1 ) + ( yn 1 + y n ) h hn1 n 2 0

El sistema (5.49) tiene dos caracter sticas importantes: es tridiagonal, lo cual facilita su soluci on; la matriz A es de diagonal estrictamente dominante, lo cual garantiza que A es invertible y que la soluci on existe y es u nica. 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.

Y APROXIMACION INTERPOLACION

205

Como bn existe y vale 0, la ecuaci on (5.38) se puede aplicar a un para i = n 1. bi+1 bi ai = , i = 1, ..., n 1. (5.51) 3hi Obs ervese que para i = n 1, la igualdad an1 = (0 bn1 )/(3hn1 ) coincide con la segunda condici on de frontera (5.48). El orden de aplicaci on de las f ormulas es el siguiente: di = yi , i = 1, ..., n 1. Obtener b1 , b1 , ..., bn resolviendo (5.49). En particular b1 = 0 y, de ac a en adelante, no se considera bn = 0. Para i = 1, ..., n 1 calcular ci seg un (5.50). Para i = 1, ..., n 1 calcular ai seg un (5.51). Ejemplo 5.10. Construir el trazador c ubico para los puntos (1, 2), (2, 2), (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 (tambi en obvio). El c alculo de los otros 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.

Y APROXIMACION INTERPOLACION

206

0 0 1 2 3 4 5 Figura 5.10: Interpolaci on con trazadores c ubicos o splines 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.

Aproximaci on por m nimos cuadrados

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

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

207

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

a 1 1 ( x 3 ) + a 2 2 ( x 3 ) + + a n n ( x 3 ) y3 . . . Las m igualdades (aproximadas) anteriores matricial: 1 ( x 1 ) 2 ( x 1 ) n ( x 1 ) 1 ( x 2 ) 2 ( x 2 ) n ( x 2 ) 1 ( x 3 ) 2 ( x 3 ) n ( x 3 ) . . . 1 ( x m ) 2 ( x m ) n ( x m ) a y.

a 1 1 ( x m ) + a 2 2 ( x m ) + + a n n ( x m ) 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 inc ognitas. 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.

Y APROXIMACION INTERPOLACION

208

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

min

i=1

es decir, min

j =1

a j j ( x i ) yi .
2

m i=1

(xi ) yi f

, combinaci Esto signica que se est a buscando una funci on f on lineal de las funciones de la base, tal que minimiza la suma de los cuadrados de las (xi )) y (xi , yi ). distancias entre los puntos (xi , f Ejemplo 5.11. Dadas las funciones 1 (x) = 1, 2 (x) = x, 3 (x) = x2 , que aproxima por m encontrar la funci on f nimos cuadrados la funci on dada 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 a buscando aproximar por m nimos cuadrados por medio de un par abola. El sistema 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 soluci on es: 0.56 a = 0.04 , 0.10 (x1 ) f (x2 ) f f (x3 ) = a = (x4 ) f f (x5 ) (x) = 0.56 0.04x + 0.1x2 . f 0.56 0.62 0.725 0.88 1.34 0.55 0.65 0.725 0.85 1.35

y=

CAP ITULO 5.

Y APROXIMACION INTERPOLACION

209

Ejercicios
5.1 Halle, resolviendo el sistema de ecuaciones, el polinomio de interpolaci on que pasa por los puntos (1, 5), (2, 4), (4, 4). 5.2 Halle, por medio de los polinomios de Lagrange, el polinomio de interpolaci on que pasa por los puntos del ejercicio anterior. 5.3 Halle el polinomio de interpolaci on que pasa por los puntos (1, 5), (1, 5), (2, 2), (4, 40). 5.4 Halle el polinomio de interpolaci on que pasa por los puntos (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.

Y APROXIMACION INTERPOLACION

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 aproximaci on por m nimos cuadrados. 5.9 Considere los mismos puntos del ejercicio anterior. Obtenga la par abola de aproximaci on por m nimos cuadrados. 5.10 Considere los mismos puntos de los dos ejercicios anteriores. Use otra base y obtenga la correspondiente funci on de aproximaci on por m nimos cuadrados.

Cap tulo 6

Integraci on y diferenciaci on
6.1. Integraci on num erica

Esta t ecnica sirve para calcular el valor num erico de una integral denida, es decir, parar obtener el valor
b

I=
a

f (x)dx.

En la mayor a de los casos no se puede calcular el valor exacto I ; simplemente se calcula I aproximaci on de I . De todas maneras primero se debe tratar de hallar la antiderivada. Cuando esto sea imposible o muy dif cil, entonces se recurre a la integraci on num erica. Por ejemplo, calcular una aproximaci on de
0.5 0.1

ex dx.

En este cap tulo hay ejemplos de integraci on num erica con funciones cuya antiderivada es muy f acil de obtener y para los que no se debe utilizar la integraci on num erica; se usan solamente para comparar el resultado aproximado con el valor exacto.

211

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

212 y = f (x)

a Figura 6.1: Integral denida

6.2.

En Scilab

Para obtener una aproximaci on del valor de una integral denida, por ejemplo,
0.5 0.1

ex dx

se utiliza intg . Para eso es necesario denir en Scilab la funci on que se va a integrar. Puede ser, directamente en el ambiente Scilab: deff([y] = f53(x), y = exp(-x*x)) I = intg(0.1, 0.5, f53) Tambi en se puede denir una funci on en un archivo .sci function fx = f57(x) fx = exp(-x*x) endfunction y despu es de cargarla, dar la orden I = intg(0.1, 0.5, f57) Tambi en se puede utilizar la funci on integrate : I = integrate(exp(-x*x), x, 0.1, 0.5)

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

213

Aunque Scilab es muy bueno, no es perfecto. La utilizaci on de intg o integrate no funciona bien (versi on 5.1) para
2

sen(x) dx .
0

Algunas veces no se conoce una expresi on de la funci on f , pero se conoce 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 a ordenada de manera creciente de acuerdo a los xi , o sea, x1 < x2 < < xn . Para obtener el valor aproximado de la integral, entre x1 y xn , de la funci on f (representada por los valores (xi , yi )), es necesario tener dos vectores con los valor xi y yi , y utilizar la funci on inttrap , que utiliza la f ormula del 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 par ametros x , y , se puede utilizar la funci on intsplin que utiliza trazadores c ubicos (splines ). 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.

F ormula del trapecio

La f ormula del trapecio, como tambi en la f ormula de Simpson, hace parte de las f ormulas de Newton-Cotes. Sean n + 1 valores igualmente espaciados 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 adem as que n es un m ultix plo de m, n = km. La integral x0n f (x)dx se puede separar en intervalos

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

214

x0 x1 x2 xm x2m x n m a Figura 6.2: Divisi on en subintervalos m as peque nos:


xn xm x 2m

xn b

xn

f (x)dx =
x0 x0

f (x)dx +
xm

f (x)dx + +

f (x)dx.
x n m

En el intervalo [x0 , xm ] se conocen los puntos (x0 , y0 ), (x1 , y1 ), ..., (xm , ym ) y se puede construir el polinomio de interpolaci on de Lagrange pm (x). 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 f ormula del trapecio. Su deducci on es mucho m as 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 , p 1 ( x ) = y0 h h y1 y0 p 1 ( x ) = y0 + x . h p 1 ( x ) = y0

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

215

y0

y1

x0

x1

Figura 6.3: F ormula del trapecio 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 f ormula (6.1) o de la gr aca se deduce naturalmente el nombre de f ormula del trapecio. Ejemplo 6.1.
0.2 0

1 1 ex dx 0.2( e0 + e0.2 ) = 0.22214028 . 2 2

Aplicando la f ormula del trapecio a cada uno de los intervalos [xi1 , xi ] se tiene: x1 y1 y0 + ), f (x)dx h( 2 2 x0 x2 y1 y2 f (x)dx h( + ), 2 2 x1 . . . . . . xn yn yn 1 + ). f (x)dx h( 2 2 x n 1

CAP ITULO 6.
xn

Y DIFERENCIACION INTEGRACION

216

y1 y1 y2 yn 1 yn y0 + + + + + ), 2 2 2 2 2 2 x0 xn yn y0 + y 1 + y 2 + + yn 2 + y n 1 + ), f (x)dx h( 2 2 x0 f (x)dx h(
xn x0

(6.2)

f (x)dx h(

y0 + 2

n 1 i=1

yi +

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 f ormula del trapecio es el error proveniente de la f ormula (6.1). loc , eloc = Iloc I
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 f ormula del error para la interpolaci on polin omica 5.6,


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 alg un c en [a, b]. 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.

Y DIFERENCIACION INTEGRACION

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 (z ) f = h3 , z [ x0 , x1 ] . 12

eloc

(6.3)

La f ormula anterior, como muchas de las f ormulas de error, sirve principalmente para obtener cotas del error cometido. |eloc | h3 M, 12 M = max{|f (z )| : z [x0 , x1 ]}. (6.4)

En algunos casos, la f ormula del error permite anar un poco m as. Si f (x) > + eloc , entonces la 0 (f estrictamente convexa) en [x0 , x1 ] y como I = I f ormula del trapecio da un valor aproximado pero superior al exacto. En el mismo ejemplo, f (x) var a en el intervalo [1, 1.22140276] cuando 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 m aximo error que se puede cometer, en valor absoluto, es (0.2)3 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 aproximaci on de la integral sobre todo el intervalo [x0 , xn ], o sea, el error en la f ormula 6.2,
xn

eglob =
x0 n

f (x)dx h( (

y0 yn + y1 + y2 + + yn 2 + yn 1 + ) 2 2

=
i=1

f (zi ) h3 ) , zi [ x i 1 , x i ] 12
n

h3 12

i=1

f (zi ) , zi [xi1 , xi ]

CAP ITULO 6. Sean

Y DIFERENCIACION INTEGRACION

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

Si f C[2 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.

F ormula de Simpson
x2 x0 x2

Es la f ormula de Newton-Cotes para m = 2, f (x)dx p2 (x)dx.


x0

El polinomio de interpolaci on p2 (x) se construye a partir de los puntos (x0 , y0 ), (x1 , y1 ), (x2 , y2 ). Para facilitar la deducci on de la f ormula, supongamos que p2 es el polinomio de interpolaci on que pasa por los puntos (0, y0 ), (h, y1 ), (2h, y2 ). Entonces p 2 ( 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

Y DIFERENCIACION INTEGRACION 4h2 1 8h3 ( y 2 y + y ) + h (3y0 + 4y1 y2 ) 0 1 2 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 f ormula anterior a cada uno de los 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 j =1

(6.7)

y2j 1 + 2

k 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 deducci on del error local, consideremos la integral entre h 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.

Y DIFERENCIACION INTEGRACION
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 2 h2 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. Adem as, como f C 4 , entonces f C 1 . Por el teorema del 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.

Y DIFERENCIACION INTEGRACION

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.

Y DIFERENCIACION INTEGRACION

222

Volviendo al intervalo [x0 , x2 ], f (4) (z ) , z [ x0 , x2 ] . (6.8) 90 La deducci on del error global se hace de manera semejante al error global en la f ormula del trapecio. Sean n = 2k , M1 = min{f (4) (x) : x [a, b]}, M2 = max{f (4) (x) : x [a, b]}. eloc = h5
b

eglob =
a k

f (x) dx h5
k

h ( y0 + 4 3

k j =1

y2j 1 + 2

k 1 j =1

y2j + yn ) ,

=
j =1

f (4) (zj ) , 90

zj [x2j 2 , 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.

Y DIFERENCIACION INTEGRACION

223

La f ormula de Simpson es exacta para polinomios de grado inferior o igual a 3. El error global es del orden de h4 . Pasando de una interpolaci on lineal (f ormula del trapecio) a una interpolaci on cuadr atica (f ormula de Simpson), el error global pasa de O(h2 ) a 4 O(h ), es decir, una mejora notable. Se puede ver que al utilizar interpolaci on c ubica se obtiene
x3

f (x)dx =
x0

3 h (3y0 + 9y1 + 9y2 + 3y3 ) h5 f (4) (z ) , 8 80

z [ x0 , x3 ] ,

llamada segunda f ormula de Simpson. Entonces el error local es O(h5 ) y el error global es O(h4 ). La f ormula anterior es exacta para polinomios de grado inferior o igual a 3. En resumen, la interpolaci on c ubica no mejora la calidad de la aproximaci on num erica, luego es preferible utilizar la f ormula (6.7), m as sencilla y de calidad semejante. Sin embargo, cuando se tiene una tabla ja con un n umero impar de subintervalos (n impar, n umero par de puntos), se puede aplicar la (primera) f ormula de Simpson sobre el intervalo [x0 , xn3 ] y la segunda f ormula sobre el intervalo [xn3 , xn ].

6.5.

Otras f ormulas de Newton-Cotes

Las f ormulas de Newton-Cotes se pueden clasicar en abiertas y cerradas. Las f ormulas del trapecio y de Simpson son casos particulares de las f ormulas cerradas. En ellas se aproxima la integral en el intervalo [x0 , xm ] usando el polinomio de interpolaci on, de grado menor o igual a m, construido a 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.

Y DIFERENCIACION INTEGRACION

224

La siguiente tabla muestra las m as importantes. m 1 2 3 4 h ( y0 + y 1 ) 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.

F ormulas de Newton-Cotes abiertas

En estas f ormulas el polinomio de interpolaci on se calcula sin utilizar los extremos del intervalo de integraci on,
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.

Y DIFERENCIACION INTEGRACION

225

El valor exacto, con 8 cifras decimales, es 1.22554093, entonces el error es 0.00014935 . En general, las f ormulas cerradas son m as precisas que las abiertas, entonces, siempre que se pueda, es preferible utilizar las f ormulas cerradas. Las f ormulas abiertas se usan cuando no se conoce el valor de la funci on f en los extremos del intervalo de integraci on; por ejemplo, en la soluci on num erica de algunas ecuaciones diferenciales ordinarias.

6.6.

Cuadratura adaptativa
b

Sea I = a f (x)dx e In la aproximaci on de I por un m etodo jo de NewtonCotes (trapecio, Simpson,...) utilizando n subintervalos. La f ormula que relaciona I , In y el error global se puede expresar as : I = In + F (b a)hp f (q) ( ), para alg un [a, b], donde F , p y q dependen del m etodo escogido; depende del m etodo, de la funci on f , de n y del intervalo. Entonces

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.

Y DIFERENCIACION INTEGRACION

226

I In + 2p G In + en , I I m + G I n + em ,

a) (q ) ( ), e y e son los errores. Se puede despejar G: donde G = F (b n m np 2p f

p+1

em G =

Im In 2p 1 Im In = 3 Im In = 15

(6.10) trapecio Simpson

Con G se obtiene, supuestamente, una mejor aproximaci on de I : I Im + G. (6.11)

Los datos para el proceso iterativo para cuadratura adaptativa son: el m etodo (la f ormula de Newton-Cotes), f , a, b, n0 , , nmax . Se empieza con un n = n0 (debe ser adecuado) y se obtiene In . A partir de ah se empieza a duplicar el n umero de subintervalos. El c alculo de la nueva aproximaci on Im se hace sin repetir evaluaciones de la funci on f , ya que al duplicar el n umero de subintervalos los valores f (xi ) de la etapa anterior hacen parte de los valores f (xj ) de la etapa actual. Se calcula G aproximaci on de em , usando (6.10). Si |G| , entonces se supone que el error es sucientemente peque no y se toma como valor nal Im + G. En caso contrario, se continua duplicando el n umero de subintervalos. De todas est a previsto un m umero m aximo de subintervalos nmax , ya que es posible que no se obtenga una aproximaci on del error sucientemente peque na. Ejemplo 6.5. I=
0

sen(x)dx,

utilizando el m etodo del trapecio (n0 = 1) y el de Simpson, (n0 = 2), = 108

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

227

M etodo del trapecio: 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 . M etodo de Simpson: 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 f ormulas de Newton-Cotes, los valores xi deben estar igualmente espaciados. Esto se presenta con frecuencia cuando se dispone de una

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

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 funci on en valores espec cos. La f ormula de cuadratura de Gauss tiene la forma
1 1 n

f (x) dx

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

w i (

w i ( i ) ,

ba (xi + 1) + a. 2

En la cuadratura de Gauss se desea que la f ormula (6.12) sea exacta para los polinomios de grado menor o igual que m = mn , y se desea que este valor mn sea lo m as grande posible. En particular,
1 n

f (x) dx =
1 i=1

w i f (xi ) ,

si f (x) = 1, x, x2 , ..., xmn .

La anterior igualdad da lugar a mn + 1 ecuaciones con 2n inc ognitas (los wi y los xi ). De donde mn = 2n 1, es decir, la f ormula (6.12) debe ser exacta para polinomios de grado menor o igual a 2n 1.

CAP ITULO 6. Recordemos que

Y DIFERENCIACION INTEGRACION

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 a en los valores xi y en los pesos wi . M as espec 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 =
2 w 1 x2 1 + w 2 x2 = 3 w 1 x3 1 + w 2 x2 =

x2 dx =

2 , 3

x3 dx = 0.

Por suposiciones de simetr a, x1 < 0 < x2 , w1 = w2 . x1 = x2 ,

CAP ITULO 6. Entonces

Y DIFERENCIACION INTEGRACION

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 2 2 w 1 x2 , 1 + w 2 x2 + w 3 x3 = 3 3 3 w 1 x3 1 + w2 x2 + w3 x3 = 0, 2 4 4 , w 1 x4 1 + w 2 x2 + w 3 x3 = 5 5 5 w 1 x5 1 + w2 x2 + w3 x3 = 0. 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,

Y DIFERENCIACION INTEGRACION

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 m as completas se pueden encontrar en [Fro70] o en [AbS74]. Ejemplo 6.6. Calcular una aproximaci on de
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.

Y DIFERENCIACION INTEGRACION
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 f ormula de Simpson, que tambi en utiliza tres evaluaciones de la funci on, se tiene
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 f ormula del error para 6.12 es: en = 22n+1 (n!)4 f (2n) ( ) , (2n + 1)((2n)!)3 1 < < 1 . (6.17)

Para 6.14 el error est a dado por: en = (b a)2n+1 (n!)4 (2n) f ( ) , (2n + 1)((2n)!)3 a < < b. (6.18)

Comparemos el m etodo de Simpson y la f ormula de cuadratura de Gauss 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 funci on. 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 f ormula de Simpson es exacta para polinomios de grado menor o igual a 3, la f ormula de Gauss es exacta hasta para polinomios de grado 5. Sea 0 < h < 1. No s olo h7 < h5 , sino que el coeciente 1/15750 es mucho menor que 1/90. En el ejemplo anterior, h = 0.3, y tanto f (4) como f (6) var an en el intervalo [1.22, 2.23 ]. eSimpson = 2.7 105 f (4) (z ) , eGauss3 = 1.39 108 f (6) ( ) .

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

233

6.7.1.

Polinomios de Legendre

Las f ormulas de cuadratura vistas son las f ormulas de Gauss-Legendre. En ellas est an involucrados los polinomios ortogonales de Legendre. Tambi en hay cuadratura de Gauss-Laguerre, de Gauss-Hermite y de Gauss-Chebyshev, relacionadas con los polinomios de Laguerre, de Hermite y de Chebyshev. Hay varias maneras de denir los polinomios de Legendre; una de ellas es: P0 (x) = 1, Pn (x) = Por ejemplo, P0 (x) = 1, P1 (x) = x, 1 P2 (x) = (3x2 1), 2 1 P3 (x) = (5x3 x), 2 1 P4 (x) = (35x4 30x2 + 3). 8 Tambi en existe una expresi on recursiva: 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 . dx n


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.

Y DIFERENCIACION INTEGRACION

234

Las abscisas de las f ormulas de cuadratura de Gauss-Legendre son exactamente las ra ces de Pn (x). Adem as, wi =
1 Pn (x) 1 dx, Pn (xi ) 1 x xi 1 2 wi = (x ))2 1 x2 (Pn i 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.

Derivaci on num erica

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 n (x) + (x)F (x) + (x)F (x), f ( x i ) = p n (xi ) + (xi )F (xi ) + (xi )F (xi ), f ( x i ) = p n (xi ) + (xi )F (xi ).

Para n = 1 p 1 ( x ) = y0 + ( y1 y 0 ) ( y1 y 0 ) ( x x 0 ) , p 1 (x) = h h (x) = (x x0 )(x x1 ) , (x) = 2x 2x0 h

Entonces f (x0 ) =

( y1 y 0 ) (y1 y0 ) h + (2x0 2x0 h)F (x0 ) = f ( (x0 )), h h 2 (y1 y0 ) h ( y1 y 0 ) + (2x1 2x0 h)F (x1 ) = + f ( (x1 )). f (x1 ) = h h 2

CAP ITULO 6. En general,

Y DIFERENCIACION INTEGRACION

235

f (xi ) =

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

(6.29) (6.30)

El primer t ermino despu es del signo igual corresponde al valor aproximado. El segundo t ermino es el error. Se acostumbra decir que el error es del orden de h. Esto se escribe f (xi ) = (yi+1 yi ) + O(h), h ( yi yi 1 ) 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 p 2 ( x ) = y0 + f0 + , h h h 2 f0 2x 2x0 h 2 f0 p + , 2 (x) = h h2 2 f0 2 f0 p + = 2 (x1 ) = h 2h y2 y0 p 2 (x1 ) = 2h p 2 ( x ) = y0 + s f 0 + (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.

Y DIFERENCIACION INTEGRACION

236

En [YoG72], p agina 357, hay una tabla con varias f ormulas para diferenciaci on num erica. Para la segunda derivada, una f ormula muy empleada es: yi+1 2yi + yi1 h2 (4) f ( ) , [xi1 , xi+1 ], h2 12 y 2 y + y i+1 i i 1 + O(h2 ). f (xi ) = h2 f (xi ) = (6.32)

La deducci on de las f ormulas de derivaci on num erica se hizo a partir de una tabla de valores (xi , yi ), pero para el uso de estas solamente se requiere conocer o poder evaluar f en los puntos necesarios. Por esta raz on, algunas veces las f ormulas aparecen directamente en funci on de h: 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 aproximaci on es mejor que las 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 f ormula (6.35) se puede generalizar a

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

237

1 f f ( x1 , ..., x i 1 , x i + h, x i+1 , ..., x n ) ( x) = xi 2h f ( x1 , ..., x i 1 , x i h, x i+1 , ..., x n ) + O(h2 ) Tambi en se puede escribir de manera m as compacta f ( x + hei ) f ( x hei ) f ( x) = + O(h2 ) xi 2h donde ei = (0, ..., 0,1, 0, ..., 0) Rn . La f ormula (6.36) se puede generalizar a 2f f ( x + hei ) 2f ( x) + f ( x hei ) ( x ) = + O(h2 ) 2 h x2 i (6.38) (6.37)

(6.39)

on de Ejemplo 6.8. Sean f (x1 , x2 ) = ex1 sen(x2 ). Obtenga una aproximaci 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 aproximaci on de la derivada se obtiene por medio de derivative(f, x). Si en un archivo se dene la funci on function y = func246(x) y = sqrt(x) endfunction

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

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 tambi en la segunda derivada: [der, der2] = derivative(func246, 4) Sea f : Rn R, por ejemplo, la denida en la siguiente funci on function y = func245( x ) y = exp(x(1)) * sin(x(2)) endfunction Si se carga en Scilab el archivo donde est a esta funci on, entonces para un vector columna x, la funci on derivative produce un vector la con el gradiente. 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 funci on 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 a esta funci on, entonces para un vector columna x, la funci on derivative produce una matriz m n, la matriz jacobiana.

CAP ITULO 6.

Y DIFERENCIACION INTEGRACION

239

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

Ejercicios
6.1 Calcule

1 0.2

ex d x

utilizando la f ormula del trapecio y de Simpson, variando el n umero de subintervalos. Tambi en por medio de la cuadratura de Gauss variando el n umero puntos. Calcule los errores. Compare. 6.2 Calcule
0 1

e x d x

utilizando la f ormula de Simpson. Utilice seis cifras decimales. Tome los valores n = 2, 4, 8, 16, 32... hasta que no haya variaci on. 6.3 Haga un programa para calcular ejercicio anterior.
b a f (x)d x,

siguiendo el esquema del

6.4 Observe, por ejemplo, que para n = 2 se eval ua la funci on en a, (a + b)/2, b. Para n = 4 se eval ua la funci on en a, a + (b a)/4, (a + b)/2, a + 3(b a)/4, b. Haga el programa eciente para que no eval ue la funci on dos veces en el mismo punto. 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.

Y DIFERENCIACION INTEGRACION

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 aproximaci on de f (0.25), f (0.225), f (0.30). 6.8 Combine integraci on num erica y soluci on de ecuaciones para resolver
x 0

et dt = 0.1.

Cap tulo 7

Ecuaciones diferenciales
Este cap tulo se reere u nicamente a ecuaciones diferenciales ordinarias. Generalmente una ecuaci on diferencial ordinaria de primer orden con condiciones iniciales, EDO1CI, se escribe de la forma y ( x 0 ) = y0 . y = f (x, y ) para a x b, (7.1)

Frecuentemente la condici on inicial est a dada sobre el extremo izquierdo del 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 soluci on, unicidad o estabilidad, no ser an tratados en este texto. El lector deber a remitirse a un libro de ecuaciones diferenciales. Aqu se supondr a que las funciones satisfacen todas las condiciones necesarias (continuidad, diferenciabilidad, condici on de Lipschitz... ) para que la soluci on exista, sea u nica... Como en todos los otros casos de m etodos num ericos, la primera opci on para resolver una EDO1CI es buscar la soluci on anal tica. Si esto no se logra, entonces se busca la soluci on num erica que consiste en encontrar valores 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 est an igualmente espaciados, o sea, 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 aplicar an los m etodos num ericos para ecuaciones diferenciales con soluci on anal tica conocida. Esto se hace simplemente para comparar la soluci on num erica con la soluci on exacta.

7.0.3.

En Scilab

Consideremos la siguiente ecuaci on diferencial: x+y + 4 + cos(x) , x2 + y 2 y (2) = 3. y = Antes de utilizar la funci on ode , es necesario crear en Scilab la funci on f y cargarla. La funci on ode eval ua aproximaciones del valor de y en valores del tercer par ametro, un vector la o columna o un n umero. El resultado es un vector la con las aproximaciones de la soluci on en los valores deseados (tercer par ametro). Despues de denir y cargar function Dy = func158(x, y) Dy = ( x + y )/( x*x + y*y ) + 4 + cos(x) endfunction se obtiene la soluci on aproximada mediante 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.

M etodo de Euler

Se aplica a una EDO1CI como en (7.1) utilizando puntos igualmente espaciados. Su deducci on es muy sencilla. y (x0 ) Por otro lado y ( x 0 ) = f ( x 0 , y0 ) . Entonces y (x0 + h) y0 + hf (x0 , y0 ). Si denotamos por y1 la aproximaci on de y (x0 + h), entonces la f ormula del m etodo de Euler es justamente y1 = y0 + hf (x0 , y0 ). Aplicando varias veces el mismo tipo de aproximaciones, se tiene la f ormula general: yi+1 = yi + hf (xi , yi ). (7.2) y (x0 + h) y (x0 ) . h

Gr acamente esto signica que y (xi + h) = y (xi+1 ) se aproxima por el valor obtenido a partir de la recta tangente a la curva en el punto (xi , yi ). El valor y1 es una aproximaci on de y (x1 ). A partir de y1 , no de y (x1 ), se hace una aproximaci on de y (x1 ). Es decir, al suponer que y2 es una aproximaci on de y (x2 ), se han hecho dos aproximaciones consecutivas y el error pudo haberse acumulado. De manera an aloga, para decir que y3 es una aproximaci on de y (x3 ), se han hecho tres aproximaciones, una sobre otra. Sea (t, h) denida para t1 t t2 y para valores peque nos de h. Se dice que (t, h) = O(hp ) si para valores peque nos de h existe una constante c tal que |(t, h)| chp , t [t1 , t2 ].

CAP ITULO 7.

ECUACIONES DIFERENCIALES ( x 1 , y1 )

244

y (x0 + h) y0 = y ( x 0 )

x0 Figura 7.1: M etodo de Euler Tambi en se acostumbra decir que (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 aproximaci on de y (xn ) (n indica el n umero de intervalos). Los resultados sobre el error en el m etodo de Euler son: y1 = y (x1 ) + O(h2 ) yn = y (xn ) + O(h). (7.3) (7.4)

Ejemplo 7.1. Resolver, por el m etodo de Euler, la ecuaci on diferencial y = 2x2 4x + y

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

La primera observaci on es que esta ecuaci on diferencial se puede resolver anal ticamente. Su soluci on es y = ex 2x2 . Luego no deber a ser resuelta num ericamente. Sin embargo, el hecho de conocer su soluci on exacta permite

CAP ITULO 7.

ECUACIONES DIFERENCIALES

245

2 1 0 1

Figura 7.2: Ejemplo del m etodo de Euler ver el error cometido por el m etodo num erico. 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 peque no. A partir de 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 m etodo de Euler se puede escribir en Scilab mediante: 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.

M etodo de Heun

Este m etodo es una modicaci on o mejora del m etodo de Euler y se utiliza para el mismo tipo de problemas. Tambi en se conoce con el nombre de

CAP ITULO 7.

ECUACIONES DIFERENCIALES

247

y (x0 + h) y0 = y ( x 0 )

( x 1 , y1 )

x0 Figura 7.3: M etodo de Heun

x0 + h

m etodo del trapecio. En el m etodo de Euler se utiliza la aproximaci on y (x + h) = y (x) + hy (x). En el m etodo de Heun se busca cambiar, en la aproximaci on anterior, la 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 f ormula anterior no se puede aplicar. Sirve para aproximar y (x + h) pero utiliza y (x + h). Entonces, en el lado derecho, se reemplaza y (x + h) por la aproximaci on dada por el m etodo de Euler y (x + h) y (x) + h f (x, y (x)) + f (x + h, y (x) + hf (x, y (x))) 2

La anterior aproximaci on suele escribirse de la siguiente manera: 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 m etodo de Heun, la ecuaci on diferencial

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 m etodo de Heun 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 m etodo es mejor, pero, por otro, es natural tener mejores resultados pues hubo que evaluar 16 veces la funci on f (x, y ), 2 veces en cada iteraci on. En el ejemplo del m etodo de Euler hubo simplemente 8 evaluaciones de la funci on f (x, y ). Al aplicar el m etodo de Heun con h = 0.5 (es necesario evaluar 8 veces la funci on) se obtiene y (3) = 2.1488885, resultado no tan bueno como 2.0887372, pero netamente mejor que el obtenido por el m etodo de Euler. Si 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.

M etodo del punto medio

Tambi en este m etodo es una modicaci on o mejora del m etodo de Euler y se utiliza para el mismo tipo de problemas. En el m etodo de Euler se utiliza

CAP ITULO 7.

ECUACIONES DIFERENCIALES

250

y (x0 + h) y0 = y ( x 0 )

( x 1 , y1 )

x0

x0 + h/2

x0 + h

Figura 7.5: M etodo del punto medio la aproximaci on y (x + h) = y (x) + hy (x). En el m etodo del punto medio se busca cambiar, en la aproximaci on anterior, 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 aproximaci on que dar a el m etodo de Euler con un paso de h/2. 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 aproximaci on suele escribirse de la siguiente manera: 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 m etodo del punto medio, la ecuaci on diferencial 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 m etodo del punto medio 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

Tambi en, en este ejemplo, los resultados son mucho mejores. De nuevo hubo que evaluar 16 veces la funci on f (x, y ), 2 veces en cada iteraci on. Al aplicar el m etodo del punto medio con h = 0.5 (es necesario evaluar 8 veces la funci on) se obtiene y (3) = 1.5515985, resultado no tan bueno como 2.0887372, pero netamente mejor que el obtenido por el m etodo de Euler. Si se trabaja con h = 0.1 se obtiene y (3) = 2.0538177; con h = 0.01 se obtiene y (3) = 2.0851903; con h = 0.001 se obtiene y (3) = 2.0855334.

7.4.

M etodo de Runge-Kutta

El m etodo de Runge-Kutta o, m as bien, los m etodos de Runge-Kutta se aplican a una EDO1CI como en (7.1) utilizando puntos igualmente espaciados.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

253

La forma general del m etodo RK de orden n es la siguiente: 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 m etodos vistos son de RK: el m etodo de Euler es uno de RK de orden 1, el m etodo de Heun y el del punto medio son m etodos de RK de orden 2. M etodo de Euler: K1 = hf (xi , yi ) yi+1 = yi + K1 . M etodo de Heun: K1 = hf (xi , yi ) K2 = hf (xi + h, yi + K1 ) 1 1 yi+1 = yi + K1 + K2 . 2 2 M etodo del punto medio: K1 = hf (xi , yi ) 1 1 K2 = hf (xi + h, yi + K1 ) 2 2 yi+1 = yi + 0K1 + K2 . Un m etodo muy popular es el siguiente m etodo RK de orden 4: 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 m etodo RK4 anterior, la ecuaci on diferencial 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 m etodo Runge-Kutta 4 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 a un mejores. Hubo que evaluar 32 veces la funci on f (x, y ), 4 veces en cada iteraci on. Si se trabaja con h = 0.1 se 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 m etodo RK4 se puede escribir en Scilab de la siguiente manera: 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.

Deducci on de RK2

En secciones anteriores se hizo la deducci on, de manera m as o menos intuitiva, de los m etodos de Heun y del punto medio. Los dos resultan ser m etodos de RK de orden 2. En esta secci on veremos una deducci on diferente y general de RK2. El m etodo RK2 tiene el siguiente esquema: 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 , utilic emoslos sin sub ndices: K1 = hf (xi , yi ) K2 = hf (xi + h, yi + K1 ) yi+1 = yi + R1 K1 + R2 K2 . Sea g una funci on de dos variables. Si g es diferenciable en el punto ( u, v ), entonces se puede utilizar la siguiente aproximaci on de primer orden: g g u, v ) + v ( u, v ). (7.12) g ( u + u, v + v ) g ( u, v ) + u ( u v La aproximaci on de segundo orden para y (xi + h) es: h2 y (xi ) + O(h3 ) (7.13) 2 h2 y (xi + h) y (xi ) + hy (xi ) + y (xi ). (7.14) 2 En la aproximaci on anterior, podemos tener en cuenta que y (xi ) = yi , y que y (xi ) = f (xi , yi ). Adem as, y (xi + h) = y (xi ) + hy (xi ) + y (xi ) = d y (xi ) dx d f ( x i , yi ) = dx f f y = f ( x i , yi ) + f ( x i , yi ) ( x i ) x y x f f f ( x i , y i ) + y ( x i ) f ( x i , yi ) . = x y

CAP ITULO 7.

ECUACIONES DIFERENCIALES

258

Para acortar la escritura utilizaremos la siguiente notaci on: f := f (xi , yi ) f fx := f ( x i , yi ) x f f ( x i , 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 m etodo RK2 se puede reescribir: 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 notaci on se obtiene: 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 m etodo de Heun. Si = 1/2, entonces = 1/2, R2 = 1 y R1 = 0, es decir, el m etodo del punto medio. Para otros valores de se tienen otros m etodos de RK de orden 2.

7.6.

Control del paso

Hasta ahora se ha supuesto que para hallar la soluci on num erica de una ecuaci on diferencial, los puntos est an igualmente espaciados, es decir, xi xi1 = h para i = 1, 2, ..., n. Esta pol tica no es, en general, adecuada. Es preferible utilizar valores de h peque nos cuando es indispensable para mantener errores relativamente peque nos, y utilizar valores grandes de h cuando se puede. Hay varios m etodos para el control de h. En uno de ellos, se supone conocido yi , una muy buena aproximaci on de y (xi ), y se aplica un m etodo con un paso h para obtener y aproximaci on de y (xi + h). Tambi en se aplica el mismo m etodo dos veces con el paso h/2 para obtener y , otra aproximaci on de y (xi + h). Con estos dos valores se puede acotar el error y as saber si es necesario trabajar con un paso m as peque no. En otro enfoque, el que veremos en esta secci on, se aplican dos m etodos 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 m etodos: el m etodo A con error local O(hp ) p +1 y el m etodo B con error local O(h ) (o con error local O(hq ), q p + 1). Partimos de yi , muy buena aproximaci on de y (xi ). Aplicando los dos m etodos calculamos yA y yB , aproximaciones de y (xi + h). El control de paso tiene dos partes: en la primera se obtiene una aproximaci on del posible 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 aproximaci on de y (x + h). En caso contrario, es necesario utilizar un valor de h m as peque no. En ambos casos el valor de h se puede modicar, bien sea 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 ). M as a un, para el mismo m etodo A y el mismo m etodo B hay diferentes algoritmos. Un m etodo muy popular es el de Runge-Kutta-Fehlberg, construido a partir de un m etodo de RK de orden 5 (el m etodo A) y de un m etodo de RK de orden 6 (el m etodo B). Una de sus ventajas est a dada por el siguiente hecho: los valores K1 , K2 , K3 , K4 y K5 son los mismos para los dos m etodos. Teniendo en cuenta la forma general (7.7) del m etodo RK, basta con dar los valores i y ij . Recu erdese que siempre K1 = hf (xi , yi ).

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 f ormulas RK5 y RK6; las anteriores est an en [BuF85] y [EnU96]. Hay otras f ormulas diferentes en [ChC99]. La aproximaci on del error est a dada por |error| e = | yA yB | . h (7.21)

El coeciente para la modicaci on del valor de h est a dado por: C0 = 0.84 1/4 , e C = min{C0 , 4},

(7.22)

C = max{C, 0.1}.

Las f ormulas anteriores buscan que C no sea muy grande ni muy peque no. M as espec camente, C debe estar en el intervalo [0.1, 4]. En la descripci on del algoritmo usaremos la siguiente notaci on de Matlab y de Scilab. La orden u = [u; t]

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 seg un (7.20) 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 peque no. Esto se produce en problemas muy dif 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 versi on ligeramente m as eciente, inicialmente no se calcula yA ni 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 asignaci on y = yB . Ejemplo 7.5. Resolver, por el m etodo RKF con control de paso, la ecuaci on

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 m etodo Runge-Kutta-Fehlberg 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 m etodo y orden del error

Para algunos de los m etodos hasta ahora vistos, todos son m etodos de RK, se ha hablado del orden del m etodo, del orden del error local y del orden del error global. El orden del m etodo se reere al n umero de evaluaciones de la funci on f en cada iteraci on. As por ejemplo, el m etodo de Euler es un m etodo de orden 1 y el m etodo de Heun es un m etodo de orden 2. El orden del error local se reere al exponente de h en el error te orico cometido en cada iteraci on. Si la f ormula es 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) despu es de hacer (b x0 )/h iteraciones. Hemos visto seis m etodos, Euler, Heun, punto medio, un RK4, un RK5 y un RK6. La siguiente tabla presenta los ordenes de los errores. M etodo Euler Heun Punto medio RK4 RK5 RK6 F ormula (7.2) (7.5) (7.6) (7.11) (7.20) (7.20) Orden del m etodo 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 m etodo de Euler es O(h). A medida que aumenta el orden del m etodo, aumenta el orden del error, es decir, el error disminuye. Pero al pasar de RK4 a RK5 el orden del error no mejora. Por eso es m as interesante usar el RK4 que el RK5 ya que se hacen solamente 4 evaluaciones y se tiene un error semejante. Ya con RK6 se obtiene un error m as peque no, pero a costa de dos evaluaciones m as.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

266

7.7.1.

Vericaci on num erica del orden del error

Cuando se conoce la soluci on exacta de una ecuaci on diferencial, en muchos casos, se puede vericar el orden del error de un m etodo espec co. M as a un, se podr a obtener el orden del error si este no se conociera. Sea O(hp ) el error local del m etodo. Se puede hacer la siguiente aproximaci on: error = e chp . Al tomar logaritmo en la aproximaci on anterior se obtiene log(e) log(c) + p log(h) (7.23)

Para diferentes valores de h se eval ua el error cometido y se obtienen as varios 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 gr acamente o por m nimos cuadrados. Ejemplo 7.6. Obtener num ericamente el orden del error local del m etodo de Heun usando la ecuaci on diferencial 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 gr aca, log(h) en las abscisas y log(e) en las ordenadas, los puntos est an aproximadamente en una recta. Al calcular num ericamente los coecientes de la recta de aproximaci on por m nimos cuadrados, se obtiene log(e) 2.967325 log(h) 0.698893 e 0.497135h2.97 . Estos resultados num ericos concuerdan con el resultado te orico.

CAP ITULO 7.

ECUACIONES DIFERENCIALES 5 6 7 8 2.5 2.0 1.5

267

Figura 7.9: Orden local

7.8.

M etodos multipaso expl citos

Los m etodos RK son considerados como m etodos monopaso (unipaso) por la siguiente raz on. El valor yi+1 se calcula u nicamente a partir del punto (xi , yi ). En los m etodos multipaso se utilizan otros puntos anteriores, por 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 deducci on, supongamos 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: p 2 ( 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)

Despu es de algunas factorizaciones se obtiene: 1 (f0 2f1 + f2 )x2 + (3f0 + 4f1 f2 )hx + 2h2 f0 . 2h2 Por otro lado, por el teorema fundamental del c alculo integral p2 ( x ) =
x3 x2

y (x)dx = y (x3 ) y (x2 )


x3

y (x3 ) = y (x 2 ) +
x2 3h

y (x)dx f (x, y )dx.

y (x3 ) = y (x 2 ) +
2h

CAP ITULO 7.

ECUACIONES DIFERENCIALES

268

Si se reemplaza f (x, y ) por el polinomio de interpolaci on, se tiene:


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 f ormula de Adams-Bashforth de orden 2 (se utiliza un polinomio de orden 2). Tambi en recibe el nombre de m etodo multipaso expl cito o m etodo multipaso abierto de orden 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 a dado por y (x3 ) = y (x 2 ) + h 3 (5f0 16f1 + 23f2 ) + y (3) (z )h4 , z [x0 , x3 ]. 12 8 (7.25) h (5fi2 16fi1 + 23fi ). 12

La f ormula (7.24) se escribe en el caso general yi+1 = yi + (7.26)

Para empezar a aplicar esta f ormula se requiere conocer los valores fj anteriores. Entonces es indispensable utilizar un m etodo RK el n umero de veces necesario. El m etodo RK escogido debe ser de mejor calidad que el m etodo de Adams-Bashforth que estamos utilizando. Para nuestro caso podemos utilizar RK4. Ejemplo 7.7. Resolver, por el m etodo de Adams-Bashforth de orden 2, la ecuaci on diferencial 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 m etodo RK4 dos veces se obtiene: 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 funci on para los dos valores de RK4 y en seguida 6 evaluaciones para un total de 14 evaluaciones de la funci on f.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

270

2 1 0 1

Figura 7.10: Ejemplo del m etodo de Adams-Bashforth 2

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 f ormulas. All n indica el grado del polinomio de interpolaci on usado. En algunos libros, n est a asociado con n umero de puntos utilizados para la interpolaci on (igual al grado del polinomio m as uno). Obs ervese que la primera f ormula es simplemente el m etodo de Euler. 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.

M etodos multipaso impl citos

En estos m etodos se utiliza un polinomio de interpolaci on, el mismo de los m etodos expl citos, pero el intervalo de integraci on var 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 deducci on, supongamos 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 secci on anterior, p2 ( x ) = 1 (f0 2f1 + f2 )x2 + (3f0 + 4f1 f2 )hx + 2h2 f0 . 2h2

El teorema fundamental del c alculo integral se usa de la siguiente manera:


x2 x1

y (x)dx = y (x2 ) y (x1 )


x2

y (x2 ) = y (x 1 ) +
x1 2h

y (x)dx f (x, y )dx.

y (x2 ) = y (x 1 ) +
h

Si se reemplaza f (x, y ) por el polinomio de interpolaci on se tiene:

2h

y (x2 ) y (x 1 ) + y (x2 ) y (x 1 ) +

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 f ormula de Adams-Moulton de orden 2 (se utiliza un polinomio de orden 2). Tambi en recibe el nombre de m etodo multipaso impl cito o m etodo multipaso cerrado de orden 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 a dado por y (x2 ) = y (x1 ) + h 1 (3) (f0 + 8f1 + 5f2 ) y (z )h4 , z [x0 , x2 ]. 12 24 (7.28)

La f ormula (7.27) se escribe en el caso general h (fi1 + 8fi + 5fi+1 ). (7.29) 12 Para empezar a aplicar esta f ormula es indispensable conocer los valores fj anteriores. Entonces se requiere utilizar un m etodo RK el n umero de veces necesario. El m etodo RK escogido debe ser de mejor calidad que el m etodo de Adams-Bashforth que estamos utilizando. Para nuestro caso podemos utilizar RK4. yi+1 = yi + Una dicultad m as grande, y espec ca de los m etodos impl citos, est a dada por el siguiente hecho: para calcular yi+1 se utiliza fi+1 , pero este valor es justamente f (xi+1 , yi+1 ). C omo salir de este c rculo vicioso? Inicialmente 0 se calcula yi+1 , una primera aproximaci on, por el m etodo de Euler. Con 0 ) y en seguida y 1 . De nuevo = f ( x , y este valor se puede calcular fi0 i+1 i+1 i+1 +1 1 2 se calcula fi1 +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 m etodo recibe tambi en el nombre de m etodo predictor-corrector. La f ormula queda entonces as :
k+1 yi +1 = yi +

h (fi1 + 8fi + 5fik +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 m etodo de Adams-Moulton de orden 2, la ecuaci on diferencial y = 2x2 4x + y

y (1) = 0.7182818

en el intervalo [1, 3], con h = 0.25 y = 0.0001. Al aplicar el m etodo RK4 una vez, se obtiene: y1 = 0.3653606 Entonces f0 = f (x0 , y0 ) = 1.2817182

f1 = f (x1 , y1 ) = 1.5096394

Aplicando Euler se obtiene una primera aproximaci on de y2 :


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 aproximaci on de y3 :


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 = 0.3686612 = y3 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 funci on para el valor de RK4 y en seguida, en cada uno de los otros 7 intervalos, una evaluaci on ja m as 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 m as exacto que el obtenido por Adams-Bashforth, pero a costa de m as evaluaciones. Te oricamente, los dos m etodos multipaso de orden 2 tienen un error local del mismo orden, O(h4 ), pero el coeciente en el m etodo multipaso expl cito, 3/8, es nueve veces el coeciente en el error del m etodo impl cito, 1/24.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

275

2 1 0 1

Figura 7.11: Ejemplo del m etodo de Adams-Moulton 2

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 f ormulas. All n indica el grado del polinomio de interpolaci on usado. Obs ervese que el m etodo de Heun corresponde a una iteraci on (una sola) del m etodo multipaso impl cito de orden 1. error
1 12 y ( )h3 1 (3) y ( )h4 24 19 (4) y ( )h5 720 27 (5) y ( )h6 1440

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 ( x 0 ) = y 1 0 y2 ( x 0 ) = y 2 . . . 0 ym ( x 0 ) = y m .

Utilicemos la siguiente notaci on: 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 soluci on num erica del sistema de ecuaciones consiste en un conjunto de vectores y 0 , y 1 , y 2 , ..., y n ,
i i i y i = ( y1 , y2 , ..., ym ),

CAP ITULO 7.

ECUACIONES DIFERENCIALES

277

i es una aproximaci donde cada yj on: i yj yj ( x k ) .

Los m etodos vistos anteriormente se pueden generalizar de manera inmediata. Si se trata de los m etodo RK, entonces los Ki dejan de ser n umeros i y pasan a ser vectores K . Para y se utiliza un super ndice para indicar el intervalo, ya que los sub ndices se usan para las componentes del vector. Por ejemplo, las f ormulas de RK4 se convierten en: 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 soluci on (exacta) de este sencillo sistema de ecuaciones es: y1 ( x ) = x

y2 ( x ) = x 3 .

CAP ITULO 7.

ECUACIONES DIFERENCIALES

278

Para la soluci on num erica: 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) . . . y 2 (xi ) 1.0 0.5790634 0.3647495 0.2443822 0.1716477 0.1251354 y1 ( x i ) -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

y 1 (xi ) -1.0 -1.2006916 -1.4011269 -1.6014497 -1.8017156 -2.0019491

y2 ( x i ) 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 funci on ode , pero con los par ametros de dimensi on 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 est an las aproximaciones de los valores de yi (tj ). Escribir una funci on en Scilab para un sistema de ecuaciones diferenciales es casi igual a la funci on para una ecuaci on diferencial. A continuaci on una versi on del m etodo RK4 para sistemas. 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 ecuaci on diferencial ordinaria, de orden m, con condiciones iniciales, se puede escribir de la siguiente manera:

CAP ITULO 7.

ECUACIONES DIFERENCIALES

281

y (m) = f (x, y, y , y , ..., y (m1) ), y ( x 0 ) = y0


y ( x 0 ) = y0 y (x0 ) = y0 . . .

x0 x b

y (m1) (x0 ) = y0

(m1)

Esta ecuaci on diferencial se puede convertir en un sistema de ecuaciones diferenciales de primer orden, mediante el siguiente cambio de variables: u1 = y u2 = y u3 = y . . . um = y (m1) Entonces la ecuaci on diferencial se convierte en el siguiente sistema: u 1 = u2 u 2 = u3 u 3 = u4 . . . u m1 = u m u 1 ( x 0 ) = y0
u 2 ( x 0 ) = y0 u 3 ( x 0 ) = y0 . . .

u m = f (x, u1 , u2 , ..., um )

u m ( x 0 ) = y0 De forma m as compacta, u(x0 ) = 0 ,

(m1)

u = F (x, u), x0 x b

CAP ITULO 7.

ECUACIONES DIFERENCIALES
(m1)

282

y ... y donde 0 = [y0 y0 ]T . Este sistema se puede resolver por los 0 0 m etodos para sistemas de ecuaciones diferenciales de primer orden.

Ejemplo 7.10. Resolver la ecuaci on diferencial 4y xy , 1 x 2, x2 y (1) = 3 y = y (1) = 10, por el m etodo RK4, con h = 0.2. Sean u1 = y , u2 = y . u 1 = u2 4u1 xu2 u , 1 x 2, 2 = x2 u1 (1) = 3 u2 (1) = 10. La soluci on exacta es y = 4x2 x2 . Al aplicar el m etodo RK4 se obtiene: 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 u 1 (xi ) 3.0 5.0652642 7.3293797 9.8488422 12.65069 15.749173 u 2 (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 ecuaci on diferencial de segundo orden con condiciones de frontera se puede escribir de la forma y = f (x, y, y ), a x b,

y ( a ) = ya

(7.32)

y ( b) = y b . Esta ecuaci on diferencial se puede convertir en un sistema de dos ecuaciones diferenciales, pero para obtener su soluci on num erica se presenta un incon veniente: se deber a conocer el valor ya = y (a). Esta dicultad se supera mediante el m etodo del disparo (shooting ).
, se le asigna un valor aproximado inicial. Puede ser Como no se conoce ya ya

yb ya . ba

Con este valor inicial se busca la soluci on num erica, hasta obtener
y (b) = y (b, ya ).

Este valor deber a ser el valor conocido yb . Si no coinciden, es necesario hasta obtener el resultado deseado. Si y ) < modicar la suposici on de ya (b, ya yb , entonces se debe aumentar la pendiente inicial del disparo. De manera ) > y , se debe disminuir la pendiente inicial del disparo. an aloga, si y (b, ya b Lo anterior se puede presentar como la soluci on de una ecuaci on:
( ya ) = yb y (b, ya ) = 0.

Esta ecuaci on se puede resolver, entre otros m etodos, por el de la secante o el de bisecci on. Para facilitar la presentaci on del m etodo se considera el problema P (v ),

CAP ITULO 7. donde:

ECUACIONES DIFERENCIALES

284

v = aproximaci on de ya ,

n = n umero de intervalos para la soluci on num erica, y = ( y0 , y 1 , ..., y n ) = soluci on num erica del siguiente problema: y = f (x, y ), a x b

y ( a ) = ya y (a) = v,

P(v )

( v ) = yb y n = yb y (b, v ).

(7.33)

Se desea encontrar v tal que (v ) = 0. Entonces la soluci on num erica de P (v ) es la soluci on num erica de (7.32). Si se aplica el m etodo de la secante para resolver la ecuaci on (v ) = 0, el algoritmo es el siguiente: METODO DEL DISPARO datos: f , a, b, ya , yb , , maxit, 0 r = max{1, |yb |} v0 = (yb ya )/(b a) y = soluci on num erica de P(v0 ) 0 = yb y n si |0 | r ent parar v1 = v0 + 0 /(b a) y = soluci on num erica de P(v1 ) 1 = yb y n si |1 | r ent parar para k = 1, ...,maxit = 1 0 si | | 0 ent parar v2 = v1 1 (v1 v0 )/ y = soluci on num erica de P(v2 ) 2 = yb y n 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 ecuaci on diferencial 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 soluci on del sistema de ecuaciones diferenciales asociado. La primera aproximaci on de y (a) es v0 = (0.9854497 0.3894183)/(0.7 0.2) = 1.19206278 Al resolver num ericamente el problema P(1.19206278) se obtiene: y 5 = 0.94935663. El disparo result o muy bajo. 0 = 0.03609310 v1 = 1.19206278 + 0.03609310/(0.7 0.5) = 1.26424897 Al resolver num ericamente el problema P(1.26424897) se obtiene: y 5 = 0.95337713 1 = 0.03207260 Primera iteraci on del m etodo de la secante: v2 = 1.84009748 Al resolver num ericamente el problema P(1.84009748) se obtiene: y 5 = 0.98544973

Este disparo fue preciso (no siempre se obtiene la soluci on con una sola iteraci on de la secante). El u ltimo vector y es la soluci on. La soluci on exacta 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 ecuaci on diferencial lineal de segundo orden con condiciones de frontera 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) = y b . Obviamente esta ecuaci on se puede resolver por el m etodo del disparo, pero, dada la linealidad, se puede resolver usando aproximaciones num ericas (diferencias nitas) para y y y . El intervalo [a, b] se divide en n 2 subintervalos de tama no h = (b a)/n. Los puntos xi est an igualmente espaciados (xi = a + ih). Se utilizan las siguientes aproximaciones y la siguiente notaci on:
yi

(7.34)

yi1 2yi + yi+1 h2 y + yi+1 i 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 inc ognitas, y1 , y2 , ..., yn1 . yi1 + yi+1 2h2 ri yi 2h2 si yi1 2yi + yi+1 + hq + = i 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 , = n 2 yn 2 l n 3 d n 2 u n 2 n 1 yn 1 l n 2 d n 1 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 ecuaci on diferencial 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 soluci on es (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 soluci on exacta. Fije el intervalo de trabajo. Determine qu e m etodos puede utilizar. Aplique varios de ellos. Compare los resultados. Cambie el tama no del paso. Compare de nuevo. Un procedimiento adecuado para obtener las ecuaciones diferenciales consiste en partir de la soluci on (una funci on cualquiera) y construir la ecuaci on diferencial.

CAP ITULO 7.

ECUACIONES DIFERENCIALES

289

La aplicaci on de los m etodos se puede hacer de varias maneras: a mano con ayuda de una calculadora; parte a mano y parte con ayuda de software para matem aticas como Scilab o Matlab; haciendo un programa, no necesariamente muy sosticado, para cada m etodo. A continuaci on se presentan algunos ejemplos sencillos. 7.1 y = ex y (1) = 0. Su soluci on es y = ex 7.2
y1 = 2y1 + y2 + 3 y2 = 4y1 y2 + 9

y x

ex x

y2 (0) = 5.

y1 (0) = 3

Su soluci on es y1 (t) = e2t 2, y2 (t) = 4e2t + 1. 7.3 2 y x(2 x) y (1) = 2 y =

y (1) = 1.

Su soluci on es y = 2 ln(2 x) x 1. Tenga especial cuidado con el intervalo de trabajo. 7.4 y + y + y + y = 4ex y (0) = 1 y (0) = 2 y (0) = 1 y (0) = 0. Su soluci on es y = ex + sen(x).

CAP ITULO 7. 7.5

ECUACIONES DIFERENCIALES

290

y (0) = 1

y y = e2x sen2 (x)

y ( ) = e . Su soluci on es y = ex + sen(x). 7.6 y + ex y + y = 2ex + 1 + ex cos(x) y (0) = 1 y ( ) = e . Su soluci on es y = ex + sen(x).

Cap tulo 8

Ecuaciones diferenciales parciales


8.1. Generalidades

Sea u = u(x, y ) una funci on de dos variables con derivadas parciales de orden dos. Una ecuaci on diferencial se llama cuasi-lineal si es de la forma Auxx + Buxy + Cuyy = (x, y, u, ux , uy ), dosnde A, B y C son constantes. Hay tres tipos de ecuaciones cuasi-lineales. el ptica parab olica si B 2 4AC = 0, si B 2 4AC < 0,

hiperb olica si B 2 4AC > 0.

Un ejemplo t pico de una ecuaci on el ptica es la ecuaci on de Poisson 2 u = uxx + uyy = f (x, y ). Un caso particular es la ecuaci on de Laplace uxx + uyy = 0. Un ejemplo t pico de una ecuaci on parab olica es la ecuaci on unidimensional del calor ut = c2 uxx . 291

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES Un ejemplo t pico de una ecuaci on hiperb olica es la ecuaci on de onda utt = c2 uxx .

292

Hay dos grupos importantes de m etodos num ericos para EDP: diferencias nitas y elementos nitos. En el primero las derivadas parciales se aproximan por medio de diferencias nitas. Las tres secciones siguientes tratan sobre m etodos de diferencias nitas.

8.2.

El pticas: ecuaci on de Poisson

Consideraremos un caso particular cuando el dominio es un rectangulo, = {(x, y ) : a < x < b, c < y < d},

= frontera de .

La ecuaci on de Poisson con condiciones de frontera de Dirichlet es la siguiente: 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 num ericamente la ecuaci on diferencial consiste en obtener aproximaciones de u(xi , yj ), donde los puntos (xi , yj ) est an en . De manera m as 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,j 1 y1 c hx a x1 x2 xi xnx b ui,j +1 ui1,j uij ui+1,j

Figura 8.1: Divisi on del rect angulo Usando la aproximaci on (t) se obtiene u ( x i , yj ) Sea = hx /hy . u ( x i , yj ) ui,j +1 2uij + ui,j 1 ui+1,j 2uij + ui1,j + 2 2 hx h2 x ui+1,j + ui1,j + 2 ui,j +1 + 2 ui,j 1 (2 + 2 2 )uij u ( x i , yj ) . h2 x ui+1,j 2uij + ui1,j ui,j +1 2uij + ui,j 1 + . 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,j 1 4uij . (8.4) h2 Al aplicar la aproximaci on (8.3) en (8.1), y cambiando el signo aproximaci on por el signo de igualdad, se obtiene u ( x i , yj ) ui+1,j ui1,j 2 ui,j +1 2 ui,j 1 + (2 + 2 2 )uij = h2 x fij , (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 inc ognitas. Para simplicar la notaci on, sean 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,j 1 + 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 ecuaci on en (x1 , y1 ), en (x2 , y1 ),

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 = u n 1 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,j 1 ui1,j + uij ui+1,j ui,j +1 = h2 fij El sistema de N ecuaciones con N inc ognitas se escribe simplemente: 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 continuaci on est an algunas de las igualdades. Al plantear la ecuaci on en el punto (x1 , y1 ) se obtiene: 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 notaci on k se obtiene: 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 sim etrica, tridiagonal por bloques, de tama no m m bloques, donde cada bloque es de tama no n n . D In 0 In D In 0 I D n . 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 sim etrica tridiagonal de tama no n 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 a de las las |aij | = 2 + 2 = aii .

En algunas las

n j =1 j =i

|aij | < aii .

Para resolver A = v se puede utilizar el m etodo de Gauss si m y n son peque nos. Si N es muy grande no se puede almacenar completamente A como matriz densa y, adem as, el tiempo de c alculo se vuelve muy grande. Hay varios m etodos que pueden ser m as ecientes para N grande, algunos son espec cos para la ecuaci on de Poisson en un rect angulo. Por ejemplo se puede utilizar el m etodo de Gauss Seidel o el de sobrerrelajaci on. Estos dos m etodos se pueden implementar sin almacenar los elementos no nulos de A. Conociendo m, n, y se tiene toda la informaci on sobre A. Tambi en se pueden utilizar m etodos basados en la FFT (Fast Fourier Transform). Otros m etodos son: el de reducci on c clica, el m etodo FACR (Fourier Analysis Cyclic Reduction) y el m etodo de doble barrido de Cholesky. Ejemplo 8.1. Resolver la ecuaci on diferencial 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 ecuaci on diferencial es muy sencilla, su soluci on es u(x, y ) = x3 + 2y 3 . En este caso, la soluci on num erica obtenida es exacta.

8.3.

Parab olicas: ecuaci on del calor

La ecuaci on unidimensional del calor es: 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 funci on u(x, t) indica la temperatura de una barra uniforme, en la posici on x y en el tiempo t. Generalmente las funciones v (t) y w(t) son constantes, es decir, se supone que la temperatura en los extremos de la barra es constante para todo tiempo t. De manera an aloga a las ecuaciones el pticas, se coloca en la regi on =]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 x m1 L

Figura 8.2: Malla para la ecuaci on del calor El objetivo es encontrar valores uij , aproximaciones de los valores u(xi , tj ). Como se conoce la funci on u en la frontera de , entonces se conocen los valores: u00 , u10 , ..., um0 , u01 , u02 , ..., u0j , ... um1 , um2 , ..., umj , ... Los valores buscados son: u11 , u21 , ..., um1,1 , t = t1 t = t2 t = t3 t = 0, x = 0, x = L.

u13 , u23 , ..., um1,3 , . . .

u12 , u22 , ..., um1,2 ,

Cada uno de los paquetes anteriores tiene m 1 valores correspondientes a un tiempo jo tj . Aunque el problema est a plantedao para 0 < t < +, obviamente no se

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.

M etodo expl 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 ( x i , tj ) 2 x h2 x ui,j +1 uij u ( x i , 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 u + ui+1,j ij hx h2 h2 x x ui,j +1 = ui1,j + uij + ui+1,j = c2 ht h2 x

(8.17) (8.18) (8.19)

= 1 2.

En la f ormula (8.15) el error es del orden de O(h2 x ), en (8.16) el error es del orden de O(ht ). El error en (8.17) es del orden de (ht + h2 x ). Los valores usados en (8.17) forman la mol ecula: 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 condici on (8.11). Entonces los valores u11 , u21 , ..., um1,1 , se calculan sin ning un problema. Para calcular los valores u12 , u22 , ..., um1,2 se necesitan los valores u01 , u11 , u21 , ..., um1,1 , um1 . El primero y el u ltimo est an dados por las condiciones (8.9) y (8.10); los otros se acaban de calcular. Despu es, de manera semejante, se calculan los valores ui3 y as sucesivamente. Ejemplo 8.2. Aplicar las f ormulas anteriores a la ecuaci on diferencial 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 soluci on exacta de la ecuaci on diferencial es u(x, t) = e2t sen(3x) + 5 . Al aplicar las f ormulas se obtiene: 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 f ormulas no son buenos. Pero si se utiliza n = 100 s lo son. En la tabla siguiente est an los valores te oricos, 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 raz on: el m etodo con las f ormulas (8.17) es a veces estable, a veces inestable (los errores de redondeo o truncamiento se

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

303

propagan exponencialmente). Este m etodo es condicionalmente estable (ver [BuF85]). Si c2 ht 1 (8.20) h2 2 x el m etodo es estable. F acilmente se comprueba que, en el ejemplo anterior, c2 ht = 0.8105695 h2 x c2 ht = 0.4052847 h2 x si n = 50 si n = 100

8.3.2.

M etodo impl cito

La derivada u/t se aproxima hacia atr as: ui,j ui,j 1 u ( x i , tj ) t ht 2 ui+1,j 2uij + ui1,j u ( x i , tj ) 2 x h2 x Remplazando en (8.8) se obtiene ui+1,j 2uij + ui1,j ui,j ui,j 1 = c2 ht h2 x Si queremos calcular los valores ukj , para t = tj , y conocemos los valores para t = tj 1 , entonces agrupamos as : c2 ht c2 ht u + 1 + i1,j h2 h2 x x uij c2 ht ui+1,j = ui,j 1 . h2 x

(8.21) (8.22)

De manera m as compacta: ui1,j + uij ui+1,j = ui,j 1 = c2 ht h2 x (8.23) (8.24) (8.25)

= 1 + 2.

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

304

La f ormula (8.23), al igual que en el m etodo expl cito, tiene un error de 2 orden O(ht + hx ). Los valores usados en (8.23) forman la mol ecula: ui1,j ui,j ui+1,j

ui,j 1 Al utilizar (8.23) para los m 1 puntos (x1 , tj ), (x2 , tj ), ..., (xm1 , tj ), se obtiene el siguiente sistema de ecuaciones: u1j 0 u2j 0 0 u3j (8.26)

0 0 0 0 0 0

... ... ...

um1,j

u1,j 1 + u0j u2,j 1 u3,j 1 um1,j 1 + umj

Este sistema tridiagonal se puede resolver por cualquier m etodo, pero es m as eciente resolverlo por un m etodo espec co para sistemas tridiagonales, ver secci on (2.13). Adem as, como la matriz del sistema es la misma para todas las iteraciones, entonces la factorizaci on LU tridiagonal es la misma para todas las iteraciones y se calcula u nicamente una vez. As , en cada iteraci on se resuelve el sistema conociendo ya la factorizaci on LU . Los valores u0j y umj est an dados por los valores v (tj ) y w(tj ) provenientes de las condiciones de frontera. Ejemplo 8.3. Aplicar este m etodo a la misma ecuaci on diferencial 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 f ormulas se obtiene: 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 t erminos independientes son: 9.3618643, 5.5877853, 5.809017, 5.9510565, 6, 5.9510565, 5.809017, 5.5877853, 9.3618643 . La soluci on del sistema es : 5.2863007, 5.5445763, 5.749545, 5.8811429, 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 te oricos, los valores obtenidos por el m etodo y las diferencias: 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.

M etodo de Crank-Nicolson

De acuerdo con las f ormulas (6.29) y (6.30) el valor = uij ui,j 1 ht

u se puede considerar como la aproximaci on de (xi , tj ) o bien como la t u aproximaci on de (xi , tj 1 ). Es decir, t uij ui,j 1 ht 2 u u ( x i , tj 1 ) = ( x i , ) , [ tj 1 , tj ] , t ht 2 t2 uij ui,j 1 ht 2 u u ( x i , tj ) = + ( x i , ) , [ tj 1 , 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,j 1 h2 u 3u (xi , tj 1 + ht /2) = t (xi , ), t ht 24 t3 [ tj 1 , tj ] ,

El valor tj 1 + ht /2, que ser a denotado por tj 1/2 , es el punto medio entre tj 1 y tj . Al plantear la ecuaci on diferencial en el punto (xi , tj 1/2 ) tenemos: 2u u (xi , tj 1/2 ) = c2 2 (xi , tj 1/2 ) t x Ahora remplazaremos ximaciones de u 2u por y (xi , tj 1/2 ) por el promedio de aprot x2

2u en dos puntos vecinos: x2

uij ui,j 1 c2 = ht 2 uij ui,j 1 c2 = ht 2

2u 2u ( x , t ) + ( x i , tj ) i j 1 x2 x2 ui1,j 1 2ui,j 1 + ui+1,j 1 ui1,j 2uij + ui+1,j + h2 h2 x x

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

307

2 Esta f ormula tiene un error de orden O(h2 t + hx ). Ahora agruparemos dejando a izquierda los valores buscados, t = tj , y a derecha los que se suponen conocidos, t = tj 1 :

ui1,j + uij ui+1,j = ui1,j 1 + ui,j 1 + ui+1,j 1 = = 2 =1+ =1 La mol ecula correspondiente a (8.27) es: ui1,j ui,j ui+1,j c2 ht h2 x

(8.27) (8.28) (8.29) (8.30) (8.31)

ui1,j 1 ui,j 1 ui+1,j 1 Al utilizar (8.27) para i = 1, 2, ..., m 1 se obtiene que se puede resolver de manera eciente: 0 0 ... 0 u1j 0 ... 0 u2j 0 ... 0 u3j 0 0 u0,j 1 + u1,j 1 + u2,j 1 + u0j u1,j 1 + u2,j 1 + u3,j 1 u2,j 1 + u3,j 1 + u4,j 1 el sistema tridiagonal,

um1,j

(8.32)

um2,j 1 + um1,j 1 + um,j 1 + umj

Ejemplo 8.4. Resolver la misma ecuaci on diferencial de los dos ejemplos anteriores por el m etodo de Crank-Nicolson, con m = 10, T = 2, n = 50.

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 t erminos independientes son: 7.3231813, 5.5644666, 5.7769216, 5.9133261, 5.9603279, 5.9133261, 5.7769216, 5.5644666, 7.3231813 . La soluci on del sistema es : 5.2854339, 5.5429275, 5.7472756, 5.8784752, 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 te oricos, los valores obtenidos por el m etodo y las diferencias: 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 m etodo de Crank-Nicolson con n = 50 son mejores que los obtenidos con el m etodo impl cito. Los resultados obtenidos 2 con el m etodo de Crank-Nicolson con n = 100 (h2 t = 0.0004, hx = 0.0109662, 2 2 ht + hx = 0.0113662), no mejoran (empeoran ligeramente) los obtenidos con 2 2 2 n = 50 (h2 t = 0.0016, hx = 0.0109662, ht + hx = 0.0125662). En este caso el orden del error depende fundamentalmente de hx . Si se utiliza el m etodo 2 = 0.0027416, = 0 . 0016, h de Crank-Nicolson con m = 20 y n = 50 (h2 x t 2 h2 t + hx = 0.0043416) los resultados mejoran notablemente: 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.

Hiperb olicas: ecuaci on de onda

Consideramos la siguiente ecuaci on


2 2u 2 u ( x, t ) = c (x, t), t2 x2

0 < x < L,

0 < t,

(8.33)

con las condiciones u(0, t) = a, u(L, t) = b, t 0, 0 x L, (8.34) (8.35) (8.36) (8.37)

u(x, 0) = f (x), u (x, 0) = g (x), t

t 0,

0 x L.

Esta ecuaci on describe el movimiento en el tiempo de una cuerda vibrante, de longitud L, ja en los extremos y de la que se conoce la posici on inicial y la velocidad inicial. Generalmente los valores constantes a y b son iguales y nulos.

8.4.1.

M etodo expl cito

La regi on es la misma de la ecuaci on del calor y se divide exactamente de 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 ecuaci on diferencial en el punto (xi , tj ): 2u 2u ( x i , tj ) = c 2 2 ( x i , 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,j 1 2uij + ui,j +1 = c2 . 2 h2 ht x Si se suponen conocidos los valores para t = tj y para t = tj 1 , entonces se puede obtener ui,j +1 : ui,j +1 = uij + (ui1,j + ui+1,j ) ui,j 1 = c2 h2 t h2 x (8.39) (8.40) (8.41)

= 2 2 La mol ecula es: ui,j +1 ui1,j uij ui,j 1 ui+1,j

2 acilLa f ormula (8.39), con error de orden O(h2 x + ht ), se puede aplicar f mente, salvo para la obtenci on de los valores ui1 ya que ser a necesario conocer los valores ui,1 . Aproximaciones de estos valores se obtienen utilizando las condiciones (8.37) sobre la velocidad inicial, mediante la siguiente aproximaci on cuyo error es del orden de O(h2 t ),

g i = 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 ecuaci on diferencial 2u 2u ( x, t ) = 3 (x, t), t2 x2 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 soluci on exacta de esta ecuaci on diferencial es 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 soluci on num erica 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 dem as valores uik se calculan usando (8.39). As los valores ui2 son: 0, 0.085344, 0.1552, 0.2052, 0.2352, 0.2452, 0.2352, 0.2052, 0.1552, 0.085344, 0. A continuaci on aparecen: los valores xi , los valores u(xi , 12) exactos y los valores aproximados obtenidos por el m etodo:

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 m etodo presenta problemas de inestabilidad. Se puede garantizar la estabilidad (no la exactitud) si c ht 1. hx (8.44)

En el ejemplo anterior cht /hx = 0.3464. Si se hubiera aplicado el m etodo 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.

M etodo impl cito

Consideremos la ecuaci on diferencial en el punto (xi , tj ),


2 2u 2 u ( x , t ) = c ( x i , tj ) , i j t2 x2

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 , tj 1 ) y (xi , tj +1 ) : c2 2u ( x , t ) = i j t2 2 2u 2u ( x , t ) + (xi , tj +1 ) i j 1 x2 x2

Ahora utilizamos aproximaci on por diferencias nitas: ui,j 1 2uij + ui,j +1 c2 ui1,j 1 2ui,j 1 + ui+1,j 1 = + 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,j 1 4uij + 2ui,j +1 = (ui1,j 1 2ui,j 1 + ui+1,j 1

ui1,j +1 + ui,j +1 ui+1,j +1 = 4uij ui,j 1 + (ui1,j 1 + ui+1,j 1 ) (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 tama no (m 1) (m 1): 0 u1,j +1 u2,j +1 . . .

= um2,j +1 um1,j +1 0 0 0 4u1j u1,j 1 + (a + u2,j 1 ) 4u2j u2,j 1 + (u1,j 1 + u3,j 1 ) . . . 4um2,j um2,j 1 + (um3,j 1 + um1,j 1 ) 4um1,j um1,j 1 + (um2,j 1 + b)

(8.48)

CAP ITULO 8. ECUACIONES DIFERENCIALES PARCIALES

315

Este sistema tridiagonal se puede resolver ecientemente. Para empezar, tambi en es necesario calcular los valores ui1 por medio de (8.43). Despu es es necesario resolver n 1 veces el sistema (8.48). Este m etodo impl 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 soluci on exacta es u(x, t) = sen(x) cos(t). Obtenga t la soluci on aproximada para t = 3 con m = 10, n = 60 y con n = 20. Compare con la soluci on exacta.

8.1 Considere la ecuaci on diferencial

Cap tulo 9

Valores propios
9.1. Preliminares

Sea A Rnn , una matriz cuadrada real, un n umero , real o complejo, es 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 . F acilmente se comprueba que si = 0, entonces tambi en v es un vector propio asociado a . Generalmente se usan m as los vectores propios normalizados, es decir, ||v ||2 = 1. Ejemplo 9.1. Sea 8 2 1 A = 1 7 3 . 1 1 6

Como

entonces 10 es un valor propio de A y [9 7 4]T es un vector propio de A asociado a 10. El vector columna [0.7448453 0.5793241 0.3310424]T es un vector propio normalizado asociado a 10. Con frecuencia se utiliza otra caracterizaci on de los valores propios. 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 soluci on de un sistema homog eneo, entonces A no puede ser 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 nas, se pueden calcular los valores propios, obteniendo las 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 n umeros reales.

Denotaremos con espec(A) el conjunto de valores propios de A y o i ser a un valor propio cualquiera. Para el complejo z = a + ib, el m odulo, norma o tama no ser a | z | = x2 + y 2 ,

A continuaci on algunas deniciones y resultados sobre valores propios. Estos resultados no est an necesariamente en el orden conceptual ni en orden para una posible demostraci on. Adem as uno puede ser corolario de otro o pueden 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, )T = AT . A = (A 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. n1 = (1)n1 traza(A) 0 = det(A).
n

n = (1)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 n umero de valores propios estrictamente complejos (no reales) es 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 sim etrica, todos los valores propios son reales. 13. Si A es diagonal, triangular superior o triangular inferior, entonces los valores propios son los elementos diagonales. 14. Teorema espectral. Si A es sim etrica, entonces xisten vectores propios 1 2 n v , v , ..., v ortonormales. Si Q = v 1 v 2 ... v n , entonces Q es ortogonal y QT AQ es una matriz diagonal (con los valores propios de A en la diagonal). 15. Sea A sim etrica. La matriz es denida positiva sssi los valores propios son positivos. 16. Sea A sim etrica. La matriz es semidenida positiva sssi los valores 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 funci on spec (en Matlab 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.

M etodo de la potencia

Este m etodo se puede aplicar para hallar 1 , el valor propio dominante de una matriz diagonalizable A, cuando este existe, o sea, si | 1 | > | 2 | | 3 | | n | . Una primera versi on del m etodo de la potencia es muy sencilla. Dado un x0 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 combinaci on de los vectores propios 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
2 n 1 2 2 x 2 = 1 2 1 v + 2 2 v + ... + n n v . . . 1 k 2 k n x k = 1 k 1 v + 2 2 v + ... + n n v n

321

x =

1 k 1

v +
i=2

i 1

i 1

vi

Esta u ltima factorizaci on est a bien denida si 1 = 0, o sea, si x0 no es 1 ortogonal a v . Como |i /1 | < 1, entonces para valores grandes de k
1 x k 1 k 1v .

De manera an aloga
+1 1 xk+1 1 k 1 v .

Entonces xk+1 1 xk .
k Al tomar xk j , una componente no nula de x , +1 xk j

xk j

1 .

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

322 hallar el valor propio dominante 3 6 . 8

k 1 k k k A continuaci on est an los valores k , xk 1 , x2 , x3 , x1 /x1 :

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 aproximaci on de 1 , pero tiene un inconveniente: ||xk || . La soluci on es normalizar. Sea z 0 = x0 . z k = Axk1 , xk = zk ||z k ||2 . k = 1, 2, 3, ... (9.4) (9.5)

Ejemplo 9.4. Usar las f ormulas anteriores, partiendo de x0 = (1, 1, 1), para hallar el valor propio dominante de 1 2 3 A = 4 5 6 . 7 8 8
k 1 k k k A continuaci on est an los valores k , xk 1 , x2 , x3 , z1 /x1 :

-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, adem as de incluir la normalizaci on, tiene una manera m as eciente de aproximar . Algoritmo de la potencia para k = 1, ...,maxit z k = Axk1 zk xk = k ||z ||2 k Tzk k = x 1 k 1 si |k 1 1 | , parar n-para El proceso se detiene satisfactoriamente cuando dos aproximaciones, k 1 y k 1 1 , son muy parecidas. La salida no deseada se tiene cuando se llega al n umero m aximo de iteraciones. La rapidez de la convergencia est a ligada al valor |1 /2 |. Si este valor es cercano a 1 , la convergencia es lenta. Si es mucho mayor que 1 , la convergencia es r apida. Ejemplo 9.5. Hallar el valor propio 1 A = 4 7 partiendo de x0 = (1, 1, 1). dominante de 2 3 5 6 8 8

k , z k , z k , x k , x k , x k , k : Los siguientes valores corresponden a k , z1 2 3 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 u ltimo xk obtenido es una buena aproximaci on de un vector propio normalizado asociado a 1 .

9.3.

M etodo de la potencia inversa

Este m etodo se puede aplicar para hallar n , el valor propio menos dominante de una matriz diagonalizable e invertible A, cuando este existe, o sea, 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 m etodo de la potencia a A1 . En lugar de escribir expl citamente

CAP ITULO 9. VALORES PROPIOS

325

z k = A1 xk1 es preferible presentarlo como la soluci on del sistema Az k = x k 1 . Potencia inversa para k = 1, ...,maxit resolver Az k = xk1 zk xk = k ||z ||2
k = xk z k 1
T

k k1 | , parar si |1 1

n-para
k. Cuando se obtenga la convergencia, n 1/1

Ejemplo 9.6. Aplicar, partiendo de x0 = (1, 1, 1), el m etodo de la potencia 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.

Factorizaci on QR

Sea A Rmn . Una factorizaci on QR de A consiste en encontrar matrices Q y R tales que A = QR. Q Rmm es ortogonal. R Rmn es triangular superior ( rij = 0 si i > j ). El proceso de factorizaci on QR, por medio de diferentes clases de matrices 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 a Q1 A. Finalmente se obtiene Qr Qr1 Q2 Q1 A = R triangular superior. Como las matrices Q son ortogonales, entonces
T T T T T T T QT 1 Q2 Qr 1 Qr Qr Qr 1 Q2 Q1 A = Q1 Q2 Qr 1 Qr R

T T T A = QT 1 Q2 Qr 1 Qr R

A = QR

En los programas, generalmente se empieza con A y sobre ella se va reescribiendo el producto Q1 A, despu es Q2 Q1 A. Al nal se tendr a, en donde

CAP ITULO 9. VALORES PROPIOS

327

estaba A, la matriz R. Por otro lado, se puede empezar con Q = I , y encima T se va reescribiendo el producto IQT e s QT 1 , despu 1 Q2 . Finalmente en Q se T T T T tendr a el producto Q1 Q2 Qr1 Qr .

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 ) = I n 2 v v
T

v v T = In 2uuT .

A veces, al mismo tiempo que se obtiene el vector v deseado, se calcula el n umero 2 = T , v v entonces es com un expresar H en funci on de v y de , aunque no es 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 sim etrica y ortogonal. Adem as, si x Rn1 se puede escoger v para que H v x < e1 > . En Algebra Lineal, dados x1 , x2 , ... xk vectores del espacio vectorial en consideraci on, < x1 , x2 , ..., xk > denota el subespacio generado por estos 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 proyecci on de x sobre U , y como p es el punto medio entre x y y , entonces y es el punto sim etrico de x con respecto a hiperplano U o la reexi on de x con respecto a U . Como H es ortogonal, entonces ||y || = ||x||. Si se desea que y = e1 , entonces y = ||x|| e1 . Sea U , o sea, v T = 0. F acilmente se comprueba que (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 x = 1 , y = 0 , 0 2 O tambi en, 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 s olo se requiere almacenar los valores v2 , v3 , ..., vn . Generalmente estos valores se pueden almacenar donde estaban x2 , x3 , xn . Adem as, no es necesario construir expl citamente H , basta con conocer v y . Denotaremos por H (x) la matriz que proyecta x sobre el subespacio < e1 >. La siguiente funci on, ver [Par80] y [GoVa96], presenta una manera eciente de calcular v y a partir de un vector columna x. Est a escrita en seudoc odigo utilizando parcialmente notaci on de Scilab. [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 1+t si x1 0 v 1 = x1 sino v1 = t/(x1 + ) n-si 2 /(t + v 2 ) = 2v1 1 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 angulo y 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= f acilmente: si j = i, si j = k, en los dem as casos. rotaci on denida en el 0 0 s c . 0 .. 0 0 0 i k 0 1

Si se desea que yk = 0, basta con tomar xi


2 x2 i + xk

, .

x2 i

xk +

x2 k

En la pr actica, es mejor utilizar la siguiente versi on para el c alculo de c y s (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 funci on 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 funci on se obtiene

c = 0.5547002 s = 0.8320503

2 3.6055513 = . 3 0

9.4.3.

Factorizaci on QR con matrices de Householder

Para facilitar la presentaci on del algoritmo, usaremos la siguiente notaci on. Si H Rpp es una matriz de Householder, con p n, H H = H (n, H ) = I n p 0 0 H si p = n si p < n

CAP ITULO 9. VALORES PROPIOS La matriz H Rnn tambi en es ortogonal.

332

En lo que sigue se supondr a que A siempre indica la matriz obtenida al hacer 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 u nicamente con las las 2,..., m de A. Se construye ( m 1) ( m 1) H2 R tal que H2 A(2 : m, 2) = 2 e1 R(m1)1 , o sea, [v, ] = vHouse(A(2 : m, 2)) H2 = H (v, ) H2 = H (m, H2 ) A = H2 A Q = 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 iteraci on k , las columnas 1, ..., k 1 de A son nulas debajo de la diagonal, entonces no es necesario recalcularlas. La presentaci on

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 continuaci on hay dos presentaciones de la factorizaci on QR por medio de matrices de Householder, la primera versi on es m as f acil de presentar. [Q, R] = QR_House (A) [m, n] = tama no(A) 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 versi on es mucho m as eciente. [Q, R] = QR_House (A) [m, n] = tama no(A) 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 factorizaci on QR de 2 3 4 5 4 3 1 0 A= 2 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 informaci on: A(k : m, : ), y v . De manera an aloga, es necesario implementar ecientemente el producto Q( : , k : m)Hk a partir de la informaci on: Q( : , k : m), y v.

9.4.4.

Factorizaci on QR con matrices de Givens

Al utilizar matrices ortogonales de Givens, tambi en se busca, columna por 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 , despu es otra matriz para anular am1,k , despu es otra matriz para anular am2,k y , nalmente, otra matriz para anular ak+1,k . [Q, R] = QR_Givens(A) [m, n] = tama no(A) 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 factorizaci on QR de 2 3 4 5 4 3 1 0 A= 2 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) factorizaci on QR de A sea eciente hay que tener en 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. Obs ervese que siempre se trata de las las i 1 e i. Es necesario implementar ecientemente el producto GT A a partir de la informaci on: A, c y s.

CAP ITULO 9. VALORES PROPIOS

339

De manera an aloga, es necesario implementar ecientemente el producto QG a partir de la informaci on: Q, c y s. 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 factorizaci on QR, si se est a buscando un cero en la posici on (i, k ) de la matriz A, se modican u nicamente, 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 n umero de operaciones.

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.

Soluci on por m nimos cuadrados

Una de las aplicaciones importantes de la factorizaci on QR es la soluci on de sistemas de ecuaciones lineales por m nimos cuadrados. El m etodo m as popular 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 m etodo QR resulta m as preciso 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 ||Ax b||2 2 es equivalente a buscar 2 el m nimo de ||P Ax P b||2 para cualquier matriz ortogonal P . Si QR = A es la factorizaci on QR de A, entonces, se desea minimizar
T 2 T T 2 ||QT Ax QT b||2 2 = ||Q QRx Q b||2 = ||Rx Q b||2 .

Sea A Rmn , c = QT b, R= U , 0qn c= d , r

con U Rpn triangular superior, cuya u ltima la no es nula, d Rp1 , q 1 r R , p + q = m. Entonces Rx c = Ux d r

2 2 ||Ax b||2 2 = ||U x d||2 + ||r ||2 .

Basta con buscar x soluci on de U x = d. Si el sistema anterior tiene soluci on, entonces 2 min ||Ax b||2 2 = ||r ||2 . n
x R

Si U es cuadrada ( Rnn ) e invertible, la soluci on es u nica. 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 A= , b = 7.0 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 2 = 0.0071667 .

9.5.

M etodo QR para valores propios de matrices sim etricas

El m etodo m as popular para obtener los valores propios de una matriz sim etrica (todos reales) es el m etodo QR. Es posiblemente el m as ecente para casos generales. El proceso tiene dos pasos: 1. Obtener, por matrices ortogonales, una matriz T tridiagonal sim etrica semejante a A, o sea encontrar Q ortogonal tal que

CAP ITULO 9. VALORES PROPIOS

342

QAQT = T tridiagonal sim etrica. 2. Obtener los valores propios de T .

9.5.1.

Tridiagonalizaci on por matrices de Householder para matrices sim etricas

Sea A Rnn sim etrica, H = H (n, H (A(2 : n, 1)). Es claro que HA es nula, en la columna 1, por debajo de la subdiagonal. Se puede observar, y tambi en demostrar, que HAH , adem as de ser nula en la primera columna por debajo de la subdiagonal, tambi en es nula en la primera la a la derecha de la superdiagonal, y obviamente tambi en es sim etrica.... 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, sim etrica, semejante a A. Como es costumbre, los productos 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 a descrito el algoritmo, se supone que se hace expl citamente el producto HAH . En realidad se puede hacer de manera m as eciente, teniendo en cuenta que una parte de H es la identidad, que se conoce el nuevo valor de ak+1,k , que debajo habr a ceros, y que HAH tambi en es sim etrica. 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.

Tridiagonalizaci on por matrices de Givens para matrices sim etricas

Con los conceptos e ideas de la factorizaci on QR por medio de matrices de Givens y de la tridiagonalizaci on con matrices de Householder, resulta naturalmente el proceso de tridiagonalizaci on con matrices de Givens. 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 posici on (n, 1), despu es en la posici on (n 1, 1), as sucesivamente hasta la posici on (3, 1). Al mismo tiempo se hace lo an alogo con la primera la. Despu es se trabaja con segunda columna y segunda la, y as sucesivamente, 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 u nicamente las operaciones necesarias.

9.5.3.

Valores propios de matrices tridiagonales sim etricas

Sea T una matriz tridiagonal sim etrica. En lo que sigue en esta secci on, se supone que T es tridiagonal sim etrica. La matriz T puede ser el resultado del proceso de tridiagonalizaci on de Householder o de Givens. La matriz T se llama no reducida, [GoV96] p ag. 416, si todos lo elementos subdiagonales (y los superdiagonales) son no nulos. Una matriz es reducida si alg un elemento subdiagonal o (superdiagonal) es nulo. 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 6 7 0 0 7 0 0 , 0 5 , 0 0 8 9 0 0 0 7 8 0 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 tama no es 1 1 o de mayor tama no pero tridiagonal no 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 sim etrico no reducido, agregando los bloques 1 1 que 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 factorizaci on QR de A y sea T + = RQ QT QR = QT T R = QT T T + = RQ = QT T Q. Luego T + es sim etrica y semejante a T . Adem as se puede demostrar que tambi en es tridiagonal. 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 factorizaci on QR de T 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 alg un elemento sub 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 alg un elemento |ti+1,i | 1010 . 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 m as utilizados es el desplazamiento de Wilkinson d = tn1,n1 tnn = tnn + d signo(d) = tnn t2 n,n1 d 2 + t2 n,n1 d 2 + t2 n,n1

d + signo(d)

Para una matriz T Rnn tridiagonal, sim etrica y no reducida, el proceso que se aplica es el siguiente: mientras T sea no reducida c alculo de T = T I QR = T factorizaci on QR de T 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 descripci on eciente de la parte principal de este proceso, desde el c alculo de hasta T = T + I . 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 prop osito simplemente informativo, los valores propios obtenidos por la funci on spec son 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 sim etrica tridiagonal se busca desde la esquina S.E. hacia la esquina N.O., el primer bloque de tama no superior a uno que sea no 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 sim etrica:

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` ebre lin eaire num erique, Ellipses, Paris, 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., An alisis num erico, Addison-Wesley Iberoamericana, Wilmington, 1994. [Man04] Mantilla I., An alisis Num erico, Universidad Nacional, Fac. de Ciencias, Bogot a, 2004 [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