Sie sind auf Seite 1von 398

METODOS NUMERICOS CON SCILAB

H ector Manuel Mora Escobar hectormora@yahoo.com hmmorae@unal.edu.co www.hectormora.info 3 de enero de 2013

Indice general
NOTACION 1. Preliminares 1.1. Repaso de algunos conceptos de c alculo . . . . . . . . . . . . . 1.2. Sucesiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Polinomio de Taylor . . . . . . . . . . . . . . . . . . . . . . .

VII

1 1 4 6

1.4. Derivadas parciales . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5. Teorema espectral para matrices sim etricas . . . . . . . . . . . 12 1.6. Notaci on O grande . . . . . . . . . . . . . . . . . . . . . . . . 13 1.7. Orden de convergencia . . . . . . . . . . . . . . . . . . . . . . 14 1.8. N umeros en un computador . . . . . . . . . . . . . . . . . . . 17 1.9. Truncamiento y redondeo . . . . . . . . . . . . . . . . . . . . 19 1.10. Error absoluto y relativo . . . . . . . . . . . . . . . . . . . . . 20 1.11. Errores lineal y exponencial . . . . . . . . . . . . . . . . . . . 21 1.12. Condicionamiento de un problema . . . . . . . . . . . . . . . . 22 1.13. Teorema de punto jo de Banach . . . . . . . . . . . . . . . . 23 2. Sistemas de ecuaciones lineales 25

2.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.2. Notaci on para submatrices en Scilab . . . . . . . . . . . . . . 27 i

ii

INDICE GENERAL

2.3. M etodos ingenuos . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4. Sistema diagonal . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.5. Sistema triangular superior . . . . . . . . . . . . . . . . . . . . 29 2.5.1. N umero de operaciones . . . . . . . . . . . . . . . . . . 32 2.6. Sistema triangular inferior . . . . . . . . . . . . . . . . . . . . 33 2.7. M etodo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.7.1. N umero de operaciones . . . . . . . . . . . . . . . . . . 40 2.8. Factorizaci on LU . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.9. M etodo de Gauss con pivoteo parcial . . . . . . . . . . . . . . 45 2.10. Factorizaci on LU =PA . . . . . . . . . . . . . . . . . . . . . . 50 2.11. M etodo de Cholesky . . . . . . . . . . . . . . . . . . . . . . . 54 2.11.1. Matrices denidas positivas . . . . . . . . . . . . . . . 54 2.11.2. Factorizaci on de Cholesky . . . . . . . . . . . . . . . . 57 2.11.3. N umero de operaciones de la factorizaci on . . . . . . . 63 2.11.4. Soluci on del sistema . . . . . . . . . . . . . . . . . . . 64 2.12. Soluci on por m nimos cuadrados . . . . . . . . . . . . . . . . 66 2.12.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.12.2. Ecuaciones normales . . . . . . . . . . . . . . . . . . . 68 2.13. Sistemas tridiagonales . . . . . . . . . . . . . . . . . . . . . . 72 2.14. C alculo de la inversa . . . . . . . . . . . . . . . . . . . . . . . 77 3. M etodos iterativos para sistemas de ecuaciones lineales 84

3.1. M etodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . 85 3.2. Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . 91 3.2.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 92 3.3. Normas matriciales . . . . . . . . . . . . . . . . . . . . . . . . 92 3.3.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 102

ii

iii

INDICE GENERAL

3.4. Condicionamiento de una matriz . . . . . . . . . . . . . . . . . 102 3.5. M etodo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . 107 3.6. M etodo iterativo general . . . . . . . . . . . . . . . . . . . . . 108 3.7. M etodo de sobrerrelajaci on . . . . . . . . . . . . . . . . . . . . 110 3.8. M etodos de minimizaci on . . . . . . . . . . . . . . . . . . . . . 117 3.9. M etodo del descenso m as pendiente . . . . . . . . . . . . . . . 118 3.10. M etodo del gradiente conjugado . . . . . . . . . . . . . . . . . 122 4. Ecuaciones no lineales 128

4.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.2. M etodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . 132 4.2.1. Orden de convergencia . . . . . . . . . . . . . . . . . . 136 4.3. M etodo de la secante . . . . . . . . . . . . . . . . . . . . . . . 139 4.4. M etodo de la bisecci on . . . . . . . . . . . . . . . . . . . . . . 142 4.5. M etodo de Regula Falsi . . . . . . . . . . . . . . . . . . . . . . 146 4.6. Modicaci on del m etodo de Regula Falsi . . . . . . . . . . . . 148 4.7. M etodo de punto jo . . . . . . . . . . . . . . . . . . . . . . . 149 4.7.1. Modicaci on del m etodo de punto jo . . . . . . . . . . 156 4.7.2. M etodo de punto jo y m etodo de Newton . . . . . . . 157 4.8. M etodo de Newton en Rn . . . . . . . . . . . . . . . . . . . . 157 4.8.1. Matriz jacobiana . . . . . . . . . . . . . . . . . . . . . 158 4.8.2. F ormula de Newton en Rn . . . . . . . . . . . . . . . . 159 4.9. M etodo de Muller . . . . . . . . . . . . . . . . . . . . . . . . . 162 4.10. M etodo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . 169 5. Interpolaci on y aproximaci on 179

5.1. Interpolaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 5.1.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 181 iii

iv

INDICE GENERAL

5.1.2. Caso general . . . . . . . . . . . . . . . . . . . . . . . . 182 5.2. Interpolaci on polinomial de Lagrange . . . . . . . . . . . . . . 185 5.2.1. Polinomios de Lagrange . . . . . . . . . . . . . . . . . 186 5.2.2. Existencia, unicidad y error . . . . . . . . . . . . . . . 189 5.3. Diferencias divididas de Newton . . . . . . . . . . . . . . . . . 191 5.3.1. Tabla de diferencias divididas . . . . . . . . . . . . . . 195 5.3.2. C alculo del valor interpolado . . . . . . . . . . . . . . . 197 5.4. Diferencias nitas . . . . . . . . . . . . . . . . . . . . . . . . . 202 5.4.1. Tabla de diferencias nitas . . . . . . . . . . . . . . . . 203 5.4.2. C alculo del valor interpolado . . . . . . . . . . . . . . . 204 5.5. Trazadores c ubicos, interpolaci on polinomial por trozos, splines 207 5.6. Aproximaci on por m nimos cuadrados . . . . . . . . . . . . . . 215 6. Integraci on y diferenciaci on 221

6.1. Integraci on num erica . . . . . . . . . . . . . . . . . . . . . . . 221 6.2. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 6.3. F ormula del trapecio . . . . . . . . . . . . . . . . . . . . . . . 223 6.3.1. Errores local y global . . . . . . . . . . . . . . . . . . . 226 6.4. F ormula de Simpson . . . . . . . . . . . . . . . . . . . . . . . 229 6.4.1. Errores local y global . . . . . . . . . . . . . . . . . . . 230 6.5. Otras f ormulas de Newton-Cotes . . . . . . . . . . . . . . . . . 234 6.5.1. F ormulas de Newton-Cotes abiertas . . . . . . . . . . . 235 6.6. Cuadratura adaptativa . . . . . . . . . . . . . . . . . . . . . . 236 6.7. Cuadratura de Gauss-Legendre . . . . . . . . . . . . . . . . . 238 6.7.1. Polinomios de Legendre . . . . . . . . . . . . . . . . . 244 6.7.2. Cuadratura de Gauss-Laguerre y Gauss-Hermite . . . . 245 6.8. Derivaci on num erica . . . . . . . . . . . . . . . . . . . . . . . 247

iv

INDICE GENERAL

6.8.1. Derivadas parciales . . . . . . . . . . . . . . . . . . . . 249 6.8.2. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 250 7. Ecuaciones diferenciales 254

7.0.3. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 255 7.1. M etodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . 256 7.2. M etodo de Heun . . . . . . . . . . . . . . . . . . . . . . . . . 260 7.3. M etodo del punto medio . . . . . . . . . . . . . . . . . . . . . 263 7.4. M etodo de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . 265 7.5. Deducci on de RK2 . . . . . . . . . . . . . . . . . . . . . . . . 270 7.6. Control del paso . . . . . . . . . . . . . . . . . . . . . . . . . . 272 7.7. Orden del m etodo y orden del error . . . . . . . . . . . . . . . 277 7.7.1. Vericaci on num erica del orden del error . . . . . . . . 279 7.8. M etodos multipaso expl citos . . . . . . . . . . . . . . . . . . 280 7.9. M etodos multipaso impl citos . . . . . . . . . . . . . . . . . . 284 7.10. Sistemas de ecuaciones diferenciales . . . . . . . . . . . . . . 290 7.10.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 292 7.11. Ecuaciones diferenciales de orden superior . . . . . . . . . . . 294 7.12. Ecuaciones diferenciales con condiciones de frontera . . . . . 297 7.13. Ecuaciones lineales con condiciones de frontera . . . . . . . . 301 8. Ecuaciones diferenciales parciales 306

8.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 8.2. El pticas: ecuaci on de Poisson . . . . . . . . . . . . . . . . . . 307 8.3. Parab olicas: ecuaci on del calor . . . . . . . . . . . . . . . . . . 313 8.3.1. M etodo expl cito . . . . . . . . . . . . . . . . . . . . . 315 8.3.2. M etodo impl cito . . . . . . . . . . . . . . . . . . . . . 319 8.3.3. M etodo de Crank-Nicolson . . . . . . . . . . . . . . . . 322 v

vi

INDICE GENERAL

8.4. Hiperb olicas: ecuaci on de onda . . . . . . . . . . . . . . . . . . 326 8.4.1. M etodo expl cito . . . . . . . . . . . . . . . . . . . . . 327 8.4.2. M etodo impl cito . . . . . . . . . . . . . . . . . . . . . 331 9. Valores propios 335

9.1. Preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.1.1. En Scilab . . . . . . . . . . . . . . . . . . . . . . . . . 339 9.2. M etodo de la potencia . . . . . . . . . . . . . . . . . . . . . . 339 9.3. M etodo de la potencia inversa . . . . . . . . . . . . . . . . . . 343 9.4. Factorizaci on QR . . . . . . . . . . . . . . . . . . . . . . . . . 345 9.4.1. Matrices de Householder . . . . . . . . . . . . . . . . . 346 9.4.2. Matrices de Givens . . . . . . . . . . . . . . . . . . . . 349 9.4.3. Factorizaci on QR con matrices de Householder . . . . . 351 9.4.4. Factorizaci on QR con matrices de Givens . . . . . . . . 356 9.4.5. Soluci on por m nimos cuadrados . . . . . . . . . . . . . 360 9.5. M etodo QR para valores propios de matrices sim etricas . . . . 362 9.5.1. Tridiagonalizaci on por matrices de Householder para matrices sim etricas . . . . . . . . . . . . . . . . . . . . 362 9.5.2. Tridiagonalizaci on por matrices de Givens para matrices sim etricas . . . . . . . . . . . . . . . . . . . . . . . 365 9.5.3. Valores propios de matrices tridiagonales sim etricas . . 367

vi

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). Si A es un conjunto de n umeros reales acotado superiormente, el supremo de A es el m nimo del conjunto de cotas superiores de A: sup A = min{M : M es cota superior de A} . 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 m as peque no contiene a c y a d. Por ejemplo I (3, 5) = [3, 5], I (2, 1.8) = [1.8, 2]. Rn = {(x1 , x2 , . . . , xn ) : xj R, j }. vii

Rmn = conjunto de matrices reales de tama no m n. Si A Rmn , entonces a11 a12 . . . a1n a21 a22 . . . a2n A= . . . . . . . . . . . . am1 am2 . . . amn 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

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

x x x

=
i=1 n

| xi | x2 i
1/2

=
i=1

= max |xi |
1in

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

f ( x) = f ( x) xn

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

2f ( x) xn x1 2f ( x) xn x2 . . . 2 f ( x ) x2 n

f ( x) = 2 f ( x) = Hf ( x) = H ( x) = Hessiano o matriz hessiana de f en x 2f 2f ( x) ( x ) x2 x1 x2 1 2 2f f ( x) ( x) x2 2 f ( x) = x1 x2 . . . . . . 2 f 2f ( x) ( x) x1 xn x2 xn ej = j - esima columna de la matriz identidad : n del ejemplo. ... ... ... ...

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

(A) = max{|i |C : i es valor propio de A}, radio espectral de A. x = max{n Z : n x}, parte entera o parte entera inferior o piso de x.

espec(A) = espectro de A = conjunto de valores propios de A. sssi = si y solamente si M nimo o valor m nimo y argumento que minimiza. Sea f : Rn R una

x = min{n Z : n x}, parte entera superior o techo de x.

ix

x funci on. Cuando existen, min f (x) = min{f (x) : x Rn } argmin f (x) = x si f ( x) = min f (x) Por ejemplo, si f (x1 , x2 ) = (x1 2)2 + (x2 3)2 + 4, min f (x) = 4 argmin f (x) = (2, 3). 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.

Cap tulo 1 Preliminares


El siguiente resultado sobre polinomios se usar a en la secci on de polinomios de Lagrange. Teorema 1.1. Sea p Pn , es decir, p es un polinomio de grado menor o igual a n. Si existen n + 1 valores diferentes x1 , x2 , ..., xn , xn+1 tales que p(xi ) = 0 i, entonces p(x) = 0 x, es decir, p es el polinomio nulo.

1.1.

Repaso de algunos conceptos de c alculo

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

En lo que sigue, mientras no se diga lo contrario, se considera una funci on f : R R y un n umero real c.

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

xc

lim f (x) = f (c) . 1

1.1. REPASO DE ALGUNOS CONCEPTOS DE CALCULO

f ( x)

f ( x) a x x b

Figura 1.1: Teorema de valores extremos Se dice que f es continua en el intervalo [a, b], si es continua en todos los puntos de [a, b]. Se dice que f es derivable en c, si existe el l mite f ( c + h ) f ( c) f ( ) f ( c) = lim . h 0 c h c lim

En este caso, el l mite es la derivada de f en c y se denota por f (c). Teorema 1.2. 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] . Ver Figura 1.1. 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.3. 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. 2

1.1. REPASO DE ALGUNOS CONCEPTOS DE CALCULO

M t

m a c c b

Figura 1.2: Teorema del valor intermedio

Figura 1.3: Teorema de Rolle Ver Figura 1.2. Teorema 1.4. 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. Ver Figura 1.3. Teorema 1.5. 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) = . Ver Figura 1.4. 3 f ( b ) f ( a) ba

1.2. SUCESIONES

Figura 1.4: Teorema del valor medio

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 as : {un }nN o {un } on, n=0 o, si no hay confusi de manera a un m as simple, {un } o un . Ejemplo 1.1. un = 1/n2 , vn = 5 + (1)n m 3 2m . , 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 4

1.2. SUCESIONES

|xn L| para n > N. Es usual escribir

lim xn = L

o xn L
n

o simplemente, si no hay confusi on, xn L Ejemplo 1.2. Sea 1 . n2 Veamos que el l mite es 5. Si = 0.01, se requiere que xn = 5 +

5+

1 5 0.01 n2 1 0.01 n2 1 n2 0.01 100 n2 10 n.

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 5

1.3. POLINOMIO DE TAYLOR

lim xn = +

o simplemente xn + si dado cualquier real M > 0 (generalmente 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 . Ejemplo 1.3. La sucesi on geom etrica an converge o diverge dependiendo de a:

lim an = 0, lim an = 1,

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

n n n

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

7 Este polinomio es

1.3. POLINOMIO DE TAYLOR

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

f (n) ( x) f ( x) 2 (x x ) + + (x x )n p(x) = f ( x) + f ( x)(x x ) + 2 n! n (k ) f ( x) = (x x )k (1.1) k! k=0

llamado polinomio de Taylor de orden n alrededor de x . Teorema 1.6. 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) = p n ( x) + Rn ( x) , donde pn (x) es el polinomio de Taylor de orden n y 7

1.3. POLINOMIO DE TAYLOR

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: |x x |n+1 | Rn ( x) | max f (n+1) (t) ) (n + 1)! tI (x,x (1.3)

Ejemplo 1.4. Obtener la serie de Taylor de f (x) = ex alrededor de x = 0. f ( x) = e x f (x) = ex f (n ) ( x ) = e x f (0) = 1 f (0) = 1 f (0) = 1 f (n) (0) = 1 ex = 1 + x + e =
x n=0

x2 x3 x4 + + + 2 3! 4!

xn . n!

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

1.3. POLINOMIO DE TAYLOR

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

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

f (4) (0) = 0 f (5) (0) = 1

f (0) = 0 f (0) = 1 f (0) = 0 f (0) = 1

sen(x) = x

x3 x5 x7 + + 3! 5! 7!

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

10

1.3. POLINOMIO DE TAYLOR

f (x) = sen(x) f (x) = cos(x) f (x) = sen(x) f (4) (x) = cos(x) f (5) (x) = sen(x) f (0) = 1 f (0) = 0 f (x) = 1 f (x) = 0 f (4) (0) = 1 f (5) (0) = 0 x2 x4 x6 + + 2! 4! 6! Ejemplo 1.7. 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) = 1 cos( ) (x )2 2

p2 (x) = cos( ) sen( )(x ) 1 p 2 ( x) = 1 + ( x ) 2 2

|error|

|3 |3 max | sen(t)| t[3, ] 6 |error| 0.0004731 sen(3) |error| 0.0004731 0.1411 = 0.0000668 |error| 0.0000668 |error| = | cos(3) p2 (3)| = | 0.9899925 0.9899758| = 0.0000167 10

En este caso sencillo, se puede evaluar expl citamente el error:

11

1.4. DERIVADAS PARCIALES

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

k=0 (n+1)

f (k) ( x) k h k!

(1.4) (1.5) (1.6)

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

k=0

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 ( x1 + h, x 2 , ..., x n ) f ( x1 , x 2 , ..., x n ) f . ( x) = lim h 0 x1 h De manera an aloga f f ( x1 , x 2 + h, x 3 , ..., x n ) f ( x1 , x 2 , x 3 , ..., x n ) . ( x) = lim h 0 x2 h 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.

11

12

1.5. TEOREMA ESPECTRAL PARA MATRICES SIMETRICAS

9 Por ejemplo, si f (x1 , x2 , x3 , x4 ) = (4x3 1 + 6x4 ) + 5x1 x2 + 8x4 ,

f x1 f x2 f x3 f x4

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

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

1.5.

Teorema espectral para matrices sim etricas

Este teorema important simo algunas veces no aparece en los libros intro ductorios de Algebra Lineal, raz on por la cual est a en este cap tulo de preliminares. Teorema 1.7. Si A es una matriz real sim etrica, existe una matriz Q orto1 T T gonal (Q = Q o QQ = 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

13 Ejemplo 1.8.

O GRANDE 1.6. NOTACION

1 2 2 3 2 5 0 D= 0 2+ 5 1+ 5 5 1+ 2 5 2 5 Q= A=
1+ 5 2 5 1+ 5 2 5

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.9. Sea f (x) = 4x3 + 5x6 . Recordemos que, si 0 < y < 1, entonces y > y 2 > y 3 > . As , si |x| < 1, | x3 | | x| | 4x3 | 4| x| | x6 | | x| | 5x6 | 5| x| | 4x3 + 5x6 | 9| x| 4x3 + 5x6 = O ( x) . Aunque lo anterior es cierto, es preferible buscar el mayor exponente posible. Mediante pasos semejante a los anteriores llegamos a 4x3 + 5x6 = O ( x3 ) . 13

14

1.7. ORDEN DE CONVERGENCIA

Obviamente no es cierto que 4x3 + 5x6 = O(x4 ). 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 | x k L| Se dice que la convergencia tiene orden de convergencia p > 1, si el siguiente l mite existe. |xk+1 L| lim = > 0. k |xk L|p

En este caso se dice que es la tasa de convergencia. Obs ervese que cuando p = 1 (convergencia lineal), se exige adem as que < 1. La convergencia se llama superlineal si
k

lim

|xk+1 L| = 0. | x k L| |xk+1 L| = 1. | x k L|

La convergencia se llama sublineal si


k

lim

Cuando el orden es 2, se dice que la convergencia es cuadr atica. Si


k

lim

el orden de convergencia es superior a p.

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

Lo ideal es tener ordenes de convergencia altos con tasas peque nas. Una convergencia sublineal es una convergencia muy lenta. Una convergencia 14

15

1.7. ORDEN DE CONVERGENCIA

cuadr atica es muy buena, por ejemplo, el m etodo de Newton que se ver a en un cap tulo posterior. 1 Ejemplo 1.10. xk = + . Esta suceci on converge a . Veamos que pasa k con p = 1. 1 | | + |xk+1 L| k+1 lim = lim 1 k k | x k 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.11. xk = k . Esta suceci 2 que pasa con p = 1 1 k |xk+1 L| 2 +1 = lim lim 1 k k | x k L| 1 2k 2k = lim k+1 k 2 1 = lim k 2 1 = 2 Entonces la sucesi on tiene convergencia lineal con tasa 1/2. 15

16 Ejemplo 1.12.

1.7. ORDEN DE CONVERGENCIA

69 10 xn = 6 + (xn1 6)2 , x1 = Los primeros valores son los siguientes: n 1 2 3 4 5 6 7 8 9 10 Se puede mostrar que

n 2.

xn 6.900000000000000 6.810000000000000 6.656100000000000 6.430467210000001 6.185302018885185 6.034336838202925 6.001179018457774 6.000001390084524 6.000000000001933 6.000000000000000

xn = 6 + yn , n = 1, 2, ... 9 y1 = 10 2 yn = yn 1 , n = 2, 3, ... yn = 9 10
2n1

, n = 1, 2, ...

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


2p = lim yk k

16

17

1.8. NUMEROS EN UN COMPUTADOR

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.

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

18

1.8. NUMEROS EN UN COMPUTADOR

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

19

1.9. TRUNCAMIENTO Y REDONDEO

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.

1.9.

Truncamiento y redondeo
x = 0.d1 d2 dk 10n

Sea x un real (supuesto positivo por facilidad de presentaci on),

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

truncamiento(1234.56789, truncamiento(1234.56789, redondeo(1234.56789, redondeo(1234.56789,

2) = 1200 6) = 1234.56 2) = 1200 6) = 1234.57

Una manera sencilla, que funciona cuando dt 8, es la siguiente: los primeros t 1 d gitos son los mismos y el d gito en la posici on t es 19

20

1.10. ERROR ABSOLUTO Y RELATIVO

t =

dt dt + 1

si dt+1 4 si dt+1 5.

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

1.10.

Error absoluto y relativo

Si x es un n umero real y x es una aproximaci on se denen el error absoluto (siempre no negativo) y el error relativo cuando x = 0, de la siguiente forma: error absoluto = |x x | , |x x | . error relativo = | x|

Ejemplo 1.13. 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 z yz , 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. 20

21

1.11. ERRORES LINEAL Y EXPONENCIAL

1.11.

Errores lineal y exponencial

En los proceso num ericos, muy frecuentemente, es necesario realizar muchas operaciones aritm eticas. Sea e0 el error inicial en los datos o en la primera operaci on y en el error despu es de n operaciones. El error inicial incide en las operaciones siguientes y los errores, en la gran mayor a de los casos, van aumentando progresivamente. Usualmente se dice que los errores se propagan de dos maneras: Error lineal: en nce0

Error exponencial: en cn e0 , con c > 1. 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.14. Consideremos la sucesi on denida as (ver [KiC94]): x0 = 1 x1 = 1/3 13 4 xn = xn 1 xn 2 , 3 3

() Se puede demostrar que ()

n 2.

xn =

1 , n = 0, 1, 2, ... 3n

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 n obtenido por la f ormula de recurrencia (*) pero trabajando con 8 cifras signicativas y x obtenido por la f ormula n de recurrencia (*) pero trabajando con 4 cifras signicativas.

21

22 n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 25

1.12. CONDICIONAMIENTO DE UN PROBLEMA

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 4 cifras n 1.00000000 0.33330000 0.11100000 0.03670000 0.01100000 -0.00126000 -0.02012000 -0.08550000 -0.34370000 -1.37500000 -5.50000000 -22.0000000 -88.0000000 -352.000000 -1408.00000 -5632.00000 -22520.0000 -90070.0000 -360300.000 -1441000.00 -5764000.00 -23060000.0 -5.904E+09

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 22

23

1.13. TEOREMA DE PUNTO FIJO DE BANACH

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. Ejemplo 1.15. Consideremos el sistema de ecuaciones Ax = b, donde A= 10.01 10.00 10.00 9.99 , b= 20.01 19.99 .

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, estos cambios peque nos en b produjeron cambios grandes en la soluci on. En un problema puede darse el siguiente caso: unos cambios peque nos en los datos producen cambios peque nos en los resultados, pero, otros cambios peque nos en los datos producen cambios grandes en los resultados. De todas maneras el problema es mal condicionado. M as adelante se ver a c omo determinar el buen o mal condicionamiento de un sistema de ecuaciones.

1.13.

Teorema de punto jo de Banach

Es un resultado muy importante del an alisis matem atico. Se aplica en espacios m etricos. A continuaci on est an las deniciones previas y su enunciado para el caso particular de un espacio vectorial con norma, m as espec can mente para R . En el cap tulo 3 est a la denici on de norma, denotada por || ||. 23

24

1.13. TEOREMA DE PUNTO FIJO DE BANACH

Sea f : Rn Rn una funci on. Un punto x Rn es un punto jo de f si f ( x) = x . Se dice que f es una contracci on si existe 0 k < 1 tal que ||f (x) f (y )|| k ||x y ||, x, y Rn . Teorema 1.8. Si f : Rn Rn es una contracci on, entonces tiene un u nico punto jo x . Ver detalles y demostraci on en [Apo79].

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

Cap tulo 2 Sistemas de ecuaciones lineales


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

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

2.1.

En Scilab

Para resolver (2.1) es necesario haber denido una matriz cuadrada a y un vector columna b . La orden es simplemente x = a\b Por ejemplo 25

26

2.1. EN SCILAB

a = [ 2 3; 4 5], b = [-5; -7], x=a\b da como resultado x = 2. - 3. Una manera que tambi en permite obtener la soluci on es x = inv(a)*b, pero es ineciente en tiempo y de menor precisi on. Ejemplo 2.1. Las siguientes ordenes de Scilab n = 500; a = rand(n,n); x = rand(n,1); b = a*x; tic() x1 = a\b; t_sol = toc(); tic() x2 = inv(a)*b; t_inv = toc(); error1 = norm(x1-x); error2 = norm(x2-x); printf(t_sol = %f printf(error_sol = %e producen un resultado an alogo a t_sol = 0.622000 error_sol = 7.990870e-12 t_inv = 1.737000 error_inv = 1.687945e-11 26 t_inv = %f\n, t_sol, t_inv) error_inv = %e\n, error1, error2)

27

PARA SUBMATRICES EN SCILAB 2.2. NOTACION

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.

2.2.

Notaci on para submatrices en Scilab

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

28

2.3. METODOS INGENUOS

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 columna; por ejemplo, si A es 3 3, utilizando la primera la, det(A) = a11 det a22 a23 a32 a33 a12 det a21 a23 a31 a33 + a13 det a21 a22 a31 a32 .

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 1)(n 2) 2 = n(n 1)(n 2) 2, n > n! . 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. 28

29

2.4. SISTEMA DIAGONAL

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 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 xi = bi , i = 1, ..., n. aii (2.2)

Como los elementos diagonales son no nulos, no hay ning un problema para efectuar las divisiones.

2.5.

Sistema triangular superior

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

De la cuarta ecuaci on, se deduce que x4 = 5.6/2.8 = 2. A partir de la tercera ecuaci on 45x3 = 203 (79x4 ) 203 (79x4 ) x3 = 45 Reemplazando x4 por su valor, se obtiene x3 = 1. A partir de la segunda 29

30 ecuaci on

2.5. SISTEMA TRIANGULAR SUPERIOR

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

0.25x2 = 11 (2.5x3 + 4.25x4 ) 11 (2.5x3 + 4.25x4 ) x2 = 0.25

31

2.5. SISTEMA TRIANGULAR SUPERIOR

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). // // // // // // // // res valdra 0

a x = b.

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 31

32

2.5. SISTEMA TRIANGULAR SUPERIOR

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

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 Multiplicaciones y divisiones c alculo c alculo c alculo ... c alculo c alculo Total de xn de xn1 de xn2 de x2 de x1 0 1 2 n2 n1 1 2 3 n1 n n2 /2 + n/2

n2 /2 n/2 32

33

2.6. SISTEMA TRIANGULAR INFERIOR

N umero total de operaciones de punto otante: n2 .

2.6.

Sistema triangular inferior

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

aij xj (2.3)

aii

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

34

2.7. METODO DE GAUSS

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 Ejemplo 2.3. Consideremos el siguiente sistema de ecuaciones: 4x1 + 3x2 2x3 + x4 3x1 + 2x2 + x3 + 5x4 2x1 + 3x2 + x3 + 2x4 5x1 + x3 + x4 En forma matricial se puede escribir: 4 3 2 1 x1 x2 3 2 1 5 2 3 1 2 x3 5 0 1 1 x4 = 4 = 8 = 7 = 8 4 8 = 7 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 8 1 5 2 3 7 1 2 8 5 0 1 1 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 34

35

2.7. METODO DE GAUSS

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

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

4 0 0 -5

4 -11 -5 -8

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 35

36 4 0 0 0

2.7. METODO DE GAUSS

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 -11 -203 -5.6

4 -11 -203 -168

El sistema resultante ya es triangular superior. Entonces se calcula primero x4 = 5.6/2.8 = 2. Con este valor, utilizando la tercera ecuaci on resultante, se calcula x3 , despu es x 2 y x 1 . x = (1, 0, 1, 2). 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 A(i, :) = A(i, :) lik A(k, :) bi = bi lik bk 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 A(i, k + 1 : n) = A(i, k + 1 : n) lik A(k, k + 1 : n) bi = bi lik bk En resumen, el esquema de la triangularizaci on es: 36

4 0 0 0

37

2.7. METODO DE GAUSS

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

37

38

2.7. METODO DE GAUSS

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

39

2.7. METODO DE GAUSS

for i=k+1:n lik = a(i,k)/a(k,k) a(i,k) = 0 a(i,k+1:n) = a(i,k+1:n) - lik*a(k,k+1:n) b(i) = b(i) - lik*b(k) end end indic = 1 endfunction //---------------------------------------------------------function m = posNoNulo(a, k, eps) // Busca la posicion del primer elemento no nulo en la // columna k, debajo de la diagonal. // // Si no es posible encontrarlo, m valdra 0. // if argn(2) < 3, eps = 1.0e-10, end n = size(a,1) for i = k+1:n if abs(a(i,k)) >= eps 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 39

40

2.7. METODO DE GAUSS

x = [] n = verifTamanoAb(a, b) if n == 0, return, end if argn(2) < 3, eps = 1.0e-10, end indic = 0 x = [] [a, b, res] = triangulariza(a, b, eps) if res == 0, return, end indic = 1 x = solTriSup(a, b, eps) endfunction //---------------------------------------------------------function n = verifTamanoAb(a, b) // Esta funcion verifica si los tamanos de a, b // corresponden a un sistema cuadrado a x = b. // Devuelve n (num. de filas) si todo esta bien, // devuelve 0 si hay errores. [n1, n2] = size(a) [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.

40

41 Triangularizaci on

2.7. METODO DE GAUSS

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. Sumas y restas Multiplicaciones y divisiones (n 1)n (n 1)(n + 1) (n 2)(n 1) (n 2)n (n 3)(n 2) (n 3)(n 1) 2(3) 1(2) 2(4) 1(3)

ceros ceros ceros ... ceros ceros

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

Es necesario utilizar el resultado


m

i2 =
i=1

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

42 N umero de sumas y restas:


n 1 i=1

LU 2.8. FACTORIZACION

i(i + 1) =

n 1 i=1

( i2 + i) =

n3 n n3 3 3 3

N umero de multiplicaciones y divisiones:


n 1 i=1

i(i + 2) =

n 1 i=1

( i2 + 2 i) =

n3 n3 n2 5 n + 3 2 6 3

N umero de operaciones: n3 n n3 n2 5 n 2 n3 n2 7 n 2 n3 + + = + 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 2 n3 2 n3 3 n2 7 n + 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.

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: 1 4.25 79 2.8

4 0 U = 0 0

3 -0.25 0 0 42

-2 2.5 45 0

43

LU 2.8. FACTORIZACION

Siguiendo con el ejemplo:

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

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

ln 1 ln 2 ln 3

0 1 -18 -15

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 LU x Ly donde U x En resumen: Resolver Ly = b para obtener y . Resolver U x = y para obtener x. Ejemplo 2.4. Resolver 4x1 + 3x2 2x3 + x4 3x1 + 2x2 + x3 + 5x4 2x1 + 3x2 + x3 + 2x4 5x1 + x3 + x4 43 = 8 = 30 = 15 = 2 = = = = b, b, b, y.

44 Al resolver 1 0.75 -0.5 -1.25 se obtiene y = 4 0 0 0 3 -0.25 0 0

LU 2.8. FACTORIZACION

0 1 -18 -15

0 0 1 0.8
T

0 y1 y2 0 0 y3 1 y4

8 30 = 15 2 8. 0 24.0 = 451.0 11.2

8 24 451 11.2 -2 2.5 45 0

. Al resolver x1 1 x2 4.25 x3 79 2.8 x4


T

se obtiene la soluci on nal x =

1 2 3 4

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

44

45

2.9. METODO DE GAUSS CON PIVOTEO PARCIAL

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

En la matriz nal A estar a la informaci on u11 u12 u13 l21 u22 u23 L = l31 l32 u31 . . . ln 1 ln 2 ln 3

indispensable de L y de U . u1n u2n u3n . ... . . unn

L y de U es:

2.9.

M etodo de Gauss con pivoteo parcial

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

46

2.9. METODO DE GAUSS CON PIVOTEO PARCIAL

utilizado no es despreciable. En el m etodo de pivoteo parcial hay aproxi2 madamente n /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 3x1 + 2x2 + x3 + 5x4 2x1 + 3x2 + x3 + 2x4 5x1 + x3 + x4 La matriz aumentada es: 4 3 -2 -5 3 2 3 0 -2 1 1 1 1 5 2 1 = 4 = 8 = 7 = 8 4 -8 -7 -8

El valor dominante de A(1 : 4, 1) es 5 y est a en la la 4. Entonces se

46

47

2.9. METODO DE GAUSS CON PIVOTEO PARCIAL

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 47

Hay que intercambiar -5 0 0 0

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 las las 3 y 4. 0 3 0 0 1 0.6 -1.8 1.2 1 1.6 0.2 4.5333

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 3 (o en la la 4). los valores de

intercambian las las 1 y 4. -5 3 -2 4

0 2 3 3

1 1 1 -2

1 5 2 1

-8 -8 -7 4

-8 -3.8 1.4 -10.2667

48

2.9. METODO DE GAUSS CON PIVOTEO PARCIAL

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 = 0.6867 x1 + x2 + x3 = .8338 1.331x1 + 1.21x2 + 1.1x3 = 1 Tomando cuatro cifras decimales de la soluci on exacta: 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 = 2.4203 se obtiene 0.7290 0.8100 0.0000 -0.1111 0.0000 0.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 0.9000 -0.2345 0.0244 48 0.6867 -0.1081 0.0078

49

2.9. METODO DE GAUSS CON PIVOTEO PARCIAL

La soluci on del sistema triangular es: 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 calculan sus distancias a x : x1 x , x2 x .

Si x1 x < x2 x , entonces x1 aproxima mejor a x que x2 . Cuando no se conoce x , 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 , En seguida est a el m etodo con 4 cifras decimales. 0.7290 1.0000 1.3310 x x = 0.0202 .

de Gauss con pivoteo parcial, haciendo c alculos 0.8100 1.0000 1.2100 0.9000 1.0000 1.1000 0.6867 0.8338 1.0000 1.0000 0.8338 0.6867

Intercambio de las las 2 y 3. 1.3310 1.2100 0.0000 0.1473 0.0000 0.0909

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 1.1000 0.2975 0.1736 49 1.0000 0.1390 0.0825

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

50

LU =PA 2.10. FACTORIZACION

La soluci on del sistema triangular da:

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

1.1000 0.2975 -0.0100

1.0000 0.1390 -0.0033

x = ( 0.2267, 0.2770, 0.3300 ). El c alculo del residuo y la comparaci on con la soluci on exacta da: Ax b = 1.5112e-004 , x x = 0.0053 .

Para este ejemplo se observa que 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. 50

51

LU =PA 2.10. FACTORIZACION

AP es una permutaci on de las columnas de A. Una matriz de permutaci on P se puede representar de manera m as compacta por medio de un vector p Rn 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, 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 51

se intercambian las .

52

LU =PA 2.10. FACTORIZACION

En esta u ltima matriz y en el arreglo p est a toda la para obtener L, U , P . Entonces: 1 0 0 0.4 1 0 L= -0.8 1 1 -0.6 0.6667 -0.6667 52

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 informaci on necesaria 0 0 , 0 1

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

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

53

LU =PA 2.10. FACTORIZACION

-5 0 U = 0 0

0 3 0 0 0 0 0 1

1 0.6 -1.8 0 0 1 0 0

0 0 P = 1 0

1 1.6 , 0.2 4.6667 1 0 . 0 0

Si se desea resolver el sistema Ax = b a partir de la descomposici on P A = LU , 1 T se obtiene P LU x = b, o sea, P LU x = b. Sean z = LU x y y = U x. La soluci on de Ax = b tiene tres pasos: Resolver P T z = b, o sea, z = P b. Resolver Ly = z . Resolver U x = y . Ejemplo 2.7. Para la matriz A del ejemplo b = [4 8 7 8]T . -8 -7 z = Pb = 4 -8 anterior, resolver Ax = b con

-8 -3.8 Ly = z , entonces y = 1.4 -9.3333 1 0 U x = y , entonces x = -1 -2

En Scilab, la factorizaci on se puede obtener mediante la orden [L, U, P] = lu(A) 53

54

2.11.

METODO DE CHOLESKY

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.

2.11.1.

Matrices denidas positivas

Una matriz sim etrica es denida positiva si xT Ax > 0, x Rn , x = 0 . a11 a12 . . . a1n x1 a21 a22 . . . a2n x2 ... an1 an2 . . . ann xn a11 x1 + a12 x2 + + a1n xn a21 x1 + a22 x2 + + a2n xn an1 x1 + an2 x2 + + ann xn (2.5)

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

x1 x2 . . .
n n

xn

=
i=1 j =i

aij xi xj .

Si A es sim etrica,
n

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

54

55 Ejemplo 2.10. Sea

2.11.

METODO DE CHOLESKY

A =

1 2 2 5

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

Obviamente xT Ax 0. Adem as xT Ax = 0 si y solamente si los dos sumandos son nulos, es decir, si y solamente si x2 = 0 y x1 = 0, o sea, cuando x = 0. Luego A es denida positiva. Ejemplo 2.11. Sea A = 1 2 2 4 .

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

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

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

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

Como A no es sim etrica, entonces no es denida positiva. Sean 1 , 2 , . . . , n los valores propios de A. Si A es sim etrica, entonces todos sus valores propios son reales. 55

56

2.11.

METODO DE CHOLESKY

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). 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. Proposici on 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 . Un resultado relacionado con la factorizaci on de Cholesky, pero un poco m as general, agrega dos equivalencias adicionales. Permite garantizar cuando una matriz es denida positiva. Teorema 2.1. Sea A sim etrica. Las siguientes armaciones son equivalentes. 56

57

2.11.

METODO DE CHOLESKY

A es denida positiva. Existe una matriz B invertible tal que A = B T B . Existe una matriz C con columnas linealmente independientes tal que A = C TC . Existe una matriz F con las linealmente independientes tal que A = F F T.

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= Entonces u11 0 u12 u22 u11 u12 0 u22 1 2 2 5 1 2 2 5

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

58 Se deduce que

2.11.

METODO DE CHOLESKY

u11 = 1 u12 = 2, u22 = 1, U = 1 2 0 1 .

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

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

Por lo tanto, 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= 1 2 2 3 58

59 Entonces

2.11.

METODO DE CHOLESKY

u11 0 u12 u22

u11 u12 0 u22

1 2 2 3

u2 11 = 1 u11 u12 = 2, 2 u12 + u2 22 = 3 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 . . . u1k ukk . . . u u u 1j kj jj . . . u11 u1k u1j u1n . . . ukk ukj ukn . . . ujj ujn . . . unn unn u2 11 = a11 . Luego u11 = a11 . (2.6)

u1n ukn ujn

El producto de la la 1 de U T por la columna 1 de U da:

El producto de la la 1 de U T por la columna j de U da: u11 u1j = a1j . Luego u1j = a1j , u11 59 j = 2, ..., n. (2.7)

60

2.11.

METODO DE CHOLESKY

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

u2 ik = akk
i=1 k 1 i=1 2 u2 ik + ukk = akk .

Luego ukk = akk


k 1 i=1

u2 ik ,

k = 2, ..., n.

(2.8)

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


k

uik uij = akj .


i=1

Luego akj
k 1 i=1

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

ukj =

ukk

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

61

2.11.

METODO DE CHOLESKY

u11 = u12 = u13 u14 u22 = u23 = u24

16 = 4 = 3 =2 = 4

12 4 8 = 4 16 = 4

18 (3)2 = 3 =0 = 1

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

u33 = u34 = u44 = Entonces,

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

5 (22 + 02 ) = 1

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

La factorizaci on de Cholesky no existe cuando en la f ormula 2.8 la cantidad dentro del radical es negativa o nula. Utilizando el producto entre matrices, las f ormulas 2.8 y 2.9 se pueden reescribir as : t = akk U (1 : k 1, k )T U (1 : k 1, k ), ukk = t, akj U (1 : k 1, k )T U (1 : k 1, j ) ukj = ukk Para ahorrar espacio de memoria, los valores ukk y ukj se pueden almacenar sobre los antiguos valores de akk y akj . O sea, al empezar el algoritmo se tiene 61

62

2.11.

METODO DE CHOLESKY

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 62

63 //************ n = size(A,1) U = zeros(n,n)

2.11.

METODO DE CHOLESKY

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

2.11.3.

N umero de operaciones de la factorizaci on

Para el c alculo del n umero de operaciones, supongamos que el tiempo necesario para calcular una ra z cuadrada es del mismo orden de magnitud que el tiempo de una multiplicaci on. Sumas y restas c alculo c alculo c alculo c alculo c alculo c alculo ... c alculo de de de de de de u11 u12 u1n u22 u23 u2n 0 0 0 1 1 1 n1 63 Multiplicaciones, divisiones y ra ces 1 1 1 2 2 2 n

de unn

64 Agrupando por las:

2.11.

METODO DE CHOLESKY

Sumas y restas c alculo c alculo c alculo ... c alculo de U1 de U2 de U3 de Un n(0) (n 1)1 (n 2)2 1(n 1)

Multiplicaciones, divisiones y ra ces n(1) (n 1)2 (n 2)3 1(n)

N umero de sumas y restas:


n 1 i=1

( n i) i =

n3 n3 n . 6 6

N umero de multiplicaciones, divisiones y ra ces:


n

i=1

( n + 1 i) i =

n3 n2 n n3 + + . 6 2 3 6

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

2.11.4.

Soluci on del sistema

Una vez obtenida la factorizaci on de Cholesky, resolver Ax = b es lo mismo T que resolver U U x = b. Al hacer el cambio de variable U x = y , se tiene U T y = b. La soluci on del sistema Ax = b se calcula en dos pasos: 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

64

65

2.11.

METODO DE CHOLESKY

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

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 . 46 x3 8 6 8

La factorizaci on de Cholesky es posible (A 4 3 3 U= 0 0 0 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: 65

66

2.12.

POR M SOLUCION INIMOS CUADRADOS

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. // // info valdra 1 si a es definida positiva, // asi x sera un vector columna // con la solucion, // 0 si a no es definida positiva. // [a, info] = Cholesky(a) if info == 0, return, end y = sol_UT_y_b(a, b) x = solTriSup(a, y) endfunction La segunda funci on, y = sol_UT_y_b(U, b) resuelve el sistema U T y = b , pero se tiene la informaci on de U . Si se sabe con certeza que la matriz es denida positiva, en lugar de Cholesky, es preferible usar la funci on de Scilab chol, que es m as eciente.

2.12.

Soluci on por m nimos cuadrados

Consideremos ahora un sistema de ecuaciones Ax = b, no necesariamente cuadrado, donde A es una matriz m n cuyas columnas son linealmente independientes. Esto implica que hay m as las que columnas, m n, y que adem as el rango de A es n. Es muy probable que este sistema no tenga soluci on, es decir, tal vez no existe x que cumpla exactamente las m igualdades.

66

67 Se desea que

2.12.

POR M SOLUCION INIMOS CUADRADOS

Ax Ax b Ax b Ax b 2 Ax b 2 2

= = = = =

b, 0, 0, 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).

2.12.1.

En Scilab

La orden para hallar la soluci on por m nimos cuadrados es la misma que se usa para resolver sistemas de ecuaciones cuadrados, a saber, a\b . Por ejemplo, para resolver el sistema 43 2 3 4 5 x1 = 77 x2 109 6 7 basta con a = [ 2 3; 4 5; 7 6 ], b = [ 43 77 109 ] x = a\b El resultado obtenido es x = 7.6019417 9.3009709 67

68

2.12.

POR M SOLUCION INIMOS CUADRADOS

2.12.2.

Ecuaciones normales

Con el animo de hacer m as clara la deducci on, supongamos que A es una 2 matriz 4 3. Sea f (x) = Ax b 2 , f (x) =(a11 x1 + a12 x2 + a13 x3 b1 )2 + (a21 x1 + a22 x2 + a23 x3 b2 )2 + (a31 x1 + a32 x2 + a33 x3 b3 )2 + (a41 x1 + a42 x2 + a43 x3 b4 )2 . Para obtener el m nimo de f se requiere que las tres derivadas parciales, f /x1 , f /x2 y f /x3 , sean nulas. f =2(a11 x1 + a12 x2 + a13 x3 b1 )a11 x1 + 2(a21 x1 + a22 x2 + a23 x3 b2 )a21 + 2(a31 x1 + a32 x2 + a33 x3 b3 )a31 + 2(a41 x1 + a42 x2 + a43 x3 b4 )a41 . 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 = 2 ((Ax)1 b1 )a11 + ((Ax)2 b2 )a21 + ((Ax)3 b3 )a31 x1 +((Ax)4 b4 a41 ,
4

= 2
i=1 4

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

= 2
i=1 4

= 2
i=1

= 2AT 1 (Ax b), = 2 AT (Ax b) 1 68

69

2.12.

POR M SOLUCION INIMOS CUADRADOS

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


2

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


T T

1 2 3

= 0, = 0, = 0

A (Ax b)

A (Ax b)

Es decir, AT (Ax b) = 0, AT A x = AT b . (2.16)

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

70

2.12.

POR M SOLUCION INIMOS CUADRADOS

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: 3. 1 2 1 0 8. 9 x1 1 2 3 x2 = 3. 1 2 2 1 x3 0. 1 5 4 2

La soluci on por m nimos cuadrados es:

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

El error, Ax b, es:

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

Las ecuaciones normales dan: 3 x1 34 20 48 20 25 15 x2 = 21 27 x3 48 15 81

Ejemplo 2.17. Resolver por m nimos cuadrados: 3 2 1 3 x1 1 2 9 0 x2 = 3 2 2 6 x3 0 5 4 6

0.0628 0.0196 0.0039 . 0.0275

71

2.12.

POR M SOLUCION INIMOS CUADRADOS

Las ecuaciones normales dan:

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

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

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 71

72

2.13. SISTEMAS TRIDIAGONALES

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

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

72

73 U . Se 1 f 1 0 0 0 0

2.13. SISTEMAS TRIDIAGONALES

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

conoce A y se desea conocer L 0 0 0 0 0 d1 0 1 0 0 0 0 f2 1 0 0 0 0 0 f3 1 0 0 0 ... 0 0 0 1 0 0 0 0 0 f n 1 1 0

y U a partir de la siguiente igualdad: u1 0 0 0 0 d 2 u2 0 0 0 0 d 3 u3 0 0 0 0 d4 0 0 =A. ... 0 0 0 d n 1 un 1 0 0 0 0 dn

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

A partir de las igualdades anteriores se obtienen los valores ui , fi y di : d1 = a11 , ui = ai,i+1 , i = 1, ..., n 1, ai+1,i , fi = di di+1 = ai+1,i+1 fi ui 73 (2.17)

74

2.13. SISTEMAS TRIDIAGONALES

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: y1 f i 1 yi 1 + yi d n xn di xi + ui xi+1 Las f ormulas expl citas son: y1 = b1 , yi = b i f i 1 yi 1 , yn xn = , dn yi ui xi+1 , xi = di = b1 , = bi , = yn , = yi .

i = 2, ..., n, (2.18) i = n 1, n 2, ..., 1.

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

74

75 Entonces

2.13. SISTEMAS TRIDIAGONALES

d1 = 2 , u1 = 4 , 3 f1 = = 1. 5 , 2 d 2 = 5 1. 5 4 = 1 , u2 = 6 , 4 = 4, f2 = 1 d3 = 5 4 6 = 29 , u3 = 1 , 1 f3 = = 0.034483 , 29 d4 = 2 0.034483 1 = 2.034483 , Ahora la soluci on de los sistemas Ly = b, U x = y : y1 y2 y3 y4 x4 x3 x2 x1 = 8, = 1 1.5 (8) = 13 , = 2 4 13 = 54 , = 10 0.034483 54 = 8.137931 , 8.137931 = 4, = 2.034483 54 1 4 = = 2, 29 13 6 2 = 1 , = 1 8 4 (1) = 2 . = 2

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

76

2.13. SISTEMAS TRIDIAGONALES

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 n primero y el cuarto est an en R , los otros dos est an en Rn1 . Al comienzo 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.

76

77

2.14. CALCULO DE LA INVERSA

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 veces es indispensable obtener la inversa. A continuaci on se presenta el algoritmo para el c aculo de la inversa, tomado y adaptado de [Ste98], 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 los elementos de A y p se utiliza la notaci on usual con sub ndices.

77

78

2.14. CALCULO DE LA INVERSA

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 78

79

2.14. CALCULO DE LA INVERSA

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

Ejemplo 2.21. A inicial -2.0000 -4.0000 -5.0000 1.0000 4.0000 -3.0000 -2.0000 -3.0000 p inicial : 1 2 3 Factorisaci on

4.0000 2.0000 0.0000 1.0000

-2.0000 1.0000 -4.0000 -1.0000

k = 1 m = 2 p : 2 2 3 intercambio de filas : 1 2 A despu es 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 despu es 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 : 79

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

80

2.14. CALCULO DE LA INVERSA

2 2 3 A despu es de operaciones -5.0000 1.0000 2.0000 0.4000 -4.4000 3.2000 -0.8000 0.5000 0.0000 0.4000 0.7727 -2.2727 k = 3 m = 4 p : 2 2 4 intercambio de filas : 3 4 A despu es 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 despu es 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 despu es 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 despu es de calcular U1*L1 -0.2600 0.1900 -0.2400 0.3200 -0.0800 -0.3200 -0.0600 0.3900 -0.4400 -0.5000 0.2500 0.0000

1.0000 -2.4000 -2.0000 0.4545

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

-0.1000 0.2000 -0.1000 -0.5000

-0.1000 0.2000 -0.1000 -0.5000

inversa: despu es de reordenamiento 0.1900 -0.2600 -0.1000 -0.2400 -0.0800 0.3200 0.2000 -0.3200 80

81 0.3900 0.2500 -0.0600 -0.5000

2.14. CALCULO DE LA INVERSA

-0.1000 -0.5000

-0.4400 0.0000

Expresiones explicitas de L, U, P L 1.0000 0.0000 0.0000 0.0000 0.4000 1.0000 0.0000 0.0000 0.4000 0.7727 1.0000 0.0000 -0.8000 0.5000 -0.0000 1.0000 U -5.0000 1.0000 2.0000 1.0000 0.0000 -4.4000 3.2000 -2.4000 0.0000 0.0000 -2.2727 0.4545 0.0000 0.0000 0.0000 -2.0000 P : 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0

Ejercicios
2.1 Considere los sistemas de ecuaciones Ax = b con los siguientes datos. Trate de obtener la soluci on por varios m etodos. Algunos m etodos no se pueden aplicar. 4 3 1 2 2 0 3 5 0 5 A= , b = 0 2 0 1 1 15 0 0 0 5

2.2

12 4 0 0 0 1 3 0 0 , b = 3 A= 23 3 3 4 0 0 3 0 5 1 81

82 2.3

2.14. CALCULO DE LA INVERSA

2.4

2.5

2.6

32 16 8 16 16 8 29 28 12 , b = 146 A= 184 16 28 48 12 208 16 12 12 66 120 40 8 52 3 9 , b = 17 A = 8 163 52 9 69

2 1 2 4 1 4 2 3 3 , b = 6 A= 16 3 2 3 3 140 24 0 46 20

17 5 4 5 0 4 0 1 2 , b = 23 A= 2 18 0 5 5 24 4 4 3 1

2.7

2.8

80 16 4 0 16 4 10 12 8 , b = 16 A= 83 0 12 41 1 87 16 8 1 21 15 12 0 0 15 4 16 0 4 7 4 A= 0 0 0 3 20 0 0 0 0 25 10 A= 0 0 0

2.9

115 5 0 0 0 46 2 0 0 0 0 5 4 0 , b = 16 0 4 12 10 48 0 0 2 2 8 82

87 0 15 0 44 0 , b = 46 2 5 5

83 2.10

2.14. CALCULO DE LA INVERSA

Utilice el m etodo de Cholesky. Compare la forma de U con la forma de A. Obtenga informaci on sobre las matrices banda 2.11 Resuelva el sistema Ax = b obteniendo la factorizaci on P A = LU . Us andola resuelva Ax = d. 3 38 4 5 5 A = 2 1 5 , b = 2 , d = 9 14 14 4 4 3

9 15 15 0 0 0 39 15 73 26 23 4 0 0 15 23 31 38 2 12 0 A= , b = 20 0 4 2 45 12 0 0 8 0 12 12 36 4 0 0 0 0 4 29 116

2.12 En Scilab construya G una matriz aleatoria grande, por ejemplo, n = 2000 o 3000, con entradas en ]0, 1[. Si es necesario, modique stacksize. Construya S = G + GT (sim etrica). Construya A = S + 2nIn . Averig ue sobre matrices de diagonal dominante. Demuestre que A lo es. Es denida positiva? Construya aleatoriamente un vector columna b. Mida el tiempo de a\b. Mida el tiempo de chola(a). Coincide mas o menos con lo esperado?

83

Cap tulo 3 M etodos iterativos para sistemas de ecuaciones lineales


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. Los m etodos 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 ). A 1 2 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.

84

85

3.1. METODO DE GAUSS-SEIDEL

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 satisfaga la primera ecuaci on. x1 1 = x1 i
0 0 b1 (a12 x0 2 + a13 x3 + + a1n xn ) , a11 = x0 i = 2, ..., n. i ,

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 b n ( an 1 x 1 + an 3 x 3 + + ann xn ) , ann n 1 = xi , i = 1, 2, ..., n 1.

Ejemplo 3.1. Resolver 10 1 2 1

2 1 0 x1 20 2 3 x2 1 30 0 x3 2 3 20 x4

26 15 = 53 47

85

86

3.1. METODO DE GAUSS-SEIDEL

partiendo de x0 = (1, 2, 3, 4). x1 1 = x1 x2 2 x2 x3 3 x3 x4 4 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).

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

87

3.1. METODO DE GAUSS-SEIDEL

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 8 x3 1 5 2 partiendo de x0 = (1.0001, 1.0001, 1.0001). 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

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 87

88

3.1. METODO DE GAUSS-SEIDEL

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 0 converge para cualquier x 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 k k +n de GS se detiene cuando x x < .

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 y xk xk+n est an relacionadas.
n

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. El valor i es la modicaci on que sufre xi en una iteraci on. 88

89

3.1. METODO DE GAUSS-SEIDEL

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 si = 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: 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 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, // 89

90 // // // // // // k 1

3.1. METODO DE GAUSS-SEIDEL

si se obtuvo un aproximacion de la solucion, con la precision deseada, si no se obtuvo una buena aproximacion.

indicara el numero de iteraciones

if min( abs(diag(A)) ) <= %eps ind = -1 x = [] return end x = x0 n = size(x,1) ind = 1 for k = 1:maxit //printf(\n k = %d\n, k) D = 0 for i = 1:n di = ( b(i) - A(i,:)*x )/A(i,i) x(i) = x(i) + di D = max(D, abs(di)) end disp(x) if D < eps, return, end end ind = 0 endfunction En una 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.

90

91

3.2. NORMAS VECTORIALES

3.2.

Normas vectoriales

El concepto de norma corresponde simplemente a la abstracci on del concepto de tama no de un vector. Consideremos el vector que va de (0, 0, 0) a (2, 3, 4). Su tama no o magnitud es simplemente 22 + 32 + (4)2 = 29 .

Sea V un espacio vectorial real. Una norma es una funci on : V R tal que (x) 0, x V, (x) = 0 sssi x = 0, (x) = || (x), R, x V, (x + y ) (x) + (y ), x, y V. (desigualdad triangular) Ejemplos cl asicos de normas en Rn son: 1. ||x||2 = ||x|| = ( 2. ||x||p = ( 4. k ||x||
n i=1 n i=1

x2 i)

1/2

norma euclidiana,

| xi | p )

1/p

norma de Holder de orden p 1,

3. ||x|| = ||x||max = max1in |xi |, con k > 0 y || || una norma, 5. ||x||A = xT Ax con A denida positiva.

Se puede mostrar que lim ||x||p = ||x|| = ||x||max .

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

92

3.3. NORMAS MATRICIALES

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 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: i) ii) 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 || ||A|| ||B ||, ||Ax|| ||A|| ||x||.

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

||A|| ||B || = 4 8 = 32 ||A|| ||x|| = 4 6 = 24. 92

93

3.3. NORMAS MATRICIALES

Una norma || || denida sobre el Rnn (conjunto de matrices n n) se llama matricial o (submultiplicativa) si, adem as de las propiedades usuales de una 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 una norma que sean matricial y compatible consiste en generarla a partir de un norma sobre Rn . Sea || || una norma sobre Rn . La norma generado o inducida por esta norma se dene de varias maneras, todas ellas equivalentes: ||Ax|| x=0 ||x|| ||Ax|| |||A||| = max x=0 ||x|| |||A||| = sup ||Ax|| |||A||| = sup
||x||=1

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

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


||x||=1

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

||Ax|| ||x||

Ante todo es necesario mostrar que la funci on est a bien denida, o sea, para toda matriz A, (A) = sup
x=0

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

93

94

3.3. NORMAS MATRICIALES

x x ||x||A ||x|| ||x|| (A) = sup = sup ||x|| ||x|| x=0 x=0 x ||x|| A x ||x|| = sup ||A || = sup A = sup ||x|| ||x|| x=0 x=0 || ||=1 A ||x|| 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. ej (A) ||Av || = A j ||e || Aj = ||ej || ||Aj || = > 0. ||ej ||

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


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

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


x X

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


x X x X

94

95

3.3. NORMAS MATRICIALES

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


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

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


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

Hasta ahora se ha mostrado que es una norma sobre Rnn . Si se utiliz o la norma || || en Rn , la norma generada o subordinada sobre Rnn se denota por ||| ||| . Cuando no hay ambig uedad, es la notaci on m as usual, ||A|| indica la norma generada evaluada en la matriz A y ||x|| indica la norma original evaluada en el vector columna x. Veamos ahora que la norma original y la generada son compatibles. Obviamente si x = 0, entonces ||Ax|| ||A|| ||x||. Sea x = 0 y = x/||x|| de norma uno. ||A|| ||A || = A x ||x|| = ||Ax|| , luego ||A|| ||x|| ||Ax||. ||x||

Queda por mostrar que esta norma generada es matricial.

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


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

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


||x||=1

Para las 3 normas vectoriales m as usadas, las normas matriciales generadas son:
n

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

1j n

i=1

|aij |,

(3.5) (3.6) (3.7)

(AT A) (norma espectral),


n 1in

||A|| = max

j =1

|aij |.

95

96

3.3. NORMAS MATRICIALES

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

||A||F =

(aij )
i,j

(3.8)

Para cualquier norma generada ||I || = 1. Como ||I ||F = n, entonces esta norma no puede ser generada por ninguna norma vectorial Ejemplo 3.4. Sea A= Entonces AT A = 1 2 3 4 10 10 10 20

Sus valores propios son 3.8196601 y 26.18034. Luego ||A||1 = 6, ||A||2 = 5.1166727, ||A|| = 7.
n

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


j

i=1

|aij |

Demostraci on.
n

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


||x||1 =1 n

||x||1 =1

i=1

|(Ax)i |
n n

= max

||x||1 =1

i=1 n

|Ai x| = max
n

||x||1 =1

aij xj
i=1 j =1 n n

max = max

||x||1 =1

i=1 j =1 n

|aij xj | = max
n

||x||1 =1

i=1 j =1 n

|aij | |xj |

||x||1 =1

j =1

| xj |

i=1

|aij | = max

||x||1 =1

j =1

| xj | s j

96

97 donde sj =
n i=1

3.3. NORMAS MATRICIALES

|aij |. Si j , j 0 para todo j , entonces


n n

j =1

j j

max j
j j =1

Luego

||A||1 max = max En resumen

||x||1 =1

max sj
j j =1

| xj |
n

||x||1 =1

max sj
j

= max sj = max
j j i=1

|aij |

||A||1 max
j

i=1

|aij |.

Sea k tal que


n n

i=1

|aik | = max
j

i=1

|aij |

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


||x||1 =1 k n

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


n

||A||1 ||Ae ||1 = ||Ak ||1 = es decir,

i=1

|aik | = max
j

i=1

|aij |

||A||1 max
j

i=1

|aij |.

Proposici on 3.3. ||A||2 =

(AT A). 97

98 Demostraci on.

3.3. NORMAS MATRICIALES

||A||2 = max ||Ax||2 ||A||2 2


T T = max ||Ax||2 2 = max x A Ax

||x||2 =1

||x||2 =1

||x||2 =1

La matriz AT A es sim etrica y semidenida positiva, todos sus valores propios 1 , ..., n son reales y no negativos. Se puede suponer que est an ordenados: (AT A) = 1 2 ... n 0. Por el teorema espectral, AT A es semejante, ortogonalmente, a la matriz diagonal de sus valores propios. Las matrices se pueden reordenar para que V T (AT A)V = diag(1 , ..., n ) , con V ortogonal.

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

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


n
T

x=
i=1

i v i .

98

99 Entonces

3.3. NORMAS MATRICIALES

A Ax = A A
i=1 n

i v =
i=1

i AT Av i

=
i=1

i i v i
n
T

x A Ax =
j =1 n

j v

j i=1

i i v i

=
i=1

2 i i

1 En resumen,

2 i = 1 i=1

||A||2 2 1 ||A||2

Por otro lado, ||A||2 ||A||2 ||A||2 xT AT Ax para todo x con ||x||2 = 1 v 1 T AT Av 1 = 1 .
n

v 1 T 1 v 1 =

1 v 1 T v 1

Proposici on 3.4. ||A|| = max


i

j =1

|aij |

Demostraci on. ||A|| = max ||Ax|| = max max |(Ax)i |


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

= max max |Ai x| = max max |


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

j =1

aij xj |

max max
||x|| =1 i

j =1

|aij | |xj | 99

100 Como |xj | ||x||

3.3. NORMAS MATRICIALES

||A|| max max


||x|| =1 i n

j =1

|aij | ||x|| = max ||x|| max


||x|| =1 i

j =1

|aij |

= max
i j =1

|aij |

Veamos ahora la otra desigualdad. Si A = 0, se cumple la igualdad. Sea k tal que


n n

j =1

|akj | = max
i

j =1

|aij |

y sea x denido por x j = 0 si akj = 0 |akj | akj si akj = 0.

signo(akj ) =

||A|| ||Ax|| si ||x|| = 1, ||A|| ||Ax || = max |(Ax )i | = max |Ai x |


i i

= |Ai x | para todo i,


n

||A|| |Ak x | =
n

akj
j =1 n

|akj | akj |akj |

=
j =1

|akj | =
n

j =1

= max
i j =1

|aij |.

En las sumas de las desigualdades anteriores, los t erminos donde akj = 0 no se consideran. 100

101

3.3. NORMAS MATRICIALES

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

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

102

3.4. CONDICIONAMIENTO DE UNA MATRIZ

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

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


i,j

3.3.1.

En Scilab

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

2) 1) inf) fro)

3.4.

Condicionamiento de una matriz

Cuando se resuelve un sistema de ecuaciones Ax = b se desea conocer c omo son los cambios en la soluci on cuando se cambia ligeramente el vector de t erminos independientes b.

102

103

3.4. CONDICIONAMIENTO DE UNA MATRIZ

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|| lo sea. En realidad es mejor considerar cambios relativos. Se espera que si el valor ||b||/||b|| es peque no, entonces ||x||/||x || tambi en lo sea. Las deducciones que siguen, relacionan los dos cambios relativos. x = x x = A1 b A1 b = A1 (b + b) A1 b = A1 b. Al utilizar una norma y la norma matricial generada por esta se obtiene ||x|| ||A1 || ||b||. 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||

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 ||b|| ||x|| (A) . ||x || ||b|| 103 (3.9) (3.10)

104

3.4. CONDICIONAMIENTO DE UNA MATRIZ

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


T

10 7 6 4

136 94 94 65

2 7/2 3 5

13 22 22 149/4

espec(A1 A1 ) = {0.0049756, 50.245024} ||A||2 = 14.176745 ||A1 ||2 = 7.0883725 2 (A) = 100.49005 ||A||1 = 16 ||A1 ||1 = 17/2 1 (A) = 136 ||A|| = 17 ||A1 || = 8 (A) = 136. El condicionamiento, denido para normas matriciales inducidas de normas vectoriales, tiene la siguientes propiedades: (A) 1. (A) = (A) si = 0. 104

espec(AT A) = {0.0199025, 200.9801}


T

105

3.4. CONDICIONAMIENTO DE UNA MATRIZ

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 puesto que 2 (A) = 1. 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|| La matriz A es muy bien condicionada y entonces cambios peque nos en b producen cambios peque nos en x. 10 10 10 9 , b= 20.01 19.99 , b = 20.02 19.98 .

105

106

3.4. CONDICIONAMIENTO DE UNA MATRIZ

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. Al resolver los dos sistemas se obtiene: x = [1 1]T , x = [1998 2002]T , x = [1999 2001]T , ||x|| = 2000.0002, ||x|| ||b|| = 2000.0008. (A) ||b|| 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. 106 10.01 10.00 10.00 9.99 , b= 20.01 19.99 , b = 20.02 20.00 . 10.01 10.00 10.00 9.99 , b= 20.01 19.99 , b = 20.02 19.98 .

107

3.5. METODO DE JACOBI

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

107

108

3.6. METODO ITERATIVO GENERAL

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

x1 1.2 1.775 1.775 1.775 1.9925 1.9925 1.9925

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

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 19 2 1.2 0 1.6 = 3.32 . 5

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

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

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

3.6.

M etodo iterativo general

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

109

3.6. METODO ITERATIVO GENERAL

Al aplicar varias veces la f ormula anterior, se est a buscando un punto jo de la funci on f (x) = M x + p. Utilizando 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. 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. 109

110

3.7. METODO DE SOBRERRELAJACION

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.13a) (3.13b) (3.12a) (3.12b)

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. Las f ormulas que denen el m etodo GS son: r i = b i Ai x , ri , i = aii xi xi + i . En 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.14)

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

111

3.7. METODO DE SOBRERRELAJACION

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 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 2 = = 4.75 4 2 = 6.65 x2 = 1 6.65 = 5.65 r3 = 35 9.69 = 25.31 25.31 3 = = 3.163750 8 3 = 4.429250 x3 = 1 + 4.429250 = 5.429250 r4 = 33 28.909250 = 4.090750 4.090750 4 = = 0.681792 6 4 = 0.954508 x4 = 1 0.954508 = 0.045492

111

112

3.7. METODO DE SOBRERRELAJACION

r1 = 25 50.817517 = 25.817517 25.817517 = 5.163503 1 = 5 1 = 7.228905 x1 = 6.880000 + 7.228905 = 0.348905 La siguiente tabla muestra las primeras 15 iteraciones completas Sobrerrelajaci on, = 1.4 x1 x2 x3 1.000000 1.000000 1.000000 6.880000 -5.650000 5.429250 -0.348905 -5.088241 6.823724 1.076876 -4.710011 4.792473 1.810033 -3.552048 4.649676 1.368852 -2.880061 4.240550 1.721105 -2.409681 3.821389 1.788640 -2.008170 3.644054 1.812353 -1.742759 3.462571 1.883878 -1.543881 3.333868 1.909584 -1.395632 3.248121 1.932877 -1.289998 3.179762 1.952699 -1.211802 3.131447 1.964616 -1.154687 3.096340 1.974261 -1.113133 3.070228 1.981287 -1.082649 3.051371

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

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.

112

113

3.7. METODO DE SOBRERRELAJACION

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

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

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 casos 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 iteraci on 113

114 de punto jo con

3.7. METODO DE SOBRERRELAJACION

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

(3.15a) (3.15b)

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

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

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

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 7.000000 k 3.500000 x + 4.287500 . 1.799583

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

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

115

3.7. METODO DE SOBRERRELAJACION

SOBRERRELAJACION

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

115

116

3.7. METODO DE SOBRERRELAJACION

( M ) 1

Figura 3.1: M etodo SOR: y radio espectral

SOR: SOBRERRELAJACION 0 datos: A, b, , x , , 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.

116

117

3.8. METODOS DE MINIMIZACION

3.8.

M etodos de minimizaci on

Si A es una matriz sim etrica y denida positiva (en esta secci on y en las dos siguientes se supone que A es denida positiva), la soluci on del sistema Ax = b (3.16)

es exactamente el mismo punto x que resuelve el siguiente problema de optimizaci on: 1 min f (x) = xT Ax bT x. (3.17) 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, 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 (3.18)

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.17). Para minimizar funciones sin restricciones hay muchos m etodos. La mayor a de los m etodos 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 d k < 0. 117

118

PENDIENTE 3.9. METODO DEL DESCENSO MAS

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.19) hay varios m etodos. Si f es cuadr atica (en Rn ), entonces (t) = f (xk + tdk ) 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. 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 (3.19)

dk (Axk b) tk = tc = dk T Adk

(3.20)

3.9.

M etodo del descenso m as pendiente

Un m etodo muy popular y sencillo, 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, d k = f ( xk ) = (Axk b) 118

119 Entonces

PENDIENTE 3.9. METODO DEL DESCENSO MAS

dk = b Axk
kT

(3.21) (3.22) (3.23)

tk = xk+1

d dk dk T Adk = xk + t k 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 t = 0.094488 x1 : 1.566927 -1.362196 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 13 b = 21 , 50 40.000000 4.779514 1 0 x = 1 . 1

-6.196916 -2.542093

-3.653391 4.083907

-1.409801 -2.733078

1.500593 4.287191

-0.349316 -2.790544 -0.692854 -2.884707

-1.516240 4.037754 0.599209 4.119191

119

120

PENDIENTE 3.9. METODO DEL DESCENSO MAS

k = 5 d : 0.310405 t = 0.164543 x6 : 1.885055 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 : : : : : : : : : : : : : : 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 1.999763

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

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

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 120 9.000000 1.368149 55 b = 22 , 24 10.000000 1.409055 1 0 x = 1 . 1

0.941625 1.869085

0.428123 1.636812

121

PENDIENTE 3.9. METODO DEL DESCENSO MAS

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 x96 x97 x98 x99 x100 x101 : : : : : : : 1.025125 1.022738 1.023406 1.021183 1.021805 1.019734 1.020313

-0.167842 1.854127

0.982857 1.724402

-0.510535 1.819148

0.339342 1.747652

-0.001843 1.818980

0.823366 1.822783

-0.317174 1.796938 1.989683 1.989417 1.990389 1.990141 1.991047 1.990816 1.991659

0.301965 1.843768 2.952309 2.953040 2.955571 2.956253 2.958611 2.959245 2.961442

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

primer ejemplo v = 2.3714059 121

122 5.5646277 11.063966 coc =

3.10. METODO DEL GRADIENTE CONJUGADO

4.6655726

Segundo ejemplo: valores propios 0.4250900 3.0722446 24.502665 coc = 57.641129

3.10.

M etodo del gradiente conjugado

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

Dos direcciones diferentes, di y dj , se llaman conjugadas con respecto a A, si d i A d j = 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.25)
T

Obviamente xk = x si y solamente si rk = 0. El vector residuo es exactamente el mismo gradiente de f en el punto xk .

122

123

3.10. METODO DEL GRADIENTE CONJUGADO

Las f ormulas que completan la denici on del m etodo GC son: 1 = 0, k = (3.26) ||rk ||2 2 , k = 2, ..., n, (3.27) k 1 ||r ||2 2 ||rk ||2 tk = k T 2k , k = 1, ..., n. (3.28) d Ad 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. 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 123

124

3.10. METODO DEL GRADIENTE CONJUGADO

Ejemplo 3.13. Resolver el sistema Ax = b por el x1 = (1, 1, 1), donde 19 6 8 b= A = 6 5 2 , 8 2 4 r1 = Ax1 b = (22, 9, 10), ||r1 ||2 2 = 665, 1 d = r1 = (22, 9, 10),
T

m etodo GC, partiendo de 55 22 . 24

d1 Ad1 = 16257, 665 t1 = = 0.040905, 16257 x2 = x1 + t1 d1 = (1.899920, 1.368149, 1.409055), r2 = (0.579812, 0.941625, 0.428123), ||r2 ||2 2 = 1.406129, 1.406129 2 = = 0.002114, 665 d2 = (0.533293, 0.960655, 0.449268),
T

d2 Ad2 = 2.570462, t2 = 0.547034, x3 = (1.608191, 1.893660, 1.654819), r3 ||r3 ||2 2 3 d3


T

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

= (0.156138, 0.427083, 0.727877), = 0.736584, = 0.523838, = (0.435497, 0.076145, 0.963221),

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

124

125

3.10. METODO DEL GRADIENTE CONJUGADO

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

Ejercicios
3.1 En este y en los siguientes ejercicios considere el sistema Ax = b. D e un punto inicial. Aplique los m etodos de Jacobi y Gauss-Seidel. Observe si hay convergencia o no. Compare. Utilice los criterios te oricos de convergencia. 3 0 4 A = 3 3 2 , 2 2 3 1 b = 2 3

3.2

3.3

3 3 2 A = 2 4 3 , 4 2 6

3.4

3.5

4 6 10 A = 6 25 9 , 10 9 62 125

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

2 5 3 2 5 , A = 1 1 1 1

19 b = 19 14 9 b = 7 1

66 b = 51 241

18 b = 1 4

126 3.6

3.10. METODO DEL GRADIENTE CONJUGADO

3.7 Use los datos de un ejercicio anterior donde el m etodo GS converge. Aplique el m etodo de sobrerrelajaci on con varios valores de . Trate de encontrar un optimo. 3.8 Use los datos de un ejercicio anterior con matriz denida positiva. Aplique el m etodo del descenso m as pendiente. 3.9 Use los datos de un ejercicio anterior con matriz denida positiva. Aplique el m etodo del gradiente conjugado. 3.10 Use los datos de un ejercicio anterior con matriz no denida positiva. Utilice un m etodo de descenso para obtener la soluci on mediante (3.18). 3.11 Suponga que tiene una matriz dispersa de la que u nicamente conoce las entradas no nulas. Esta informaci on puede estar dada por un conjunto de valores de la forma i j aij . Por ejemplo una matriz en R33 : 1 1 2 2 3 3 1 2 1 2 2 3 10 2 3 11 5 12

8 3 4 A = 5 13 7 , 8 9 18

41 b = 21 115

Busque, averig ue o conciba una forma de guardar estos datos de tal manera que pueda hacer una funci on de Scilab para hacer, dados i y un vector columna x, el producto Ai x. Haga una funci on de Scilab para el m etodo de Gauss-Seidel. 3.12 An alogo al ejercicio anterior pero se trata de una matriz sim etrica y posiblemente denida positiva. En este caso la informaci on necesaria es la de las entradas no nulas de la parte tringular superior. Por ejemplo,

126

127 1 1 2 3 1 2 2 3 10 2 11 12

3.10. METODO DEL GRADIENTE CONJUGADO

Haga una funci on de Scilab para el m etodo del gradiente conjugado. 3.13 Se dice que una matriz A es banda de ancho 2m + 1 si aij = 0 siempre que |i j | > m. Si m = 0, se trata de una matriz diagonal. Si m = 1. se trata de una matriz tridiagonal. Si A es sim etrica y posiblemente denida positiva, toda la informaci on indispensable es: los elementos diagonales y, para casi todas las las, m elementos de la parte estrictamente superior. Esta informaci on se puede almacenar en una matriz n (m +1). Por ejemplo, la informaci on de una matriz 10 10 de ancho 2 2 + 1 puede ser 2.4 2.88 1.28 2.26 1.56 1.38 1.3 2.66 2.62 2.4 -0.36 0.13 0.36 -0.07 0.38 0.23 0.24 -0.09 0.1 0 -0.32 -0.28 0.42 0.03 -0.43 -0.4 -0.19 -0.41 0 0

Demuestre que si A es banda y denida positiva, la matriz U de la factorizaci on de Cholesky tambi en lo es. 3.14 Elabore una funci on de Scilab que dada la informaci on de una matriz banda denida positiva, obtenga la factorizaci on de Cholesky. Elabore otra funci on para resolver el sistema triangular inferior banda U T p = q . Elabore otra funci on para resolver el sistema triangular superior banda U p = q . Utilice las tres funciones para resolver el sistema de ecuaciones.

127

Cap tulo 4 Ecuaciones no lineales


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

129 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 obtiene 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, llamados m etodos de encajonamiento bracketing, parten de un intervalo inicial [a0 , b0 ], con 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 por los tama nos tienda

129

130 a 0. Expl citamente,

4.1. EN SCILAB

x [ak+1 , bk+1 ] x lim (bk ak )

[ a0 , b 0 ] , [ak , bk ], k = 1, 2, ..., [ak , bk ], k = 1, 2, ..., 0.

En este caso, el proceso se detiene cuando se obtiene un intervalo sucientemente peque no, bk ak . Cualquiera de los puntos del u ltimo intervalo es una buena aproximaci on de x .

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 Despu es 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) 130

131

4.1. EN SCILAB

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

fx

132

4.2. METODO DE NEWTON

y = f ( x)

(x0 , f (x0 ))

(x1 , f (x1 )) x2 x1 x0

Figura 4.1: M etodo de Newton

= 0.9957334

lo cual indica que no se obtuvo una ra z.

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

133 Entonces

4.2. METODO DE NEWTON

xk+1 = xk

f ( xk ) f ( xk )

(4.1)

Ejemplo 4.1. Aplicar el m etodo de Newton a la ecuaci on x5 3x4 +10x 8 = 0, partiendo de x0 = 3. k 0 1 2 3 4 5 6 xk 3.000000 2.758242 2.640786 2.611626 2.609930 2.609924 2.609924 f ( xk ) 2.200000E+01 5.589425E+00 9.381331E-01 4.892142E-02 1.590178E-04 1.698318E-09 -2.838008E-15 f ( xk ) 91.000000 47.587479 32.171792 28.848275 28.660840 28.660228 28.660227

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

134 Puede no converger.

4.2. METODO DE NEWTON

Presenta problemas cuando f (xk ) 0. Requiere la evaluaci on de f (x) en cada iteraci on. 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 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: M etodo de Newton 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 x xk, 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 . 134

135

4.2. METODO DE NEWTON

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 // func debe dar los valores f(x) y f(x)

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

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

x = x0 for k=0:maxit [fx, der] = func(x) //printf(%3d %10.6f %10.6f %10.6f\n, k, x, fx, der) if abs(fx) <= eps ind = 1 return end if abs(der) <= eps0 ind = 0 return end x = x - fx/der end 135

136 ind = 2 endfunction

4.2. METODO DE NEWTON

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. Si x0 est a sucientemente cerca de x , entonces
k

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

(4.2) (4.3)

lim

|xk+1 x | | xk x | 2

El primer resultado dice que la sucesi on converge a x . El segundo dice que la convergencia es cuadr atica o de orden superior. La frase x0 est a su cientemente cerca de x , entonces... quiere decir que existe > 0 tal que si x0 [x , x + ] I , entonces... Demostraci on.

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

( x xn ) 2 , 2

I (x, xn )

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

( x xn ) 2 , 2

I ( x , xn )

136

137 dividiendo por f (xn )

4.2. METODO DE NEWTON

f (xxn ) 2 f ( ) + ( x x ) + ( x x ) , n n f (xxn ) 2f ( xn ) f ( ) f (xxn ) , + ( x xn ) 2 0 = x xn f (xxn ) 2f ( xn ) f ( ) 0 = x xn+1 + (x xn )2 , 2f ( xn ) f ( ) x xn+1 = (x xn )2 . 2f ( xn )

0=

(4.4)

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


x I

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, | x x1 | = M | x x0 | 2 , M | x x1 | = ( M | x x0 | ) 2 . Sea x0 tal que |x x0 | < , M | x x0 | < 1 .

(4.5)

137

138 Entonces

4.2. METODO DE NEWTON

M | x x1 | < 1 , M | x x1 | < ( M | x x0 | ) 2 , M |x x1 | < M |x x0 |, ya que 0 < t < 1 t2 < t, |x x1 | < , . . . M | x xn | < 1 , | x xn | < . Luego | x xn | M | x xn 1 | , M | x xn | ( M | x xn 1 | ) 2 ,
n

M | x xn | ( M | x x0 | ) 2 , 1 n | x xn | ( M | x x0 | ) 2 , M Como |x x0 | < 1, entonces lim |x xn | = 0,

es decir
n

lim xn = x .

Reescribiendo (4.4), f ( ) x xn+1 , = ( x xn ) 2 2f ( xn ) Tomando el l mite, como xn tiende a x , f (x ) x xn+1 = . n (x xn )2 2f ( x ) lim 138 I ( x , xn )

139

4.3. METODO DE LA SECANTE

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 | e k | /| e k 1 | 2 4.728254e-02 1.990666e+00 2.568844e+00 2.664971e+00 2.651673e+00

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 ( xk ) f ( xk 1 ) f ( xk ) , xk xk 1 entonces se obtiene f (xk )(xk xk1 ) f ( xk ) f ( xk 1 )

xk+1 = xk

(4.6)

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 y de x1 = x0 + 0.01.

139

140

4.3. METODO DE LA SECANTE

y = f ( x)

(x0 , f (x0 ))

(x1 , f (x1 )) x2 x1 x0

Figura 4.2: M etodo de la secante

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

141

4.3. METODO DE LA SECANTE

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. M etodo de la secante 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 x x2, 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

141

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

4.4. METODO DE LA BISECCION

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

Es un m etodo de encajonamineto. Si la funci on f es continua en el intervalo [ak , bk ], ak < bk , y si f (ak ) y f (bk ) tienen signo diferente, f ( ak ) f ( b k ) < 0 , entonces f tiene por lo menos una ra z en el intervalo ]ak , bk [. Sea mk = (ak + bk )/2 (el punto medio del intervalo). Tres casos son posibles: 142

143

4.4. METODO DE LA BISECCION

y = f ( x)

ak mk bk

Figura 4.3: M etodo de bisecci on

x m k x ] ak , m k [ x ] m k , bk [ Estos tres casos corresponden a f (mk ) 0 f ( ak ) f ( m k ) < 0 f ( m k ) f ( bk ) < 0 Si f (mk ) 0, se tiene una aproximaci on de una ra z y el proceso iterativo se detiene. Si f (mk )f (ak ) < 0, ak+1 ser a ak y se toma a mk como bk+1 . En caso contrario, el nuevo ak+1 ser a mk y bk+1 ser a bk . En ambos casos se obtiene un intervalo de tama no igual a la mitad del anterior. El proceso acaba cuando se obtiene una buena aproximaci on de la ra z o cuando se tiene un intervalo sucientemente peque no.

143

144

4.4. METODO DE LA BISECCION

Ejemplo 4.3. Aplicar el m etodo de bisecci on a la ecuaci on x5 3x4 + 10x 8 = 0, partiendo de [a0 , b0 ] = [2, 3], deteniendo el proceso si f (mk ) < 106 o bk ak 104 .
k 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ak 2.000000 2.500000 2.500000 2.500000 2.562500 2.593750 2.609375 2.609375 2.609375 2.609375 2.609375 2.609863 2.609863 2.609863 2.609924 bk 3.000000 3.000000 2.750000 2.625000 2.625000 2.625000 2.625000 2.617188 2.613281 2.611328 2.610352 2.610352 2.610107 2.609985 2.609985 f (ak ) -4.000000 -2.531250 -2.531250 -2.531250 -1.238990 -0.449286 -0.015732 -0.015732 -0.015732 -0.015732 -0.015732 -0.001754 -0.001754 -0.001754 -0.000005 f ( bk ) 22.000000 22.000000 5.202148 0.444733 0.444733 0.444733 0.444733 0.211084 0.096829 0.040337 0.012250 0.012250 0.005245 0.001745 0.001745 mk 2.500000 2.750000 2.625000 2.562500 2.593750 2.609375 2.617188 2.613281 2.611328 2.610352 2.609863 2.610107 2.609985 2.609924 f ( mk ) -2.531250 5.202148 0.444733 -1.238990 -0.449286 -0.015732 0.211084 0.096829 0.040337 0.012250 -0.001754 0.005245 0.001745 -0.000005

M etodo de la bisecci on datos: a, b, f , x fa f (a), fb f (b) si fafb 0 o b a, parar mientras b a > x m (a + b)/2, fm f (m) si |fm| f ent r m, parar n-si si fafm < 0, ent b m, fbfm sino a m, fafm n-si n-mientras si |fa| |fb| ent x a sino x b

El proceso acab o al obtener un intervalo sucientemente peque no. La aproximaci on de la ra z puede ser ak o bk . En este caso ak = 2.609924 es mejor que bk . 144

145

4.4. METODO DE LA BISECCION

Usualmente se dene el error asociado a una aproximaci on como e k = | xk 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 = b k ak .

Como el tama no de un intervalo es exactamente la mitad del anterior 1 b k ak = ( b k 1 ak 1 ) , 2 entonces 1 1 b k ak = ( b k 2 ak 2 ) . 2 2 Finalmente k 1 b k ak = ( b 0 a0 ) . 2 Obviamente Ek 0 y Ek 1 1 = . E k 1 2 2 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, 1 2
k

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


k

146

4.5. METODO DE REGULA FALSI

y = f ( x)

ak c k bk Figura 4.4: M etodo Regula Falsi

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

4.5.

M etodo de Regula Falsi

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

146

147

4.5. METODO DE REGULA FALSI

La ecuaci on de la recta es: y f ( ak ) = f ( b k ) f ( ak ) ( x ak ) . b k ak f (ak )(bk ak ) f ( b k ) f ( ak ) (4.7)

Cuando y = 0, se tiene el punto de corte x = ck , c k = ak

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.4. 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 bk 2.000000 5 2.009259 5 2.018616 5 2.028067 5 2.037610 5 2.047239 5 2.096539 5 2.198548 5 2.298673 5 2.609924 5 f ( ak ) f ( bk ) -4.000000 1292 -4.054857 1292 -4.108820 1292 -4.161744 1292 -4.213478 1292 -4.263862 1292 -4.489666 1292 -4.739498 1292 -4.594020 1292 -0.000001 1292 147 ck 2.009259 2.018616 2.028067 2.037610 2.047239 2.056952 2.106594 2.208787 2.308244 2.609924 f ( ck ) -4.054857 -4.108820 -4.161744 -4.213478 -4.263862 -4.312734 -4.528370 -4.744664 -4.554769 -0.000001

148

DEL METODO 4.6. MODIFICACION DE REGULA FALSI

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

lim (bk ak ) = 0.

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

4.6.

Modicaci on del m etodo de Regula Falsi

Los dos m etodos, bisecci on y Regula Falsi, se pueden combinar en uno solo de la siguiente manera. En cada iteraci on se calcula mk y ck . Esto dene tres subintervalos en [ak , bk ]. En por lo menos uno de ellos se tiene una ra z. Si los tres subintervalos sirven, se puede escoger cualquiera, o mejor a un, el de menor tama no. En un caso muy especial, cuando mk y ck coinciden, se tiene simplemente una iteraci on del m etodo de bisecci on. En cualquiera de los casos 1 bk+1 ak+1 (bk ak ), 2 entonces b k ak lo que garantiza que
k

1 2

( b 0 a0 ) ,

lim (bk ak ) = 0.

Ejemplo 4.5. Aplicar la modicaci on del m etodo de Regula Falsi a la ecuaci on x5 3x4 + 10x 8 = 0, partiendo de [2, 5].

148

149
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

4.7. METODO DE PUNTO FIJO

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

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

150

4.7. METODO DE PUNTO FIJO

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

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 150

151

4.7. METODO DE PUNTO FIJO

y=x y = g ( x)

x Figura 4.5: Punto jo

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 (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.6 a 4.9 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. 151

152

4.7. METODO DE PUNTO FIJO

y=x y = g ( x)

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

y=x

y = g ( x)

x0

x2 x x3

x1

Figura 4.7: M etodo de punto jo (b)

152

153

4.7. METODO DE PUNTO FIJO

y = g ( x)

y=x

x x0 x2

x3

x4

Figura 4.8: M etodo de punto jo (c)

y = g ( x)

y=x

x3 x1 x x0 x2

x4

Figura 4.9: M etodo de punto jo (d)

153

154

4.7. METODO DE PUNTO FIJO

En seguida se presentan dos teoremas (demostraci on en [Atk78]) sobre la convergencia del m etodo de punto jo; el primero es m as general y m as preciso, el segundo es una simplicaci on del primero, de m as f acil aplicaci on para ciertos problemas. Teorema 4.2. Sea g continuamente diferenciable en el intervalo [a, b], tal que g ([a, b]) [a, b], |g (x)| < 1, para todo x [a, b]. Entonces existe un u nico x en [a, b] soluci on de x = g (x) y la iteraci on de punto jo (4.9) converge a x para todo x0 [a, b]. 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 3 tiene: x = g (x) = (x + 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.7. Resolver x2 = 3, o sea, calcular 3. x2 = 3, x2 + x2 = x2 + 3, x2 + 3 x = , 2x x + 3/x x = 2

154

155

4.7. METODO DE PUNTO FIJO

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 1 .5/x 2 = 0, se concluye r apidamente que si x0 est a sucientemente cerca de 3, entonces el m etodo converge. 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 intervalo a un m as grande: I = [1 + , 4] con 0 < < 1. g (1) = 2, g (4) = 2.375, 1 3 g ( x) = 2, 2 2x g ( 3) = 0, g (1) = 1, 13 g (4) = , 32 3 g (x) = 3 x 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 . Entre 3 y 4 el valor de g (x) Entre 1+ y 3 el valor de g (x) es negativo. es positivo. Luego g decrece en en [ 3, 4]. Entonces g ([1 + [1 + , 3] y crece , 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 155

156

4.7. METODO DE PUNTO FIJO

para cualquier x0 ]1, 4]. Este resultado se puede generalizar al intervalo [1 + , b] con b > 3. Si se empieza con x0 = 1/2, no se cumplen las condiciones del teorema; sin embargo, el m etodo converge.

4.7.1.

Modicaci on del m etodo de punto jo

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

y = mx + b g ( xj ) g ( xi ) m= xj xi g (xi ) = mxi + b b = g (xi ) mxi xk = mxk + b b . xk = 1m

(4.10)

(4.11)

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

156

157

4.8. METODO DE NEWTON EN RN

4.7.2.

M etodo de punto jo y m etodo de Newton

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

(4.13)

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

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

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

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 2x1 + 3x2 x3 5 = 0 (x1 + x2 + x3 )2 10x3 + 1 = 0.

(4.15)

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 157

158

4.8. METODO DE NEWTON EN RN

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

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

Es posible que algunos de los lectores de este libro no conozcan sucientemente 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.

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

158

159

4.8. METODO DE NEWTON EN RN

n derivadas parciales de Fi , JF ( x) = F ( x) = F1 ( x) x1 F2 ( x) x1 . . . F1 ( x) x2 F2 ( x) x2 ... F1 ( x) xn F2 ( x) xn Fn ( x) xn

Fn Fn ( x) ( x) x1 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 1 2 1 F (2, 3, 4) = 2 12 9 . 6 6 4

4.8.2.

F ormula de Newton en Rn

La f ormula del m etodo de Newton en R, xk+1 = xk f ( xk ) , f ( xk ) f ( xk ) . f ( xk )

se puede reescribir con super ndices en lugar de sub ndices: xk+1 = xk

De nuevo, es simplemente otra forma de escribir xk+1 = xk f (xk )1 f (xk ). 159

160

4.8. METODO DE NEWTON EN RN

Esta expresi on se puede generalizar a Rn mediante: xk+1 = xk F (xk )1 F (xk ). (4.17)

El esquema de la deducci on formal de la f ormula anterior es el siguiente. Bajo condiciones adecuadas F (x) se puede aproximar, cerca a xk , por la funci on n n af n L : R R , F (x) L(x) = F (xk ) + F (xk )(x xk ). Como se busca F (x) = 0, entonces se busca tambi en L(x) = 0: F (xk ) + F (xk )(x xk ) = 0. Al despejar x se obtiene (4.17) La interpretaci on de todo el m etodo 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 x 1 x 2 x = ( x , x , ..., x ) o x = . . 1 2 n . . x n

0 0 El m etodo empieza con un vector x0 = (x0 on inicial de 1 , x2 , ..., xn ), aproximaci la soluci on x . Mediante (4.17) se construye una sucesi on de vectores {xk = k k k k (x1 , x2 , ..., xn )} con el deseo de que x x . En palabras, el vector 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 ( xk ) 1 F ( xk ) xk+1 = xk + dk . Premultiplicando por F (xk ) F ( xk ) d k = F ( xk ) F ( xk ) 1 F ( xk ) , F ( xk ) d k = F ( xk ) . 160

161

4.8. METODO DE NEWTON EN RN

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 el m etodo de Newton se resume en los dos pasos siguientes: 1) 2) Ejemplo 4.8. Resolver el sistema x2 1 + x1 x2 + x3 3 = 0 2x1 + 3x2 x3 5 = 0 (x1 + x2 + x3 )2 10x3 + 1 = 0 a partir de x0 = (2, 3, 4). 1 2 1 1 F (x0 ) = 37 , F (x0 ) = 2 12 9 6 6 4 30 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 1 0.5890 = 2.4110 x = 3 + 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 6.8219 6.8219 3.1781 d1 3 4.5753 4.4433 0.1321 2 4.6537 = 2.2428 x = 2.4110 + 1.2466 0.5048 1.7514 161 resolver F (xk ) dk xk+1 = F ( xk )

= xk + d k .

(4.18)

162

4.9. METODO DE MULLER

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

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 6 F (x ) 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. 162

163

4.9. METODO DE MULLER

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, para los polinomios de grado impar, la existencia de 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. Al considerar la pareja de ra ces complejas r y r , se cumple que (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 ). 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 seguir 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.

163

164

4.9. METODO DE MULLER

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 (x1 ) = a(x1 x2 )2 + b(x1 x2 ) + c, f (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

(4.19)

b2 4ac 2a 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 164

165

4.9. METODO DE MULLER

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.9. 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. 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 |b + R| |b R| bR si |b + R| < |b R| 2c x3 = x2 = (4.21)

Ejemplo 4.10. 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 c = 48

d = 0.25 b = 38.5 D = 4373.75 165

166

4.9. METODO DE MULLER

Hay que utilizar aritm etica compleja R = 66.134333i x3 = 0.368852 + 1.084169i Ahora utilizamos x1 , x2 y x3 d = 0.546325 + 0.413228i b = 21.941945 + 50.286087i D = 3890.341507 1752.330850i = 35.661266 + 114.149702i x4 = 0.586513 + 1.243614i x5 x6 x7 x8 = 0.758640 + 1.246582i = 0.748694 + 1.196892i = 0.750002 + 1.198942i = 0.750000 + 1.198958i a = 27.161207 + 11.293018i c = 12.981325 9.579946i R = 13.719321 63.863615i f (x4 ) = 3.760763 6.548104i f (x5 ) = 2.013839 1.490220i f (x6 ) = 0.123017 + 0.025843i f (x7 ) = 0.000535 + 0.000636i f ( x8 ) = 0 = 38.5 + 66.134333i f (x3 ) = 12.981325 9.579946i

Ahora se construye el polinomio q (x) = (x r)(x r ). Para r = 0.75 + 2 1.198958i se tiene q (x) = x 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 x2 = 1. f (x0 ) = 16 d = 0.25 b = 13 D = 521 = 35.825424 x3 = 2.446610 166 f (x1 ) = 1.25 f ( x2 ) = 8 a = 11 c=8 R = 22.825424 f (x3 ) = 0.026391

167

4.9. METODO DE MULLER

Ahora utilizamos x1 , x2 y x3 d = 0.011922 b = 22.390216 D = 500.277428 = 44.757098 x4 = 2.445431 x5 = 2.445428 a = 9.893220 c = 0.026391 R = 22.366882 f (x4 ) = 0.000057 f ( x5 ) = 0

Para r = 2.445428 se tiene q (x) = x + 2.445428. 2x3 + 4x2 + 6x2 + 20 = 2x2 0.890857x + 8.178526. x + 2.445428 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 2.445428 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.

167

168

4.9. METODO DE MULLER

M etodo de Muller para una ra z 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) 2 D = b 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/ x0 = x1 , x1 = x2 , x2 = x3 , f 0 = f 1 , f 1 = f 2 f 2 = p ( x2 ) n-para k Si el algoritmo anterior acaba normalmente, info valdr a 1 y r ser a una ra z, real o compleja. M etodo 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 168

169

4.10. METODO DE BAIRSTOW

ra ces complejas, se puede trabajar todo el tiempo con aritm etica compleja.

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

170 Es decir,

4.10. METODO DE BAIRSTOW

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

u1 = v 1 u3 = v3 dv2 ev1 ui = vi dvi1 evi2

u2 = v2 dv1 u4 = v4 dv3 ev2

un1 = vn1 dvn2 evn3 un = dvn1 evn2 + R un+1 = evn1 + S Para facilitar las f ormulas es u til introducir dos coecientes adicionales, vn y vn+1 , que no inuyen sobre q , denidos por vn = R vn+1 = S + dvn Entonces: un = vn dvn1 evn2 un+1 = dvn dvn evn1 + S un+1 = vn+1 dvn evn1

o sea, Las igualdades quedan:

u1 = v 1 u2 = v2 dv1 ui = vi dvi1 evi2 , Las f ormulas para calcular los vi son

i = 3, ..., n + 1.

170

171

4.10. METODO DE BAIRSTOW

v 1 = u1 v2 = u2 + dv1 vi = ui + dvi1 + evi2 , Una vez obtenidos los vi ,

(4.23) i = 3, ..., n + 1.

R = vn S = vn+1 dvn u1 d e v 1 = u1 u3 dv2 ev1 v2 = v3 = R = vn , 4 2 -3 4 R = 64, 5 8 13 u2 dv1 u4 dv3 ev2 v4 = un+1 dvn evn1 vn+1 =

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

S = 99 2 (64) = 29

El objetivo inicial es buscar R = 0 y S = 0. Esto se obtiene si vn = 0 y vn+1 = 0. Ahora se desea encontrar d y e tales que

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

171

172

4.10. METODO DE BAIRSTOW

resolver el sistema

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

(4.24) (4.25)

donde J es la matriz jacobiana vn k k vn (dk , ek ) (d , e ) d e . J = vn+1 k k vn+1 k k (d , e ) (d , e ) d e C alculo de las derivadas parciales: v1 =0 d vi1 vi2 vi = v i 1 + d +e d d d v2 = v1 d

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

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

Explicitando las derivadas parciales con respecto a d se tiene: v1 =0 d v2 v1 v3 = v2 + d +e d d d v3 v2 v4 = v3 + d +e d d d v2 = v1 d v2 v3 = v2 + d d d vi1 vi2 vi = v i 1 + d +e d d d 172

173 Sea

4.10. METODO DE BAIRSTOW

w 1 = v1 w2 = v2 + dw1 wi = vi + dwi1 + ewi2 ,

(4.26) i = 3, ..., n.

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 . Al derivar se tiene: v1 =0 d v3 = w2 d v2 = w1 d vi = w i 1 d

Explicitando las derivadas parciales con respecto a e se tiene v1 =0 e v3 = v1 e v4 v3 v5 = v3 + d +e e e e Utilizando de nuevo los wi v1 =0 e v3 = w1 e v5 = w3 e v2 =0 e v4 = w2 e vi = w i 2 e v2 =0 e v4 = v2 + dv1 e

Entonces 173

174

4.10. METODO DE BAIRSTOW

vn = w n 1 d vn+1 = wn d Es decir, la matriz jacobiana es simplemente J=

vn = w n 2 e vn+1 = w n 1 e

w n 1 w n 2 . w n w n 1

(4.27)

METODO DE BAIRSTOW datos: u1 , u2 , ..., un+1 (4.22), d0 , e0 , , MAXIT para k = 0, ...,MAXIT calcular v1 , v2 , ..., vn+1 seg un (4.23) si || ( vn , vn+1 ) || , ent parar calcular w1 , w2 , ..., wn seg un (4.26) construir J seg un (4.27) resolver el sistema (4.24) obtener dk+1 y ek+1 seg un (4.25) n-para k Si el agoritmo acaba de la manera esperada, || ( vn , vn+1 ) || , entonces los u ltimos valores d y e hacen que x2 dx e divida exactamente a p(x). El cociente ser a justamente q (x) = v1 xn2 + v2 xn3 + ... + vn2 x + vn1 . As , las 2 dos ra ces de x 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.11. 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 .

174

175
k = 0 2.0000 -3.0000

4.10. METODO DE BAIRSTOW

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 -------------------------------------------------4.0000 21.0000 45.0000 18.0000 -163.0000

4.0000

5.0000 8.0000

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

175

176

4.10. METODO DE BAIRSTOW

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 1.1025 4.4099 15.2361 24.7289 25.1660 -0.5225 -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

176

177
J

4.10. METODO DE BAIRSTOW

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 -0.4345 -1.7379 -3.9324 -3.6619 -2.0000 -----------------------------------------------------------4.0000 9.0509 8.4283 4.6033 0.0000 0.0000

Entonces d = 1.0127362 e = 0.4344745 2 x 1.0127362 x + 0.4344745 divide a p , r1 = 0.5063681 + 0.4219784 i es ra z de p, r2 = 0.5063681 0.4219784 i es ra z de p, 3 2 q (x) = 4 x + 9.0509449 x + 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 x2 + 0.9339455 x + 0.8660624 divide a p , r3 = 0.4669728 + 0.8049837 i es ra z de p, r4 = 0.4669728 0.8049837 i es ra z de p, q (x) = 4 x + 5.3151629 . La u ltima ra z es r5 = 1.3287907 . e = 0.8660624

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

178

4.10. METODO DE BAIRSTOW

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

4.7

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

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

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

178

Cap tulo 5 Interpolaci on y aproximaci on


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

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

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

180 y

x Figura 5.1: Puntos o datos iniciales

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

181

5.1. INTERPOLACION

Figura 5.3: Aproximaci on

5.1.
5.1.1.

Interpolaci on
En Scilab

Cuando hay m puntos (x1 , y1 ), (x2 , y2 ), ..., (xm , ym ) se desea obtener la funci on interpolante, una funci on cuya gr aca pasa por esos m 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) 181

182 3 2 1

5.1. INTERPOLACION

Figura 5.4: Interpolaci on lineal con interpln

La gr aca resultante es semejante a la de la gura 5.4. 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. Este 182

183 3 2 1

5.1. INTERPOLACION

Figura 5.5: Interpolaci on con funciones spline

, que se desea construir, debe ser conjunto se llama el soporte. La funci on f combinaci on lineal de n funciones llamadas funciones de la base. 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 2 1 (x) = 4, 2 (x) = 6x 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 a1 1 ( x 1 ) + a2 2 ( x 1 ) + + an n ( x 1 ) = y 1 a1 1 ( x 2 ) + a2 2 ( x 2 ) + + an n ( x 2 ) = y 2 . . . a1 1 ( x n ) + a2 2 ( x n ) + + an n ( x n ) = y n Las m igualdades anteriores se 1 ( x1 ) 2 ( x1 ) 1 ( x2 ) 2 ( x2 ) . . . 1 ( xn ) 2 ( xn ) pueden escribir matricialmente: y1 a1 n ( x1 ) n ( x2 ) a2 y 2 = . . . . . . yn an n ( xn ) 183

184

5.1. INTERPOLACION

De manera compacta se tiene a = y. (5.1)

La matriz es una matriz cuadrada n n y, a y y son vectores 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 1 a1 1 1 1 1 2 4 a2 = 2 5 a3 1 3 9 Entonces

que efectivamente pasa por los puntos dados.

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

La interpolaci on polinomial (las funciones utilizadas son 1, x, x2 , ...) para problemas peque nos con matrices sin problemas, se puede realizar en Scilab, mediante ordenes semejantes a: x = [ 0.5 1 1.5 2.1 3 3.6] y = [ 1 2 1.5 2.5 2.1 2.4] x = x(:); y = y(:); n = size(x,1); n1 = n - 1; F = ones(n,n); 184

185

POLINOMIAL DE LAGRANGE 5.2. INTERPOLACION

for i=1:n1 F(:,i+1) = x.^i; end a = F\y p = poly(a, x, c) 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 , se tiene 1 a1 1 0.3679 0.1353 1 7.3891 54.5982 a2 = 2 5 a3 1 20.0855 403.4288 1.2921 (x) = 1.2921 0.8123ex + 0.0496e2x , a = 0.8123 , f 0.0496

Entonces

que efectivamente pasa por los puntos dados.

5.2.

Interpolaci on polinomial de Lagrange

que pasa por los puntos es un En la interpolaci on de Lagrange, la funci on f 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 ( x1 , y1 ) , ( x2 , y2 ) , . . . , ( x n , yn ) , 185

186

POLINOMIAL DE LAGRANGE 5.2. INTERPOLACION

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)

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, te oricamente, siempre tiene soluci on. Una manera adecuada, en muchos casos m as eciente num ericamente, de encontrar p es por medio de los polinomios de Lagrange.

5.2.1.

Polinomios de Lagrange

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

Lk ( x ) =

i=1,i=k n

( x xi ) (5.3)

i=1,i=k

( xk xi )

La construcci on de los polinomios de Lagrange, para los datos del u ltimo ejemplo x1 = 1, x2 = 2, x3 = 3, da: L1 ( x ) = (x 2)(x 3) x2 5x + 6 = , (1 2)(1 3) 12 x2 2x 3 (x 1)(x 3) = , L2 ( x ) = (2 1)(2 3) 3 (x 1)(x 2) x2 x 2 L3 ( x ) = = . (3 1)(3 2) 4 186

187

POLINOMIAL DE LAGRANGE 5.2. INTERPOLACION

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. Remplazando, se verica que Lk se anula en todos los xi , salvo en xk , Lk ( xi ) = 0 si i = k, 1 si i = k. (5.4)

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

p ( x) =
k=1

yk Lk ( x ) .

(5.5)

Por construcci on p es un polinomio en Pn1 . Reemplazando, f acilmente se verica 5.2. Para el ejemplo, p ( x ) = 1 L1 ( x ) 2 L2 ( x ) + 5 L3 ( x ) = 2 x 2 3 x 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). L1 ( x ) = L2 ( x ) = L3 ( x ) = L4 ( x ) = p ( x) = 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. 187

188 7 6 5 4 3 2 1 0 0

POLINOMIAL DE LAGRANGE 5.2. INTERPOLACION

Figura 5.6: Un ejemplo de interpolaci on polinomial 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]; 188

189

POLINOMIAL DE LAGRANGE 5.2. INTERPOLACION

n = length(x) k = 2 Lk = poly([1], x, c); deno = 1; for i=1:n if i ~= k Lk = Lk*poly([x(i)], x); deno = deno*(x(k) - x(i)); end end Lk = Lk/deno

5.2.2.

Existencia, unicidad y error

El polinomio p Pn1 existe puesto que se puede construir. Sea q Pn1 otro polinomio tal que q (xi ) = yi , i = 1, 2, ..., n. Sea r(x) = p(x) q (x). Por construcci on, r Pn , adem as r ( xi ) = 0, i = 1, 2, n, es decir, r se anula en n valores diferentes, luego r(x) = 0, de donde q (x) = p(x). Teorema 5.1. 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 un It . 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) 189 (5.6)

190 Entonces

POLINOMIAL DE LAGRANGE 5.2. INTERPOLACION

G( xi ) = E ( xi )

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

n , G CI t

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

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. |(t)| (5.7) max |f (n) (z )| |E (t)| n ! z I t 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). 190

191

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

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

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


z I t

max |f (n) (z )| = 0.9589243 |(5.8)| = 0.0288 |E (5.8)| 0.0011507

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

5.3.

Diferencias divididas de Newton

Esta es una manera diferente de hacer los c alculos para la interpolaci on polin omica. En la interpolaci on de Lagrange se construye expl citamente p, es decir, se conocen sus coecientes. Por medio de las diferencias divididas no se tiene expl citamente el polinomio, pero se puede obtener f acilmente el valor p(x) para cualquier x. Supongamos de nuevo que tenemos los mismos n puntos, ( x1 , f 1 ) , ( x2 , f 2 ) , . . . , ( xn 1 , f n 1 ) , ( xn , f n ) . Con ellos se obtiene p = pn1 Pn1 . Si se consideran u nicamente los primeros n 1 puntos ( x1 , f 1 ) , ( x2 , f 2 ) , . . . , ( xn 1 , f n 1 ) , se puede construir pn2 Pn2 . Sea c(x) la correcci on que permite pasar de p n 2 a p n 1 , pn1 (x) = pn2 (x) + c(x), es decir, c(x) = pn1 (x) pn2 (x). 191

192

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

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 ( xn ) = p n 1 ( xn ) = p n 2 ( xn ) + c ( xn ) , f (xn ) = pn2 (xn ) + n1 (xn x1 )(xn x2 )(xn x3 ) (xn xn1 ). De la u ltima igualdad se puede despejar n1 . Este valor se dene como la diferencia dividida de orden n 1 de f en los puntos x1 , x2 , ..., xn . Se denota n1 = f [x1 , x2 , ..., xn ] := f ( xn ) p n 2 ( xn ) (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). Obviamente p 0 ( x) = f ( x1 ) . 192 (5.9)

193

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

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 ), p 1 ( x) p o ( x) f [ x1 , x2 ] = x x1 Para x = x2 , p 1 ( x2 ) p o ( x2 ) , x2 x1 f ( x2 ) f ( x2 ) f [ x1 , x2 ] = , x2 x1 f [ x2 ] f [ x1 ] . f [ x1 , x2 ] = x2 x1 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 ), p 2 ( x) p 1 ( x) f [ x1 , x2 , x3 ] = , (x x1 )(x x2 ) x = x3 , p 2 ( x3 ) p 1 ( x3 ) f [ x1 , x2 , x3 ] = , (x3 x1 )(x3 x2 ) = ... f 1 ( x3 x2 ) f 2 ( x3 x1 ) + f 3 ( x2 x1 ) f [ x1 , x2 , x3 ] = (x3 x2 )(x3 x1 )(x2 x1 ) f [xi+1 ] f [xi ] xi+1 xi (5.11) (5.10)

193

194 Por otro lado,

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

f2 f1 f3 f2 f [ x2 , x1 ] f [ x1 , x2 ] x3 x2 x2 x1 = , x3 x1 x3 x1 = ... f 1 ( x3 x2 ) f 2 ( x3 x1 ) + f 3 ( x2 x1 ) f [ x2 , x3 ] f [ x1 , x2 ] = x3 x1 (x3 x2 )(x3 x1 )(x2 x1 ) Luego f [ x1 , x2 , x3 ] = Generalizando, f [xi , xi+1 , xi+2 ] = f [ x2 , x3 ] f [ x1 , x2 ] x3 x1 (5.12)

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

La generalizaci on para diferencias divididas de orden j es: f [xi , xi+1 , ..., xi+j ] = f [xi+1 , ..., xi+j ] f [xi , ..., xi+j 1 ] x i+ j x i (5.13)

Las f ormulas anteriores dan sentido al nombre diferencias divididas. Cuando no se preste a confusi on, se puede utilizar la siguiente notaci on: Dj f [xi ] := f [xi , xi+1 , ..., xi+j ] Entonces D0 f [xi ] := f (xi ), D0 f [xi+1 ] D0 f [xi ] Df [xi ] = D1 f [xi ] = , xi+1 xi D1 f [xi+1 ] D1 f [xi ] D 2 f [ xi ] = , xi+2 xi D j f [ xi ] = Dj 1 f [xi+1 ] Dj 1 f [xi ] x i+ j x i (5.15) (5.16) (5.17) (5.14)

(5.18)

194

195

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

5.3.1.

Tabla de diferencias divididas

Para ejemplos peque nos, hechos a mano, se acostumbra construir la tabla de diferencias divididas, la cual tiene el siguiente aspecto: xi x1 x2 x3 x4 x5 fi f1 f2 f [ x2 , x3 ] f3 f [ x3 , x4 ] f4 f [ x4 , x5 ] f5 f [ x3 , x4 , x5 ] f [ x2 , x3 , x4 ] f [ x2 , x3 , x4 , x5 ] f [xi , xi+1 ] f [ x1 , x2 ] f [ x1 , x2 , x3 ] f [ x1 , x2 , x3 , x4 ] f [xi , xi+1 , xi+2 ] f [xi , xi+1 , xi+2 , xi+3 ]

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

196

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

a partir de los seis puntos siguientes: (0, 0), (0.5, 0.7071), (1, 1), (2, 1.4142), (3, 1.7321), (4, 2). 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 ]

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.02500.0482)/(41). 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:

196

197

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

x = x(:) y = y(:) n = size(x,1) DD = zeros(n,m+1); DD(:,1) = y; for j=1:m for i=1:n-j Djfi = ( DD(i+1,j) - DD(i,j) )/( x(i+j) - x(i) ); DD(i,j+1) = Djfi; end end disp(DD) Si los datos f (xi ) corresponden a un polinomio, esto se puede deducir mediante las siguientes observaciones: Si para alg un m todos los valores f [xk , xk+1 , ..., xk+m ] son iguales (o aproximadamente iguales), entonces f es (aproximadamente) un polinomio de grado m. Si para alg un r todos los valores f [xk , xk+1 , ..., xk+r ] son nulos (o aproximadamente nulos), entonces f es (aproximadamente) un polinomio de grado r 1.

5.3.2.

C alculo del valor interpolado

La f ormula (5.8) se puede reescribir a partir de un punto xk , pues no siempre se debe tomar como valor de referencia x1 , pm (x) = pm1 (x) + Dm f [xk ](x xk )(x xk+1 ) (x xk+m1 ). (5.19)

Si se calcula pm1 (x) de manera an aloga, queda en funci on de pm2 (x) y as sucesivamente se obtiene:
m

p m ( x) =
i=0

D f [ xk ]

i 1 j =0

( x xk +j ) .

(5.20)

197

198

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

El proceso para el c alculo es el siguiente: p 0 ( x) = f k 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 ) . . . 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 ), p 0 ( x) = f k p 1 ( x) = p 0 ( x) + D 1 f [ xk ] 1 p 2 ( x) = p 1 ( x) + D 2 f [ xk ] 2 p 3 ( x) = p 2 ( x) + D 3 f [ xk ] 3 p 4 ( x) = p 3 ( x) + D 4 f [ xk ] 4

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

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

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

199

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

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? 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 ui = , (5.21) 2 xi + xi+1 + xi+2 + + xi+m , (5.22) vi = m+1 |x uk | = min{|x ui | : x [xi , xi+m ]}, (5.23)
i

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


i

(5.24)

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

199

200

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

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

Una vez escogido xk = 1 para obtener la aproximaci on cuadr atica de f (1.69), los c alculos dan: 0 = 1, p 0 ( 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: 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 xk +j 1 ) px = px + gi Dj f [xk ] n-para j 200 0 = 1, 1 = 1(1.69 0.5) = 1.19,

201

5.3. DIFERENCIAS DIVIDIDAS DE NEWTON

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

201

202

5.4. DIFERENCIAS FINITAS

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.

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 fi = fi+1 fi k+1 fi = k (fi ) = k fi+1 k fi Algunas de las propiedades interesantes de las diferencias nitas son:
k

(5.25) (5.26) (5.27)

k fi =
j =0 k

(1)j

k f i+ k j , j

(5.28)

f i+ 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.

202

203

5.4. DIFERENCIAS FINITAS

Para valores igualmente espaciados, las diferencias nitas y las divididas est an estrechamente relacionadas. D 0 f [ xi ] = f [ xi ] = f i = 0 f i 1 fi fi+1 fi = D1 f [xi ] = f [xi , xi+1 ] = xi+1 xi h 2 fi f [xi+1 , xi+2 ] f [xi , xi+1 ] = = D2 f [xi ] = f [xi , xi+1 , xi+2 ] = xi+2 xi 2h 2 m fi Dm f [xi ] = f [xi , ..., xi+m ] = (5.30) m! hm

5.4.1.

Tabla de diferencias nitas

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

fi f1

2 fi 2 f1

3 fi

3 f1

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

204 xi 0 .5 1 1. 5 2 2. 5

5.4. DIFERENCIAS FINITAS

fi 0.0000 0.7071

fi 0.7071 0.2929

2 fi

3 fi

0.4142 0.0682 0.0352 0.0226

0.3460 0.0330 0.0126

1.0000 0.2247 1.2247 0.1895 1.4142 0.1669 1.5811

El valor 0.1895 es simplemente 1.41421.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 f i = f ( xi ) n-para i para j = 1, ..., m para i = 1, ..., n j j fi = j 1 fi+1 j 1 fi n-para i n-para j

5.4.2.

C alculo del valor interpolado

Teniendo en cuenta la relaci on entre diferencias divididas y nitas (5.30), la igualdad (5.20) se puede escribir
m

p m ( x) =
i=0

i fk i! h i

i 1 j =0

( x xk +j ) .

204

205

5.4. DIFERENCIAS FINITAS

i 1 El valor i! se puede escribir j as, sea s = (x xk )/h, es =0 (j + 1). Adem decir, x = xk + sh. Entonces, x xk+j = xk + sh xk jh = (s j )h. m

p m ( x) =
i=0 m

i fk i! h i i fk i! i fk

i 1 j =0 i 1 j =0

(s j )h (s j )

=
i=0 m

=
i=0

sj j+1 j =0

i 1

Si a y b son enteros no negativos, a b, el coeciente binomial est a denido por a! a = . (a b)! b! b Desarrollando los factoriales y simplicando se tiene a b = a(a 1)(a 2) (a b + 1) a(a 1)(a 2) (a b + 1) = 1 2 3 b b!

Esta u ltima expresi on sirve para cualquier valor real a y cualquier entero no a = 1. Entonces, negativo b, con la convenci on de que 0 sj j+1 j =0 se puede denotar simplemente por p m ( x) =
i=0 i 1

s i
m

y as i fk s . i (5.31)

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

206

5.4. DIFERENCIAS FINITAS

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 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, p 0 ( x) = f k p 1 ( x) = p 0 ( x) + 1 f k 1 p 2 ( x) = p 1 ( x) + 2 f k 2 p 3 ( x) = p 2 ( x) + 3 f k 3 p 4 ( x) = p 3 ( x) + 4 f k 4 x xk . h = 1, = = = = s 0 s 1 s 2 s 3 s s1 2 s2 3 s3 4

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

207 5.5.

POLINOMIAL POR TROZOS, SPLINES TRAZADORES CUBICOS, INTERPOLACION

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, p 0 ( x) = f 2 = 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

5.5.

Trazadores c ubicos, interpolaci on polinomial por trozos, splines

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

208 5.5.

POLINOMIAL POR TROZOS, SPLINES TRAZADORES CUBICOS, INTERPOLACION

0 0 1 2 3 4 5

Figura 5.7: Puntos o datos iniciales

0 0 1 2 3 4 5

Figura 5.8: Interpolaci on cuadr atica por trozos no continua 208

209 5.5.

POLINOMIAL POR TROZOS, SPLINES TRAZADORES CUBICOS, INTERPOLACION

0 0 1 2 3 4 5

Figura 5.9: Interpolaci on cuadr atica por trozos continua 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 ) si x [x1 , x2 ] S2 ( x ) si x [x2 , x3 ] S ( x) = . . . S (x) si x [x , x ] n 1 n 1 n 209

(5.32)

210 5.5.

POLINOMIAL POR TROZOS, SPLINES TRAZADORES CUBICOS, INTERPOLACION

En cada uno de los n 1 intervalos, Si (x) es un polinomio c ubico. Si (x) = ai (x xi )3 + bi (x xi )2 + ci (x xi ) + di , i = 1, 2, ..., n 1. (5.33) Conocer S (x) quiere decir conocer 4(n 1) coecientes: ai , bi , ci , di , para i = 1, 2, ..., n 1. Se requiere que S (x) pase por los puntos (xi , yi ), y que sea doblemente diferenciable. Adem as, es necesario tratar algunos detalles adicionales en los extremos de los intervalos. Entonces, S (xi ) = yi , i = 1, ..., n, Si (xi+1 ) = Si+1 (xi+1 ), i = 1, ..., n 2, Si (xi+1 ) = Si+1 (xi+1 ), i = 1, ..., n 2, Si (xi+1 ) = Si +1 (xi+1 ), i = 1, ..., n 2. Sea hj = xj +1 xj , el tama no del intervalo [xj , xj +1 ], j = 1, ..., n 1. Las condiciones anteriores se convierten en: Si ( x i ) = d i + c n 1 h n 1 + d n 1 3 ai h i + b i h 2 i + ci h i + d i 2 3 ai h i + 2 b i h i + c i 6 ai h i + 2 b i = yi = yn = di+1 = ci+1 = 2bi+1 i = 1, ..., n 1, i = 1, ..., n 2, i = 1, ..., n 2, i = 1, ..., n 2.

Sn 1 ( x n ) =

an 1 h 3 n 1

bn 1 h 2 n 1

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.

ai h 3 i

di 2 + bi h i + c i h i + d i 3 ai h 2 i + 2bi h i + c i

= yi = di+1 = ci+1 3ai hi + bi = bi+1

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

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

210

211 5.5.

POLINOMIAL POR TROZOS, SPLINES TRAZADORES CUBICOS, INTERPOLACION

De (5.37): ai = Reemplazando (5.38) en (5.35): 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 (bi+1 + bi )hi + ci = ci+1 Despejando ci de (5.39): ci = Cambiando i por i 1: c i 1 = 1 h i 1 ( d i d i 1 ) h i 1 (2bi1 + bi ) 3 (5.42) 1 hi (di+1 di ) (2bi + bi+1 ) hi 3 (5.41) bi+1 bi 3h i (5.38)

(5.39)

(5.40)

Cambiando i por i 1 en (5.40): ( bi + bi 1 ) h i 1 + c i 1 = c i Reemplazando (5.41) y (5.42) en (5.43): ( bi + bi 1 ) h i 1 + 1 h i 1 ( d i d i 1 ) 1 h i 1 hi (2bi1 + bi ) = (di+1 di ) (2bi + bi+1 ) 3 hi 3 (5.43)

Las variables di son en realidad constantes (di = yi ). Dejando al lado izquierdo las variables bj y al lado derecho los t erminos independientes, se tiene: h i 1 bi 1 + 3 2 h i 1 2 h i + 3 3 bi + hi 1 1 bi+1 = (di1 di ) + (di+1 di ). 3 h i 1 hi 211

212 5.5.

POLINOMIAL POR TROZOS, SPLINES TRAZADORES CUBICOS, INTERPOLACION

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

(5.46)

Al explicitar las condiciones de frontera libre se tiene:


S1 ( x ) = 6 a1 ( x x 1 ) + 2 b 1 Sn 1 ( x ) = 6 an 1 ( x x n 1 ) + 2 b n 1 S1 ( x1 ) = 2b1 = 0 Sn 1 ( x n ) = 3 an 1 h n 1 + b n 1 = 0 .

(5.47) (5.48)

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)

212

213 5.5. donde

POLINOMIAL POR TROZOS, SPLINES TRAZADORES CUBICOS, INTERPOLACION

1 0 0 0 h2 0 h1 2(h1 + h2 ) 0 h2 2(h2 + h3 ) h3 0 0 h 2( h + h ) h 3 3 4 4 A= 0 hn2 2(hn2 + hn1 ) hn1 0 0 0 0 1 b1 b 2 b 3 b= . , . . bn 1 bn 0 3 3 ( y1 y2 ) + ( y2 + y3 ) h1 h2 3 3 ( y2 y3 ) + ( y3 + y4 ) h2 h3 = . . . . 3 3 ( y y ) + ( y + y ) n 2 n 1 n 1 n h n 2 h n 1 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)

Como bn existe y vale 0, la ecuaci on (5.38) se puede aplicar a un para i = n 1. ai = bi+1 bi , i = 1, ..., n 1. 3h i 213 (5.51)

214 5.5.

POLINOMIAL POR TROZOS, SPLINES TRAZADORES CUBICOS, INTERPOLACION

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 h1 = h2 = h3 = h4 = 1. El sistema 1 0 0 0 1 4 1 0 0 1 4 1 0 0 1 4 0 0 0 0 = 2, d3 = 2 y d4 = 3. En este ejemplo que permite obtener los bi es: 0 b1 0 0 b2 0 b3 = 3 . 0 1 b4 6 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 c2 c3 c4 a1 a2 a3 a4 = 0.107143 = 0.214286 = 0.75 = 0.214286 = 0.107143 = 0.535714 = 1.035714 = 0.607143. 214

215

POR M 5.6. APROXIMACION INIMOS CUADRADOS

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

5.6.

Aproximaci on por m nimos cuadrados

Cuando hay muchos puntos no es conveniente buscar un u nico polinomio o una funci on que pase exactamente por todos los puntos. Entonces hay dos soluciones: la primera, vista anteriormente, es hacer interpolaci on por grupos peque nos de puntos. Para muchos casos es una soluci on muy buena. Sin embargo, en algunas ocasiones se desea una funci on que sirva para todos que, los puntos. La segunda soluci on consiste en obtener una sola funci on f aunque no pase por todos los puntos, pase relativamente cerca de todos. Este es el enfoque de la aproximaci on por m nimos cuadrados.

215

216

POR M 5.6. APROXIMACION INIMOS 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 lineal de n funciones llamadas funciones de la base. 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 . Como se supone que hay muchos puntos (m grande) y como se desea que f sea sencilla, es decir, n es relativamente peque no, entonces se debe tener que m n. Las funciones de la base deben ser linealmente independientes. Los (xi ) yi , para i = escalares a1 , a2 , ..., an se escogen de tal manera que f 1, 2, ..., m. Entonces, a1 1 ( x 1 ) + a2 2 ( x 1 ) + + an n ( x 1 ) y 1 a1 1 ( x 2 ) + a2 2 ( x 2 ) + + an n ( x 2 ) y 2 a1 1 ( x 3 ) + a2 2 ( x 3 ) + + an n ( x 3 ) y 3 . . . a1 1 ( x m ) + a2 2 ( x m ) + + an n ( x m ) y m . Las m igualdades (aproximadas) anteriores se pueden escribir de manera matricial: 1 ( x1 ) 2 ( x1 ) n ( x1 ) y 1 1 ( x 2 ) 2 ( x 2 ) n ( x 2 ) a1 y2 1 ( x 3 ) 2 ( x 3 ) n ( x 3 ) a2 y 3 . . . . . . . . an . 1 ( xm ) 2 ( xm ) n ( xm ) ym a y. (5.52)

De manera compacta se tiene

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 216

217

POR M 5.6. APROXIMACION INIMOS CUADRADOS

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) Recordemos del cap tulo 2 que para resolver por m nimos cuadrados el sistema Ax = b, se minimiza ||Ax b||2 . Traduciendo esto al problema de 2 aproximaci on por m nimos cuadrados, se tiene
m n 2

min
i=1 j =1

aj j ( x i ) y i

es decir, min

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 1 0 0 0 . 55 1 1 0.65 a1 1 1 1.5 2.25 a2 0.725 1 2 0.85 a3 4 1.35 1 3 9 Las ecuaciones normales dan: 4.1250 a1 5 7. 5 16.25 7. 5 16.25 39.375 a2 = 7.4875 17.8313 a3 16.25 39.375 103.0625 217

218 La soluci on es:

POR M 5.6. APROXIMACION INIMOS CUADRADOS

0.56 a = 0.04 , 0.10 (x1 ) f (x2 ) f (x3 ) = a = f (x4 ) f (x5 ) f

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

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

219

POR M 5.6. APROXIMACION INIMOS CUADRADOS

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

220

POR M 5.6. APROXIMACION INIMOS CUADRADOS

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. 5.11 Para diferentes valores de n, empezando con n = 5, construya en Scilab dos vectores columna x y y, con las coordenadas de n puntos: ( 0, (1)n1 (n 1)! ), (1, 0), (2, 0), (3, 0), ..., (n 1, 0) . Obtenga p, el polinomio de interpolaci on, a partir de la soluci on de (5.1).

Construya un vector columna yse con los valores del polinomio p evaluado en los valores del vector columna x. Te oricamente los dos vectores, y y yse, son iguales. Obtenga la norma de y-yse. Obtenga q , el polinomio de interpolaci on usando polinomios de Lagrange. Construya un vector columna ylg con los valores del polinomio q evaluado en los valores del vector columna x. Te oricamente los dos vectores, y y ylg, son iguales. Obtenga la norma de y-ylg. Repita el proceso con n = 10, 15, 20. Observe e interprete.

220

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 aproximaci se calcula I 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.

221

222

6.2. EN SCILAB

y = f ( x)

a Figura 6.1: Integral denida

6.2.

En Scilab

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

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

222

223

6.3. FORMULA DEL TRAPECIO

I = integrate(exp(-x*x), x, 0.1, 0.5) Aunque Scilab es muy bueno, no es perfecto. La utilizaci on de intg o integrate no funciona bien (versi on 5.1) para
2

sen(x) dx .
0

Algunas veces no se conoce una expresi on de la funci on f , pero se conoce una tabla de valores (xi , f (xi )), o simplemente una tabla de valores (xi , yi ). Supongamos, as lo requiere Scilab, que la lista de valores (x1 , y1 ), ..., (xn , yn ) est a ordenada de manera creciente de acuerdo a los xi , o sea, x1 < x2 < < xn . Para obtener el valor aproximado de la integral, entre x1 y xn , de la funci on f (representada por los valores (xi , yi )), es necesario tener dos vectores con los valor xi y yi , y utilizar la funci on inttrap , que utiliza la f ormula del trapecio en cada subintervalo. x = [0.1 0.15 0.2 0.25 0.3 0.4 0.5] y = [ 0.9900 0.9778 0.9608 0.9394 0.9139 0.8521 0.7788] I = inttrap(x, y) Para los mismos par ametros x , y , se puede utilizar la funci on intsplin que utiliza trazadores c ubicos (splines ). x = [0.1 0.15 0.2 0.25 0.3 0.4 0.5] y = [ 0.9900 0.9778 0.9608 0.9394 0.9139 0.8521 0.7788] I = intsplin(x, y)

6.3.

F ormula del trapecio

La f ormula del trapecio, como tambi en la f ormula de Simpson, hace parte de las f ormulas de Newton-Cotes. Sean n + 1 valores igualmente espaciados a = x0 , x1 , x2 , ..., xn = b, donde xi = a + ih , i = 0, 1, 2, ..., n , h = 223 ba , n

224

6.3. FORMULA DEL TRAPECIO

x0 x1 x2 xm x2m xn m a Figura 6.2: Divisi on en subintervalos

xn b

y supongamos conocidos yi = f (xi ). Supongamos adem as que n es un m ultix as plo de m, n = km. La integral x0n f (x)dx se puede separar en intervalos m peque nos:
xn xm x 2m 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). Entonces x 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 . p 1 ( x) = y0 x x1 x x0 + y1 , x0 x1 x1 x0 xh x p 1 ( x) = y0 + y1 , h h y1 y0 . p 1 ( x) = y0 + x h

224

225

6.3. FORMULA DEL TRAPECIO

y0

y1

x0

x1

Figura 6.3: F ormula del trapecio Entonces


x1 x0

p1 (x)dx =

y1 y0 )dx h 0 h 2 y1 y0 , = y0 h + 2 h y0 y1 = h( + ), 2 2 ( y0 + x y0 + y1 2 (6.1)

x1 x0

f (x)dx h

De la f ormula (6.1) o de la gr aca se deduce naturalmente el nombre de f ormula del trapecio. Ejemplo 6.1.
0.2 0

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

Aplicando la f ormula del trapecio a cada uno de los intervalos [xi1 , xi ] se

225

226 tiene:

6.3. FORMULA DEL TRAPECIO

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


xn x0 xn

x1

y0 f (x)dx h( + 2

n 1 i=1

yi +

yn ). 2

(6.2)

Ejemplo 6.2.
0.8 0

1 1 ex dx 0.2( e0 + e0.2 + e0.4 + e0.6 + e0.8 ) = 1.22962334 . 2 2

6.3.1.

Errores local y global

El error local de la f ormula del trapecio es el error proveniente de la f ormula (6.1). loc , eloc = Iloc I
x1

eloc =
x0 x1

f (x)dx h( f (x)dx

y0 y1 + ) 2 2
x1

=
x0 x1

p1 (x)dx
x0

=
x0

(f (x) p1 (x))dx .

226

227

6.3. FORMULA DEL TRAPECIO

Utilizando la f ormula del error para la interpolaci on polin omica 5.6,


x1

eloc =
x0

(x x0 )(x x1 ) f (x )dx , x [x0 , x1 ]. 2

El teorema del valor medio para integrales dice: Sean f continua en [a, b], g integrable en [a, b], g no cambia de signo en [a, b], entonces
b b

f (x)g (x)dx = f (c)


a a

g (x)dx

para alg un c en [a, b]. Teniendo en cuenta que (x x0 )(x x1 ) 0 en el intervalo [x0 , x1 ] y aplicando el teorema del valor medio para integrales, existe z [x0 , x1 ] tal que eloc = f (z ) 2
x1 x0

(x x0 )(x x1 )dx , z [x0 , x1 ].

Mediante el cambio de variable t = x x0 , dt = dx, eloc f (z ) h = t(t h)dt , z [x0 , x1 ], 2 0 f (z ) h3 ( ) , z [ x0 , x1 ] , = 2 6 f ( z ) , z [ x0 , x1 ] . = h 3 12

eloc

(6.3)

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

En algunos casos, la f ormula del error permite anar un poco m as. Si f (x) > +eloc , entonces la f 0 (f estrictamente convexa) en [x0 , x1 ] y como I = I ormula del trapecio da un valor aproximado pero superior al exacto. 227

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 .

228

6.3. FORMULA DEL TRAPECIO

entonces

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], I [0.22132601, 0.22147361].

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 y0 yn eglob = f (x)dx h( + y1 + y2 + + yn 2 + yn 1 + ) 2 2 x0
n

=
i=1

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

= Sean Entonces

h3 12

i=1

f (zi ) , zi [xi1 , xi ]

M1 = min{f (x) : x [a, b]} ,


n

M2 = max{f (x) : x [a, b]}. i

M1 f (zi ) M2 , nM1
i=1 n

f (zi ) nM2 , f (zi ) M2 .

1 M1 n C[2 a,b] ,

i=1

Si f entonces, aplicando el teorema del valor intermedio a f , existe [a, b] tal que n 1 f ( ) = f (zi ) . n i=1 Entonces h3 nf ( ) , [a, b]. 12 Como h = (b a)/n, entonces n = (b a)/h. eglob =
2

eglob

(b a)f ( ) = h , [a, b]. 12 228

(6.5)

229

6.4. FORMULA DE SIMPSON

6.4.

F ormula de Simpson
x2 x0 x2

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


x0

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

1 y0 (x h)(x 2h) 2y1 x(x 2h) + y2 x(x h) , 2h 2 1 = 2 x2 (y0 2y1 + y2 ) + hx(3y0 + 4y1 y2 ) + 2h2 y0 , 2h p2 (x)dx =

2h 0

1 8h 3 4h 2 ( y 2 y + y ) + h ( 3y0 + 4y1 y2 ) 0 1 2 2h 2 3 2

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

4 1 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, n = 2k , 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

f (x)dx
xn x0

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

h ( y0 + 4 y2j 1 + 2 y2j + yn ) f (x)dx 3 j =1 j =1 229

(6.7)

230 Ejemplo 6.3.


0.8 0

6.4. FORMULA DE SIMPSON

ex dx

0. 2 0 (e + 4(e0.2 + e0.6 ) + 2 e0.4 + e0.8 ) = 1.22555177 . 3

El valor exacto, con 8 cifras decimales, es 1.22554093, entonces el error es 0.00001084 .

6.4.1.

Errores local y global

Para facilitar la deducci on del error local, consideremos la integral entre h y h. Sea f C[4 . h,h]
h h

e(h) = eloc (h) =


h h

f (x) dx

p2 (x) dx,
h

=
h

f (x) dx

h f (h) + 4f (0) + f (h) . 3


h

Sea F tal que F (x) = f (x), entonces h f (x) dx = F (h) F (h). Al derivar con respecto a h se tiene f (h) + f (h). e ( h ) = f ( h ) + f ( h ) 1 f (h) + 4f (0) + f (h) 3

h f ( h ) + f ( h ) , 3 3e (h) = 2f (h) + 2f (h) 4f (0) h(f (h) f (h)). 3e (h) = 2f (h) 2f (h) f (h) + f (h) h(f (h) + f (h)), = f (h) f (h) h(f (h) + f (h)). 3e (h) = f (h) + f (h) (f (h) + f (h)) h(f (h) f (h)), = h(f (h) f (h)), h e (h) = ( f (h) f (h) ), 3 2h2 f (h) f (h) e (h) = . 3 2h 230

231

6.4. FORMULA DE SIMPSON

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 e (h) = Sea g4 (h) = f (4) (h). 2h 2 e (h) = g4 (h). 3
h

Entonces

2h2 (4) f (h) , [1, 1]. 3

e (h) =
0

e (t) dt + e (0), 2 3
h

e (h) =
2

t2 g4 (t) dt.
0

Como g4 es continua, t es integrable y no cambia de signo en [0, h], se puede aplicar el teorema del valor medio para integrales,
h 2 e (h) = g4 (4 ) t2 dt , 3 0 2 e (h) = h3 g4 (4 ). 9

4 [0, h],

Sea g3 (h) = g4 (4 ) = f (4) (3 h) , entonces De manera semejante,


h

1 3 1 ,

2 e (h) = h3 g3 (h). 9

e (h) =
0

e (t) dt + e (0),
h

2 e ( h ) = g 3 ( 3 ) 9

t3 dt ,
0

3 [0, h], 231

2 h 3 e (h) = t g3 (t) dt, 9 0 1 e ( h ) = h 4 g 3 ( 3 ) . 18

232 Sea

6.4. FORMULA DE SIMPSON

g2 (h) = g3 (3 ) = f (4) (2 h) , 1 e (h) = h4 g2 (h). 18


h

1 2 1 ,

e(h) =
0

e (t) dt + e(0),

e(h) =

h 1 t4 g2 (t) dt, 18 0 h 1 t4 dt , 2 [0, h], e ( h ) = g 2 ( 2 ) 18 0 1 5 e ( h ) = h g 2 ( 2 ) , 90 h5 e(h) = f (4) (1 h) , 1 1 1, 90 h5 e(h) = f (4) (z ) , h z h. 90

Volviendo al intervalo [x0 , x2 ], eloc = h5 f (4) (z ) , z [ x0 , x2 ] . 90 (6.8)

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

eglob =
a k

f (x) dx h5
k

h ( y0 + 4 y2j 1 + 2 y2j + yn ) , 3 j =1 j =1 zj [x2j 2 , x2j ],

k 1

=
j =1

f (4) (zj ) , 90

h5 = 90

f (4) (zj )
j =1

232

233

6.4. FORMULA DE SIMPSON

M1 f (4) (zj ) M2 ,
k

kM1 M1

1 k

j =1 k

f (4) (zj ) kM2 , f (4) (zj ) M2 ,

j =1

Entonces, existe [a, b], tal que 1 k


k

f (4) (zj ) = f (4) ( ),


j =1 k

f (4) (zj ) = k f (4) ( ),


j =1 k

f (4) (zj ) =
j =1 k

n (4) f ( ), 2 b a (4) f ( ). 2h

f (4) (zj ) =
j =1

Entonces eglob = h4 (b a)f (4) ( ) , [a, b]. 180 (6.9)

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 O(h4 ), es decir, una mejora notable. Se puede ver que al utilizar interpolaci on c ubica se obtiene
x3

f (x)dx =
x0

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

z [ x0 , x3 ] ,

llamada segunda f ormula de Simpson. Entonces el error local es O(h5 ) y el error global es O(h4 ). La f ormula anterior es exacta para polinomios de grado inferior o igual a 3. En resumen, la interpolaci on c ubica no mejora la calidad 233

234

6.5. OTRAS FORMULAS DE NEWTON-COTES

de la aproximaci on num erica, luego es preferible utilizar la f ormula (6.7), m as sencilla y de calidad semejante. Sin embargo, cuando se tiene una tabla ja con un n umero impar de subintervalos (n impar, n umero par de puntos), se puede aplicar la (primera) f ormula de Simpson sobre el intervalo [x0 , xn3 ] y la segunda f ormula sobre el intervalo [xn3 , xn ].

6.5.

Otras f ormulas de Newton-Cotes

Las f ormulas de Newton-Cotes se pueden clasicar en abiertas y cerradas. Las f ormulas del trapecio y de Simpson son casos particulares de las f ormulas cerradas. En ellas se aproxima la integral en el intervalo [x0 , xm ] usando el polinomio de interpolaci on, de grado menor o igual a m, construido a partir de los puntos (x0 , y0 ), (x1 , y1 ), ..., (xm1 , ym1 ), (xm , ym ), igualmente espaciados en x. xm xm f (x)dx pm (x)dx.
x0 x0

La siguiente tabla muestra las m as importantes.


xm

m
x0

pm (x)dx h ( y0 + y1 ) 2 h ( y0 + 4y1 + y2 ) 3 3h ( y0 + 3y1 + 3y2 + y3 ) 8 2h (7y0 + 32y1 + 12y2 + 32y3 + 7y4 ) 45

error f (z ) 3 h 12 f (4) (z ) 5 h 90 3 f (4) (z ) 5 h 80 8 f (6) (z ) 7 h 945

1 2 3 4

En todos los casos, z [x0 , xm ].

234

235

6.5. OTRAS FORMULAS DE NEWTON-COTES

6.5.1.

F ormulas de Newton-Cotes abiertas

En estas f ormulas el polinomio de interpolaci on se calcula sin utilizar los extremos del intervalo de integraci on,
xm+2 x0 xm+2

f (x)dx

pm (x)dx,
x0

donde pm , polinomio de grado menor o igual a m, se construye utilizando los puntos (x1 , y1 ), (x2 , y2 ), ..., (xm , ym ), (xm+1 , ym+1 ), igualmente espaciados en x.
xm+2

m
x0

pm (x)dx

error

f (z ) 3 0 2h y1 + h 3 3 f (z ) 3 3h 1 + ( y1 + y2 ) h 2 4 14 f (4) (z ) 5 4h (2y1 y2 + 2y3 ) h 2 + 3 45 95 f (4) (z ) 5 5h 3 (11y1 + y2 + y3 + 11y4 ) + h 24 144 En todos los casos z [x0 , xm+2 ]. Ejemplo 6.4.
0.8 0

ex dx

4 0. 2 (2 e0.2 e0.4 + 2 e0.6 ) = 1.22539158 . 3

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.

235

236

6.6. CUADRATURA ADAPTATIVA

6.6.

Cuadratura adaptativa
b

on de I por un m etodo jo de NewtonSea I = a f (x)dx e In la aproximaci Cotes (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

I = In + F (b a)( = In + F Sea m = 2n, I = Im + F Supongamos que

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

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

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

I I n + 2p G I n + e n , I Im + G In + em ,
a) donde G = F (b f (q) ( ), en y em son los errores. Se puede despejar G: np 2p
p+1

236

237

6.6. CUADRATURA ADAPTATIVA

em G =

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

(6.10) trapecio Simpson

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

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

sen(x)dx,

utilizando el m etodo del trapecio (n0 = 1) y el de Simpson, (n0 = 2), = 108 M etodo del trapecio: n 1 2 In 0.0000000000000002 1.5707963267948966 G

0.5235987755982988 237

238 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384

6.7. CUADRATURA DE GAUSS-LEGENDRE

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

0.1084408570473811 0.0260375680028370 0.0064462472755962 0.0016076723992682 0.0004016758899645 0.0001004038480554 0.0000251000169498 0.0000062749451746 0.0000015687326022 0.0000003921829181 0.0000000980457155 0.0000000245114300 0.0000000061278543

I 1.9999999938721373 + 0.0000000061278543 = 1.9999999999999916 . M etodo de Simpson: n 2 4 8 16 32 64 128 In 2.0943951023931953 2.0045597549844207 2.0002691699483881 2.0000165910479355 2.0000010333694127 2.0000000645300013 2.0000000040322572 G

-0.0059890231605850 -0.0002860390024022 -0.0000168385933635 -0.0000010371785682 -0.0000000645892941 -0.0000000040331829

I 2.0000000040322572 - 0.0000000040331829 = 1.9999999999990743 .

6.7.

Cuadratura de Gauss-Legendre

En las diferentes f ormulas de Newton-Cotes, los valores xi deben estar igualmente espaciados. Esto se presenta con frecuencia cuando se dispone de una tabla de valores (xi , f (xi )). En la cuadratura de Gauss se calcula la integral 238

239

6.7. CUADRATURA DE GAUSS-LEGENDRE

en un intervalo jo [1, 1] mediante valores precisos pero no igualmente espaciados. Es decir, no se debe disponer de una tabla de valores, sino que debe ser posible evaluar la funci on en valores espec cos. La f ormula de cuadratura de Gauss tiene la forma
1 1 n

f (x) dx

w i f ( xi ) .
i=1

(6.12)

Los valores wi se llaman los pesos o ponderaciones y los xi son las abscisas. Si se desea integrar en otro intervalo,
b

( ) d
a

es necesario hacer un cambio de variable, t= 2 ( a) 1 , ba


b

ba (t + 1) + a , 2
1

d =

ba dt 2

( ) d =
a b a b a

ba 2 ba 2 ba 2

(
1 n

ba (t + 1) + a) dt, 2 ba (xi + 1) + a), 2 (6.13) (6.14)

( ) d ( ) d i =

w i (
i=1 n

w i ( i ) ,
i=1

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

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

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

240 Recordemos que

6.7. CUADRATURA DE GAUSS-LEGENDRE

xk dx =
1

si k es impar,

2 si k es par. k+1

Para n = 1, se debe cumplir

w1 =
1 1

1 dx = 2, x dx = 0.
1

w 1 x1 =

Se deduce inmediatamente que w1 = 2 ,


1 1

x1 = 0. (6.15)

f (x) dx 2f (0).

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 , xi = xn+1i , wi = wn+1i . Para n = 2,
1

w1 + w2 =
1 1

1 dx = 2, x dx = 0,
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 =
1 1 1

2 , 3

x3 dx = 0.

240

241

6.7. CUADRATURA DE GAUSS-LEGENDRE

Por suposiciones de simetr a, x1 < 0 < x2 , x1 = x2 , w1 = w2 . Entonces 2w 1 = 2, 2 2w 1 x2 . 1 = 3 Finalmente, w 1 = 1, x1 = w 2 = 1, x2 =


1 1

1 , 3 1 . 3 1/3 . (6.16)

f (x) dx f

1/3 + f

Para n = 3, w 1 + w 2 + w 3 = 2, w 1 x1 + w 2 x2 + w 3 x3 = 0, 2 2 2 , w 1 x2 1 + w 2 x2 + w 3 x3 = 3 3 3 w 1 x3 1 + w 2 x2 + w 3 x3 = 0, 2 4 4 w 1 x4 , 1 + w 2 x2 + w 3 x3 = 5 5 5 w 1 x5 1 + w 2 x2 + w 3 x3 = 0. Por suposiciones de simetr a, x1 < 0 = x2 < x3 , x1 = x3 , w1 = w3 . 241

242 Entonces

6.7. CUADRATURA DE GAUSS-LEGENDRE

2w 1 + w 2 = 2, 2 2w 1 x2 , 1 = 3 2 . 2w 1 x4 1 = 5 Finalmente, 5 3 , w 1 = , x1 = 9 5 8 w 2 = , x2 = 0, 9 5 3 w 3 = , x3 = . 9 5
1 1

f (x) dx

5 f 9

3/5 +

5 8 f (0) + f 9 9

3/5 .

(6.17)

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 [AbS65]. 242

243

6.7. CUADRATURA DE GAUSS-LEGENDRE

Ejemplo 6.6. Calcular una aproximaci on de


0.8

ex dx
0.2

por cuadratura de Gauss con n = 3. 1 = 0. 8 0. 2 (0.774596669241483 + 1) + 0.2 = 0.26762099922756 2 0. 8 0. 2 2 = (0 + 1) + 0.2 = 0.5 2 0. 8 0. 2 (0.774596669241483 + 1) + 0.2 = 0.73237900077244 3 = 2

0.8 0.2

ex dx

0. 8 0. 2 5 1 8 2 5 3 e + e + e 2 9 9 9 1.00413814737559

El valor exacto es e0.8 e0.2 = 1.00413817033230, entonces el error es 0.00000002295671 2.3 108 . Si se emplea la f ormula de Simpson, que tambi en utiliza tres evaluaciones de la funci on, se tiene
0.8 0.2

ex dx

0.3 0.2 e + 4 e0.5 + e0.8 = 1.00418287694532 3

El error es 0.00004470661302 4.5 105 . La f ormula del error para 6.12 es: en = 22n+1 (n!)4 f (2n) ( ) , (2n + 1)((2n)!)3 1 < < 1 . (6.18)

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

244

6.7. CUADRATURA DE GAUSS-LEGENDRE

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. 5 h eSimpson = f (4) (z ) , 90 (2h)7 (3!)4 (6) h7 (6) eGauss3 = f ( ) = f ( ). 7(6!)3 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) ( ) .

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, 1 P2 (x) = (3x2 1), 2 1 P4 (x) = (35x4 30x2 + 3). 8 P1 (x) = x, 1 P3 (x) = (5x3 x), 2 2n 1 d (x2 1)n . n! d x n
n

(6.20) (6.21)

244

245

6.7. CUADRATURA DE GAUSS-LEGENDRE

Tambi en existe una expresi on recursiva: P0 (x) = 1, P1 (x) = x, 2n + 1 n Pn+1 (x) = x Pn (x) Pn1 (x) . n+1 n+1 Algunas de las propiedades de los polinomios de Legendre son:
1

(6.22) (6.23) (6.24)

xk Pn (x) dx = 0 ,
1 1 1 1

k = 0, 1, 2, ..., n 1, m = n,

(6.25) (6.26) (6.27)

Pm (x)Pn (x) dx = 0 , (Pn (x))2 dx =


1

2 2n + 1

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 = 2 (Pn (xi )) 1 x2 i

(6.28) (6.29)

6.7.2.

Cuadratura de Gauss-Laguerre y Gauss-Hermite

La cuadratura de Gauss-Laguerre usa los polinomios de Laguerre para calcular una aproximaci on de

f (x) dx.

Las abcisas son las ra ces de los polinomios de Laguerre. Las ponderaciones est an relacionadas con estos polinomios. Las f ormulas se pueden presentar de dos maneras:

245

246

6.7. CUADRATURA DE GAUSS-LEGENDRE

0 0

f (x) dx

w i e xi f ( xi ) ,
i=1 n

(6.30) (6.31)

ex g (x) dx

w i g ( xi ) .
i=1

En [AbS65] hay tablas con valores de xi y wi para valores de n 15. Por ejemplo, para n = 8: xi 0.170279632305 0.903701776799 2.251086629866 4.266700170288 7.045905402393 10.758516010181 15.740678641278 22.863131736889 wi 3.69188589342e-1 4.18786780814e-1 1.75794986637e-1 3.33434922612e-2 2.79453623523e-3 9.07650877336e-5 8.48574671627e-7 1.04800117487e-9

La cuadratura de Gauss-Hermite usa los polinomios de Hermite para calcular una aproximaci on de

f (x) dx.

Las abcisas son las ra ces de los polinomios de Hermite. Las ponderaciones est an relacionadas con estos polinomios. Las f ormulas se pueden presentar de dos maneras:
n

f (x) dx

w i e xi f ( xi ) ,
i=1 n

(6.32) (6.33)

ex g (x) dx

w i g ( xi ) .
i=1

En [AbS65] hay tablas con valores de xi y wi para valores de n 20. 246

247

NUMERICA 6.8. DERIVACION

6.8.

Derivaci on num erica

Dados los puntos (x0 , y0 ), (x1 , y1 ), ..., (xn , yn ) igualmente espaciados en x, o sea, xi = x0 + ih, se desea tener aproximaciones de f (xi ) y f (xi ). Como se vio anteriormente, (5.6), f (x) = pn (x) + (x x0 )(x x1 ) (x xn )f (n+1) ( )/(n + 1)!. Sea (x) = (x x0 )(x x1 ) (x xn ). Como depende de x, se puede considerar F (x) = f (n+1) ( (x))/(n + 1)!. Entonces f (x) = pn (x) + (x)F (x) f (x) = pn (x) + (x)F (x) + (x)F (x), f (xi ) = pn (xi ) + (xi )F (xi ) + (xi )F (xi ), f (xi ) = pn (xi ) + (xi )F (xi ). Para n = 1 p 1 ( x) = y0 + ( y1 y0 ) ( x x0 ) , h p1 (x) = ( y1 y0 ) h

(x) = (x x0 )(x x1 ) , Entonces f ( x0 ) =

(x) = 2x 2x0 h

( y1 y0 ) (y1 y0 ) h + (2x0 2x0 h)F (x0 ) = f ( (x0 )), h h 2 ( y y ) h ( y y ) 1 0 1 0 + (2x1 2x0 h)F (x1 ) = + f ( (x1 )). f ( x1 ) = h h 2 En general, f ( xi ) = h (yi+1 yi ) f ( ), [xi , xi+1 ] h 2 ( y y ) h i i 1 + f ( ), [xi1 , xi ] f ( xi ) = h 2 (6.34) (6.35)

El primer t ermino despu es del signo igual corresponde al valor aproximado. El segundo t ermino es el error. Se acostumbra decir simplemente que el error

247

248

NUMERICA 6.8. DERIVACION

es del orden de h. Esto se escribe (yi+1 yi ) + O (h), f ( xi ) = h ( yi yi 1 ) f ( xi ) = + O (h). h Para n = 2, sea s = (x x0 )/h,

s(s 1) 2 f0 , p 2 ( x) = y0 + s f 0 + 2 2 x x0 x x0 x x0 h 2 f 0 p 2 ( x) = y0 + f0 + , h h h 2 f 0 2x 2x0 h 2 f 0 p2 (x) = + , h h2 2 f0 2 f0 p2 (x1 ) = + = h 2h y2 y0 p2 (x1 ) = 2h (x) = (x x0 )(x x0 h)(x x0 2h), (x) = (x x0 )3 3h(x x0 )2 + 2h2 (x x0 ), (x) = 3(x x0 )2 6h(x x0 ) + 2h2 , (x1 ) = 3h2 6h2 + 2h2 = h2 .

y2 y0 h2 f ( x1 ) = f ( ) , [ x0 , x2 ] . 2h 6 De manera general,

Entonces

f ( xi ) = O tambi en,

yi+1 yi1 h2 f ( ) , [xi1 , xi+1 ]. 2h 6 f ( xi ) = yi+1 yi1 + O (h2 ). 2h

(6.36)

(6.37)

En [YoG72], p ag. 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 ]. f ( xi ) = h2 12

(6.38)

248

249 O tambi en,

NUMERICA 6.8. DERIVACION

f (xi ) =

yi+1 2yi + yi1 + O (h2 ). 2 h

(6.39)

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) + O (h2 ), f ( x) = 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 = 0.0313 . f (4) 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.40) (6.41) (6.42) (6.43) f (4),

6.8.1.

Derivadas parciales

Sea f : Rn R con derivadas dobles continuas. La f ormula (6.42) se puede generalizar a 249

250

NUMERICA 6.8. DERIVACION

1 f ( x) = f ( x1 , ..., x i 1 , x i + h, x i+1 , ..., x n ) 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 + O (h2 ) ( x) = xi 2h donde ei = (0, ..., 0,1, 0, ..., 0) Rn . La f ormula (6.43) se puede generalizar a 2f f ( x + hei ) 2f ( x) + f ( x hei ) ( x ) = + O (h2 ) 2 x2 h i (6.45) (6.44)

(6.46)

Ejemplo 6.8. Sean f (x1 , x2 ) = ex1 sen(x2 ). Obtenga una aproximaci on de f 2f (2, 3) y de (2, 3) con h = 0.2 . x2 x2 1 f (2, 3.2) f (2, 2.8) f (2, 3) x2 0. 4 = 7.2664401 2 f (2.2, 3) 2f (2, 3) + f (1.8, 3) f (2, 3) 2 x1 0.04 = 1.0462241

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

251

NUMERICA 6.8. DERIVACION

function y = func246(x) y = sqrt(x) endfunction 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 251

252

NUMERICA 6.8. DERIVACION

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. x = [2 3] J = derivative(func247, x)

Ejercicios
6.1 Calcule
1

e x dx
0.2

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

ex dx 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)dx, siguiendo el esquema del

6.4 Observe, por ejemplo, que para n = 2 se eval ua la funci on en a, (a+b)/2, b. Para n = 4 se eval ua la funci on en a, a + (b a)/4, (a + b)/2, a + 3(b a)/4, b. Haga el programa eciente para que no eval ue la funci on dos veces en el mismo punto. 6.5 Haga un programa para calcular a f (x)dx , partiendo [a, b] en subintervalos y utilizando en cada subintervalo cuadratura de Gauss.
b

252

253

NUMERICA 6.8. DERIVACION

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). Calcule de la mejor manera posible
0.35 0.40 0.45

f (x)dx,
0.05 0.05

f (x)dx,
0.05

f (x)dx.

6.7 Considere los mismos puntos del ejercicio anterior. Calcule una aproximaci on de f (0.25), f (0.225), f (0.30). 6.8 Combine integraci on num erica y soluci on de ecuaciones para resolver
x 0

et dt = 0.1.

253

Cap tulo 7 Ecuaciones diferenciales


Este cap tulo se reere u nicamente a ecuaciones diferenciales ordinarias. Las primeras secciones tratan las ecuaciones diferenciales ordinarias de primer orden con condiciones iniciales: y = f (x, y ) para a x b, y ( x 0 ) = y0 . (7.1)

Frecuentemente la condici on inicial est a dada sobre el extremo izquierdo del intervalo, o sea, a = x0 . Un ejemplo 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 ecuaci on diferencial es buscar la soluci on anal tica. Si esto no se logra, entonces se busca la soluci on num erica que consiste en denir puntos en el intervalo [a, b], x0 = a < x1 < x2 < < xn1 < xn = b y encontrar valores aproximados y1 , y2 , ..., yn tales que yi y (xi ), i = 1, ..., n, 254

255 En muchos casos los valores xi est an igualmente espaciados, o sea, xi = a + ih, i = 0, 1, ..., n, con h = ba . n

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. El resultado es un vector la con las aproximaciones de la soluci on en los valores deseados (tercer par ametro). Despu es 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) 255

256

7.1. METODO DE EULER

7.1.

M etodo de Euler

Se aplica a una ecuaci on diferencial como en (7.1) utilizando puntos igualmente espaciados. Su deducci on es muy sencilla. y ( x0 ) Por otro lado y ( x0 ) = 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 )

256

257

7.1. METODO DE EULER

( x1 , y1 ) y ( x0 + h ) y0 = y ( x0 )

x0

x0 + h

Figura 7.1: M etodo de Euler si para valores peque nos de h existe una constante c tal que |(t, h)| chp , t [t1 , t2 ]. Tambi en se acostumbra decir que (t, h) chp . 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 ( h 2 ) yn = y ( xn ) + O ( h ) . (7.3) (7.4)

Ejemplo 7.1. Resolver, por el m etodo de Euler, la ecuaci on diferencial y = 2x2 4x + y y (1) = 0.7182818 en el intervalo [1, 3], con h = 0.25. La primera observaci on es que esta ecuaci on diferencial se puede resolver x 2 anal ticamente. Su soluci on es y = e 2x . Luego no deber a ser resuelta 257

258

7.1. METODO DE EULER

num ericamente. Sin embargo, el hecho de conocer su soluci on exacta permite ver el error cometido por el m etodo num erico. y1 = y0 + hf (x0 , y0 ) = 0.7182818 + 0.25f (1, 0.7182818) = 0.7182818 + 0.25(0.7182818 + 2 12 4 1) = 0.3978523 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 = 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) 258

259

7.1. METODO DE EULER

2 1 0 1

Figura 7.2: Ejemplo del m etodo de Euler // // // // // // // // // 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

259

260

7.2. METODO DE HEUN

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

( x1 , y1 )

x0

x0 + h

Figura 7.3: M etodo de Heun

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 m etodo del trapecio. En el m etodo de Euler se utiliza la aproximaci on y (x + h) = y (x) + hy (x). En el m etodo de Heun se busca cambiar, en la aproximaci on anterior, la derivada en x por un promedio de la derivada en x y en x + h. y ( x) + y ( x + h ) 2

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

f (x, y (x)) + f (x + h, y (x + h)) 2

La f ormula anterior no se puede aplicar. Sirve para aproximar y (x + h) pero utiliza y (x + h). Entonces, en el lado derecho, se reemplaza y (x + h) por la aproximaci on dada por el m etodo de Euler y ( x + h ) y ( x) + h f (x, y (x)) + f (x + h, y (x) + hf (x, y (x))) 2

260

261

7.2. METODO DE HEUN

La anterior aproximaci on suele escribirse de la siguiente manera: K1 = hf (xi , yi ) K2 = hf (xi + h, yi + K1 ) (7.5) 1 yi+1 = yi + (K1 + K2 ). 2 Ejemplo 7.2. Resolver, por el m etodo de Heun, 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, y0 + K1 ) = 0.25f (1.25, 0.397852) = 0.369287 y1 = y0 + ( K 1 + K 2 ) /2 = 0.3734236 K1 = hf (x1 , y1 ) = 0.25f (1.25, 0.3734236) = 0.375394 K2 = hf (x1 + h, y1 + K1 ) = 0.25f (1.500000, 0.001971) = 0.375493 y2 = y1 + ( K 1 + K 2 ) /2 = 0.0020198 K1 = ... 261

262

7.2. METODO DE HEUN

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.

262

263

7.3. METODO DEL PUNTO MEDIO

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

( x1 , y1 )

x0

x0 + h/2

x0 + h

Figura 7.5: M etodo del punto medio

7.3.

M etodo del punto medio

Tambi en este m etodo es una modicaci on o mejora del m etodo de Euler y se utiliza para el mismo tipo de problemas. En el m etodo de Euler se utiliza 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. h y (x + h/2) y (x) + f (x, y ) 2 h y (x + h) y (x) + h f (x + h/2, y (x) + f (x, y )) 2

263

264

7.3. METODO DEL PUNTO MEDIO

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)

Ejemplo 7.3. Resolver, por el m etodo del punto medio, la ecuaci on diferencial y = 2x2 4x + y y (1) = 0.7182818 en el intervalo [1, 3], con h = 0.25. K1 = hf (x0 , y0 ) = 0.25f (1, 0.7182818) = 0.320430 K2 = hf (x0 + h/2, y0 + K1 /2) = 0.25f (1.125, 0.558067) = 0.352671 y1 = y0 + K 2 = 0.3656111 K1 = hf (x1 , y1 ) = 0.25f (1.25, 0.3656111) = 0.377347 K2 = hf (x1 + h/2, y1 + K1 /2) = 0.25f (1.375, 0.176937) = 0.385453 y2 = y1 + K 2 = 0.0198420 K1 = ...

264

265

7.4. METODO DE RUNGE-KUTTA

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 (7.1) utilizando puntos igualmente espaciados. La forma general 265

266

7.4. METODO DE RUNGE-KUTTA

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 ) . . . Kn = hf (xi + n h, yi + n1 K1 + n2 K2 + + n,n1 Kn1 ) yi+1 = yi + R1 K1 + R2 K2 + ... + Rn Kn .

(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 K2 K3 K4 yi+1 = hf (xi , yi ) = hf (xi + h/2, yi + K1 /2) = hf (xi + h/2, yi + K2 /2) = hf (xi + h, yi + K3 ) = yi + ( K 1 + 2K 2 + 2K 3 + K 4 ) /6. 266 (7.9) (7.8)

(7.10)

(7.11)

267

7.4. METODO DE RUNGE-KUTTA

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) = 0.352671 K3 = hf (x0 + h/2, y0 + K2 /2) = 0.25f (1.125, 0.541946) = 0.356701 K4 = hf (x0 + h, y0 + K3 ) = 0.25f (1.25, 0.361581) = 0.378355 y1 = y0 + ( K1 + 2K2 + 2K3 + K4 ) /6 = 0.3653606 K1 = hf (x1 , y1 ) = 0.25f (1.25, 0.3653606) = 0.377410 K2 = hf (x1 + h/2, y1 + K1 /2) = 0.25f (1.375, 0.176656) = 0.385524

267

268

7.4. METODO DE RUNGE-KUTTA

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) = 0.386538 K4 = hf (x1 + h, y1 + K3 ) = 0.25f (1.5, 0.02117) = 0.380294 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. 268

269

7.4. METODO DE RUNGE-KUTTA

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

269

270

DE RK2 7.5. DEDUCCION

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 ( u + u, v + v ) g ( u, v ) + u g g ( u, v ) + v ( u, v ). u v (7.12)

La aproximaci on de segundo orden para y (xi + h) es: y (xi + h) = y (xi ) + hy (xi ) + h2 y ( xi ) + O ( h 3 ) 2 h2 y (xi + h) y (xi ) + hy (xi ) + y (xi ). 2 (7.13) (7.14)

En la aproximaci on anterior, podemos tener en cuenta que y (xi ) = yi , y que

270

271 y (xi ) = f (xi , yi ). Adem as, y (xi ) =

DE RK2 7.5. DEDUCCION

d y ( xi ) dx d f ( xi , yi ) = dx f y f f ( xi , yi ) + f ( xi , yi ) ( xi ) = x y x f f f ( xi , yi ) + y ( xi ) f ( xi , yi ) . = x y

Para acortar la escritura utilizaremos la siguiente notaci on: f := f (xi , yi ) f fx := f ( xi , yi ) x f f ( xi , yi ) fy := y y := y (xi ) y := y (xi ) = f (xi , yi ) = f y := y (xi ). Entonces y = fx + f fy y (xi + h) y + hf + h2 h2 fx + f fy . 2 2 (7.15)

Por otro lado, el m etodo RK2 se puede reescribir: 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 f f (xi , yi ) + K1 (xi , yi ) . x y

271

272

7.6. CONTROL DEL PASO

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 Entonces = , 1 R2 = 2 R1 = 1 R2 . (7.17) (7.18) (7.19)

Si = 1, entonces = 1, R2 = 1/2 y R1 = 1/2, es decir, el m etodo de Heun. Si = 1/2, entonces = 1/2, R2 = 1 y R1 = 0, es decir, el m etodo del punto medio. Para otros valores de se tienen otros m etodos de RK de orden 2.

7.6.

Control del paso

Hasta ahora, se ha supuesto que para hallar la soluci on num erica de una ecuaci on diferencial, los puntos est an igualmente espaciados, es decir, xi xi1 = h para i = 1, 2, ..., n. Esta pol tica no es, en general, adecuada. Es preferible utilizar valores de h peque nos cuando es indispensable para mantener errores relativamente peque nos, y utilizar valores grandes de h cuando se puede. 272

273

7.6. CONTROL DEL PASO

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 ) y el m etodo B con error local O(hp+1 ) (o con error local O(hq ), q p + 1). Partimos de yi , muy buena aproximaci on de y (xi ). Aplicando los dos m etodos calculamos yA y yB , aproximaciones de y (xi + h). El control de paso tiene dos partes: en la primera se obtiene una aproximaci on del posible error obtenido. |error| e = 1 (yA , yB , h, p). 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 273

274

7.6. CONTROL DEL PASO

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

i 2 3 4 5 6

i 1 4 3 8 12 13 1 1 2

i1

i2

...

1 4 3 9 32 32 7200 7296 1932 2197 2197 2197 3680 845 439 8 216 513 4104 8 3544 1859 11 2 27 2565 4104 40

(7.20)

yA = yi +

25 1408 2197 1 K1 + 0K2 + K3 + K4 K5 216 2565 4104 5 16 6656 28561 9 2 yB = yi + K1 + 0K2 + K3 + K4 K5 + K6 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}, C = max{C, 0.1}. 274

(7.22)

275

7.6. CONTROL DEL PASO

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] 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 = h 0 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 .

275

276

7.6. CONTROL DEL PASO

Se calcula directamente 1 128 2197 1 2 e= 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 diferencial y = 2x2 4x + y y (1) = 0.7182818 en el intervalo [1, 3], con h0 = 0.5 y = 106 . yA = 0.01834063 yB = 0.01830704 e = 0.00006717 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 276

277

7.7. ORDEN DEL METODO Y ORDEN DEL ERROR

h = 0.14162640 sirve. x = 1.28833543 y = 0.30712821 . . .

x 1.0000000 1.1467090 1.2883354 1.4505624 1.6192491 1.7525988 1.8855347 2.0046653 2.1139603 2.2163666 2.3134884 2.4062996 2.4954587 2.5814440 2.6646196 2.7452730 2.8236369 2.8999043 2.9742376 3.0000000

h 0.1467090 0.1416264 0.1622270 0.1686867 0.1333497 0.1329359 0.1191306 0.1092950 0.1024064 0.0971218 0.0928111 0.0891591 0.0859853 0.0831757 0.0806534 0.0783639 0.0762674 0.0743333 0.0257624

y (x) 0.7182818 0.5179333 0.3071282 0.0572501 -0.1946380 -0.3736279 -0.5206051 -0.6137572 -0.6566848 -0.6506243 -0.5948276 -0.4877186 -0.3273334 -0.1114979 0.1620898 0.4958158 0.8921268 1.3535162 1.8825153 2.0855366

y ( x) 0.7182818 0.5179333 0.3071282 0.0572501 -0.1946380 -0.3736279 -0.5206051 -0.6137571 -0.6566847 -0.6506241 -0.5948275 -0.4877184 -0.3273332 -0.1114977 0.1620900 0.4958160 0.8921270 1.3535164 1.8825156 2.0855369

7.7.

Orden del m etodo y orden del error

Para algunos de los m etodos hasta ahora vistos, todos son m etodos de RK, se ha hablado del orden del m etodo, del orden del error local y del orden del error global. 277

278

7.7. ORDEN DEL METODO Y ORDEN DEL ERROR

2 1 0 1

Figura 7.8: Ejemplo del m etodo Runge-Kutta-Fehlberg 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) 278 Orden del m etodo 1 2 2 4 5 6 Error local O (h2 ) O (h3 ) O (h3 ) O (h5 ) O (h5 ) O (h6 )

279

7.7. ORDEN DEL METODO Y ORDEN DEL ERROR

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.

7.7.1.

Vericaci on num erica del orden del error

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

280 5 6 7 8

7.8. METODOS MULTIPASO EXPL ICITOS

2. 5

2. 0

1. 5

Figura 7.9: Orden local 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.

7.8.

M etodos multipaso expl citos

Los m etodos RK son considerados como m etodos monopaso (unipaso) por la siguiente raz on. El valor yi+1 se calcula u nicamente a partir del punto (xi , yi ). En los m etodos multipaso se utilizan otros puntos anteriores, por ejemplo, para calcular yi+1 se utilizan los puntos (xi2 , yi2 ), (xi1 , yi1 ) y (xi , yi ). Veamos un caso particular. Supongamos que se conocen los valores y0 = y (x0 ), y1 = y (x1 ) y y2 = y (x2 ). Por facilidad para la deducci on, supongamos que x0 = 0, 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) = f 0 (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) 280

281

7.8. METODOS MULTIPASO EXPL ICITOS

Despu es de algunas factorizaciones se obtiene: p 2 ( x) = 1 (f0 2f1 + f2 )x2 + (3f0 + 4f1 f2 )hx + 2h2 f0 . 2h 2
x3 x2

Por otro lado, por el teorema fundamental del c alculo integral y (x)dx = y (x3 ) y (x2 )
x3

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

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


2h

y ( x3 ) = y ( x2 ) +

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


3h

y ( x3 ) y ( x2 ) + y ( x3 ) y ( x2 ) +

p2 (x)dx
2h 3h 2h

1 ( f 0 2f 1 + f 2 ) x2 + 2h 2 (3f0 + 4f1 f2 )hx + 2h2 f0 dx

1 19 ( f 0 2f 1 + f 2 ) h 3 + 2 2h 3 5 ( 3f 0 + 4f 1 f 2 ) h 3 + 2h 3 f 0 2 h y3 = y2 + (5f0 16f1 + 23f2 ) 12 y3 = y2 +

(7.24)

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. 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 ( x2 ) + h 3 (5f0 16f1 + 23f2 ) + y (3) (z )h4 , z [x0 , x3 ]. (7.25) 12 8 281

282

7.8. METODOS MULTIPASO EXPL ICITOS

La f ormula (7.24) se escribe en el caso general yi+1 = yi + h (5fi2 16fi1 + 23fi ). 12 (7.26)

Para empezar a aplicar esta f ormula se requiere conocer los valores fj anteriores. Entonces es indispensable utilizar un m etodo RK el n umero de veces necesario. El m etodo RK escogido debe ser de mejor calidad que el m etodo de Adams-Bashforth que estamos utilizando. Para nuestro caso podemos utilizar RK4. Ejemplo 7.7. Resolver, por el m etodo de Adams-Bashforth de orden 2, la ecuaci on diferencial y = 2x2 4x + y y (1) = 0.7182818 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 f1 f2 y3 = f (x0 , y0 ) = 1.2817182 = f (x1 , y1 ) = 1.5096394 = 1.5182773 = y2 + h(5f0 16f1 + 23f2 )/12 = 0.3760843 f3 = f (x3 , y3 ) = 1.2510843 y4 = 0.6267238 . . .

282

283

7.8. METODOS MULTIPASO EXPL ICITOS

2 1 0 1

Figura 7.10: Ejemplo del m etodo de Adams-Bashforth 2 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 .

283

284

7.9. METODOS MULTIPASO IMPL ICITOS

MULTIPASO EXPL ICITO: ADAMS-BASHFORTH n 0 1 2 3 4 yi+1 = yi + hfi h yi+1 = yi + (fi1 + 3fi ) 2 yi+1 = yi + yi+1 = yi + yi+1 = yi + 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 y ( )h2 2 5 y ( )h3 12 3 (4) y ( )h4 8 251 (5) y ( )h5 720 95 (6) y ( )h6 288

7.9.

M etodos multipaso impl citos

En estos m etodos se utiliza un polinomio de interpolaci on, el mismo de los m etodos expl citos, pero el intervalo de integraci on var a. Veamos un caso particular. Supongamos que se conocen los valores y0 = y (x0 ), y1 = y (x1 ) y y2 = y (x2 ). Por facilidad para la deducci on, supongamos que x0 = 0, 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 284

285

7.9. METODOS MULTIPASO IMPL ICITOS

(2h, f2 ), donde fi = f (xi , yi ). Como se vio en la secci on anterior, p 2 ( x) = 1 (f0 2f1 + f2 )x2 + (3f0 + 4f1 f2 )hx + 2h2 f0 . 2 2h

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


x2 x1

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


x2

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

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


h

y ( x2 ) = y ( x1 ) +

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


2h

y ( x2 ) y ( x1 ) + y ( x2 ) y ( x1 ) +

p2 (x)dx
h 2h h

1 ( f 0 2f 1 + f 2 ) x2 + 2h 2 (3f0 + 4f1 f2 )hx + 2h2 f0 dx

y2 = y1 +

7 1 ( f 0 2f 1 + f 2 ) h 3 + 2 2h 3 3 ( 3f 0 + 4f 1 f 2 ) h 3 + 2h 3 f 0 2 h y2 = y1 + ( f 0 + 8f 1 + 5f 2 ) . 12

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

286

7.9. METODOS MULTIPASO IMPL ICITOS

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) ( f 0 + 8f 1 + 5f 2 ) y (z )h4 , z [x0 , x2 ]. (7.28) 12 24

La f ormula (7.27) se escribe en el caso general yi+1 = yi + h (fi1 + 8fi + 5fi+1 ). 12 (7.29)

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-Moulton que estamos utilizando. Para nuestro caso podemos utilizar RK4. 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 se 0 calcula yi , una primera aproximaci o n, por el m etodo de Euler. Con este +1 0 0 1 valor se puede calcular fi+1 = f (xi+1 , yi+1 ) y en seguida yi +1 . De nuevo se 1 1 2 calcula fi+1 = f (xi+1 , yi+1 ) y en seguida yi+1 . Este proceso iterativo acaba k+1 k cuando dos valores consecutivos, yi etodo +1 y yi+1 , son muy parecidos. Este m recibe tambi en el nombre de m etodo predictor-corrector. La f ormula queda entonces as :
k+1 yi +1 = yi +

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

(7.30)

El criterio de parada puede ser:


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

Ejemplo 7.8. Resolver, por el m etodo de Adams-Moulton de orden 2, la ecuaci on diferencial y = 2x2 4x + y y (1) = 0.7182818 286

287

7.9. METODOS MULTIPASO IMPL ICITOS

en el intervalo [1, 3], con h = 0.25 y = 0.0001. Al aplicar el m etodo RK4 una vez, se obtiene: y1 = 0.3653606 Entonces f0 = f (x0 , y0 ) = 1.2817182 f1 = f (x1 , y1 ) = 1.5096394 Aplicando Euler se obtiene una primera aproximaci on de y2 :
0 y2 = 0.0120493 0 f2 = 1.5120493

Empiezan las iteraciones:


1 y2 1 f2 2 y2 2 f2 3 y2

= 0.0170487 = 1.5170487 = 0.0175694 = 1.5175694 = 0.0176237 = y2

Para calcular y2 se utilizan los valores: f1 = 1.5096394 f2 = 1.5176237. Aplicando Euler se obtiene una primera aproximaci on de y3 :
0 y3 = 0.3970296 0 f3 = 1.2720296

287

288

7.9. METODOS MULTIPASO IMPL ICITOS

2 1 0 1

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


1 y3 1 f3 2 y3 2 f3 3 y3 3 f3 4 y3

. . .

= 0.3716132 = 1.2466132 = 0.3689657 = 1.2439657 = 0.3686899 = 1.2436899 = 0.3686612 = y3

xi 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00

y (xi ) 0.7182818 0.3653606 -0.0176237 -0.3686612 -0.6076225 -0.6315876 -0.3084043 0.5316463 2.1065205

y ( xi ) 0.7182818 0.3653430 -0.0183109 -0.3703973 -0.6109439 -0.6372642 -0.3175060 0.5176319 2.0855369

En este caso hubo que evaluar 4 veces la funci on para el valor de RK4 y en seguida, en cada uno de los otros 7 intervalos, una evaluaci on ja m as 288

289

7.9. METODOS MULTIPASO IMPL ICITOS

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. MULTIPASO IMPL ICITO: ADAMS-MOULTON n 1 2 3 4 h yi+1 = yi + (fi + fi+1 ) 2 h yi+1 = yi + (fi1 + 8fi + 5fi+1 ) 12 h yi+1 = yi + (fi2 5fi1 + 19fi + 9fi+1 ) 24 h (19fi3 + 106fi2 264fi1 yi+1 = 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) 24 y ( )h4 19 (4) y ( )h5 720 27 (5) y ( )h6 1440

289

290

7.10.

SISTEMAS DE ECUACIONES DIFERENCIALES

7.10.

Sistemas de ecuaciones diferenciales

Un sistema de m ecuaciones diferenciales de primer orden se puede escribir de la siguiente forma: dy1 = f1 (x, y1 , y2 , ..., ym ) dx dy2 = f2 (x, y1 , y2 , ..., ym ) dx . . . dym = fm (x, y1 , y2 , ..., ym ) dx para x0 x b, con las condiciones iniciales
0 y1 ( x0 ) = y1 0 y2 ( x0 ) = y2 . . . 0 ym ( x0 ) = ym .

Utilicemos la siguiente notaci on: y = (y1 , y2 , ..., ym ) 0 0 0 ) , y2 , ..., ym y 0 = ( y1 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 ),

290

291

7.10.

SISTEMAS DE ECUACIONES DIFERENCIALES

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

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 y i 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 = hf (xi + h, y + K ) 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 + x3 y2 , 1 x 2 x 3 y2 = y2 x y1 (1) = 1 y2 (1) = 1
y1 = 4 i 3

(7.31)

con h = 0.2. La soluci on (exacta) de este sencillo sistema de ecuaciones es: y1 ( x) = x y2 ( x) = x3 .

291

292

7.10.

SISTEMAS DE ECUACIONES DIFERENCIALES

Para la soluci on num erica: K1 K2 K3 K4 y1 K1 K2 K3 K4 y2 . . . xi 1.0 1.2 1.4 1.6 1.8 2.0 = (0.2, 0.6) = (0.2136600, = (0.1871036, = (0.2026222, = (1.2006916, = (0.2001062, = (0.2093988, = (0.1912561, = (0.2011961, = (1.4011269,

0.3818182) 0.4413223) 0.2793388) 0.5790634) 0.2895317) 0.2004450) 0.2210035) 0.1534542) 0.3647495)

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

y 2 (xi ) 1.0 0.5790634 0.3647495 0.2443822 0.1716477 0.1251354

y1 ( xi ) -1.0 -1.2 -1.4 -1.6 -1.8 -2.0

y2 ( xi ) 1.0 0.5787037 0.3644315 0.2441406 0.1714678 0.125

7.10.1.

En Scilab

Consideremos el siguiente sistema de ecuaciones diferenciales: 2y1 + x3 y2 , x 3 y2 = y2 x y1 (1) = 1 y2 (1) = 1.


y1 =

292

293

7.10.

SISTEMAS DE ECUACIONES DIFERENCIALES

Despu es de denir y cargar 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. 293

294 // // // // // // //

7.11.

ECUACIONES DIFERENCIALES DE ORDEN SUPERIOR

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

7.11.

Ecuaciones diferenciales de orden superior

Una ecuaci on diferencial ordinaria, de orden m, con condiciones iniciales, se puede escribir de la siguiente manera:

294

295

7.11.

ECUACIONES DIFERENCIALES DE ORDEN SUPERIOR

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


(m1)

x0 x b

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: u1 = u2 u2 = u3 u3 = u4 . . . um 1 = u m um = f (x, u1 , u2 , ..., um ) u1 ( x 0 ) = y 0 u2 ( x 0 ) = y 0 u3 ( x 0 ) = y 0 . . . um ( x 0 ) = y 0
(m1)

295

296

7.11.

ECUACIONES DIFERENCIALES DE ORDEN SUPERIOR

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


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

Ejemplo 7.10. Resolver la ecuaci on diferencial 4y xy , 1 x 2, x2 y (1) = 3 y (1) = 10, y = por el m etodo RK4, con h = 0.2. Sean u1 = y , u2 = y . u1 = u2 4u1 xu2 u2 = , 1 x 2, x2 u1 (1) = 3 u2 (1) = 10. La soluci on exacta es y = 4x2 x2 . Al aplicar el m etodo RK4 se obtiene: K1 K2 K3 K4 u1 . . . = (2, 0.4) = (2.04, 0.7900826) = (2.0790083, 0.7678437) = (2.1535687, 1.0270306) = (5.0652642, 10.7571472)

296

297

7.12.

ECUACIONES DIFERENCIALES CON CONDICIONES DE FRONTERA

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

7.12.

Ecuaciones diferenciales con condiciones de frontera

Una ecuaci on diferencial de segundo orden con condiciones de frontera se puede escribir de la forma y = f (x, y, y ), a x b, y ( a) = y a y ( b) = yb .

(7.32)

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 ).
Como no se conoce ya , se le asigna un valor aproximado inicial. Puede ser ya

yb ya . ba

Con este valor inicial se busca la 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 modicar la suposici on de ya hasta obtener el resultado deseado. Si y (b, ya )< yb , entonces se debe aumentar la pendiente inicial del disparo. De manera ) > yb , se debe disminuir la pendiente inicial del disparo. an aloga, si y (b, ya Lo anterior se puede presentar como la soluci on de una ecuaci on:
) = 0. ( ya ) = yb y (b, ya

297

298

7.12.

ECUACIONES DIFERENCIALES CON CONDICIONES DE FRONTERA

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 ), donde:
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) = y a y (a) = v, ( v ) = yb y n = yb y (b, v ).

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

298

299

7.12.

ECUACIONES DIFERENCIALES CON CONDICIONES DE FRONTERA

METODO DEL DISPARO datos: f , a, b, ya , yb , , maxit, 0 r = max{1, |yb |} v 0 = ( y b y a ) / ( b a) y = soluci on num erica de P(v0 ) 0 = yb y n si |0 | r ent parar v 1 = v 0 + 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. 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 (0.7) = 0.9854497, y = 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. 299

300

7.12.

ECUACIONES DIFERENCIALES CON CONDICIONES DE FRONTERA

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

300

301

7.13.

ECUACIONES LINEALES CON CONDICIONES DE FRONTERA

7.13.

Ecuaciones diferenciales lineales con condiciones de frontera

Una ecuaci on diferencial lineal de segundo orden con condiciones de frontera se puede escribir de la forma p(x)y + q (x)y + r(x)y = s(x), a x b, y ( a) = y a y ( b) = yb .

(7.34)

Obviamente para esta ecuaci on se puede utilizar el m etodo del disparo, pero, dada la linealidad, f acilmente se puede buscar una soluci on aproximada usando 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 yi

pi qi ri si Entonces: pi

yi1 2yi + yi+1 h2 yi1 + yi+1 2h := p(xi ) := q (xi ) := r(xi ) := s(xi ).

yi1 + yi+1 yi1 2yi + yi+1 + q + ri yi = si , i = 1, ..., n 1. i h2 2h

Es decir, se tiene un sistema de n 1 ecuaciones con n 1 inc ognitas, y1 , y2 , ..., yn1 . yi1 2yi + yi+1 yi1 + yi+1 2h2 ri yi 2h 2 s i + hq + = i 2h 2 2h 2 2h 2 2h 2 2 (2pi hqi )yi1 + (4pi + 2h ri )yi + (2pi + hqi )yi+1 = 2h2 si 2p i 301

302

7.13.

ECUACIONES LINEALES CON CONDICIONES DE FRONTERA

Este sistema es tridiagonal. d 1 u1 y1 1 l 1 d 2 u2 y2 2 y3 3 l d u 2 3 3 = , l n 3 d n 2 un 2 yn 2 n2 ln 2 d n 1 yn 1 n1 donde di ui li 1 i n1 = 4 p i + 2 h 2 ri , = 2pi + hqi , = 2pi+1 hqi+1 , = 2h2 s1 (2p1 hq1 )ya , = 2h 2 s i , = 2h2 sn1 (2pn1 + hqn1 )yb . i = 1, ..., n 1, i = 1, ..., n 2, i = 1, ..., n 2, i = 2, ..., n 2,

(7.35)

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. Al calcular los coecientes del sistema tridiagonal se obtiene: d 1 = 4 p 1 + 2 h 2 r1 d1 = 4(0.3)2 + 2(0.1)2 4(0.3)2 = 0.3528 u1 = 2p1 + hq1 u1 = 2(0.3)2 + 0.1(1) = 0.28 l1 = 2p2 hq2 l1 = 2(0.4)2 0.1(1) = 0.22 d = (0.3528, 0.6272, 0.98, 1.4112), u = (0.28, 0.42, 0.6), l = (0.22, 0.4, 0.62), = (0.00186, 0.0278683, 0.0216121, 0.7935745). 302

303

7.13.

ECUACIONES LINEALES CON CONDICIONES DE FRONTERA

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. 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 ex x 303 y x

304 7.2

7.13.

ECUACIONES LINEALES CON CONDICIONES DE FRONTERA

y1 = 2y1 + y2 + 3 y2 = 4y1 y2 + 9 y1 (0) = 3 y2 (0) = 5.

Su soluci on es y1 (t) = e2t 2, y2 (t) = 4e2t + 1. 7.3 2 y x(2 x) y (1) = 2 y (1) = 1. y = 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). 7.5 y y = e2x sen2 (x) y (0) = 1 y ( ) = e . Su soluci on es y = ex + sen(x).

304

305 7.6

7.13.

ECUACIONES LINEALES CON CONDICIONES DE FRONTERA

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

305

Cap tulo 8 Ecuaciones diferenciales parciales


8.1. Generalidades

Sea u = u(x, y ) una funci on de dos variables con derivadas parciales de orden dos. Una ecuaci on diferencial se llama cuasi-lineal si es de la forma Auxx + Buxy + Cuyy = (x, y, u, ux , uy ), donde A, B y C son constantes. Hay tres tipos de ecuaciones cuasi-lineales: el ptica si B 2 4AC < 0, parab olica si B 2 4AC = 0, hiperb olica si B 2 4AC > 0. Un ejemplo t pico de una ecuaci on el ptica es la ecuaci on de Poisson 2 u = uxx + uyy = f (x, y ). Un caso particular es la ecuaci on de Laplace uxx + uyy = 0.

306

307

DE POISSON 8.2. EL IPTICAS: ECUACION

Un ejemplo t pico de una ecuaci on parab olica es la ecuaci on unidimensional del calor ut = c2 uxx . Un ejemplo t pico de una ecuaci on hiperb olica es la ecuaci on de onda utt = c2 uxx . Este libro presenta u nicamente el m etodo de diferencias nitas para EDP, (las derivadas parciales se aproximan por diferencia nitas). Hay otros m etodos muy importantes y posiblemente m as usados para EDP que no son tratados aqu (su complejidad queda fuera del alcance de este libro). Algunos de ellos son: m etodo de elementos nitos, de vol umenes nitos, de elementos de contorno, m etodos espectrales.

8.2.

El pticas: ecuaci on de Poisson

Consideraremos un caso particular cuando el dominio es un rect angulo, = {(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 , u(x, y ) = g (x, y ) en . (8.1)

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

307

308

DE POISSON 8.2. EL IPTICAS: ECUACION

d yn y yj hy ui,j 1 y1 c hx a x1 x2 xi xn x b ui,j +1 ui1,j uij ui+1,j

Figura 8.1: Divisi on del rect angulo precisa, sean nx Z , nx 1 , ny Z , ny 1 , ba , hx = nx + 1 dc hy = , ny + 1 xi = a + ihx , i = 1, ..., nx , yj = c + jhy , j = 1, ..., ny , uij u(xi , yj ), i = 1, ...nx , j = 1, ..., ny . Usando la aproximaci on (t) se obtiene u( x i , y j ) ui+1,j 2uij + ui1,j ui,j +1 2uij + ui,j 1 + . h2 h2 x y 308 (8.2) ( t + h ) 2( t ) + ( t h ) h2

309 Sea = hx /hy . u( x i , y j )

DE POISSON 8.2. EL IPTICAS: ECUACION

ui,j +1 2uij + ui,j 1 ui+1,j 2uij + ui1,j + 2 2 hx h2 x 2 2 ui+1,j + ui1,j + ui,j +1 + ui,j 1 (2 + 2 2 )uij u( x i , y j ) . h2 x

(8.3)

En el caso particular cuando h = hx = hy u( x i , y j ) ui+1,j + ui1,j + ui,j +1 ui,j 1 4uij . h2 (8.4)

Al aplicar la aproximaci on (8.3) en (8.1), y cambiando el signo aproximaci on por el signo de igualdad, se obtiene ui+1,j ui1,j 2 ui,j +1 2 ui,j 1 + (2 + 2 2 )uij = h2 x fij , (8.5)

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

310

DE POISSON 8.2. EL IPTICAS: ECUACION

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 ), ..., en (xn , y1 ), en (x1 , y2 ), ... Para las variables utilizaremos el mismo orden 1 = u11 2 = u21 . . . n = un 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 . 310

311

DE POISSON 8.2. EL IPTICAS: ECUACION

Es necesario cambiar u10 por el valor conocido 1 y cambiar u01 por el valor conocido 1 . Utilizando la notaci on k se obtiene: En el punto (x2 , y1 ) se obtiene: 1 2 n+1 = h2 f11 + 1 + 1 .

En el punto (x3 , y1 ) se obtiene:

u20 u11 + u21 u31 u22 = h2 f21 1 + 2 3 n+2 = h2 f21 + 2 .

En el punto (xn , y1 ) se obtiene:

u30 u21 + u31 u41 u32 = h2 f31 2 + 3 4 n+3 = h2 f31 + 3 .

En el punto (x1 , y2 ) se obtiene:

un0 un1,1 + un1 un+1,1 un2 = h2 fn1 n1 + n 2n = h2 fn1 + n + 1 . u11 u02 + u12 u22 u13 = h2 f12 1 + n+1 n+2 2n+1 = h2 f12 + 2 . u31 u22 + u32 u42 u33 = h2 f32 3 n+2 + n+3 n+4 2n+3 = h2 f32 .

En el punto (x3 , y2 ) se obtiene:

Si n = nx = 3 y m = ny = 4, la matriz A tiene la siguiente forma: 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 311

A=

312

DE POISSON 8.2. EL IPTICAS: ECUACION

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 n o n n. D In 0 In D In 0 I D n . A= D In In D D es una matriz sim etrica tridiagonal de tama n o n n. 1 0 1 1 0 1 . D= 1 1
n

A es de diagonal positiva dominante. En la mayor a de las las |aij | = 2 + 2 = aii .

j =1 j =i

En algunas las

j =1 j =i

|aij | < aii .

Para resolver A = v se puede utilizar el m etodo de Gauss si m y n son peque nos. Si N es muy grande no se puede almacenar completamente A como matriz densa y, adem as, el tiempo de c alculo se vuelve muy grande. Hay varios m etodos que pueden ser m as ecientes para N grande, algunos son espec cos para la ecuaci on de Poisson en un rect angulo. Por ejemplo se puede utilizar el m etodo de Gauss Seidel o el de sobrerrelajaci on. Estos dos m etodos se pueden implementar sin almacenar los elementos no nulos de A. Conociendo m, n, y se tiene toda la informaci on sobre A. Tambi en se pueden utilizar m etodos basados en la FFT (Fast Fourier Transform). Otros m etodos son: el de reducci on c clica, el m etodo FACR (Fourier Analysis Cyclic Reduction) y el m etodo de doble barrido de Cholesky. 312

313

DEL CALOR 8.3. PARABOLICAS: ECUACION

Ejemplo 8.1. Resolver la ecuaci on diferencial u = 6x + 12y, 1 < x < 13, 2 < y < 7 u(a, y ) = 1 + 2y 3 u(b, y ) = 2197 + 2y 3 u(x, c) = 16 + x3 u(x, d) = 686 + x3 con nx = 3 y ny = 4. Entonces hx = 3, hy = 1, = 9, = 20, v = [235 2529 10531 519 810 1353 505 918 1367 6319 8235 16615]T . Al resolver el sistema 12 12 se obtiene u = [118 397 1054 192 471 1128 314 593 1250 496 775 1432]T . La ecuaci on diferencial es muy sencilla, su soluci on es u(x, y ) = x3 + 2y 3 . En este caso, la soluci on num erica obtenida es exacta.

8.3.

Parab olicas: ecuaci on del calor


u 2u (x, t) = c2 2 (x, t), t x

La ecuaci on unidimensional del calor es: 0 < x < L, 0 < t, (8.8)

con las condiciones u(0, t) = v (t), t 0 u(L, t) = w(t), t 0 u(x, 0) = f (x), 0 x L. (8.9) (8.10) (8.11)

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

314

DEL CALOR 8.3. PARABOLICAS: ECUACION

t3 t2 t1 0 0

u13 u12 u11 x1 u21 x2 um1,1 xm1 L

Figura 8.2: Malla para la ecuaci on del calor 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 h x , tj = j ht , donde hx = L m i = 0, 1, 2, ..., m j = 0, 1, 2, ...

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 , ... t = 0, x = 0, x = L.

314

315

DEL CALOR 8.3. PARABOLICAS: ECUACION

Los valores buscados son: u11 , u21 , ..., um1,1 , u12 , u22 , ..., um1,2 , u13 , u23 , ..., um1,3 , . . . t = t1 t = t2 t = t3

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 puede ir hasta innito. Entonces se toma un valor T adecuado y 0tT T ht = n tj = j ht , j = 0, 1, 2, ..., n. (8.12) (8.13) (8.14)

8.3.1.

M etodo expl cito

La segunda derivada 2 u/x2 se aproxima como en el caso el ptico, la derivada u/t se aproxima hacia adelante: ui+1,j 2uij + ui1,j 2u ( xi , t j ) 2 x h2 x u ui,j +1 uij ( xi , t j ) t ht Remplazando en (8.8) se obtiene

(8.15) (8.16)

315

316

DEL CALOR 8.3. PARABOLICAS: ECUACION

ui,j +1 uij ui+1,j 2uij + ui1,j = c2 ht h2 x c2 h t 2c 2 h t ui,j +1 = 2 ui1,j + 1 2 hx hx ui,j +1 = ui1,j + uij + ui+1,j c2 h t = 2 hx = 1 2.

uij +

c2 h t ui+1,j h2 x (8.17) (8.18) (8.19)

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

El valor ui,j +1 aproximaci on de u(xi , tj +1 ), pintado con bola hueca calcula utilizando los valores para tj , pintados con bola rellena .

, se

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

316

317 con las condiciones

DEL CALOR 8.3. PARABOLICAS: ECUACION

u(0, t) = 5, t 0 u( , t ) = 5 , t 0 3 u(x, 0) = sen(3x) + 5, con m = 10 y n = 50.

0x

. 3

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 u11 u21 u21 u91 u91 Para t = t2 = 0.08 u12 = u01 + u11 + u21 u12 = 5.261925 En la tabla siguiente aparecen los valores exactos u(xi , 2) y los valores obtenidos ui,50 . = u00 + u10 + u20 = 5.2844983 = u10 + u20 + u30 = 5.5411479 = u80 + u90 + u10,0 = 5.2844983

317

318

DEL CALOR 8.3. PARABOLICAS: ECUACION

xi 0.000000 0.104720 0.209440 0.314159 0.418879 0.523599 0.628319 0.733038 0.837758 0.942478 1.047198

u(xi , 2) 5.000000 5.005660 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000

ui,50 5.000000 9.269937 -3.103062 16.178842 -8.111031 18.817809 -8.111031 16.178842 -3.103062 9.269937 5.000000

Se observa que los resultados obtenidos por las f ormulas no son buenos. Como aparece en la siguiente tabla, si se utiliza n = 100 los resultados son buenos.

xi 0.000000 0.104720 0.209440 0.314159 0.418879 0.523599 0.628319 0.733038 0.837758 0.942478 1.047198

u(xi , 2) 5.000000 5.005660 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000

ui,100 5.000000 5.005394 5.010261 5.014123 5.016602 5.017456 5.016602 5.014123 5.010261 5.005394 5.000000

error 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 propagan exponencialmente). Este m etodo es condicionalmente estable (ver [BuF85]). Si c2 h t 1 (8.20) h2 2 x 318

319

DEL CALOR 8.3. PARABOLICAS: ECUACION

el m etodo es estable. F acilmente se comprueba que, en el ejemplo anterior, c2 h t = 0.8105695 h2 x c2 h t = 0.4052847 h2 x si n = 50 si n = 100

8.3.2.

M etodo impl cito

La derivada u/t se aproxima hacia atr as: u ui,j ui,j 1 ( xi , t j ) t ht 2 u ui+1,j 2uij + ui1,j ( xi , t j ) 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 h t c2 h t 2 ui1,j + 1 + 2 hx hx De manera m as compacta: c2 h t uij 2 ui+1,j = ui,j 1 . hx (8.23) (8.24) (8.25)

(8.21) (8.22)

ui1,j + uij ui+1,j = ui,j 1 c2 h t = 2 hx = 1 + 2.

La f ormula (8.23), al igual que en el m etodo expl cito, tiene un error de orden 2 O(ht + hx ). 319

320

DEL CALOR 8.3. PARABOLICAS: ECUACION

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: 0 u1j u1,j 1 + u0j 0 u2,j 1 u2j 0 u3j u3,j 1 = um1,j um1,j 1 + umj

0 0 ... 0 ... 0 ... 0 0

(8.26)

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 2 2u u (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

320

321

DEL CALOR 8.3. PARABOLICAS: ECUACION

con m = 10 y n = 50. Al aplicar las f ormulas se obtiene: hx = /30 = 0.1047198 ht = 0.04 = 0.8105695 = 2.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. 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:

xi 0.000000 0.104720 0.209440 0.314159 0.418879 0.523599 0.628319 0.733038 0.837758 0.942478 1.047198

u(xi , 2) 5.000000 5.005660 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000

ui,50 5.000000 5.006792 5.012919 5.017781 5.020903 5.021979 5.020903 5.017781 5.012919 5.006792 5.000000

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

321

322

DEL CALOR 8.3. PARABOLICAS: ECUACION

xi 0.000000 0.104720 0.209440 0.314159 0.418879 0.523599 0.628319 0.733038 0.837758 0.942478 1.047198

u(xi , 2) 5.000000 5.005660 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000

ui,100 5.000000 5.006315 5.012011 5.016532 5.019434 5.020434 5.019434 5.016532 5.012011 5.006315 5.000000

error 0.000000 -0.000655 -0.001245 -0.001714 -0.002015 -0.002119 -0.002015 -0.001714 -0.001245 -0.000655 0.000000

8.3.3.

M etodo de Crank-Nicolson
uij ui,j 1 ht

De acuerdo con las f ormulas (6.34) y (6.35) el valor =

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

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:
2 u 2 u (xi , tj 1/2 ) = c (xi , tj 1/2 ) t x2

322

323

DEL CALOR 8.3. PARABOLICAS: ECUACION

Ahora remplazaremos maciones de

2u en dos puntos vecinos: x2

u 2u por y (xi , tj 1/2 ) por el promedio de aproxit x2

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

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

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 c2 h t = 2 hx = 2 =1+ =1 La mol ecula correspondiente a (8.27) es: ui1,j ui,j ui+1,j

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

ui1,j 1 ui,j 1 ui+1,j 1

323

324

DEL CALOR 8.3. PARABOLICAS: ECUACION

Al utilizar (8.27) para i = 1, 2, ..., m 1 se obtiene el sistema tridiagonal, que se puede resolver de manera eciente: u1j 0 0 ... 0 0 ... 0 u2j 0 ... 0 u3j = um1,j 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 (8.32) um2,j 1 + um1,j 1 + um,j 1 + umj Ejemplo 8.4. Resolver la misma ecuaci on diferencial de los dos ejemplos anteriores por el m etodo de Crank-Nicolson, con m = 10, T = 2, n = 50.

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

325

DEL CALOR 8.3. PARABOLICAS: ECUACION

La siguiente tabla muestra, para t = 2, los valores te oricos, los valores obtenidos por el m etodo y las diferencias:

xi 0.000000 0.104720 0.209440 0.314159 0.418879 0.523599 0.628319 0.733038 0.837758 0.942478 1.047198

u(xi , 2) 5.000000 5.005660 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000

ui,50 5.000000 5.005836 5.011101 5.015280 5.017962 5.018887 5.017962 5.015280 5.011101 5.005836 5.000000

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

xi 0.000000 0.104720 0.209440 0.314159 0.418879 0.523599 0.628319 0.733038 0.837758 0.942478 1.047198

u(xi , 2) 5.000000 5.005660 5.010766 5.014818 5.017419 5.018316 5.017419 5.014818 5.010766 5.005660 5.000000

ui,100 5.000000 5.005845 5.011119 5.015304 5.017990 5.018916 5.017990 5.015304 5.011119 5.005845 5.000000

error 0.000000 -0.000186 -0.000353 -0.000486 -0.000571 -0.000601 -0.000571 -0.000486 -0.000353 -0.000186 0.000000

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 325

326

DE ONDA 8.4. HIPERBOLICAS: ECUACION

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 de Crank-Nicolson con m = 20 y n = 50 (h2 = 0 . 0016, h = 0 . 0027416, t x 2 h2 + h = 0 . 0043416) los resultados mejoran notablemente: t x

xi 0.000000 0.052360 0.104720 0.157080 0.209440 0.261799 0.314159 0.366519 0.418879 0.471239 0.523599 0.575959 0.628319 0.680678 0.733038 0.785398 0.837758 0.890118 0.942478 0.994838 1.047198

u(xi , 2) 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

ui,50 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

error 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

8.4.

Hiperb olicas: ecuaci on de onda

Consideramos la siguiente ecuaci on


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

0 < x < L,

0 < t,

(8.33)

326

327 con las condiciones

DE ONDA 8.4. HIPERBOLICAS: ECUACION

u(0, t) = a, t 0, u(L, t) = b, t 0, u(x, 0) = f (x), 0 x L, u (x, 0) = g (x), 0 x L. t

(8.34) (8.35) (8.36) (8.37)

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

8.4.1.

M etodo expl cito

La regi on es la misma de la ecuaci on del calor y se divide exactamente de la misma forma. Sea T un tiempo adecuado: hx = L m T ht = n xi = i h x , 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 ):
2 2u 2 u ( x , t ) = c ( xi , t j ) i j t2 x2

(8.38)

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 ht h2 x 327

328

DE ONDA 8.4. HIPERBOLICAS: ECUACION

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 h 2 = 2t hx = 2 2 La mol ecula es: ui,j +1 ui1,j uij ui,j 1
2 La f ormula (8.39), con error de orden O(h2 acilmente, x + ht ), se puede aplicar f 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 2 cuyo error es del orden de O(ht ),

(8.39) (8.40) (8.41)

ui+1,j

g i = g ( xi ) ui,1

ui1 ui,1 , 2h t = ui 1 2 h t g i ,

(8.42)

Remplazando en (8.39) para j = 0 y teniendo en cuenta que uk0 = fk = f (xk ), ui1 = fi + (fi1 + fi+1 ) (ui1 2ht gi ) 2ui1 = fi + (fi1 + fi+1 ) + 2ht gi ui1 = fi + (fi1 + fi+1 ) + ht gi , i = 1, 2, ..., m 1 2 2

(8.43)

Una vez calculados los valores ui1 por medio de (8.43), se utiliza (8.39) para j = 1, 2, ..., n 1, teniendo en cuenta que u0j = a y umj = b. 328

329

DE ONDA 8.4. HIPERBOLICAS: ECUACION

Ejemplo 8.5. Resolver la ecuaci on diferencial 2u 2u ( x, t ) = 2 . 25 (x, t), t2 x2 con las condiciones u(0, t) = 0, t 0, u(/2, t) = 0, t 0, u(x, 0) = sen(2x), 0 x /2, u (x, 0) = 3 sen(2x), 0 x /2, t utilizando T = 8, m = 10, n = 80. Se puede comprobar que la soluci on exacta de esta ecuaci on diferencial es u(x, t) = sen(2x)( sen(3t) + cos(3t) ) Para la soluci on num erica hx = 0.1571 h t = 0. 1 = 0.911891 = 0.176219 Los valores inciales ui0 son: 0, 0.3090170, 0.5877853, 0.8090170, 0.9510565, 1, 0.9510565, 0.8090170, 0.5877853, 0.3090170, 0. Para calcular los valores ui1 se utiliza (8.43) y se obtiene: 0, 0.3879303, 0.7378873, 1.0156148, 1.1939268, 1.2553689, 1.1939268, 1.0156148, 0.7378873, 0.3879303, 0. Los dem as valores uik se calculan usando (8.39). As los valores ui2 son: 0, 0.4322161, 0.8221239, 1.1315565, 1.3302245, 1.3986808, 1.3302245, 1.1315565, 0.8221239, 0.4322161, 0. A continuaci on aparecen: los valores xi , los valores u(xi , 8) exactos y los valores aproximados obtenidos por el m etodo:

0 < x < /2,

0 < t,

329

330

DE ONDA 8.4. HIPERBOLICAS: ECUACION

xi 0.0000 0.1571 0.3142 0.4712 0.6283 0.7854 0.9425 1.0996 1.2566 1.4137 1.5708

u(xi , 8) 0.0000 -0.1488 -0.2830 -0.3895 -0.4578 -0.4814 -0.4578 -0.3895 -0.2830 -0.1488 0.0000

ui,80 0.0000 -0.1567 -0.2981 -0.4103 -0.4823 -0.5072 -0.4823 -0.4103 -0.2981 -0.1567 0.0000

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.955. Si se hubiera aplicado el m etodo con n = 70, cht /hx = 1.091, los resultados ser an:

xi 0.0000 0.1571 0.3142 0.4712 0.6283 0.7854 0.9425 1.0996 1.2566 1.4137 1.5708

u(xi , 8) 0.0000 -0.1488 -0.2830 -0.3895 -0.4578 -0.4814 -0.4578 -0.3895 -0.2830 -0.1488 0.0000

ui,70 0.0000 6409754.0604 -12192077.0562 16780953.1666 -19727193.7389 20742397.1952 -19727192.0929 16780950.5034 -12192074.3931 6409752.4144 0.0000

330

331

DE ONDA 8.4. HIPERBOLICAS: ECUACION

8.4.2.

M etodo impl cito

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


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

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: c2 ui1,j 1 2ui,j 1 + ui+1,j 1 ui,j 1 2uij + ui,j +1 + = h2 2 h2 t x 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 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) 2 2 ch (8.46) = 2t hx = 2 + 2 (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):

331

332

DE ONDA 8.4. HIPERBOLICAS: ECUACION

u1,j +1 u2,j +1 0 . . = . u m2,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)

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. Ejemplo 8.6. Resolver la ecuaci on diferencial 2u 2u ( x, t ) = 2 . 25 (x, t), t2 x2 con las condiciones u(0, t) = 0, t 0, u(/2, t) = 0, t 0, u(x, 0) = sen(2x), 0 x /2, u (x, 0) = 3 sen(2x), 0 x /2, t utilizando el m etodo impl cito con T = 2, m = 10, n = 100. La soluci on exacta de esta ecuaci on diferencial es u(x, t) = sen(2x)( sen(3t) + cos(3t) ) 332

0 < x < /2,

0 < t,

333

DE ONDA 8.4. HIPERBOLICAS: ECUACION

Para la soluci on num erica hx = 0.1571 ht = 0.02 = 0.036476 = 1.927049 = 2.072951 Los valores inciales ui0 son: 0, 0.3090170, 0.5877853, 0.8090170, 0.9510565, 1, 0.9510565, 0.8090170, 0.5877853, 0.3090170, 0. Para calcular los valores ui1 se utiliza (8.43) y se obtiene: 0, 0.3270063, 0.6220030, 0.8561137, 1.006422, 1.0582148, 1.006422, 0.8561137, 0.6220030, 0.3270063, 0. A continuaci on aparecen: los valores xi , los valores u(xi , 2) exactos y los valores aproximados obtenidos por el m etodo: xi u(xi , 2) 0.0000 0.0000 0.1571 0.2104 0.3142 0.4001 0.4712 0.5507 0.6283 0.6474 0.7854 0.6808 0.9425 0.6474 1.0996 0.5507 1.2566 0.4001 1.4137 0.2104 1.5708 0.0000 ui,100 0.0000 0.1986 0.3778 0.5200 0.6113 0.6428 0.6113 0.5200 0.3778 0.1986 0.0000

Ejercicios
8.1 Considere la ecuaci on diferencial 2u 2u ( x, y )+ (x, y ) = 2 sen(x) sen(y ), x2 y 2 en el rect angulo [0, ] [0, ] con la condici on u(x, y ) = 0 en la frontera. La soluci on exacta es u(x, y ) = sen(x) sen(y ). Obtenga la soluci on 333

334

DE ONDA 8.4. HIPERBOLICAS: ECUACION

aproximada para diferentes valores de nx y ny . Compare con la soluci on exacta. 8.2 Considere la ecuaci on diferencial 2u 2u ( x, y )+ (x, y ) = 2 sen(x) sen(y ), x2 y 2 en un rect angulo diferente del anterior. Suponga que la soluci on exacta es u(x, y ) = sen(x) sen(y ) y d e las condiciones de frontera adecuadas en el rect angulo utilizado. Obtenga la soluci on aproximada para diferentes valores de nx y ny . Compare con la soluci on exacta.

2u u (x, t) = (x, t), para 0 < x < 8.3 Considere la ecuaci on diferencial t x2 y 0 < t con las condiciones u(0, t) = u(, t) = 2, u(x, 0) = sen(x). La soluci on exacta es u(x, t) = sen(x)et + 2. Obtenga la soluci on aproximada por el m etodo expl cito, por el impl cito y por el de CrankNicolson para t = 2. Use diferentes valores de m y de n. Compare con la soluci on exacta. 8.4 Considere la ecuaci on diferencial 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 por el m etodo expl cito y por el impl cito para t = 3 con m = 10, n = 60 y con n = 20. Utilice otros valores de m y n. Compare con la soluci on exacta.

334

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.

Mientras no se diga lo contario, en este documento u nicamente se consideran matrices reales y los m etodos ser an para matrices reales. 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 335

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

336

9.1. PRELIMINARES

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.

Av Av v Av Iv (A I )v

= v =0 =0 =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 ( ) = p A ( ) = 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 = 2 5 + 10 1 = 2.5 + i 15/2 2 = 2.5 i 15/2 .

336

337

9.1. PRELIMINARES

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 | = a2 + b 2 , que coincide con valor absoluto para n umeros reales. 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. Hay tambi en algunos resultados para matrices complejas, simplemente para uniformizar con los resultados de unos libros de Algebra Lineal que presentan resultados de manera general para matrices complejas. 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. Si A Cnn , se denota con A o AH la matriz transjugada de A, es decir, )T = AT . A = (A d. Si A Cnn , se dice que A es hermitiana (o herm tica) si A = A . e. Si A Cnn , se dice que A es unitaria si A1 = A . f. Una matriz A es diagonalizable si es semejante una matriz diagonal, es decir, existe B invertible y D diagonal tales que D = B 1 AB. Resultados: 1. Los coecientes del polinomio caracter stico satisfacen: n = (1)n n1 = (1)n1 traza(A) 0 = det(A). 337

338
n

9.1. PRELIMINARES

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. 8. Teorema de Cayley-Hamilton. Si p es el polinomio caracter stico de A, entonces p(A) = 0, es decir, 0 I + 1 A + 2 A2 + + n An = 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 ortogonal, ||U x||2 = ||x||2 . As , se dice que las matrices ortogonales 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 existen vectores propios v 1 , v 2 , ..., v n ortonormales. Si Q = v 1 v 2 ... v n , entonces Q es ortogonal y QT AQ es una matriz diagonal (con los valores propios de A en la diagonal). 338

339

9.2. METODO DE LA POTENCIA

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.

9.1.1.

En Scilab

Los valores propios se calculan por medio de la funci on spec 1 . 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 | .
1

en Matlab se usa eig.

339

340

9.2. METODO DE LA POTENCIA

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 expresar como combinaci on de los vectores propios x0 x1 x1 x1 x1 x2 = 1 v 1 + 2 v 2 + ... + n v n = Ax0 = A(1 v 1 + 2 v 2 + ... + n v n ) = 1 Av 1 + 2 Av 2 + ... + n Av n = 1 1 v 1 + 2 2 v 2 + ... + n n v n = 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 1 2 2 2 n x2 = 1 2 1 v + 2 2 v + ... + n n v . . .
n

1 k 2 k n xk = 1 k 1 v + 2 2 v + ... + n n v

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 xk 1 k 1v .

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

Entonces xk+1 1 xk . 340

341

9.2. METODO DE LA POTENCIA

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

Ejemplo 9.3. Partiendo de x0 = (1, 1, 1), hallar el valor propio dominante de 1 2 3 A = 4 5 6 . 7 8 8


k 1 2 3 4 5 6 7 8 9 10 11 12 xk 1 -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 xk 2 -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 xk 3 -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
k 1 xk 1 /x1 -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 341

342 k 1 2 3 4 5 6 7 8 9 10 11 12 xk 1 -0.213470 0.242870 -0.240212 0.240454 -0.240432 0.240434 -0.240434 0.240434 -0.240434 0.240434 -0.240434 0.240434

9.2. METODO DE LA POTENCIA

xk 2 -0.533676 0.548191 -0.546829 0.546954 -0.546942 0.546943 -0.546943 0.546943 -0.546943 0.546943 -0.546943 0.546943

xk 3 -0.818303 0.800313 -0.802045 0.801887 -0.801902 0.801900 -0.801901 0.801901 -0.801901 0.801901 -0.801901 0.801901

k 1 k z1 /x1 -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 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 T k 1 = xk z k 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 dominante de 1 2 3 A = 4 5 6 7 8 8 342

343

9.3. METODO DE LA POTENCIA INVERSA

partiendo de x0 = (1, 1, 1).


k k k z1 z2 z3 xk xk xk k 1 2 3 1 1 -6.000000 -15.000000 -23.000000 -0.213470 -0.533676 -0.818303 28.10693865 2 3.735732 8.432082 12.310128 0.242870 0.548191 0.800313 15.38164285 3 -3.740191 -8.514312 -12.488120 -0.240212 -0.546829 -0.802045 15.57034584 4 3.740005 8.507264 12.472478 0.240454 0.546954 0.801887 15.55390218 5 -3.740024 -8.507910 -12.473909 -0.240432 -0.546942 -0.801902 15.55540852 6 3.740022 8.507851 12.473779 0.240434 0.546943 0.801900 15.55527112 7 -3.740022 -8.507857 -12.473791 -0.240434 -0.546943 -0.801901 15.55528366 8 3.740022 8.507856 12.473790 0.240434 0.546943 0.801901 15.55528251 9 -3.740022 -8.507856 -12.473790 -0.240434 -0.546943 -0.801901 15.55528262 10 3.740022 8.507856 12.473790 0.240434 0.546943 0.801901 15.55528261 11 -3.740022 -8.507856 -12.473790 -0.240434 -0.546943 -0.801901 15.55528261

El u ltimo xk obtenido es una buena aproximaci on de un vector propio normalizado asociado a 1 .

9.3.

M etodo de la potencia inversa

Este m etodo se puede aplicar para hallar n , el valor propio menos dominante de una matriz diagonalizable e invertible A, cuando este existe, o sea, si | 1 | | 2 | | 3 | > | n | > 0. 343

344

9.3. METODO DE LA POTENCIA INVERSA

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 k 1 k 1 z =A x es preferible presentarlo como la soluci on del sistema Az k = xk 1 . Potencia inversa para k = 1, ...,maxit resolver Az k = xk1 zk xk = k ||z ||2
k 1 = xk z k
T

k 1 k si |1 1 | , parar

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

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

344

345
k z1 xk 1 1 1.000000 0.707107 2 3.771236 0.543702 3 3.839896 0.520948 4 3.818745 0.518766 5 3.816531 0.518557 6 3.816317 0.518537 7 3.816297 0.518535 8 3.816295 0.518535 9 3.816294 0.518535 10 3.816294 0.518535 11 3.816294 0.518535 12 3.816294 0.518535

QR 9.4. FACTORIZACION

k z2 xk 2 -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 -5.806560 -0.788960 -5.806560 -0.788960 -5.806560 -0.788960 -5.806560 -0.788960

k z3 xk 3 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 2.426097 0.329643 2.426097 0.329643 2.426097 0.329643 2.426097 0.329643

k 1

1.41421356 6.93621735 7.37098425 7.36121039 7.35991006 7.35978177 7.35976946 7.35976828 7.35976817 7.35976816 7.35976815 7.35976815

Entonces n 1/7.35976815 = 0.135873845 .

9.4.

Factorizaci on QR

Sea A Rmn . Una factorizaci on QR de A consiste en encontrar matrices Q y R tales que A = QR. Q Rmm es ortogonal. 345

346

QR 9.4. FACTORIZACION

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 estaba A, la matriz R. Por otro lado, se puede empezar con Q = I , y encima se va T reescribiendo el producto IQT es Q T a el 1 , despu 1 Q2 . Finalmente en Q se tendr T T T T 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 2 H = Hv = H (v ) = In T v v T = In 2uuT . v v 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 necesario. 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 . 346

347

QR 9.4. FACTORIZACION

La matriz H tiene dos caracter sticas importantes, es sim etrica y ortogonal. Adem as, si x Rn1 se puede escoger v para que Hv x < e 1 > . 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 > . 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 p T 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 al hiperplano U o la reexi on de x con respecto a U . Como H es ortogonal, entonces ||Hx|| = ||x||, es decir, ||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 . 347

348

QR 9.4. FACTORIZACION

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

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 [GoV96], 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.

348

349

QR 9.4. FACTORIZACION

[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 2 = 2v 1 /( t + v 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. Encontrar v y para x = 2 1 2 1 5 v = 1/5 , = 3 2/5
T

9.4.2.

Matrices de Givens

Esta es otra clase de matrices ortogonales. Sea un angulo y c = cos() s = sen(),

349

350

QR 9.4. FACTORIZACION

La matriz de Givens, en Rnn , es plano de las variables i y k : 1 0 . . . 0 G = G(i, k, c, s, n) = . . . 0 . . . 0

simplemente un rotaci on denida en el 0 1 ... 0 0 0 0 0 c s 0 i ... s c 0 k ... 0 0 1 0 0 0 0

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

El producto y = GT x se calcula muy cxi sxk yj = sxi + cxk xj

f acilmente: si j = i, si j = k, en los dem as casos.

En la pr actica, es mejor utilizar la siguiente versi on para el c alculo de c y s (ver [GoV96]),

350

351

QR 9.4. FACTORIZACION

[c, s] = csGivens(a, b) si b = 0 c=1 s=0 sino si |b| > |a| t = a/b s = 1/ 1 + t 2 c = st sino t = b/a c = 1/ 1 + t 2 s = ct n-si n-si n csGivens Por medio de esta funci on c s s c
T

r a . = 0 b 2 3 .
T

Ejemplo 9.9. Calcular c y s para el vector Al aplicar la funci on csGivens se obtiene: c = 0.5547002 s = 0.8320503 y as c s s c
T

3.6055513 2 . = 0 3

9.4.3.

Factorizaci on QR con matrices de Householder

Para facilitar la presentaci on del algoritmo, usaremos la siguiente notaci on. p p Si H R es una matriz de Householder, con p n, 351

352

QR 9.4. FACTORIZACION

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

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 .

La matriz H Rnn tambi en es ortogonal.

H H = H (n, H ) = I n p 0 0 H

si p = n si p < n

En seguida, se trabaja u nicamente con las las 2,..., m de A. Se construye (m1)(m1) H2 R tal que H2 A(2 : m, 2) = 2 e1 R(m1)1 , o sea, [v, ] = vHouse(A(2 : m, 2)) H2 = H (v, ) H2 = H (m, H2 ) A = H2 A Q = QH 2

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

352

353

QR 9.4. FACTORIZACION

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 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 ) H k 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 353

354

QR 9.4. FACTORIZACION

utilizando 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 Q 7.0710678 -0.0140144 -0.6056057 -1.1971971 -1.7887885

Ejemplo 9.10. Obtener la factorizaci on QR de 2 3 4 5 4 3 2 1 0 A= 1 2 3 4 5 4

-0.39439425

0.19719713

0.78878851

0.7071068 0.3028029 -0.2788789 0.1394394 0.5577577

0.2828427 -0.2788789 0.8884485 0.0557758 0.2231031

-0.1414214 0.1394394 0.0557758 0.9721121 -0.1115515

-0.5656854 0.5577577 0.2231031 -0.1115515 0.5537938

5.939697 1.0874867 -0.7650053 -2.6174973 -2.4699893

= 0.2828427 0.7071068 0.2828427 -0.1414214 -0.5656854 0.7071068 0.3028029 -0.2788789 0.1394394 0.5577577 0.2828427 -0.2788789 0.8884485 0.0557758 0.2231031 -0.1414214 0.1394394 0.0557758 0.9721121 -0.1115515 -0.5656854 0.5577577 0.2231031 -0.1115515 0.5537938 ----------------------------------------------------------------k = 2 beta = 1.006267 v : 1 0.26914826 0.53206814 0.79498802 354

355

QR 9.4. FACTORIZACION

= -0.0062674 -0.2708351 -0.5354028 -0.7999705 = 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

7.0710678 2.236068 0 0 0

5.939697 3.5777088 -0.0947664 -1.2925295 -0.4902926

= 0.2828427 0.4472136 0.2128929 -0.2797022 -0.7722974 0.7071068 -0.4472136 -0.4807445 -0.2596204 -0.0384964 0.2828427 -0.4472136 0.8431415 -0.0337898 0.0892790 -0.1414214 -0.4472136 -0.1021209 0.6599727 -0.5779337 -0.5656854 -0.4472136 -0.0473832 -0.6462647 -0.2451463 ----------------------------------------------------------------k=3 beta = 1.068392 v : 1 0.87309062 0.33118770 H = -0.0683918 -0.9328028 -0.3538382 = 7.0710678 0 0 0 0 = 355

-0.9328028 0.1855786 -0.3089328

-0.3538382 -0.3089328 0.8828131

7.0710678 2.236068 0 0 0

5.939697 3.5777088 1.3856406 0 0

356 0.2828427 0.7071068 0.2828427 -0.1414214 -0.5656854 Observaciones:

QR 9.4. FACTORIZACION

0.4472136 -0.4472136 -0.4472136 -0.4472136 -0.4472136

0.5196152 0.2886751 -0.0577350 -0.4041452 0.6928203

-0.0119059 0.4121526 -0.8203366 0.3962781 0

-0.6707147 0.2163259 -0.2090802 -0.6779604 0

No es necesario calcular expl citamente las matrices H (en el ejemplo anterior aparecen, pero simplemente de manera ilustrativa). Basta con conocer y v . Es necesario implementar ecientemente el producto Hk A(k : m, : ) a partir de la informaci on: A(k : m, : ), y v . De manera an aloga, es necesario implementar ecientemente el producto Q( : , k : m)Hk a partir de la informaci on: Q( : , k : m), y v .

9.4.4.

Factorizaci on QR con matrices de Givens

Al utilizar matrices ortogonales de Givens, tambi en se busca, columna por columna, anular los elementos debajo de la diagonal. Con matrices de Householder, se utilizaba una matriz para cada columna. Con matrices de Givens, en la columna k , se utiliza una matriz para anular am,k , despu es otra matriz para anular am1,k , despu es otra matriz para anular am2,k y , nalmente, otra matriz para anular ak+1,k .

356

357

QR 9.4. FACTORIZACION

[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 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 = 1 i = 5 c = -0.242536 G = 1 0 0 1 0 0 0 0 0 0 A = 2 5 2 4.1231056 0

s = 0.970143 0 0 1 0 0 0 0 0 -0.2425356 -0.9701425 0 0 0 0.9701425 -0.2425356

3 4 1 5.3357838 -0.7276069

4 3 0 4.6081769 -1.940285 357

358 Q = 1 0 0 0 0

QR 9.4. FACTORIZACION

0 1 0 0 0

0 0 1 0 0

0 0 0 -0.2425356 -0.9701425

0 0 0 0.9701425 -0.2425356

i = 4 c = -0.436436 G = 1 0 0 1 0 0 0 0 0 0 A = 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

s = 0.899735 0 0 -0.4364358 -0.8997354 0 3 4 -5.2372294 -1.4289915 -0.7276069 0 0 -0.4364358 0.2182179 0.8728716 0 0 0.8997354 -0.4364358 0 4 3 -4.1461399 -2.0111733 -1.940285 0 0 0.8997354 0.1058512 0.4234049 0 0 0 0.9701425 -0.2425356 0 0 0 0 1

s = 0.790569 -7.0710678 -2.236068 0 0 0 -5.939697 -3.5777088 -1.3856406 0 0 358

359 Q = -0.2828427 -0.7071068 -0.2828427 0.1414214 0.5656854

QR 9.4. FACTORIZACION

-0.4472136 0.4472136 0.4472136 0.4472136 0.4472136

-0.5196152 -0.2886751 0.0577350 0.4041452 -0.6928203

0.6708204 -0.2236068 0.2236068 0.6708204 0

0 0.4082483 -0.8164966 0.4082483 0

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. De manera an aloga, es necesario implementar ecientemente el producto QG a partir de la informaci on: Q, c y s. En general para efectuar, sobre B , el producto G(i, j, c, s, m)T B basta con hacer:

x = B (i, : ) B (i, : ) = c B (i, : ) s B (j, : ) B (j, : ) = s x + c B (j, : ) En el proceso de factorizaci on QR, si se est a buscando un cero en la posici on (i, k ) de la matriz A, se modican u nicamente, la las i 1 e i, pero se debe tener en cuenta que las columnas 1, ..., k 1 son nulas por debajo de la diagonal. Entonces se reduce el n umero de operaciones.

359

360

QR 9.4. FACTORIZACION

ai1,k = c ai1,k s aik aik = 0 t = A(i 1, k + 1 : n) A(i 1, k + 1 : n) = c t s A(i, k + 1 : n) A(i, k + 1 : n) = s t + c A(i, k + 1 : n)

En general, para efectuar sobre B el producto B G(i, j, c, s, m), basta con hacer:

x = B ( : , i) B ( : , i) = c B ( : , i) + s B ( : , j ) B ( : , j ) = s x + c B ( : , j )

9.4.5.

Soluci on por m nimos cuadrados

Una de las aplicaciones importantes de la factorizaci on QR es la soluci on de sistemas de ecuaciones lineales por m nimos cuadrados. El m etodo m as popular para m nimos cuadrados es el de las ecuaciones normales. Sin embargo, en los casos, cuando el condicionamiento de A es muy grande comparado comparado con el residuo m nimo [GoV96], 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 T 2 T 2 ||QT Ax QT b||2 2 = ||Q QRx Q b||2 = ||Rx Q b||2 .

360

361 Sea A Rmn , c = QT b,

QR 9.4. FACTORIZACION

R=

U , 0qn

c=

d , r

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

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

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

Si U es cuadrada ( Rnn ) e invertible, la soluci on es u nica. Ejemplo 9.12. Resolver por m nimos cuadrados el sistema Ax = b, donde 29.1 2 3 4 33.9 5 4 3 , b = 7. 0 2 1 0 A= 20.1 1 2 3 38.9 4 5 4 Q = -0.2828427 -0.7071068 -0.2828427 0.1414214 0.5656854 = -7.0710678 0 0 0 -0.4472136 0.4472136 0.4472136 0.4472136 0.4472136 -0.5196152 -0.2886751 0.0577350 0.4041452 -0.6928203 0.6708204 -0.2236068 0.2236068 0.6708204 0 0 0.4082483 -0.8164966 0.4082483 0

-7.0710678 -2.236068 0 0

-5.939697 -3.5777088 -1.3856406 0 361

362 0 c : U

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

0 -59.029274

0 -21.108482 -5.6753531 0.0223607 -0.0816497

= -7.0710678 0 0

-7.0710678 -2.236068 0

-5.939697 -3.5777088 -1.3856406 -5.6753531

d : r x : :

-59.029274 0.0223607 2.0208333

-21.108482 -0.0816497 2.8866667

4.0958333

As , ||r||2 2 = 0.0071667 .

9.5.

M etodo QR para valores propios de matrices sim etricas

El m etodo m as popular para obtener los valores propios de una matriz sim etrica (todos reales) es el m etodo QR. Es posiblemente el m as eciente 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 QAQT = T tridiagonal sim etrica. 2. Obtener los valores propios de T .

9.5.1.

Tridiagonalizaci on por matrices de Householder para matrices sim etricas

Sea A Rnn sim etrica, H = H (n, H (A(2 : n, 1)). Es claro que HA es nula, en la columna 1, por debajo de la subdiagonal. Se puede observar, y 362

363

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

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 = 2 7.0710678 0 0 H A H = 2 7.0710678 0 0 Este proceso se realiza en las 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. 3 0.2828427 -1.2604484 -0.5755605 4 4.5254834 -6.4464829 2.4418963 5 12.020815 -2.8284271 -3.5355339

3 -1 0 1

4 0 -2 8

5 1 8 10

0 0.4242641 0.5656854 0.7071068

0 0.5656854 0.4441896 -0.6947630

0 0.7071068 -0.6947630 0.1315463

H A

7.0710678 11.18 -6.1814444 -1.3628445

0 -6.1814444 -1.6113918 3.2154369

0 -1.3628445 3.2154369 -2.5686082

363

364

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

A = triHouse(A) n = dim (A) para k = 1 : n 2 x = A(k + 1 : n, k ) H = H ( x) H = H (n, H ) A = HAH n-para n triHouse Ejemplo 9.14. A = 2. 3. 4. 3. - 1. 0. 4. 0. - 2. 5. 1. 8. k = 1 H = 0.4242641 0.5656854 0.7071068 = 2. 7.0710678 0. 0.

5. 1. 8. 10.

0.5656854 0.4441896 - 0.6947630

0.7071068 - 0.6947630 0.1315463

7.0710678 11.18 - 6.1814444 - 1.3628445

0. - 6.1814444 - 1.6113918 3.2154369

0. - 1.3628445 3.2154369 - 2.5686082

k = 2 H = - 0.9765473 - 0.2153028 = 2.

- 0.2153028 0.9765473

7.0710678

0. 364

0.

365

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

7.0710678 0. 0.

11.18 6.3298973 0.

6.3298973 - 0.3036510 - 2.7160739

0. - 2.7160739 - 3.876349

Tal como est a descrito el algoritmo, se supone que se hace expl citamente el producto HAH . En realidad se puede hacer de manera m as eciente, teniendo en cuenta que una parte de H es la identidad, que se conoce el nuevo valor de ak+1,k , que debajo habr a ceros, y que HAH tambi en es sim etrica. A = triHouse(A) n = dim (A) para k = 1 : n 2 x = A(k + 1 : n, k ) [v, ] = vHouse(x) p = A(k + 1 : n, k + 1 : n) v w = p (/2) (pT v ) v ak+1,k = ak,k+1 = ||x|| A(k + 2 : n, k ) = 0 A(k, k + 2 : n) = 0 A(k + 1 : n, k + 1 : n) = A(k + 1 : n, k + 1 : n) v wT w v T n-para n triHouse

9.5.2.

Tridiagonalizaci on por matrices de Givens para matrices sim etricas

Con los conceptos e ideas de la factorizaci on QR por medio de matrices de Givens y de la tridiagonalizaci on con matrices de Householder, resulta naturalmente el proceso de tridiagonalizaci on con matrices de Givens. Primero se busca tridiagonalizar la primera columna y primera la, o sea, se buscan ceros por debajo de la subdiagonal y a la derecha de la superdiagonal. Para ello se busca un cero en la posici on (n, 1), despu es en la posici on ( n 1, 1), as sucesivamente hasta la posici on (3, 1). Al mismo tiempo se hace lo an alogo con la primera la.

365

366

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

Despu es se trabaja con segunda columna y segunda la, y as sucesivamente, hasta la columna y la n 2. A = triGivens(A) n = dim (A) para k = 1 : n 2 para i = n : 1 : k + 2 [c, s] = csGivens(ai1,k , aik ) G = G(i 1, i, c, s, n) A = GT AG n-para n-para n triHouse Ejemplo 9.15. A = 2 3 4 5

3 -1 0 1

4 0 -2 8

5 1 8 10

k = 1 i = 4 c = -0.624695 A = 2 3 -6.4031242 0

s = 0.780869

3 -1 -0.7808688 -0.6246950

-6.4031242 -0.7808688 13.121951 4.097561

0 -0.6246950 4.097561 -5.1219512

i = 3 c = 0.424264 A = 2 7.0710678

s = 0.905539

7.0710678 11.18

0 -4.9257204 366

0 -3.9755349

367 0 0

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

-4.9257204 -3.9755349

0.9419512 1.1727625

1.1727625 -5.1219512

k = 2 i = 4 c = 0.778168 A = 2 7.0710678 0 0

s = -0.628057

7.0710678 11.18 -6.3298973 0

0 -6.3298973 -0.3036510 -2.

0 0 -2.7160739 -3.876349

No sobra recordar que el producto GT AG debe ser hecho de manera eciente, realizando u nicamente las operaciones necesarias.

9.5.3.

Valores propios de matrices tridiagonales sim etricas

Sea T una matriz tridiagonal sim etrica. En lo que sigue en esta secci on, se supone que T es tridiagonal sim etrica. La matriz T puede ser el resultado del proceso de tridiagonalizaci on de Householder o de Givens. La matriz T se llama no reducida, [GoV96] p ag. 416, si todos lo elementos subdiagonales (y los superdiagonales) son no nulos. Una matriz es reducida si alg un elemento subdiagonal o (superdiagonal) es nulo. Ejemplo 9.16. Una matriz no reducida y dos reducidas: 2 3 0 0 0 0 2 3 0 0 0 0 2 3 3 4 5 0 0 0 3 4 5 0 0 0 3 4 0 5 6 7 0 0 0 5 6 7 0 0 0 5 0 0 7 8 9 0 , 0 0 7 8 0 0 , 0 0 0 0 0 9 10 11 0 0 0 0 10 11 0 0 0 0 0 0 11 12 0 0 0 0 11 12 0 0 367 0 0 0 0 0 0 0 0 0 8 0 0 0 10 11 0 11 12

0 5 6 0 0 0

368

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

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 . El objetivo, a partir de ahora, es encontar los valores propios de T no reducida. Sea T = QR la factorizaci on QR de A y sea T + = RQ QT QR = QT T R = QT T T + = RQ = QT T Q. Luego T + es sim etrica y semejante a T . Adem as se puede demostrar que tambi en es tridiagonal. Ejemplo 9.17. T = 2 3 0 0

3 4 5 0

0 5 6 7

0 0 7 8

= -3.6055513 0 0 0 = -0.5547002 -0.8320503 0 0

-4.9923018 -5.0076864 0 0

-4.1602515 -5.8371805 -7.6563459 0

0 -6.9892556 -7.4712474 2.8863072

-0.0460830 0.0307220 -0.9984651 0

0.3365427 -0.2243618 -0.0224362 -0.9142743 368

0.7595545 -0.5063697 -0.0506370 0.4050957

369

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

T+

= 6.1538462 4.1666469 0 0

4.1666469 5.6743747 7.644594 0

0 7.644594 7.0025484 -2.6388764

0 0 -2.6388764 1.1692308

Un proceso, un poco lento, para hallar los valores propios de T , consiste en hacer T = T + y repetir varias veces. Se puede demostrar que la matriz que se va obteniendo tiende a ser reducida. Dicho en palabras populares, la tridiagonal se va adelgazando en alguna parte. repetir QR = T factorizaci on QR de T T = RQ n-repetir Ejemplo 9.18. Aplicar el proceso anterior hasta que T sea reducida. En este ejemplo se supone que T es reducida cuando para alg un elemento subdiagonal |ti+1,i | 1010 . T = 2 3 0 0 3 4 5 0 0 5 6 7 0 0 7 8

k = 1 T+ = 9.8718663 -4.486006 0 0

-4.486006 10.134151 -4.5625729 0

0 -4.5625729 -1.1770851 -0.7764250

0 0 -0.7764250 1.1710681

369

370 k = 2 T+

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

= 13.296028 -3.5861468 0 0

-3.5861468 8.2428763 1.7266634 0

0 1.7266634 -2.7961816 0.3062809

0 0 0.3062809 1.2572771

k = 10 T+ = 15.191934 -0.0059687 0 0

-0.0059687 6.6303783 0.0035727 0

0 0.0035727 -3.100073 0.0002528

0 0 0.0002528 1.2777606

k = 20 T+ = 15.191938 -0.0000015 0 0

-0.0000015 6.6303755 0.0000018 0

0 0.0000018 -3.1000743 3.577E-08

0 0 3.577E-08 1.2777606

k = 27; matriz reducida: T+ = 15.191938 -4.514E-09 0 0

-4.514E-09 6.6303755 -8.713E-09 0

0 -8.713E-09 -3.1000743 -7.229E-11

0 0 -7.230E-11 1.2777606

Denotemos por espec(A) el conjunto de valores propios de A. Cuando se hace un desplazamiento en los elementos diagonales de una matriz, los valores 370

371

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

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

k = 9, matriz reducida: T+ = 14.191935 -0.0052796 0 0

-0.0052796 5.5882374 0.6389663 0

0 0.6389663 -4.057933 -8.844E-12

0 0 -8.844E-12 0.2777606

T + s I 15.191935 -0.0052796 0 0

-0.0052796 6.5882374 0.6389663 0

0 0.6389663 -3.057933 -8.844E-12

0 0 -8.844E-12 1.2777606

371

372

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

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 d2 + t2 n,n1 d2 + 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 En [GoV96], 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 reducida semejante a la siguiente matriz tridiagonal: 8 3 0 0 3 6 4 0 T = 0 4 10 6 0 0 6 0 13.50417 , 1.9698954 , 372 5.0194039 , 10.51487

Con un prop osito simplemente informativo, los valores propios obtenidos por la funci on spec son

373 k = 1 mu = T

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

2.8102497

-mu I 5.1897503 3 0 0

3 3.1897503 -4 0

0 -4 -12.81025 -6

0 0 -6 -2.8102497

T+ = RQ 7.2885019 2.0988427 0 0 T + mu I 10.098752 2.0988427 0 0

2.0988427 -9.5701241 8.9042431 0

0 8.9042431 -4.1976395 -0.6390185

0 0 -0.6390185 -0.7617370

2.0988427 -6.7598744 8.9042431 0

0 8.9042431 -1.3873898 -0.6390185

0 0 -0.6390185 2.0485127

k = 2 mu = T

2.1635102

-mu I 7.9352413 2.0988427 0 0

2.0988427 -8.9233846 8.9042431 0

0 8.9042431 -3.5509 -0.6390185

0 0 -0.6390185 -0.1149975

T+ = RQ 7.8706324 -3.26714 0 0 T + mu I

-3.26714 -14.885642 -2.4468061 0

0 -2.4468061 2.5541744 0.0357613

0 0 0.0357613 -0.1932052

373

374

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

10.034143 -3.26714 0 0

-3.26714 -12.722132 -2.4468061 0

0 -2.4468061 4.7176845 0.0357613

0 0 0.0357613 1.970305

k = 3 mu = T

1.9698396

-mu I 8.064303 -3.26714 0 0

-3.26714 -14.691972 -2.4468061 0

0 -2.4468061 2.7478449 0.0357613

0 0 0.0357613 0.0004654

T+ = RQ 7.1298463 5.6488809 0 0 T + mu I 9.0996859 5.6488809 0 0

5.6488809 -14.048752 0.5009906 0

0 0.5009906 3.0394919 0.0000006

0 0 0.0000006 0.0000557

5.6488809 -12.078913 0.5009906 0

0 0.5009906 5.0093315 0.0000006

0 0 0.0000006 1.9698954

k = 4 mu = 1.9698954 T -mu I 7.1297905 5.6488809 0 0

5.6488809 -14.048808 0.5009906 0

0 0.5009906 3.0394362 0.0000006

0 0 0.0000006 1.379E-13

T+ = RQ 4.4614948

-9.0220625

0 374

375

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

-9.0220625 0 0 T + mu I 6.4313901 -9.0220625 0 0 T reducida 6.4313901 -9.0220625 0 0

-11.390431 -0.1052167 0

-0.1052167 3.049355 1.656E-22

0 -2.585E-17 7.811E-16

-9.0220625 -9.4205358 -0.1052167 0

0 -0.1052167 5.0192503 1.656E-22

0 0 -2.585E-17 1.9698954

-9.0220625 -9.4205358 0.1052167 0

0 -0.1052167 5.0192503 0

0 0 0 1.9698954

En una matriz sim etrica tridiagonal se busca desde la esquina S.E. hacia la esquina N.O., el primer bloque de tama no superior a uno que sea no reducido. A este bloque se le aplica el procedimiento anterior (hasta que el bloque sea reducido). El proceso general acaba cuando la matriz resultante es diagonal. Ejemplo 9.21. Obtener los valores propios de la siguiente matriz tridiagonal sim etrica: 2 8 0 0 0 0 8 2 0 0 0 0 0 0 8 3 0 0 A= 0 0 3 6 4 0 0 0 0 4 10 6 0 0 0 0 6 0 i1 i2 : 3 6

T inicial 8 3 3 6

0 -4

0 0 375

376

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

0 -4 -10 0 0 -6 mu = 2.810250 T final 10.098752 2.0988427 0 0 i1 i2 : 3 6

-6 0

2.0988427 -6.7598744 8.9042431 0

0 8.9042431 -1.3873898 -0.6390185

0 0 -0.6390185 2.0485127

T inicial 10.098752 2.0988427 0 0 mu = 2.163510 T final 10.034143 -3.26714 0 0 i1 i2 : 3 6

2.0988427 -6.7598744 8.9042431 0

0 8.9042431 -1.3873898 -0.6390185

0 0 -0.6390185 2.0485127

-3.26714 -12.722132 -2.4468061 0

0 -2.4468061 4.7176845 0.0357613

0 0 0.0357613 1.970305

T inicial 10.034143 -3.26714 0 0 mu = 1.969840 T final 9.0996859 5.6488809 0

-3.26714 -12.722132 -2.4468061 0

0 -2.4468061 4.7176845 0.0357613

0 0 0.0357613 1.970305

5.6488809 -12.078913 0.5009906

0 0.5009906 5.0093315 376

0 0 0.0000006

377 0

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

0 3 6

0.0000006

1.9698954

i1 i2 :

T inicial 9.0996859 5.6488809 0 0 mu = 1.969895 T final 6.4313901 -9.0220625 0 0 A = -2 8 0 0 0 0

5.6488809 -12.078913 0.5009906 0

0 0.5009906 5.0093315 0.0000006

0 0 0.0000006 1.9698954

-9.0220625 -9.4205358 -0.1052167 0

0 -0.1052167 5.0192503 -1.058E-22

0 0 8.383E-17 1.9698954

8 -2 0 0 0 0 3 5

0 0 6.4313901 -9.0220625 0 0

0 0 -9.0220625 -9.4205358 -0.1052167 0

0 0 0 -0.1052167 5.0192503 0

0 0 0 0 0 1.9698954

i1 i2 :

T inicial 6.4313901 -9.0220625 0 mu = 5.020017 T final -6.2865541 11.012094 0

-9.0220625 -9.4205358 -0.1052167

0 -0.1052167 5.0192503

11.012094 3.2972548 -0.0000058

0 -0.0000058 5.0194039

377

378

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

i1 i2 :

T inicial -6.2865541 11.012094 0 mu = 5.019404 T final -12.629095 -4.5002992 0 A = -2 8 0 0 0 0

11.012094 3.2972548 -0.0000058

0 -0.0000058 5.0194039

-4.5002992 9.6397959 2.079E-17

0 2.575E-17 5.0194039

8 -2 0 0 0 0 3 4

0 0 -12.629095 -4.5002992 0 0

0 0 -4.5002992 9.6397959 0 0

0 0 0 0 5.0194039 0

0 0 0 0 0 1.9698954

i1 i2 :

T inicial -12.629095 -4.5002992 -4.5002992 9.6397959 mu = 10.514870 T final -13.50417 3.384E-16 A = -2 8 0 0 0

-2.914E-16 10.51487

8 -2 0 0 0

0 0 -13.50417 0 0

0 0 0 10.51487 0 378

0 0 0 0 5.0194039

0 0 0 0 0

379 0

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

0 1 2

1.9698954

i1 i2 :

T inicial -2 8 8 -2 mu = -10.000000 T final 6 -1.735E-18 A = 6 0 0 0 0 0

-8.782E-17 -10

0 -10 0 0 0 0

0 0 -13.50417 0 0 0

0 0 0 10.51487 0 0

0 0 0 0 5.0194039 0

0 0 0 0 0 1.9698954

En los resultados anteriores, i1 e i2 indican la la inicial y nal de la primera submatriz no reducida que se encuentra y con la que se va a trabajar.

Ejercicios
9.1 Aplique el m etodo de la potencia para encontrar el valor propio dominante de 2 6 A= 0 2 379 0 1 0 0 6 0 9 6 . 5 0 9 2

380

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

9.3 Aplique el m etodo de la potencia inversa menos dominante de 8 5 8 0 9 8 A= 0 0 10 6 5 4 9.4 Aplique el m etodo de la potencia 8 1 A= 0 7 0 1 2 5 0 9 0 7

9.2 Aplique el m etodo de la potencia a 5 0 2 0 5 2 4 0 . A= 0 0 5 0 4 4 1 1

para hallar el valor propio 0 0 . 0 2

inversa a

9.7 Utilice la factorizaci on QR de A para resolver por m nimos cuadrados 3.01 4 2 1 5.99 1 1 1 x1 x = 1.99 . 1 1 1 2 x3 11.01 16 4 1 Compare con la soluci on obtenida por medio de ecuaciones normales. 380

9.6 Obtenga, usando matrices de Givens, la 4 2 1 1 A= 1 1 16 4

9.5 Obtenga, usando matrices de Householder, la factorizaci on QR de 4 2 1 1 1 1 . A= 1 1 1 16 4 1 factorizaci on QR de 1 1 . 1 1

0 6 . 0 2

381

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

9.8 Tridiagonalice, por medio de matrices de Householder, la matriz 2 3 4 5 3 0 1 2 A= 4 1 3 4 5 2 4 1

Puede vericar, usando Scilab, que los valores propios de A y de la matriz obtenida son exactamente los mismos.

9.9 Tridiagonalice, por medio de matrices de Givens, la matriz 2 3 4 5 3 0 1 2 A= 4 1 3 4 5 2 4 1 9.10 Obtenga los valores propios, sin desplazamiento o con desplazamiento, de la matriz tridiagonal obtenida. 9.11 Obtenga los valores propios, sin desplazamiento o con desplazamiento, de la matriz 2 1 0 0 0 1 3 2 0 0 . 0 2 4 0 0 A= 0 0 0 5 3 0 0 0 3 1

381

382

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

Bibliograf a
[AbS65] Abramowitz M. y Stegun I., Handbook of Mathematical Functions: with Formulas, Graphs, and Mathematical Tables, Dover, New York, 1965. [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. [Apo79] Apostol Tom M., An alisis matem atico, 2 ed., Revert e, Barcelona, 1979. [BuF85] Burden R.L. y Faires J.D., Numerical Analysis, 3a. ed., PrindleWeber-Schmidt, Boston, 1985. [ChC99] Chapra S.C. y Canale R.P., M etodos Num ericos para Ingenieros, McGrawHill, M exico, 1999. [Dem97] Demmel J.W., Applied Numerical Linear Algebra, SIAM, Philadelphia, 1997. [EnU96] Engel-Mullges G. y Uhlig F. Numerical Algorithms with C, Springer, Berlin, 1996. [Fro70] Fr oberg C.E., Introduction to Numerical Analysis, 2nd ed., AddisonWesley, Reading, 1970. [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. [Mor01] Mora H., Optimizaci on no lineal y din amica, Universidad Nacional, Fac. de Ciencias, Bogot a, 2001. [NoD88] Noble B. y Daniel J.W,, Applied Linear Algebra, 3rd ed., PrenticeHall, Englewood Clis, 1988. [Par80] Parlett B.N., The Symmetric Eigenvalue Problem, Prentice-Hall, Englewood Clis, 1980. 382

383

9.5. METODO QR PARA VALORES PROPIOS DE MATRICES SIMETRICAS

[Sch91] Schatzman M., Analyse Num erique, InterEditions, Paris, 1991. [Ste98] Stewart G.W., Matrix Algorithms, Volume I: Basic Decompositions, Siam, Philadelphia, 1998. [Str86] Strang G., Algebra Lineal y sus Aplicaciones, Addison-Wesley, Wilmington, 1986. [YoG72] Young D.M. y Gregory R.T., A Survey of Numerical Mathematics, vol I y II, Addison-Wesley, Reading, 1972.

383

Indice alfab etico


divididas de Newton, 191 Adams-Bashforth nitas, 202 f ormula de, 281 diferencias nitas, 301, 307 Adams-Moulton f ormula de, 285 ecuaciones aproximaci on, 179 diferenciales ordinarias, 254 aproximaci on por m nimos cuadrados, ecuaciones diferenciales 215 con condiciones de frontera, 297 de orden superior, 294 base, 183, 216 lineales con condiciones de froncondiciones de frontera tera, 301 ecuaciones diferenciales con, 297 sistemas de, 290 ecuaciones diferenciales lineales con,ecuaciones normales, 68 301 encajonamiento, 142 control del paso, 272 encajonamineto, 129 convergencia error, 243 cuadr atica, 14, 136 global, 226, 228, 230, 232, 257 lineal, 14 orden del, 278 cuadratura local, 226, 230, 257 de Gauss-Hermite, 245 m etodo de Euler, 278 de Gauss-Laguerre, 245 m etodo de Heun, 278 de Gauss-Legendre, 238, v ease cuadratu- m etodo del punto medio, 278 ra de Gauss m etodo RK4, 278 m etodo RK5, 278 def, 222 m etodo RK6, 278 derivaci on orden del, 278 num erica, 247 m etodo de Euler, 257 determinante, 56 orden del, 277 diagonal estrictamente dominante por Euler las, 87 m etodo de, 256, 266 diferencias 384

385

INDICE ALFABETICO

orden del m etodo de, 278 factorizaci on de Cholesky, 57, 64 LU, 42 PA=LU, 50 factorizaci on QR, 345 f ormula de Adams-Bashforth, 281 de Simpson, 229 deAdams-Moulton, 285 del trapecio, 223 formulas de Newton-Cotes, 223, 234 f ormulas de Newton-Cotes, 229 abiertas, 235 cerradas, 234 funciones de la base, 183, 216

intg, 222 Lagrange, v ease interpolaci on de Lagrange

Matlab, 27 matrices ortogonales, 72 matriz de diagonal estrictamente dominante por las, 87 de Givens, 72, 349 de Householder, 72 denida positiva, 54, 56, 88 jacobiana, 158 positivamente denida, v ease matriz denida positiva m etodo de Cholesky, 54, 64 de colocaci on, 180 Gauss, v ease m etodo de Gauss de Euler, 256, 266 Gauss-Seidel, v ease m etodo de Gaussde Gauss, 33 Seidel de Gauss con pivoteo parcial, 45, Givens, matriz de, 349 50 de Gauss-Seidel, 85 Heun de Heun, 260, 266 m etodo de, 260, 266 de la bisecci on, 142 orden del m etodo de, 278 de la secante, 139 de Newton, 132, 157 integraci on num erica, 221 de Newton en Rn , 157, 159 interpl, 181 de punto jo, 149, 157 interpolac on polinomial, 184 de Regula Falsi, 146 interpolaci on, 179181 de Regula Falsi modicado, 148 de Lagrange, 185 de Runge-Kutta (RK), 265 linea, 181 de Runge-Kutta-Fehlberg, 273, 275 por diferencias divididas, 197 del disparo (shooting), 297, 299 por diferencias nitas, 204 del punto medio, 263, 266 interpolaci on polinomial por trozos, del trapecio, 260 207 385

386

INDICE ALFABETICO

multipaso abierto, 281 RK5, 278 multipaso cerrado, 285 RK6, 278 multipaso expl cito, 281 orden de convergencia, 136, 140 multipaso impl cito, 285 pivote, 45 orden del, 277 pivoteo predictor-corrector, 286 parcial, 45 RK, 265 total, 45 RK2, 270 polinomios deducci on del, 270 de Legendre, 244 RK4, 266 polinomios de Lagrange, 186 RK5, 273 punto medio RK6, 274 m etodo del, 263, 266 RKF, 273 orden del m etodo de, 278 m etodos de Runge-Kutta, 265 QR, factorizaci on, 345 indirectos, 84 iterativos, 84 Raphson, v ease m etodo de Newtonmultipaso expl citos, 280 Raphson multipaso impl citos, 284 RK, v ease m etodo de Runge-Kutta RK, 265 RK4, v ease m etodo RK4 m nimos cuadrados, v ease soluci on por... RKF, v ease Runge-Kutta-Fehlberg Runge-Kutta notaci on de Matlab, 27 m etodo de, 265 notaci on de Scilab, 27 Runge-Kutta-Fehlberg n umero m etodo de, 273, 275 de operaciones, 32, 40, 63 Scilab, 27 ode, 255 Seidel, v ease m etodo de Gauss-Seidel orden seudosoluci on, 69 del error, 277 sistema vericaci on num erica, 279 diagonal, 29 del error global, 278 triangular inferior, 33 del error local, 278 triangular superior, 29 del m etodo, 277 sistemas de Euler, 278 de ecuaciones diferenciales, 290 de Heun, 278 soluci on del punto medio, 278 de ecuaciones, 128 RK4, 278 386

387

INDICE ALFABETICO

de sistemas de ecuaciones lineales, 25 de un sistema diagonal, 29 triangular inferior, 33 triangular superior, 29 por m nimos cuadrados, 66 spline, 207 spline, 182 tabla de diferencias divididas, 195 de diferencias nitas, 203 tasa de convergencia, 14 trazador c ubico, 207 trazador cubico, 182 triangularizaci on, 33, 36, 41 valor propio, 55 valor propio, 335

387

Das könnte Ihnen auch gefallen