Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mns
Mns
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
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.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
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
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)
viii
f ( x) = f ( x) xn
f ( x) x1 f ( x) x2 . . .
(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
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
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
M t
m a c c b
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 .
n n n n
lim an = 0
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:
| Rn ( 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!
f (x) = cos(x)
f (x) = sen(x)
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
10
|error|
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) =
(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
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
= 5x1 , = 0,
8 = 54(4x3 1 + 6x4 ) + 8.
1.5.
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.
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|
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 ).
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.
lim
|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.
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.
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, ...
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.
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)
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.
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
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.
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:
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.
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.
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)?
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
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.
25
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.
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.
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.
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.
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
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.
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.
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.
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
2.6.
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.
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.
33
+ x3 + x4 = 8
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.
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
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
CAP ITULO 2.
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.
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.
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.
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.
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
i2 =
i=1
m(m + 1)(2m + 1) 6
i(i + 1) =
n 1 i=1
(i 2 + i ) =
n3 n n3 3 3 3
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.
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:
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
1 4.25 79 2.8
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.
42
Resolver Ly = b para obtener y . Resolver U x = y para obtener x. Ejemplo 2.4. Resolver 4x1 + 3x2 2x3 + x4 = 8
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
1 x1 x2 4.25 x3 79 x4 2.8 1 2 3 4
T
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.
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.
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.
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
+ x3 + x4 = 8 -2 1 1 1 1 5 2 1 4 -8 -7 -8
3 2 3 0
CAP ITULO 2.
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
: 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
CAP ITULO 2.
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
CAP ITULO 2.
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.
48
Con lik = 0.6171 se obtiene 1.3310 1.2100 0.0000 0.1473 0.0000 0.0000
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.
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.
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.
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
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.
52
2.11.1.
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)
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 .
= (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.
53
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.
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
55
1 2 2 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
CAP ITULO 2.
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
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 .
u2 ik ,
k = 2, ..., n.
(2.8)
Luego akj
k 1 i=1
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
10 ( 2(4) + 0(1) ) = 2 1
5 (22 + 02 ) = 1
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.
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.
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.
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
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
de U1 de U2 de U3 de Un
(n i )i =
n3 n n3 . 6 6
(n + 1 i )i =
n3 n2 n n3 + + . 6 2 3 6
2.11.4.
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.
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
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.
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.
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.
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
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
CAP ITULO 2.
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
= 2
i=1 4
= 2
i=1
= 2 AT (Ax b) = 2 AT (Ax b)
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.
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
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.
67
El error, Ax b, es:
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
CAP ITULO 2.
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.
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.
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 :
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.
71
u2 = 6 , 4 f2 = = 4, 1 d3 = 5 4 6 = 29 ,
CAP ITULO 2.
72
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.
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.
74
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.
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
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
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
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
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.
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).
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
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
(x) = 0 sssi
(x) 0, x V,
:V R
x = 0, (desigualdad triangular)
(x + y ) (x) + (y ), x, y V.
85
1/2
||x||2 = ||x|| =
n
x2 i
i=1 1/p p
norma euclidiana,
||x||p =
i=1
| xi |
con > 0 y || || una norma, ||x||A = xT Ax con A denida positiva. Se puede mostrar que lim ||x||p = ||x|| = ||x||max .
||x||
||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
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
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
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||
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
Veamos
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 ||
89
x X
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||
Para las 3 normas vectoriales m as usadas, las normas matriciales generadas son:
n
1j n
i=1
|aij |,
||A|| = max
|aij |.
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)
||A||2 = 5.1166727,
i=1
|aij |
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
= max
||x||1 =1
= max
||x||1 =1
| xj |
|aij |
= max
||x||1 =1
| xj | sj
donde sj =
n i=1 |aij |.
j =1
j j
Luego
max j
j
n j =1
j .
92
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 |.
|aik | = max
j
i=1
|aij |
||Ax||1
n j i=1
= es decir,
|aik | = max
|aij |
||A||1 max
j
i=1
|aij |.
(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,
x=
i=1
i v i .
Entonces
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
xT AT Ax v AT Av 1 v 1 T 1 v 1 1 v 1 T v 1 1 .
n 1T
j =1
|aij |
95
= max max |
||x|| =1
aij xj |
max max
||x|| =1 i
j =1
|aij | |xj |
j =1
|aij | ||x||
n
j =1
|aij |
= max
i j =1
|aij |
|akj | = max
i
x j =
j =1
signo(akj ) =
96
||A|| ||Ax ||
i
||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.
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
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.
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)
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
||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 .
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
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
Ahora s , en el m etodo de Jacobi, los valores calculados de x2 y x3 se utilizan para volver a clacular x1 .
3.6.
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.
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 .
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
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
(D + L)x = (1 )D U x + 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
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.
111
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.
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)
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.
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)
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.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
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
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.
coc
3.10.
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
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
120
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),
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
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
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.
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.
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, ...,
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.
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.
126
y = f (x)
(x0 , f (x0 ))
(x1 , f (x1 )) x2 x1 x0
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)
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.
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.
129
// func
f(x)
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.
130
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.
(x xn )2 , 2
I (x, 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)
max |f (x)|
x I
CAP ITULO 4.
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 | ,
| x x n | M | x x n 1 | ,
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.
133
y = f (x)
(x0 , f (x0 ))
(x1 , f (x1 )) x2 x1 x0
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.
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.
135
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.
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
CAP ITULO 4.
137
y = f (x)
(bk , f (bk ))
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.
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.
138
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.
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.
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.
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.
142
y = g (x)
(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],
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.
143
y=x
y = g (x)
y=x
y = g (x)
x0
x2 x x3
x1
CAP ITULO 4.
144
y = g (x)
y=x
x x0 x2
x3
x4
y = g (x)
y=x
x3
x1 x x0 x2
x4
CAP ITULO 4.
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.
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.
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.
147
g (xi ) = mxi + b
(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.
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.
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.
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
se puede reescribir con super ndices en lugar de sub ndices: xk+1 = xk f (xk ) . f (xk )
CAP ITULO 4.
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
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.
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.
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.
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.
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.
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.
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
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.
157
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
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.
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.
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.
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.
161
u4 = v4 dv3 ev2
Para facilitar las f ormulas es u til introducir dos coecientes adicionales, vn y vn+1 , que no inuyen sobre q , denidos por
o sea,
CAP ITULO 4.
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 = 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
CAP ITULO 4.
163
resolver el sistema
(4.24) (4.25)
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
CAP ITULO 4.
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
(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
CAP ITULO 4.
165
=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.
166
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.
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
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
169
-1.7379 -3.9324 -3.6619 -2.0000 -----------------------------------------------------------4.0000 9.0509 8.4283 4.6033 0.0000 0.0000
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,
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.
170
4.7
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
, 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
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
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
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
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
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
5.2.
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.
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
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
5.2.3.
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 )
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) 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
p(5.8) = 0.4654393
(z )| = 0.9589243
|(5.8)| = 0.0288
5.3.
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 ) ,
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).
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)
Y APROXIMACION INTERPOLACION
186
f [ x2 , x1 ] f [ x1 , x2 ] x3 x1 f [ x2 , x3 ] f [ x1 , x2 ] x3 x1 Luego
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.
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.
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
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
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)
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.
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.
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
CAP ITULO 5.
Y APROXIMACION INTERPOLACION
197
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
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
5.5.
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
0 0 1 2 3 4 5
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)
(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,
CAP ITULO 5.
Y APROXIMACION INTERPOLACION
202
i = 1, ..., n 1, i = 1, ..., n 2,
6ai hi + 2bi = 2bi+1 i = 1, ..., n 2. Sea dn := yn una variable adicional. Esta variable se utilizar 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 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)
(5.47) (5.48)
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
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.
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
. . . 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)
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.
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
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
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
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
6.3.1.
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 .
eloc =
x0
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
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
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 ]
Y DIFERENCIACION INTEGRACION
218
M1 f (zi ) M2 ,
n
nM1
1 M1 n
i=1 n
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
(6.5)
6.4.
F ormula de Simpson
x2 x0 x2
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
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
(6.7)
y2j 1 + 2
k 1 j =1
y2j + yn )
Ejemplo 6.3.
0.8 0
ex dx
6.4.1.
Para facilitar la deducci on del error local, consideremos la integral entre h 4 y h. Sea f C[h,h] .
h h
f (x) dx
p2 (x) dx,
h
=
h
f (x) dx
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 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],
1 3 1,
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
j =1
f (4) (zj ) =
j =1 k
n (4) f ( ), 2 b a (4) f ( ). 2h
f (4) (zj ) =
j =1
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
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.
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
6.5.1.
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
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
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 ,
p+1
em G =
Im In 2p 1 Im In = 3 Im In = 15
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,
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
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
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
( ) 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 ) ,
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.
Y DIFERENCIACION INTEGRACION
229
1 1
xk dx =
0 2 k+1
1
si k es impar, si k es par.
w1 =
1 1
1 dx = 2, x dx = 0.
1
w 1 x1 =
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.
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
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
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
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
2n n!
(6.20)
xk Pn (x) dx = 0 ,
1 1 1 1 1
k = 0, 1, 2, ..., n 1, m = n,
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.
6.9.
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 ).
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
Y DIFERENCIACION INTEGRACION
235
f (xi ) =
(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 ,
y2 y0 h2 f ( ) , [ x0 , x2 ] . 2h 6
(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
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
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,
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
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)
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 + 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
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
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
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.
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
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
= 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)
ECUACIONES DIFERENCIALES
259
= , 1 R2 = 2 R1 = 1 R2 .
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.
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.
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
i2
...
9 32 7200 2197 8 2
(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
ECUACIONES DIFERENCIALES
263
y (1) = 0.7182818
y = 2x2 4x + y
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.
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.
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.
267
7.8.
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 (x3 ) = y (x 2 ) +
x2 3h
y (x3 ) = y (x 2 ) +
2h
CAP ITULO 7.
ECUACIONES DIFERENCIALES
268
p2 (x)dx
2h 3h 2h
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
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
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
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.
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
y (x2 ) = y (x 1 ) +
x1 2h
y (x2 ) = y (x 1 ) +
h
2h
y (x2 ) y (x 1 ) + y (x2 ) y (x 1 ) +
p2 (x)dx
h 2h h
CAP ITULO 7.
ECUACIONES DIFERENCIALES
272
(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 +
(7.30)
CAP ITULO 7.
ECUACIONES DIFERENCIALES
273
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
0 f2 = 1.5120493
1 f2 = 1.5170487 2 f2 = 1.5175694
2 y2 = 0.0175694
3 y2 = 0.0176237 = y2
f2 = 1.5176237.
CAP ITULO 7.
ECUACIONES DIFERENCIALES
274
0 f3 = 1.2720296
2 y3 = 0.3689657
3 y3 = 0.3686899
4 = 0.3686612 = y3 y3 . . .
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
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.
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 .
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
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 ( x ) = x 3 .
CAP ITULO 7.
ECUACIONES DIFERENCIALES
278
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)
7.10.1.
En Scilab
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.
Una ecuaci on diferencial ordinaria, de orden m, con condiciones iniciales, se puede escribir de la siguiente manera:
CAP ITULO 7.
ECUACIONES DIFERENCIALES
281
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 )
(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.
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 ),
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.
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)
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 ,
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
u1 = 2p1 + hq1
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
= (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
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).
ECUACIONES DIFERENCIALES
290
y (0) = 1
Cap tulo 8
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,
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.
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
293
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)
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 ),
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
En algunas las
n j =1 j =i
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
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.
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, ...
299
t3 t2 t1 0 0
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.
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.3.1.
La segunda derivada 2 u/x2 se aproxima como en el caso el ptico, la derivada u/t se aproxima hacia adelante:
(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
= 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
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
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.
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)
= 1 + 2.
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
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
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
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
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)
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.
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
310
8.4.
0 < x < L,
0 < t,
(8.33)
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.
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)
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 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
(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.
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)
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)
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.
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
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
= (1 )(4 ) + 8
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.
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.
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 .
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
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
9.3.
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
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
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
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 > .
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
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
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
, .
x2 i
xk +
x2 k
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
c = 0.5547002 s = 0.8320503
2 3.6055513 = . 3 0
9.4.3.
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
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
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.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
= 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
7.0710678 2.236068 0 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.
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
3 4 1 5.3357838 -0.7276069 0 0 1 0 0
0 0 0 -0.2425356 -0.9701425
i = 4 c = -0.436436 G = 1 0 0 1 0 0 0 0 0 0
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
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.
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:
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.
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)
x = B ( : , i) B ( : , i) = c B ( : , i) + s B ( : , j ) B ( : , j ) = s x + c B ( : , j )
9.4.5.
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,
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 .
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
-7.0710678 -2.236068 0 0 0
c : U
-59.029274
-21.108482
= -7.0710678 0 0
-7.0710678 -2.236068 0
d : r x : :
4.0958333
As , ||r||2 2 = 0.0071667 .
9.5.
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
342
9.5.1.
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
H A = 2 7.0710678 0 0 H A H = 2 7.0710678 0 0
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.
k = 2 H = - 0.9765473 - 0.2153028
- 0.2153028 0.9765473
344
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.
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
i = 3 c = 0.424264 A = 2 7.0710678 0 0
s = 0.905539
k = 2 i = 4
346
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.
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 .
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
-4.9923018 -5.0076864 0 0
T+
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.
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
0 0 -0.7764250 1.1710681
k = 2 T+ = 13.296028 -3.5861468 0 0
0 0 0.3062809 1.2572771
k = 10 T+ = 15.191934 -0.0059687 0 0
0 0 0.0002528 1.2777606
349
k = 20 T+ = 15.191938 -0.0000015 0 0
0 0 3.577E-08 1.2777606
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
350
0 0 -8.844E-12 0.2777606
T + s I 15.191935 -0.0052796 0 0
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
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
0 0 -0.6390185 -0.7617370
0 0 -0.6390185 2.0485127
k = 2 mu =
2.1635102
352
0 0 -0.6390185 -0.1149975
0 0 0.0357613 -0.1932052
0 0 0.0357613 1.970305
k = 3 mu = T
1.9698396
0 0 0.0357613 0.0004654
0 0 0.0000006 0.0000557
0 0 0.0000006 1.9698954
353
0 0 0.0000006 1.379E-13
0 0 -2.585E-17 7.811E-16
0 0 -2.585E-17 1.9698954
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:
354
0 0 -6 0
0 0 -0.6390185 2.0485127
0 0 -0.6390185 2.0485127
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
0 0 0.0357613 1.970305
0 0 0.0000006 1.9698954
0 0 0.0000006 1.9698954
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 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
0 -0.0000058 5.0194039
0 -0.0000058 5.0194039
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 :
-2.914E-16 10.51487
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 :
-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.
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.