Apuntes de Métodos Numéricos 2o E.T.S.I. Telecomunicación Universidad de Málaga Carlos García Argos ([email protected]) http://pagina.de/telecos-malaga Realizado con KLYX, un front-end para LATEX Curso 1999/2000 Índice General 1 Errores 3 1.1 Introducción a los métodos numéricos computacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Generación y propagación de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Inestabilidad de problemas y métodos numéricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2 Álgebra lineal numérica I 11 2.1 Métodos directos para sistemas lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2 Sistemas sobredeterminados y pseudoinversas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.3 Estimaciones de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4 Métodos iterativos para sistemas lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3 Álgebra lineal numérica II 44 3.1 Cálculo de autovalores y autovectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.2 Métodos de reducción a matriz tridiagonal y a matriz Hessenberg . . . . . . . . . . . . . . . . . . . . . . 46 3.3 Métodos iterativos de las potencias, de Jacobi y QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4 Interpolación y aproximación 56 4.1 Interpolación polinomial, de Hermite y trigonométrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.2 Teoría de la aproximación en espacios vectoriales normados . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.3 Aproximación por mínimos cuadrados polinomial y trigonométrica, discreta y continua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.4 La transformada discreta de Fourier y el algoritmo FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5 Derivación e integración numéricas 72 5.1 Métodos de derivación numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.2 Métodos de integración numérica de Newton-Côtes y de Gauss . . . . . . . . . . . . . . . . . . . . . . . 74 5.3 Método de extrapolación de Richardson y métodos adaptativos . . . . . . . . . . . . . . . . . . . . . . . 79 6 Métodos numéricos para ecuaciones diferenciales ordinarias 80 6.1 Problema de valor inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.2 Métodos unipaso de Taylor y de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.3 Métodos multipaso y predictores-correctores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.4 Convergencia y estabilidad de los métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.5 Problema de contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.6 Métodos del disparo, de diferencias finitas y de elementos finitos . . . . . . . . . . . . . . . . . . . . . . 80 1 ÍNDICE GENERAL 7 Resolución de ecuaciones no lineales 2 81 7.1 Métodos de iteración de punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.2 Teoremas de convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.3 Métodos para ecuaciones algebraicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.4 Sistema de ecuaciones no lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.5 Iteración de punto fijo, métodos de Newton y cuasi-Newton . . . . . . . . . . . . . . . . . . . . . . . . . 81 8 Métodos numéricos de optimización 82 8.1 Optimización no restringida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 8.2 Métodos iterativos de descenso, del gradiente, del gradiente cojungado, de Newton y cuasi-Newton . . 82 8.3 Problema de mínimos cuadrados no lineal: método de Levenberg-Marquardt . . . . . . . . . . . . . . . 82 8.4 Programación no lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 8.5 Métodos de penalización, de conjunto activo y de programación cuatrática secuencial . . . . . . . . . . 82 Capítulo 1 Errores 1.1 Introducción a los métodos numéricos computacionales El objetivo de los Métodos Numéricos es el de obtener soluciones aproximadas. Se trabaja con números reales. Los Métodos Numéricos comprenden el desarrollo y la implementación y uso de algoritmos numéricos y de software para la resolución de un problema físico, a partir de un modelo matemático del sistema físico en cuestión. Al trabajar con ordenadores, existen indeterminaciones en los resultados, ocasionados por el uso de la numeración en punto flotante, las consecuentes discretizaciones de intervalos continuos y la necesariedad de que las series sean finitas (dado que hay que parar). 1.2 Generación y propagación de errores Hay varios tipos de errores que pueden aparecer en la resolución de problemas: Errores experimentales o de medición: son errores anteriores al cálculo y por tanto no aplicables a los Métodos Numéricos. Errores en el cálculo numérico: - Al operar en punto flotante (ordenadores). Son errores de redondeo. - De discretización o truncamiento: son errores propios de los métodos numéricos (no se hace el límite infinito, la integral con todos los valores del intervalo, etc.). Implementación del método: errores de programación. A continuación únicamente vamos a considerar los errores de cálculo numérico. Veamos la representación de números: Representación de un número real x en el sistema decimal: x = c1c2c3 cn:cn+1 n+2 = c1 10n 1 + c2 10n 1 + + cn + cn10+1 + c100 + cj 2 f0; 1; : : : 9g Representación de un número real x en base : 3 CAPÍTULO 1. ERRORES 4 = d1d2 dk :dk+1 ( dk+1 dk+2 n 1 n 2 = d1 + d2 + + dk + + 2 + dj 2 f0; 1 : : : 1g En los sistemas computacionales suele ser = 2; 8; 16. x Representación normalizada: x Donde: = :d1d2 dk dk+1 e d1 6= 0; e 2 Z y d1 d2 dk dk+1 es la mantisa normalizada. El almacenamiento en una máquina se realiza de la siguiente forma: signo exponente(e) mantisa normalizada Tabla 1.1: Almacenamiento de un número normalizado La mantisa normalizada consta de t dígitos y es l e L. Los números que existen para la máquina son los que se pueden representar mediante todas las combinaciones de esta forma de representación, los demás no son representables para ella. Para almacenar números en una máquina (ordenador) tenemos la numeración en punto flotante: t dígitos en base y exponente e entre l y L. F (; t; l; L) = +:000 0 0 [ f:d1d2d3 dt c; 0 < d1 < ; 0 di < ; i = 2 : t; l e Lg Al representar los números de esta forma, se pierden infinitos valores de la recta real. x = (:d1d2 dt e) + :dt+1 e t = u c + v e t ; 1 juj < 1; 0 jvj < 1 El primer paréntesis (u) es la parte del número que podemos representar con este tipo de almacenamiento, mientras que el segundo paréntesis (v) no nos cabe. Tenemos dos opciones: Nos quitamos v sin más: truncamos el número. fl (x) = xC = u e Redondeamos el número. Es lo más habitual en los ordenadores de hoy día. fl (x) = xR = 8 < : u e jvj < u e + c t u > 0 ; jv j u e c t u < 0 ; jv j 1 21 21 2 CAPÍTULO 1. ERRORES 5 Una vez aplicado el redondeo, si es necesario, se vuelve a normalizar el número. Ejemplo: 0:999974 104 y vamos a redondearlo a 4 cifras: 0:9999 104 + 0:0001 104 = 1:0000 104 número no normalizado: 1:0000 104 = 0:1000 105 ya está normalizado Tenemos el número | Ahora vamos a ver los errores en la representación de números en punto flotante, si x es un valor aproximado de x: el error que resulta de sustituir x por su forma en punto flotante, x , se llama error de redondeo (tanto si se usa redondeo como truncado). E = x x Error absoluto de x : jE j = jx Error de x : Error relativo de x : = x x x xj Las cotas de error en la representación de números en punto flotante truncada (si x EC = v e t jEC j = jvj e t < e t jC j = jfl(jxx)j xj < jexj t eet = 1 1 6= 0) son: t = 0): Y las cotas para la representación de números en punto flotante redondeada (x 6 8 < ER = : v e t jvj < 12 e t (1 v) e t u > 0; jvj 121 ( 1 v) u < 0; jvj 2 jERj e2 t jR j 2 t 1 Ejemplo: Consideremos los errores absolutos y relativos: = 0:3000 101 y p = 0:3100 101 el error absoluto es 0:1 y el relativo 0:333 ^3 10 1. Si p = 0:3000 10 3 y p = 0:3100 10 3 el absoluto es 0:1 10 4 y el relativo 0:333 ^ 3 10 1 . Si p = 0:3000 104 y p = 0:3100 104 el error absoluto es 0:1 10 3 y el relativo 0:333 ^ 3 10 1. Si p Se observa que el error relativo es el mismo aún cambiando en varios órdenes de magnitud el número. El error relativo es ma ś significativo que el absoluto. | Veamos algunas definiciones: = 21 1 t . Epsilon de máquina es el menor número > 0 tal que fl (1 + ) 6= 1, el número que hay que sumarle a otro para que se obtenga el número siguiente en la numeración de la máquina. Ejemplo: en Matlab, el epsilon de máquina eps es una constante que vale 2 52 . Se llama unidad de redondeo en base al número CAPÍTULO 1. ERRORES 6 Un valor x aproximado a x tiene k dígitos fraccionarios exactos o correctos en base si cumple: jx xj < 12 k (1.1) Un valor x aproximado a x tiene k dígitos significativos en base si cumple: x x x < 1 1 2 k (1.2) Las dos últimas definiciones son especialmente importantes. Ahora consideremos la aritmética de punto flotante. Errores generados en la aritmética de punto flotante: +; ; ; =g. Definimos una operación con el símbolo Æ, de forma que Æ 2 f En una unidad aritmético-lógica se utilizan registros como unidades de almacenamiento de los datos que se van a operar. Estos tienen t posiciones para almacenar la mantisa, aunque en ocasiones se dispone de s posiciones adicionales, que nos pueden servir para almacenar los datos significativos de los datos en caso de que tengamos que desplazar los bits de la mantisa de alguno de ellos. Si tenemos dos números en punto flotante: fl (x) = xi (mx ; ex ) fl (y ) = yi (my ; ey ) Donde mx ; my son las mantisas de x e y y ex ; ey los exponentes de x e y respectivamente, al hacer la suma, si tenemos que desplazar la mantisa (cuando ex 6 ey por ejemplo), se pueden perder dígitos si no se dispone de posiciones adicionales para almacenarlos. Al multiplicar, las mantisas son de t dígitos, así que el resultado será de t dígitos, con lo cual podemos perder una cantidad considerable de precisión en el cálculo. = 2 = t, pero esto implica un coste bastante elevado, por lo que se suele alcanzar un = 1, aunque soluciones radicalmente económicas no tienen dígitos adicionales. El caso más deseable es que s compromiso. A veces se usa s El error relativo al hacer una operación Æ es: fl Siendo = 12 1 t y x (x Æ y ) (x Æ y ) r x Æ y (1.3) = fl (x) ; y = fl (y). El valor de r depende del de s: es redondeado ) r = 1 2sisielelnunmero u mero es truncado 2 si el nu mero es redondeado s=1 ) r= 4 si el nu mero es truncado s = 0 ) r puede ser muy grande para sumas y restas s=t (1.4) En el último caso, r depende de los operandos, y no tiene demasiada influencia para multiplicaciones y divisiones. Por tanto: si hay posiciones adicionales, el error cometido no es realmente problemático, sin embargo, cuando no hay ninguna posición adicional, podemos tener un error muy grande. Esto ocurre, por ejemplo, al trabajar con números reales de doble precisión, que ocupan al almacenarlos todas las posiciones del registro, incluidas las adicionales, con lo que se comporta como si s . =0 Conclusión: una máquina finita comete errores, tanto al almacenar datos como al operar con ellos. CAPÍTULO 1. ERRORES 7 Propagación de errores: Dadas dos aproximaciones de x e y , x e y respectivamente, el error total en el resultado de una operación aritmética Æ es la suma del error generado y el propagado: fl (x Æ y ) x Æ y = fl (x Æ y ) x Æ y + x Æ y x Æ y (1.5) Donde: fl (x Æ y ) x Æ y x Æ y x Æ y () es el error generado es el error propagado (x ) y jy Si sólo hay cotas Æ para los errores absolutos en los operandos, jx xj Æ en el supuesto de jx j Æ x y jy j Æ y , para el error absoluto se verifica: ( ) ( ) Suma Resta Multiplicacion Division Æ (x + y ) = Æ (x ) + Æ (y ) Æ (x y ) = Æ (x ) + Æ (y ) Æ (x y ) = jy j Æ(x ) + jx j Æ (y ) jx jÆ(y ) , y; y 6= 0 Æ xy = jy jÆ(x j)+ y j2 y j Æ (y ), es claro que, (1.6) Veamos la demostración para el caso de la multiplicación: Si , son los errores relativos de x e y respectivamente: x y x y xy = x (1 + ) = y (1 + ) = x (1 + ) y (1 + ) = xy + xy + xy = y (x x) + x (y xy y ) + (x x) (y y) Y tomando valores absolutos se obtiene la expresión antes vista. Los dos primeros paréntesis van multiplicados por y y x respectivamente, los cuales hay que sustituir por y y x respectivamente ya que el número que se conoce es la aproximación, el número almacenado en la máquina. Volviendo sobre el grupo de ecuaciones (1.6), se puede observar que la división puede tener una cota de error grande, ya que y puede ser muy pequeño, con lo que su cuadrado lo es más y el cociente se hace muy grande. Veamos ahora las cotas de error relativo: Si y son los errores relativos de x e y respectivamente, j(x +y ) (x+y)j Æ(x )+Æ(y ) jx+yj jx+yj j(x y ) (x y)j Æ(x )+Æ(y ) Resta jx yj jx y j n j(xyjx) y(jxy)j Multiplicacio j j + j j x ) ( x )j j ( y y n Divisio j x j = 1+ jj + j j Suma (1.7) y Desde el punto de vista del error relativo, las operaciones peligrosas son las sumas y las restas, ya que se divide y si los números son pequeños, la cota de error puede ser muy grande. CAPÍTULO 1. ERRORES 8 Aparecen las diferencias cancelativas, operaciones de resta que pueden anular o casi anular términos que realmente no se anulan, introduciendo un error más grande todavía. Se dan en sumas con operandos de signo contrario y casi del mismo módulo, y en diferencias de números con el mismo signo y módulos también aproximados. Ejemplo: p 1 + x p1 0 x si x nos va a salir un resultado erróneo al operar directamente. Para obtener un resultado mejor, factorizamos la suma: 1 + x p1 p x= p11++xx +(1p1 x)x = p1 + x 2+x p1 x Este resultado es preferible, ya que es un número muy pequeño multiplicado por 2 dividido entre un número que es aproximadamente 2. De la otra forma, al hacer la raíz de x siendo x un número muy pequeño queda prácticamente la raíz de 1, con lo que el resultado es mucho menos preciso. 1+ | Veamos lo que ocurre con funciones (sucesión de operaciones, una forma de generalizar el error para n operaciones): = () = ( ) f x donde y es el resultado y x el dato, y y f x siendo x e y las aproximaciones de Tenemos y respectivamente. Si f es derivable, podemos desarrollar la función en series de Taylor: 0 f (x) = f (x ) + f (x ) (x x ) + Si f 0 00 f (x ) (x ) 6= 0: 2! (x xey x ) 2 + : : : jy yj = f 0 (x ) jx xj 0 (x ) = 0 hay que considerar la siguiente derivada. Si ahora tenemos más de un dato: y = f (x1 ; x2 ; : : : xn ); y = f (x1 ; x2 ; : : : ; xn ) Si f Haciendo de nuevo el desarrollo de Taylor y cojiendo la primera derivada de cada término: jy n X @f jxi x j krf (x )k kx x k yj = ( x ; x ; : : : ; x ) 1 2 n i 2 2 @x i i=1 (1.8) Donde la desigualdad viene de la desigualdad de Cauchy-Schwartz y el subíndice 2 indica que es la “norma 2”, es decir, la norma de un vector tal y como se la conoce (raíz cuadrada de las componentes al cuadrado). rf (x ) = @f @x 1 . .. @f @xn ~y = f~ (~x) ) k~y Donde Jf x= .. . xn x1 ~y k kJf (~x )k k~x ~x k (~x ) es el jacobiano de f. La norma de una matriz A, kAk se calcula haciendo la raíz cuadrada del radio espectral de la matriz por su traspuesta, que es el módulo mayor de los autovalores de la matriz: 1 ; 2 ; : : : ; n autovalores de la matriz A: = (A) = i =8i; j i > j ; i 6= j es el radio espectral de A. p kAk = (At A) (1.9) CAPÍTULO 1. ERRORES 9 1.3 Inestabilidad de problemas y métodos numéricos Vamos a empezar con algunos ejemplos: Ejemplo 1: = R01 xx+6 dx usando la fórmula recurrente I k = k1 6Ik 1 teniendo I0 = ln 67 . Si usamos una calculadora científica normal, obtenemos (tras mucho teclear) el valor I 20 = 22875:75. Sin embargo, Calcular la integral I 20 20 hemos de notar que estamos evaluando una integral positiva en todo el intervalo de integración, con lo que el resultado debería ser positivo. Por otro lado, aunque no se vea a simple vista, este resultado en módulo es demasiado grande. El mismo cálculo, realizado con Matlab, usando 16 dígitos de precisión, devuelve I 20 : ::: Este resultado puede parecer exacto, pero aún así, sigue sin serlo, ya que acotando la integral, por la de una función mayor: = 0 1690451452 I20 < Z 0 1 x20 6 dx = 1 1 21 6 = 126 = 0:0079365 un valor menor que el obtenido, y si tiene que ser mayor que el valor real de la integral, está claro que ninguno de los dos resultados obtenidos es válido. Este ejemplo refleja la incertidumbre en el resultado cuando manejamos números reales que al almacenarlos podemos hacer que se pierdan dígitos significativos. | Ejemplo 2: Resolver el polinomio de segundo grado x 2 + 1000x + 6:2521308 = 0 usando 8 dígitos de resolución. p Podemos emplear la fórmula que siempre hemos usado para la ocasión: x = b 2ba 4ac , y obtenemos los resulta2 dos siguientes con una calculadora: x1 = 0:00625500 x2 = 999:99375 Teóricamente, al operar con las raíces se obtiene: x1 + x2 x1 x2 x1 + x2 = = = c a b a 1000:000005 x1 x2 = 6:2549609 CAPÍTULO 1. ERRORES 10 En los cálculos realizados con Matlab (función roots): x1 x2 = = 0:00625216989 999:99374783 | Ejemplo 3: Se tienen los siguientes sistemas de ecuaciones: 0:9999 1 x1 = 0:002 2 2 y1 0:006 0:99995 1 x2 = 0:002 2 2 y2 0:006 y Se obtienen las siguientes soluciones: x1 = 10 y1 = x2 = 20 y2 = 9:997 19:997 Se observa que a pesar de variar muy poco un dato las soluciones cambian enormemente (en comparación con el cambio del dato). | A partir de los ejemplos podemos ver que hay diferentes comportamientos para diferentes tipos de problemas, ya sea por el método de resolución empleado o por otras causas. Se dice que un método es inestable si para la mayoría de los casos da buenos resultados, pero en algunos casos, ya sea por la forma de los datos o por la forma de operarlos, se obtienen grandes diferencias (ejemplos 1 y 2). Decimos que tenemos un problema mal condicionado si para pequeñas variaciones de los datos del problema, se obtienen grandes diferencias en los resultados independientemente del método o métodos empleados (ejemplo 3). Si cuando resolvemos por un método un problema obtenemos un resultado diferente que la solución exacta, cabe plantearse si la diferencia viene de un método inestable o de un problema mal condicionado. Para ello, se realiza un análisis, que puede ser de cuatro tipos: 1. Análisis progresivo de error: partiendo de los errores en los datos, analizar, avanzando según los cálculos, los errores acumulados. 2. Análisis regresivo de error: una vez obtenido el resultado, ver de qué problema es solución exacta (en el ejemplo 1, cuando hacemos x1 x2 y x1 x2 lo que hacemos es ver qué coeficientes son los de la ecuación que realmente se ha resuelto). Es la forma más exacta de verificar la estabilidad de un método. + 3. Análisis estadístico de error: se trata a los errores como variables aleatorias, con lo que se obtiene una función de distribución, a partir de la cual se haya la varianza, la media, etc. 4. Análisis intervalar de error o por aritmética de intervalos: como no se conoce el dato preciso, se trabaja con un intervalo en el que sabemos que está ese dato, y operamos con los extremos izquierdo y derecho del mismo, de forma que sabemos que el resultado está dentro de un intervalo que es el que obtenemos como resultado. Este método es reciente y se está desarrollando. Capítulo 2 Álgebra lineal numérica I Introducción En la mayoría de los problemas hay que resolver sistemas de ecuaciones lineales, aquí vamos a ver algunos métodos para resolverlas. Empecemos por ver algunos conceptos básicos: Representación matricial de sistemas de ecuaciones: a11 x1 + : : : + a1n xn .. . an1 x1 + : : : + ann xn = .. . = b1 .. . bn (2.1) Dado este sistema, hay que encontrar los valores de xi para los que se cumplen las relaciones. 0 A=B @ 1 0 .. C . A ann x=B @ a11 : : : a1n .. . an1 .. . ::: 1 0 .. C . A xn b=B @ x1 b1 1 .. C . A bn (2.2) Donde A se llama matriz del sistema, x vector de incógnitas y b vector de términos independientes. En notación matricial, el sistema se escribe: A x = b. A la matriz Ajb se la llama matriz ampliada, y resulta de añadir el vector de términos independientes como la última columna de la matriz del sistema: 0 B @ a11 : : : a1n b1 .. . an1 .. .. . ann . ::: 1 .. C . A bn (2.3) Teorema de Rouché-Frobenius para la existencia de soluciones de un sistema de ecuaciones lineales: r (A) 6= r ([Ajb]) r (A) = r ([Ajb]) = n r (A) = r ([Ajb]) < n Donde r ( ) Incompatible no existe solucion Compatible determinado una unica solucion Compatible indeterminado infinitas soluciones ( ( ) (A) representa el rango de la matriz A. Como introducción a un método de resolución que no se recomienda su uso, veamos la: 11 ) CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 12 Regla de Cramer: Dado un sistema representado por su matriz del sistema A y por el vector de términos independientes b, las componentes de su vector de incógnitas x se obtienen de la siguiente forma: det Aj xj = det (A) (2.4) Donde Aj es la matriz resultante de sustituir la columna j de la matriz A por el vector de términos independientes, y det A representa el determinante de la matriz A. ( ) Este método es muy ineficiente, tiene un orden de O n2 n! operaciones para resolver el sistema. Definición: Dadas dos sucesiones fxn g y fyn g diremos que yn es del orden de xn , yn si existen dos constantes C y N tales que: = O (xn ) (’O’ de Landau) jynj C jxn j n > N 2.1 Métodos directos para sistemas lineales Fundamentos de Álgebra matricial en los apuntes de Álgebra de 1o de Luis Gimilio Barboza. 2.1.1 Introducción: métodos directos e indirectos Se dice que un método para resolver un problema es directo si tras un número finito de operaciones con los datos del problema se obtiene una solución al problema, que, en general, será aproximada. En los métodos iterativos se calcula una sucesión de vectores que son aproximaciones a la solución: x(s) , y en el límite, tiende a la solución del problema: x. (s) x = slim !1 x Cuando se usa un ordenador para resolver un problema por un método de este tipo, no queda más remedio que truncar la solución, es decir, realizar un número finito de iteraciones para obtener una solución aproximada. Normalmente los métodos iterativos se emplean sólo con problemas de gran tamaño, en los que las matrices están esparcidas o dispersas (tienen la mayoría de elementos iguales a cero). Un ejemplo en telecomunicaciones sería el flujo de una red de ordenadores a nivel internacional (Internet). 2.1.2 Métodos directos El fundamento básico de estos métodos es que existen sistemas fáciles de resolver, así que trataremos de transformar el problema que tenemos a uno fácil de resolver. Tenemos un sistema Ax = b siendo A una matriz cuadrada. Tenemos varios casos: A es diagonal. En este caso, las soluciones son: b xi = i i = 1 : : : n aii (2.5) CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I A es ortogonal (A 13 1 = At ): x = A 1 b = At b A es triangular superior (todos los elementos por debajo de la diagonal principal son cero): n xi = b1ii bi xn = abnn (2.6) Pn j =i+1 aij xj i=n 1 : 1 : 1 (Sustitucion regresiva) (2.7) A es triangular inferior: 1 aij xj i = 2 : n (Sustitucion progresiva) j =1 x1 = ab111 xi = a1ii bi Pi (2.8) 2.1.3 Teorema de equivalencia de sistemas Sea M una matriz invertible (no singular). Entonces los sistemas decir, tienen el mismo conjunto de soluciones. Así pues, vamos a basar los métodos en pasar de A x de resolver (alguno de la sección anterior). A x = b y M A x = M b son equivalentes, es = b a A^ x = ^b equivalentes donde el último sistema sea fácil A^ = M A; ^b = M b En los métodos que vamos a emplear no vamos a llegar a calcular una matriz M, simplemente vamos a transformar A en A mediante operaciones elementales. ^ Esto se puede ver de otra forma: Si existe tal matriz M, entonces forma que: A = M 1 A^. N A^ x = b : De este modo, podemos plantearnos una factorización N y = b A^ x = y es la solucion intermedia es la solucion final 2.1.4 Método de eliminación de Gauss Trabajamos con la matriz ampliada del sistema y hacemos la transformación: h i [Ajb] A^j^b de forma que la última sea triangular o diagonal. 0 In = B @ 1 ::: 0 . .. . .. ::: 01 .. C . A 1 = e1 e2 : : : en A = N A^ de CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 14 In es lo que se conoce como matriz unidad, y ei son los vectores unitarios de la base canónica (dispuestos como filas). Definimos una operación elemental como: 0 Eji () = I + ej eti = j B B B B B B @ 1 ::: . i ::: 01 0 ::: ::: 0C C 0 ::: .. . .. .. . 0 .. . .. . .. 0 .. C . C C (2.9) .. C . A . 1 ::: det (Eij ()) = Entonces, al hacer Eji a la original): () A = A + ej eti A nos quedaría la matriz de sistema siguiente (que además es equivalente 0 @ aj 1 + ai1 1 Igual que A ajn + ain ::: Igual que A A + ai1, tiene que ser = aj1 . ai1 Se define una permutación de una matriz, Pij como el intercambio de la fila i con la fila j : De forma que, si queremos anular el elemento aj 1 Pij = e1 e2 : : : ej ei+1 : : : ej 1 ei ej +1 : : : en det (Pij ) = 1 El determinante de la matriz resultante es el mismo que la original pero cambiado de signo. 0 Pij A = i B B aj 1 B B j @ ::: ai1 : : : Igual ::: Igual ::: Igual 1 : : : ajn ::: C C C C ain A Triangularización: Primer paso: Pj1 1 j1 1 (1) j1 En1 (n1 ) E21 (21 ) Pj1 1 j 1 = aa(1) 11 Eji (ji ) representa una operación de suma de la fila i multiplicada por ji con la fila j . La matriz resultante de esta operación: CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 0 B B B @ Donde los superíndices 1 0 C C .. C . A B B B B @ a11 : : : a1n b1 a21 : : : a2n b2 .. . an1 .. .. . ann . ::: 15 bn (1) : : : a(1) b(1) a(1) 11 a12 1(1)n 1(1) 0 a(1) 22 : : : a2n b2 .. . 0 .. . .. . .. . (1) (1) a(1) n2 : : : ann bn 1 C C C C A (1) indican que son los resultados de una operación elemental con la primera fila de la matriz. El siguiente paso sería: Pj2 2 j2 2 (para no deshacer la operacion anterior) (2) j2 En2 (n2 ) E32 (32 ) Pj2 2 j 2 = aa(2) 22 La matriz que nos queda: 0 B B B B B @ (1) : : : b(1) a(1) 11 a12 1(2) 0 a(2) : : : b 22 2 .. (2) . 0 a33 b(2) 3 .. . .. . .. . .. . 1 C C C C C A El paso k-ésimo del método: Pjk k ! Enk (nk ) Ek+1;k (k+1;k) Pjk k jk k Y al terminar se obtiene la siguiente matriz: 0 B B B B B B B @ (1) : : : a(1) b(1) a(1) 11 a12 1(2)n 1(2) 0 a(2) 22 : : : a2n b2 .. . .. . 0 El superíndice de la última fila es realmente n y lo dejamos como n. 0 .. 0 ::: .. . . 0 .. . .. . ( n ann) .. . .. . ( bnn) 1 C C C C C C C A 1, así que hacemos una operación adicional que no sirve para nada A lo largo de todo el proceso hemos multiplicado la matriz ampliada por matrices invertibles, por lo que el sistema que hemos obtenido al final tiene la misma solución que el original. La solución se obtiene por sustitución regresiva, como hemos visto antes. (i) Llamamos pivotes a los elementos que se quedan en la diagonal principal, aii . El orden de este algoritmo es de O 2n 3 3 operaciones. Estrategias de pivotaje o formas de escojer los pivotes: Se usan para elegir los elementos que irán en la diagonal principal de forma que los errores de redondeo influyan lo menos posible en el error del resultado. Se busca la estabilidad numérica del resultado. Hay dos formas: pivotaje parcial y pivotaje total. CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 16 1. Pivotaje parcial: En el paso k: se coje de la misma columna el elemento cuyo módulo sea mayor de los que hay a partir de la fila k. (k max a j k jk 1) = ja j jk k Se intercambian entonces las filas j y jk . Este método no es numéricamente estable, ya que hay matrices para las cuales el crecimiento del error invalida el resultado. Son casos muy raros en la práctica, pero teóricamente es inestable. 2. Pivotaje total: En lugar de escojer el elemento mayor de la misma columna se escoje el mayor de la matriz que queda por triangulizar. max a(k ni;j k ij 1) = a(k 1) rs Se intercambian las filas r y j y las columnas s y k . Al intercambiar columnas se intercambian también las incógnitas, por lo que hay que mantener un vector de índices que controle el orden de las incógnitas. Este método es el más estable, numéricamente. Ejemplo: Vamos a ver el desarrollo por Gauss de un sistema: 0 h A(1) jb(1) i B =B @ 6 2 12 8 3 13 6 4 2 4 12 1 6 10 34 C C 9 3 27 A 1 18 38 Haciendo pivotaje parcial y operando con la primera fila (que ahora es la que era antes la segunda): 0 h A(2) jb(2) i 12:0000 8:0000 6:0000 10:0000 34:0000 1 B 0:0000 2:0000 1:0000 1:0000 5:0000 C =B @ 0:0000 A 11:0000 7:5000 0:5000 18:5000 C 0:0000 0:0000 4:0000 13:0000 21:0000 Pivotando de nuevo la segunda por la tercera fila: 0 6:0000 10:0000 34:0000 1 7:5000 0:5000 18:5000 C A 0:3636 0:9091 1:6364 C 4:0000 13:0000 21:0000 0 6:0000 10:0000 34:0000 1 7:5000 0:5000 18:5000 C A 4:0000 13:0000 21:0000 C 0:0000 0:2727 0:2727 12:0000 8:0000 h i B 0:0000 11:0000 (3) (3) A jb = B @ 0:0000 0:0000 0:0000 0:0000 12:0000 8:0000 i B h 0:0000 11:0000 A(4) jb(4) = B @ 0:0000 0:0000 0:0000 0::0000 CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 17 Y ya tenemos la matriz del sistema triangulada. Si se hubiese hecho pivotaje total, en el primer paso, el 18 habría pasado a ser el primer elemento, y habría que llevar el orden de las incógnitas. | Diagonalización: Ahora la matriz del sistema junto con el vector de términos independientes se transforma en una matriz diagonal, para ello, se hacen ceros por encima del pivote. Y i6=k Las matrices quedan: 0 B B B @ 1 0 C C .. C . A B B B B @ a11 a12 : : : a1n b1 a21 a22 : : : a2n b2 .. . an1 .. . an2 : : : ann bn Eik (ik ) Pjk k (1) : : : a(1) b(1) a(1) 11 a12 1(1)n 1(1) 0 a(1) 22 : : : a2n b2 .. . 0 .. . .. . (1) : : : a(1) nn bn 0 1 0 C C C C A B B B B @ ::: a(11n) 0 .. . 0 0 ::: ( n) a22 : : : .. . 0 0 n) : : : a(nn 0 b(1n) b(2n) .. . ( bnn) 1 C C C C A Esta vez sí que son n pasos para conseguir la matriz diagonal. A priori no hay ninguna ventaja con respecto a la triangulización, ya que hay que realizar el doble de operaciones. Se usa cuando se quiere calcular la inversa de la matriz A: A x = I ; A x(1) x(2) : : : x(n) = e1 e2 : : : en A x(i) = ei i = 1 : n (n sistemas) [AjI ] Gauss!Jordan h i DjI (n) Dividiendopor ! pivotes I jA 1 Estrategias de escalado: Para evitar trabajar con números muy pequeños, se puede hacer un escalado de las ecuaciones o de las incógnitas: D1 1 A D2 y = D1 1 b x = D2 1 y Siendo D1 y D2 matrices diagonales. Estrategia de equilibrado: que los elementos de la matriz D1 1 A D2 estén en un mismo rango de valores. CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 18 2.1.5 Métodos de Crout y Doolittle Se basan en la factorización LU de la matriz del sistema, de forma que quede el producto de una matriz triangular superior (U) y una triangular inferior (L): 0 B A =LU =B B l11 0 : : : l21 l22 : : : . @ .. ln1 .. . ln2 : : : 0 0 10 CB CB .. C B . A@ lnn u11 u12 : : : u1n 0 u22 : : : u2n .. . 0 0 .. . ::: 1 C C .. C . A unn (2.10) En principio, al operarlas saldrían n2 ecuaciones con n2 incógnitas, lo cual no es nada práctico. Para evitarlo, se igualan los elementos de la diagonal principal de una de las dos matrices triangulares a uno (lii o uii ). +1 =1 =1 El método de Crout es el que iguala la diagonal principal de la matriz U a 1, mientras que el método de Doolittle es el que iguala la diagonal principal de la matriz L a 1. Primero veamos algunos conceptos: Definición: dada una matriz A n n, se denominan submatrices principales sucesivas a las submatrices: 0 Ai = B @ a11 : : : a1i .. . ai1 .. . ::: 1 .. C . A aii ; i=1:n (Ai ) para i = 1 : n. Teorema 2.1. Dada una matriz cuadrada A, si det (Ai ) 6= 0 8i = 1 : n 1, entonces la matriz admite factorización LU (L matriz triangular inferior y U triangular superior) con lii = 1 o uii = 1. Es condición suficiente de matriz factorizable, no necesaria. Si la matriz es invertible y existe su factorización LU, los menores principales sucesivos de la matriz hasta el de orden n 1 son no nulos y la factorización es única. Es condición necesaria y suficiente. y menores principales sucesivos a los determinantes det Definición: una matriz P cuadrada de orden n es una matriz de permutación si se puede expresar como producto de matrices elementales Pij . Teorema 2.2. Sea A matriz cuadrada invertible, entonces existe una matriz de permutación P tal que la matriz P admite factorización LU: A P A=LU Ahora veamos los dos métodos antes mencionados: Método de Crout: l j=2:n = ai1 i = P 1 : n u11 = 1 u1i = al i i = 2 : n j 1l u lij = aij k=1 ik kj i = j :Pnj ujj = 1; Si j < n : uji = aji kljj ljk uki i = j + 1 : n (2.11) = a1i i = P 1 : n l11 = 1 l1i = uai i = 2 : n j 1l u uji = aji j:n k=1 jk ki i = P aij jk lik ukj i=j+1:n ljj = 1; Si j < n : lij = ujj (2.12) 1 11 1 =1 Método de Doolittle: j =2:n (i1 u ( 1i El orden de estos métodos es de O 1 11 1 =1 2n 3 3 operaciones. CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 19 2.1.6 Método de Cholesky Se utiliza cuando la matriz del sistema es simétrica: A = At . A = L Lt 0 l11 : : : A=B @ l j=2:n 811 < : .. . ln1 .. . ::: 0 10 l11 : : : ln1 .. C B .. . A@ . lnn .. 0 . ::: 1 .. C . A lnn = paq 11 li1 = al i i = 2 : n Pj 1 2 ljj = ajj k=1 lP jk aij jk lik ljk i=j+1:n Si j < n; lij = ljj 1 11 1 =1 3 El orden del método de Cholesky es de O n3 (2.13) operaciones, la mitad que los anteriores. Teorema 2.3. Una matriz A admite factorización Cholesky si y sólo si es definida positiva. 0 8x 6= 0. O bien, es definida positiva si, y ( ) 0 = 1 : n. Definición: una matriz A simétrica es definida positiva si xt A x > sólo si, sus menores principales sucesivos son positivos: det Ai > i Teorema 2.4. Una matriz A semidefinida positiva admite factorización Cholesky para L triangular inferior con todos sus elementos lij 2 R. Si la matriz A es simétrica e indefinida, se puede usar una factorización L D Lt : A = L D Lt A = L U = L D U^ A==A U^ t DLt t ^ ) U^ = Lt ^ = 1. Con D diagonal y U tal que uii El algoritmo es: d(11 = a11 vi = aji j=2:n djj = ajj 1 vk lik lji = vi ; i = 1 : j dii k=1 vk ljk Pi Pkj =11 1 (2.14) Siendo v un vector auxiliar. No toda matriz simétrica indefinida puede factorizarse de esta forma, por ejemplo: A= 0 1 1 0 Sin embargo, para toda matriz simétrica indefinida existe una matriz de permutación P tal que: P A P t = L B Lt Para B simétrica y diagonal por bloques vamos a desarrollarlos, sólo citarlos. 1 1 o 2 2. Se hace por los métodos de Aasen y Bunch-Kaufman, pero no CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 20 2.1.7 Ejercicio de examen, convocatoria de diciembre, 1999. Dada la matriz 0 B A=B @ 2 6 41 2 1 2C A 0 1 2C 0 0 1 determinar 2 R para que A admita factorización LU. Solución: det (Ai ) 6= 0 i = 1 : 3 det (A1 ) = det (A2 ) = 2 4 det (A3 ) = 3 5 + 12 Igualando a cero los resultados, nos quedan los siguientes valores para los que se anulan los menores: =0 = 2 = 3 Vemos que A es factorizable LU 8 2 R f0; 2; 2; 3g Ahora cabe preguntarse si es factorizable para alguno de esos valores. Para ello, utilizamos la segunda parte del teorema 1: det (A) = 3 7 + 14 Y vemos que, para los valores encontrados: =0 =2 = 2 = 3 ) ) ) ) det (A) = 0 det (A) 6= 0 det (A) 6= 0 det (A) 6= 0 Sin embargo, para los tres últimos valores no es factorizable, ya que sus menores son nulos. 4 Ejemplo: Dada la matriz 4 4 0 1 B 3 1 C A=B A @ 4 5 1C 0 1 1 3 0 hacer factorización Cholesky en función de y concretar los valores de para los que es posible la factorización en aritmética real. CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 21 Se ve que la matriz es simétrica, así que podemos expresarla: 0 B A=B @ l11 0 0 0 l21 l22 0 0 l31 l32 l33 0 l41 l42 l43 l44 1 C t CL A Aplicando el algoritmo de la factorización, llegamos a los siguientes valores: l11 = 2 p l21 = 2 l22 = 122 2 l31 = 2 l32 = 0 l33 = 1 q 2 l41 = 0 l42 = p12 2 l43 = 1 l44 = 2012 222 Para que sea factorizable tiene que ser definida positiva, los determinantes son fáciles de calcular, teniendo en cuenta: 2 l22 2 lii2 det (Ai ) = (det (Li ))2 = l11 Por tanto, det (A1 ) = 4 > 0 det (A2 ) = 12 2 det (A3 ) = det (A2 ) Y el determinante de la matriz del sistema: 22 det (A) = 20 Para que sea factorizable: 20 222 > 0 12 > 0 p 10 p 10 p 12 p 12 Que tiene << y << por lo que cojemos la más restrictiva. Además, si p dos soluciones, también es factorizable porque los menores sucesivos son no nulos. = 10 Así pues, la matriz es factorizable por Cholesky si y sólo si: p p 10 10 | Ejemplo: CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 22 Determinar los valores de para los que A es factorizable LU y resolver el sistema A A y b: 0 B A () = B @ 2 11 2 1C A 2 1C 1 3 1 2 0 1 0 0 0 B b=B @ () x = b para = 2, siendo 1 1 3 C A 5 C 1 Empecemos por calcular los menores sucesivos de A: det (A1 ) = det (A2 ) = 2 det (A3 ) = 2 3 4 0; 32 ; 2. Con lo que se obtiene que es factorizable (en condición suficiente) para 2 R Veamos si para alguno de esos valores es factorizable. det (A) = (2 1) ( 2) Así, para cada uno de los valores de : =0 = 32 =2 ) ) ) Invertible; no existe factorizacion Invertible y tampoco es factorizable No es invertible En el último caso, como la matriz no es invertible, el teorema no nos asegura nada, por lo que tenemos que intentar factorizar: 0 2 B 1 A (2) = B @ 0 0 3 2 1 0 2 2 2 1 0 11 l11 B l21 1C Crout B A = @ l31 1C 2 l41 10 l22 l32 l33 l42 l43 l44 Y ahora hallamos los valores de los elementos: Para la primera columna de L: l11 = 2 l21 = 1 l31 = 0 l41 = 0 La primera fila de U: l11 u12 = 3; u12 = 32 l11 u13 = 2; u13 = 1 l11 u14 = 1; u14 = 12 CB CB A@ 1 u12 u13 u14 1 u23 u24 1 u34 1 1 C C A CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 23 Segunda columna de L: l21 u12 + l22 = 2; l22 = 12 l31 u12 + l32 = 1; l32 = 1 l41 u12 + l42 = 0; l42 = 0 Segunda fila de U: l21 u13 + l22 u23 = 2; u23 = 2 l21 u14 + l22 u24 = 1; u24 = 1 Tercera columna de L: l31 u13 + l32 u23 + l33 = 2; l33 = 0 l41 u13 + l42 u23 + l43 = 1; l43 = 1 Tercera fila de U: l31 u14 + l32 u24 + l33 u34 = 1; 0 u34 = 0 El resultado de esta última ecuación es que u 34 puede valer lo que uno quiera, el problema vendría al intentar resolverlo con un ordenador, ya que no soporta la división por cero y no trabaja con parámetros. Hacemos u 34 . = Por último, la última columna de L: l41 u14 + l42 u24 + l43 + l44 = 2; l44 = 2 Con este resultado, lo que ocurre es que tenemos infinitas factorizaciones posibles, por lo que la matriz A es factorizable si, y sólo si: 2R 0; 32 Veamos ahora la segunda parte del problema: resolver el sistema para 0 2 0 0 0 B 1 1 0 0 2 A (2) = B @ 0 1 0 0 0 0 1 2 10 = 2: 1 32 1 12 CB 0 1 2 1 CB A@ 0 0 1 0 0 0 1 La solución se obtiene al resolver: Ly =b U x =y 1 C C A CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 24 Habiendo operado, se obtiene: x= 5 s t 9 3t 7 + 3t 1 2t 1 2 y= t s + (2 ) t = 1 | 2.1.8 Métodos de ortogonalización Definición: Se dice que una matriz Q es ortogonal si Qt Q = Q Qt = I . kQ xk22 = xt Qt Q x = xt x = kxk22 La ventaja desde el punto de vista numérico de las transformaciones ortogonales es que son normas isométricas (se mantiene dicha norma), por tanto, estas transformaciones son estables numéricamente. Pregunta: ¿Y entonces porqué no hacemos todo con transformaciones ortogonales y nos olvidamos de Gauss, Cholesky y los demás? Respuesta: Porque las transformaciones ortogonales son menos eficientes que el resto de los métodos, si tenemos una matriz A m n a ortogonalizar, el número de operaciones es O n2 m n3 , por lo que en el caso de matrices cuadradas, hay que hacer 3 veces más operaciones que por el método de triangularización de Gauss. 3 Este método se suele usar cuando la estabilidad numérica es prioritaria. Hay dos métodos que vamos a estudiar: el método de Givens y el método de Householder. Método de Givens: Se define una matriz de Givens: 0 Gpq = B B B B B B B B B B B @ = cos 1 ::: 0 . .. . .. . .. ::: 0 ::: 0 ::: .. . = sen 0 ::: 0 ::: 01 cos ::: sen ::: 0C C p . cos ::: 0 q 0 ::: .. . .. . .. sen ::: 0 ::: .. . p .. . .. . .. . q .. . .. C . C C .. C . C C C C .. C . A 1 En adelante, consideraremos c ys . La premultiplicación por Gtpq equivale a una rotación de radianes en el plano de coordenadas contrario al de las agujas del reloj. Únicamente se cambian las filas p y q. Gtpq x = x1 : : : xp 1 c xp Si queremos anular el q-ésimo elemento: (2.15) (p; q) en sentido s xp xp+1 : : : xq 1 s xp + c xq : : : xn t CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 25 s xp + c xq = 0 Entonces: 8 = xxpq ) < s = pxp +q xq x : c= p p c2 + s2 = 1 xp +xq s c x 2 2 2 2 (2.16) El método de Givens consiste en sucesivas transformaciones de rotación usando matrices de Givens hasta reducir la matriz A rectangular m n a una triangular. Si m n: = Gtn Gt1 A R1 A 2 Rmn R1 2 Rnn 0 Siendo R1 triangular superior. = La matriz Q G1 Gn no se suele calcular y sólo se almacena un número por rotación en la posición anulada. Se suele usar este método con matrices dispersas. Método de Householder: Matriz de Householder: H =I 2 vv vt v t (2.17) Donde v es un vector no nulo, de forma que el producto v vt es una matriz cuadrada y v t v un número. La matriz H es simétrica y ortogonal: H Ht = H2 = I + 4 v vt v vt (vt v)2 Fijado un vector x 2 Rn , la elección de v permite obtener H v= 0 ::: 0 4 vvt vv = I t x con varios elementos nulos: xk + signo (xk ) xk+1 : : : xn t (2.18) Donde = v uX u n 2 t x j =k 0 1 H x=x z }| { 2v vt x = x 2vt x v v = vt v vt v B B B B B B B B B B @ (2.19) j x1 .. . xk 1 xk xk+1 .. . xn 1 0 C C C C C C C C C C A B B B B B B B B B B @ 0 .. . xk 0 signo (xk ) xk+1 .. . xn 1 C C C C C C C C C C A CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 26 t Si demostramos que 2vvt vx , podemos hacer ceros a partir de donde queramos. El multiplicar por el signo de xk es para evitar diferencias cancelativas. =1 El método de Householder consiste en la sucesiva realización de transformaciones (un total de n) de reflexión utilizando matrices de Householder hasta reducir A 2 Rmn a una matriz triangular. Si m n: Hn H1 A = t Demostremos 2vvt vx R1 R1 2 Rnn 0 triangular superior = 1: 2vt x = 2 vt v x2k + jxk j + x2k+1 + : : : + x2n (xk + signo (xk ) )2 + x2k+1 + : : : + xn 2 = 2 22 ++ 2jxjkxjkj = 1 Expresión analítica del método: 0 0 H1 B @ a11 : : : a1n .. . an1 .. . ::: 1 .. C . A ann = B B B B B @ (1) (1) a(1) 11 a12 : : : a1n 0 .. . .. . .. . .. . .. . (1) 0 qPa(1) n2 : : : 1 ann n a2 a11 + signo (a11 ) j =1 ji C B 1 C C C C C A 0 a21 B v (1) = B B @ C C C A .. . an1 v(1) v(1)t v(1)t v(1) H1 = I 2 Hi = I ::: 0 2 vv ii tvvi i i) 1 vi(+1 También podemos escribir: v (i) = No se calcula explícitamente Q de A eliminadas. 0 ( ) ( )t ( ) ( ) (i) : : : vm t (2.20) = H1 Hn, pues con los v(i) basta almacenar los vj(i) j = i + 1 : m en las posiciones El orden del método es de O n2 m n3 operaciones, por lo que es preferible a Givens si la matriz tiene pocos ceros (es densa), pero si lo usamos para matrices dispersas, hacemos operaciones con ceros innecesarias. 2 Ejemplo: Resolver el siguiente sistema usando el método de Householder: 0 63 41 88 1 1 60 51 10 C B 42 [Ajb] = B @ 0 A 28 56 5 C 126 82 71 2 63 + p632 + 422 + 1262 1 0 210 1 B C B 42 C 42 C=B C v (1) = B @ A @ 0 A 0 126 126 0 CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 27 0 0 2 + 282 + 5:62 B 30 : 8 + 30 : 8 v (2) = B @ 28 5:6 p 1 C C A | 2.2 Sistemas sobredeterminados y pseudoinversas 2.2.1 Sistemas sobredeterminados A x = b A 2 Rmn m > n Usualmente este tipo de sistemas no tiene solución, ¿qué hacemos pues? Tratamos de calcular x tal que kA x bk22 = min kA x bk22 x Sea la solución básica de mínimos cuadrados. Gtn Gt1 [Ajb] = R11 R12 0 0 R1 c 0 d y z = c d R11 y + R12 z = c z = 0 ) R11 y = c A=Q AP =Q R1 0 R11 R12 0 0 kA x bk22 = Qt (A x b)22 Siendo R1 x R1 x c d 2 2 = c la solución de mínimos cuadrados. = R1 0 x c d 2 2 CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 28 Teorema 2.5. El vector x es solución de mínimos cuadrados (o de sistema de ecuaciones normales: min kA x bk22) si, y sólo si, x es solución del At A x = At b Si el rango de A es n la solución es única: x = (At A) 1 At b. Método de las ecuaciones normales: = Consiste en aplicar Cholesky a At A x At b. sin embargo, este es un problema mal condicionado, así que se usa el método basado en transformaciones ortogonales (Givens, Householder). Método Gram-Schmidt clásico/modificado: Trata de calcular directamente la factorización Q1 R1 de A: A = Q1 R1 A 2 Rmn Q1 2 Rmn R1 2 Rnn Q1 es normalizada (no es ortogonal porque no es cuadrada): Qt1 Q1 = 1: Ax=b Q1 R1 x = b ) R1 x = Qt1 b Necesita que las columnas sean linealmente independientes. Cómo hacer la factorización: Método de Gram-Schmidt Notamos A y Q como matriz de columnas y R triangular: 0 a(1) a(2) : : : a(n) = q (1) q (2) : : : q (n) B @ r11 : : : r1n .. . 0 ::: 1 .. C . A rnn q (1) q (1) = 1 a(1) = q (1) r11 t Se trata de escoger r11 de forma que q (1) sea normalizado: t q (k) q (k) = 1 q (k) q (i) = 0; i = 1 : k 1 t t t ( i ) q q (k) = q (i) a(n) rin q (i) q (i) t Por tanto: rik = t q (i) a(k) q (i)t q (i) (2.21) CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 29 Nos queda la columna k : a(k) = r1k q (1) + : : : + rkk q (k) ( k) (1) ( k 1) q (k) = a r1n q r:::kk r1;k 1 q (2.22) Este método calcula las columnas k-ésima de Q1 y R1 en el paso k . Sin embargo, este método es numéricamente inestable porque los q(k) pierden ortogonalidad, así que se usa el Método de Gram-Schmidt modificado, que reorganiza el cálculo: ( k) rkk = a(k) 2 ; q (k) = arkk p rki = q (k) a(i) ; a(i) = a(i) rki q (k) i = k + 1 : n ) k=1:n (2.23) Esto modifica la matriz A, aunque se puede escoger almacenar Q1 en una matriz diferente. Se calcula la k-ésima fila de R1 y la k-ésima columna de Q1 en el paso k-ésimo. Los dos métodos de Gram-Schmidt requieren del orden de 2mn2 operaciones. 2.2.2 Pseudo-inversas Dada una matriz rectangular A, la pseudo-inversa de Moore-Penrose, 1. 2. A+ , cumple los siguientes axiomas: A+ A A+ = A+ A A+ A = A (A A+)t = A A+ t 4. (A+ A) = A+ A 3. 5. Al trabajar con matrices complejas: A A+ = A A+ Siendo B = B t con B la conjugación de los elementos de la matriz. Si A es rectangular y At A invertible, A+ = (At A) 1 At . Teorema 2.6. Cualquier vector x es solución mínimos cuadrados de un sistema A x mínima norma, si y sólo si se cumple: = b, y además x = A+ b tiene A x = A A+ b Demostración: kA x bk22 = A x A A+ b + A A+ b b22 = A x A A+ b22 + A A+ b b22 + 2 A x A A+ bt A A+ b b CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 30 Siendo: 2xt At A A+ I b = 2xt At At A At At b = 0 y: 2bt A A+t A A+ como A+ A A+ I b= 2bt A A+ A A+ A A+ = A+, lo de arriba vale cero, y queda: kA x bk22 = A x A A+ b22 + A A+ b b22 Cómo calcular la pseudo-inversa: Toda matriz rectangular se puede descomponer en el producto de una ortogonal, una diagonal rectangular y otra ortogonal: 0 A=U Donde i B B B B B B B @ 1 0 0 .. ::: ::: . .. . .. . r 0 0 .. . ::: ::: 01 C 0C C .. . .. . 0 C C C C A Vt 0 se llaman valores singulares de la matriz y i2 son los autovalores de A At o At A. AV =U S A V (i) = i U (i) At = V S U t ; At U (i) = i V (i) Multiplicando por la traspuesta: At A V (i) = i2 V (i) A At U (i) = i2 U (i) (2.24) CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 31 A+ = V S + U t (2.25) Donde 0 S+ = 1 1 B .. B . B B B B @ 0 .. . 0 01 ::: ::: ::: .. . .. C . C C 1 r .. 0C C (2.26) .. C . A . 0 ::: ::: ::: Un ejemplo de aplicación de este método es la compresión de imágenes: A =U SVt = n X i=1 i U (i) V (i) t Esto sirve para reconstruir la matriz A, y si tenemos una matriz original 20 valores singulares, se queda en una mucho más pequeña ( ). 60 1000 A muy grande (digamos 1000 1000), con La solución de mínimos cuadrados es: X 1 t V (i) U (i) b xLS = A+ b = i=1 i r 2.3 Estimaciones de error Ahora vamos a ver lo próximos que están dos vectores, en lugar de números. Definición: Se definen las normas de un vector x 2 Rn de la siguiente forma: kxk1 =qPnj=1 jxj j kxk2 = Pnj=1 jxj j2 kxkp = Pnj=1 jxj jp p kxk1 = maxj jxj j (2.27) 1 Definición: Para una matriz A 2 Rnn , se define la norma matricial como una aplicación kk Rnn : 1. 2. 3. 4. ! R tal que: kAk 0, kAk = 0 , A = 0 k Ak = jj kAk kA + Bk kAk + kBk kA Bk kAk kBk Definición: norma matricial natural o inducida: kAk = sup kAkxkxk = kmax kA xk xk=1 x6=0 (2.28) CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 32 Norma 1: kAk1 = sup kAkxkxk1 = imax =1:n x6=0 1 n X j =1 jaji j (2.29) Norma 2: kAk2 = sup kAkx kxk2 = (At A) = max i i p x6=0 2 (2.30) Norma infinita: kAk1 = sup kAkxkxk1 = imax =1:n x6=0 1 n X j =1 jaij j (2.31) El ínfimo de todas las normas matriciales que pueden definirse de A es el radio espectral de la matriz: (A) = inf kAk kk Definición: Si tenemos una matriz H invertible, se define la norma transformada por una matriz como: kAkH = H 1 A H En el caso vectorial: kxkH = H 1 x Definición: Se dice que una norma matricial es consistente con una vectorial si cumple: kA xk kAk kxk 8A; x Definición: Una matriz consistente se dice subordinada si hay un sólo vector x que cumpla la igualdad, es decir: 9!x0 = 0= kA x0 k = kAk kx0 k Si kk es norma subordinada a una vectorial, se cumple que kI k = 1. Un ejemplo de norma consistente no subordinada es la norma de Frobenius: kAkF = Ya que kI kF = pn. v u n n uX X t j =1 i=1 jaij j2 CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I Definición: Dada una sucesión de vectores 33 (s) x se define su límite de la siguiente forma: lim x(s) = x si slim s!1 !1 x x(s) = 0 En el caso matricial (dada la sucesión fAs g): lim A s!1 s = A si slim !1 kA As k = 0 Todo esto sin distinción de normas, ya que todas son equivalentes. Teorema 2.7. (para una matriz convergente): lim Bs = 0 , (B) < 1 s!1 Teorema 2.8. Serie matricial geométrica: I + B + : : : + Bs + : : : = converge a (I 1 X s=0 Bs B ) 1 si y sólo si (B ) < 1. 2.3.1 Condicionamiento de una matriz invertible A 2 Rnn invertible, y si queremos resolver el sistema A x = b, podemos resolver + b donde representan pequeñas perturbaciones en A y en b. El error relativo en la Teorema 2.9. Dada una matriz el sistema A A y b solución es: ( + ) = ky xk (A) kAk + kbk kxk 1 (A) kAk kbk x la solución exacta y (A) = kAk A 1 (se lee “kappa de A”) cuantifica la sensibilidad A x = b a las perturbaciones y se llama número de condición de A. Si A es singular, vale 1. Siendo I = A A 1; Se dice que la matriz es perfectamente condicionada si condicionada si es un número próximo a 1. 1 = kI k kAk A 1 (A) = 1, mal condicionada si (A) es un número grande y bien 1 = min kAk (A) A+A singular kAk Se perturba A hasta que A del problema + A sea singular. Condicionamiento de un problema de mínimos cuadrados: CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 34 Para el problema de mínimos cuadrados se usa el número de condición en norma 2, dado por: ^ mn 2 (A) = 1 ; A 2 R ; m n; rango (A) = n r Teorema 2.10. Dados xLS y x soluciones respectivas de mínimos cuadrados de los sistemas: min kA x bk2 min k(A + A) x (b + b)k2 con A; A 2 Rmn ; m n; rango ( A) = n y b; b 2 Rm . Si se cumple: siendo = kA xLS bk2 , entonces o n = max kkAAkk22 ; kkbbkk22 < n1 ((AA)) kbk2 6= 1 0 1 kx^ xLS k2 @2 (A) q kbk2 + (A)2 q A + O 2 2 2 kxLS k2 kbk22 2 kbk22 2 2.3.2 El residual y el refinamiento iterativo Se define el residual de x como: r =b Ax ^ ^=b Si tenemos una solución calculada x, A x r, mientras que para una solución exacta x, A x = b. A (^x x) = r Error absoluto de la solución calculada: kx^ xk A 1 krk Error relativo: kx^ xk A 1 krk kxk kxk El residuo no nos dice la diferencia entre la solución exacta y la calculada. kAk kxk kbk ) kx^kxkxk (A) kkrbkk Si resolvemos el sistema A (^ x x) = r (o A (x x^) = r): Ay =r Una vez que tengamos calculada la y , x x^ = y ; x = x^ + y . = Esto es genial para obtener la solución exacta ¿no? Pues no, porque al resolver A y r volvemos a cometer error, y sólo obtenemos una solución un poco más aproximada a la exacta. Esta es la base del refinamiento iterativo. Se suele hacer 2 o 3 veces. CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 35 2.4 Métodos iterativos para sistemas lineales 2.4.1 Definición Dado un sistema Ax=b con A de gran tamaño y dispersa, un método apropiado para resolverlo es alguno iterativo, que básicamente consiste en construir una sucesión x(s) de aproximaciones a la solución o soluciones del sistema. Un método iterativo es consistente con un problema si existe el límite s!1 x(s) x , donde x es la solución del problema. lim = 2.4.2 Métodos de punto fijo x(s+1) = B x(s) + c B 2 Rnn ; c 2 Rn ; s = 0; 1; : : : (2.32) Teorema de consistencia del método de punto fijo. El método de punto fijo (2.32) es consistente con un sistema de I B A 1 b. ecuaciones A x b para una matriz A no singular si y sólo si I B es no singular y c = =( ) Lectura del teorema: lim x(s) = x entonces lim x(s+1) = lim B x(s) + c, y por tanto x = B x + c. Estamos resolviendo el sistema relativo al método. Como (I B ) x = c, dado que I B es invertible, existe una única solución y es la misma que la de A x = b. Si existe el límite La consistencia no asegura la convergencia. Teorema de convergencia del método de punto fijo. El método de punto fijo (2.32), siendo consistente con un sistema, 1 c, con cualquier vector inicial x(0) si y sólo si B < . Es condición necesaria y suficiente. converge a I B ( ) ( ) 1 Expresado de otra forma, como condición suficiente: =( ) 1 El método de punto fijo (2.32) converge a x I B c con cualquier vector inicial norma matricial subordinada, y además se satisfacen las siguientes cotas de error: x s k (k+1) ( k) x(s) kB k 1kxkB k x k para k = 0; 1; : : : ; s x 1 x(0) si kB k < 1 para alguna (2.33) x(s) kB ks x x(0) (2.34) Nota: es pregunta habitual de examen pedir el número de iteraciones mínimo para que el error cometido sea menor que un determinado valor . Para ello, cojemos la segunda parte de la desigualdad: kB ks k kx(k+1) x(k) k 1 kB k Se toman entonces logaritmos y se despeja s. Esta cota se llama cota de error a priori. Existe una cota de error a posteriori, que es da una mejor acotación pero hay que calcular la iteración en la que se acota: x s k (s) (s x(s) kB k 1kxkB k x 1) k CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 36 2.4.3 Comparación de métodos Definición: factor medio de reducción por iteración: ! x(s) s x(0) x x 1 kBk (2.35) Definición: razón media por iteración: (kBsk) s 1 (2.36) Se dice que un método con matriz B1 es más rápido que otro con matriz B2 si el radio espectral de B1 es menor que el de B2 . 2.4.4 Métodos de descomposición o partición regular = = Si tenemos el sistema A x b con A regular, y A M N con M regular, tenemos que ecuación relativa al método de partición regular, dado un vector inicial x(0) . Es decir: M x(s+1) = N x(s) + b M x = N x + b es la ) x(s+1) = M 1 N x(s) + M 1 b Los métodos clásicos de este tipo están definidos para matrices A con elementos de la diagonal principal no nulos y tienen la siguente partición: A = D +L+R Siendo: 0 B D=B B @ a11 0 .. . 0 0 ::: a22 : : : .. . ::: ::: 0 0 .. . ann 1 0 C C C A L=B B B @ 0 a21 .. . an1 0 0 ::: ::: .. . an2 : : : 01 0C C .. C . A 0 0 0 a12 B 0 0 B R=B . @ .. 0 0 : : : a1n : : : a2n .. . ::: .. . 0 1 C C C A (2.37) Según la forma de la matriz B que se use, hay tres métodos clásicos: Método de Jacobi: BJ = D 1 (L + R) (2.38) Invierte la matriz diagonal, D. El cálculo de cada componente del vector x(s) se realiza del siguiente modo: x(s+1) = i bi iP1 j =1 aij x(js) aii n P j =i+1 aij x(js) i=1:n Es decir, que se opera con todas las componentes del vector anterior excepto con la que estamos calculando. (2.39) CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 37 Método de Gauss-Seidel: Las componentes ya calculadas se usan para calcular las siguientes en la misma iteración. Acelera la convergencia, sin embargo no se puede asegurar que en general sea mejor que Jacobi. BGS = (D + L) 1 R (2.40) Para el cálculo de cada componente se usa la fórmula: x(s+1) = i bi iP1 j =1 aij x(js+1) aii n P j =i+1 aij x(js) i=1:n (2.41) Método SOR (Sobrerrelajación): BSOR = (D + ! L) 1 (1 ! ) D ! R 0 (2.42) 1 1 Donde ! es el factor de relajación. Si < ! < el método se llama de subrelajación, mientras que si ! > es de sobrerrelajación, los cuales se pueden usar para acelerar la convergencia de sistemas que son convergentes por el método de Gauss-Seidel. La fórmula es la siguiente: x(i s+1) = (1 ! ) x(i s) + ! bi iP1 j =1 n P aij x(js+1) j =i+1 aii aij x(s) ! j (2.43) Como complemento a los métodos, veamos los de Richardson y el SOR simétrico: Método de Richardson: x(s+1) = x(s) + b A x(s) (2.44) Con arbitrario no nulo. Método SOR simétrico (SSOR): 1 x(s+ 2 ) = (1 ! ) x(s) + ! D 1 L x(s+1=2) D 1 R x(s) + D 1 b x(s+1) = (1 ! ) x(s+1=2) + ! D 1 L x(s+1=2) D 1 R x(s+1) + D 1 b En el SOR se hace el cálculo de 1 a n, en el SSOR de n a 1. (2.45) CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 2.4.4.1 38 Teoremas de convergencia Definición: Matriz de diagonal dominante: Se dice que una matriz A es de diagonal dominante estrictamente (por filas) si cumple: jaii j > n X j=1 jaij j 8i (2.46) j 6=i Es decir, que el elemento de la diagonal principal en valor absoluto es mayor que la suma de los valores absolutos de los elementos restantes de la fila. = Teorema 2.11. Dado un sistema A x b siendo A de diagonal dominante estrictamente, los métodos de Jacobi y Gauss-Seidel son convergentes a la solución del sistema. Demostración: para el método de Jacobi. BJ Con bij = aij y b ii aii = [bij ] = 0. Entonces: kBJ k1 = max i n X j =1 P j 6=i aij jbij j = max <1 i jaii j Por tanto, Jacobi converge si es matriz de diagonal dominante Teorema de Kahan. Dada una matriz sólo si < ! < . 0 2 A de elementos aii 6= 0 para todo i, el método SOR para esa matriz converge = Teorema de Ostrowski-Reich (importante). Dado un sistema A x b con A simétrica definida positiva, el método SOR converge a la solución del sistema para < ! < . Es condición suficiente. Como SOR es lo mismo que Gauss-Seidel cuando ! , todo lo que verifiquemos para SOR se cumple para Gauss-Seidel. 0 =1 2 = Teorema de Stein-Rosenberg (convergencia de Jacobi y Gauss-Seidel). Si se tiene un sistema A x b con A tal que aii para i n y aij para i 6 j , entonces se cumple una y sólo una de las siguientes posibilidades: =1: 0 = >0 0 < (BGS ) < (BJ ) < 1, con lo que convergen ambos métodos. 2. 0 = (BGS ) = (BJ ), con lo que también convergen ambos. 3. 1 < (BJ ) < (BGS ), con lo que no converge ninguno. 4. 1 = (BGS ) = (BJ ), tampoco converge ninguno. Teorema 2.12. Dada una matriz A tridiagonal con aii 6= 0 para i = 1 : n, si los autovalores de BJ son reales, tanto Jacobi como SOR para 0 < ! < 2 convergen o divergen simultáneamente. Si ambos convergen, entonces: 1. ( (BSOR (! )) = 1 Siendo q ! + 12 ! 2 2 + ! ! 1 1 ! + 41 ! 2 2 0 < ! !0 !0 ! < 2 = (BJ ) y !0 la elección óptima de !, hallándose de la forma siguiente: (2.47) CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 39 !0 = Si además de tridiagonal, Ostrowsky-Reich). A 2 1+ 1 p (2.48) 2 es simétrica y definida positiva, SOR y Jacobi convergen (en virtud del teorema de Ejemplo: Dada la matriz A y el vector b: 0 A=@ 2 1 01 1 2 1A 0 1 2 0 21 b=@ 4 A 2 Estudiar si el método iterativo de Jacobi converge a la solución del sistema A x = b para A y b. En caso afirmativo, determinar el número de iteraciones a realizar para que el error en la iteración m-ésima sea t 5 , con x(0) . menor que 5 10 = 1 0 1 Solución: La matriz A no es de diagonal dominante, así que buscamos Como BJ = (B J ). D 1 (L + R), para hallar los autovalores de B J : D D 1 (L + R) I = 0 Multiplicandopor ) Como D tiene inversa, jL j Dj jL + R + Dj = 0 + R + Dj = 0: 8 1 =q0 > > 2 1 0 3 < 1 2 1 = 8 4 = 0 ) > 2 = q12 > 0 1 2 1 : = 3 2 q (BJ ) = + 12 < 1 ) Jacobi converge Ahora hallamos el número de iteraciones: (m) x kBJ km2 x(1) x(0) 2 1 + kB k x J 2 Primero hallamos el vector x (1): x(1) 1 = x(1) 2 = 2 + x(0) 2 2 =1 4 + x(0) 1 2 x(0) 3 =2 CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 40 x(0) 2 2 x(1) 3 = 2 =1 Por tanto: (1) x x(0) 0 @ = 2 0 1 2 A = 2 0 2 kBJ k2 = (BJt BJ ) = (BJ2 ) = (BJ ) = p1 q q 2 Ya que: 0 BJ 1 Tomando logaritmo en base =@ p12 01 21 01 2 0 2 0 21 0 m p12 1 A 2 5 10 5 p 1= 2 y despejando m: m 340 11 | Ejemplo: () Dada la matriz A , determinar si existen valores de para los cuales es convergente el método de Jacobi pero no el de Gauss-Seidel. 0 2 1 1 1A A ( ) = @ 1 2 0 1 2 Solución: Necesitamos verificar la condición necesaria y suficiente. Jacobi: jD + L + Rj = 0 = 83 + 4 + Gauss-Seidel: j(D + L) + Rj = 0 = 2 (8 + + 4) ) 1 = 0 doble 2 = +4 8 CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I Gauss-Seidel converge si Si 41 (B GS ) = +4 8 < 1, es decir, si 12 < < 4. = 0 convergen ambos métodos. 0 2 > , es decir, que p es monótono Jacobi: tenemos un polinomio de orden 3, con su derivada p creciente, con p 1 1 y p 1 1, lo que significa que sólo tiene una raiz real, al ser monótono creciente. Calcularemos las raices complejas en función de una real que suponemos 1 . Aplicando Ruffini, llegamos a: ( )= ( )= ( ) = 24 + 4 0 () 82 + 81 + 821 + 4 = 0 2 3 = 821 + 4 = 2 + 1 1 2 8 Al ser 2 y 3 raíces complejas conjugadas, tienen el mismo módulo: j2 j2 = j3 j2 = 818+ 4 > 0 El radio espectral de B J es: r 1 (BJ ) = 21 + 2 Lo cual nos lleva a que 21 < 0:5. Despejando del polinomio sustituyendo 1 : = Con 1 831 + 41 = p12 : p p 4 2< <4 2 Es la condición de convergencia del método de Jacobi. Intersecando las dos condiciones, para que converja Jacobi y no lo haga Gauss-Seidel: p 4<4 2 Ya que para = 4 Gauss-Seidel no converge. | CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 42 2.4.5 Métodos iterativos basados en la optimización de una función Es la base de los métodos más actuales. Se basa en pasar el problema de resolver un sistema de ecuaciones A x a un problema de optimización. Para ello se define una función a minimizar, la función objetivo: 1 2 (x) = xt A x bt x =b (2.49) Siendo A matriz simétrica definida positiva. Por tanto, se trata de hallar min (x). La condición necesaria de mínimo es: x es minimo , r (x ) = 0 Por tanto: r (x) = A x b Que satisface: A x = b La función que hemos definido tiene un único mínimo, global, y es estrictamente convexa. 1 1 (x + v ) = (x ) + v t r (x ) + v t A v = (x ) + v t A v > (x ) 2 Ahora se trata de construir la solución x(s) de forma que 2 x(s+1) < x(s) . De esa forma: x(s+1) = x(s) + s d(s) Donde d(s) es la dirección de movimiento s es la longitud de paso, en la dirección d(s) . Se trata de un proceso de búsqueda o movimiento hacia la solución, es decir, que sólo interesan las direcciones hacia las que decrece. Fijada una dirección d(s) , y desarrollando en series de Taylor: x(s) + d(s) = ' () = x(s) + d(s) r x(s) + 12 2 d(s)t r2 x(s) d(s) : : : Haciendo búsqueda en línea exacta: 0 ' () = 0 = d(s) t r x(s) + d(s)t A d(s) Donde hemos sustituido la Hessiana por A ya que es una forma cuadrática, por lo que es la propia matriz. Despejando : = Donde r(s) es el residual. d(s) r x(s) d(s)t A d(s) t t d(s) r(s) = d(s)t A d(s) (2.50) CAPÍTULO 2. ÁLGEBRA LINEAL NUMÉRICA I 43 Método del gradiente: La dirección es el residual, es decir, la de máximo decrecimiento, que cambiada de signo es la de máximo crecimiento, ya que r r x . ( s ) Mientras r 6 , = () =0 x(s+1) = x(s) + s r(s) Con s = t r(s) r(s) r(s)t A r(s) (2.51) Se puede demostrar que se cumple: 2 t 1 t 1 + b A2 b 22 ((AA)) + 11 x(s) + b A2 b La convergencia es lineal, salvo si 2 (A) = 1, y es más lenta cuanto mayor sea 2 (A). x(s+1) Método del gradiente conjugado: La dirección que se escoje es conjugada con las anteriores, es decir: d(s) A d(j ) = 0 j = 1 : s t 1 El algoritmo es el siguiente: s=0 Mientras r(s) 6= 0 r(0) = b A x(0) (0) (0) si s > 0; d(s) = r(s) + s d(s 1) d =r o rs x(s+1) = x(s) + s d(s) s = k k 8 > > > > > < > > > > > : ( ) kr s s k r s = d sk t Akd s ( r(s+1) = r(s) s A d(s) s = s+1 2 ( ) ( ) 2 1) 2 2 2 (2.52) 2 ( ) Con matrices vacías representa muy poco cálculo. Teorema 2.13. Dado un sistema A x b siendo A simétrica definida positiva, si x(s) es la s-ésima iteración calculada por el método del gradiente conjugado, se cumple: = x(s) 2s t 1 t 1 + b A2 b 4 22 ((AA)) + 11 x(0) + b A2 b En teoría es más rápido, ya que acaba a lo sumo en n iteraciones. Si A es mal condicionada, se puede usar el método del gradiente conjugado precondicionado, en el que se elige una matriz C simétrica definida positiva y se aplica el método del gradiente conjugado a: A^ x^ = ^b Siendo A^ = C 1 A C 1 x^ = C x ^b = C 1 b Capítulo 3 Álgebra lineal numérica II 3.1 Cálculo de autovalores y autovectores 3.1.1 Introducción Vamos a tratar de encontrar los valores i 2C = [i] x para x 6= 0 y A 2 C nn. In ) = 0, y polinomio característico a p () = det (A tales que A x Se llama ecuación característica de la matriz A a det (A In ). Se define el espectro de una matriz como el conjunto de autovalores de dicha matriz. El radio espectral es el máximo en módulo de los autovalores. El determinante de una matriz es el producto de todos sus autovalores. traza ( A) = 1 + 2 + : : : + n = n P aii . i=1 Se dice que una matriz hermítica o simétrica es definida positiva si y sólo si sus autovalores son positivos, y además los autovalores de toda matriz hermítica o simétrica son reales. Se define la traza de una matriz como: Los autovalores de la inversa de una matriz son los inversos de los autovalores de la matriz sin invertir. Dos matrices semejantes tienen los mismos autovalores. p (A) = 0. Una matriz A es diagonalizable por semejanza unitaria si y sólo si es normal (A A = A A ). Teorema de Cayley-Hamilton. Toda matriz satisface su ecuación característica: Teorema 3.1. Por tanto, toda matriz compleja hermítica es diagonalizable por una transformación de semejanza unitaria y toda matriz real simétrica es diagonalizable por semejanza ortogonal. Teorema de Rayleigh. Dada una matriz compleja y hermítica cuyos autovalores cumplen que n n x A x x x n 1 : : : 1 : n 1 x 2 C f0g y cada cota se alcanza cuando x es el autovector del autovalor correspondiente. Teorema de Jordan. Toda matriz es semejante a una matriz de Jordan: 0 J= B B B @ J1 (1 ) 0 .. . 0 0 ::: J2 (2 ) : : : 0 .. . 0 0 .. . : : : Jk (k ) 0 1 C C C A 44 con Ji (i ) = 1 0 0 i 1 i B B B . B .. B @ .. . 0 0 0 0 0 0 ::: ::: 0 0 1 C C .. C . C C ::: 1 : : : i A (3.1) CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 45 Teorema de Schur. Dada una matriz A, existe otra matriz unitaria U de forma que se cumple: U A U = T Siendo T triangular superior. 3.1.2 Localización de los autovalores Teorema de los círculos de Gerschgorin. Dada una matriz A real y cuadrada de orden n, y definiendo el dominio unión de los círculos de Gershgorin: D= n [ i=1 Ci ; Ci = fz 2 C = jz aii j i g ; i = n X j=1 j 6=i jaij j ; i = 1 : n (3.2) Si es un autovalor, entonces está dentro del dominio D. Ejemplo: Dada la matriz 0 A=@ 1 2 41 3 1 2A 0 2 3 Se tiene que: C1 C2 C3 Centro -1 1 3 Radio 6 5 2 | Si A es de diagonal dominante estrictamente, es invertible. Por otro lado, dominante. A I Teorema de Brauer. Dada la matriz A real y cuadrada de orden n, y un entero m tal que no puede ser de diagonal 1mny jamm aii j > m + i i = 1 : n; i 6= m = En ese caso, el círculo de Gershgorin Cm fz 2 C y contiene un único autovalor de la matriz A. = jz amm j m g es disjunto de los demás círculos de Gershgorin, 3.1.3 Métodos de cálculo del polinomio característico Denotamos de forma general el polinomio característico de la matriz A: p () = jA I j = ( ¿Cuáles son los pi ? 1)n n + p1 n 1 + : : : + pn CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 46 Método de Le-Verrier: Utiliza la relación entre las raices de una ecuación y sus coeficientes (relaciones de Newton): a0 xn + a1 xn 1 + : : : + an ! 8 < : a0 s1 + a1 = 0 a0 sk + a1 sk 1 + : : : + ak 1 s1 + kak = 0 k =P2 : n sk = ni=1 xki Que, trasladado a nuestro polinomio característico: p1 = s1 pk = k1 (sk + p1 sk 1 + : : : + pk 1 s1 ) k =P2 : n sk = ni=1 ki (3.3) Los sk se obtienen como suma de los autovalores de potencias de la matriz A. El orden de este método es de O operaciones. Método de Faddeev-Souriau: Es una modificación del método anterior que reorganiza el cálculo. Partiendo de B0 A1 = A B0 A2 = A B1 .. . An = A Bn 1 = In: p1 = traza ( A1 ) B1 = A1 + p1 In p2 = traza2(A2 ) B2 = A2 + p2 In pn = .. . traza(An ) n .. . (3.4) Bn = An + pn In Al final del proceso, en virtud del teorema de Cayley-Hamilton, Bn n4 = 0. Método de Danilevski: Sólo como mención. Consiste en transformar la matriz A en una equivalente (por semejanza) cuyo polinomio característico sea fácil de determinar. Se transforma a una matriz de Frobenius: 0 ::: B B A!B1 0 0 B . @ .. 0 .. . ::: ::: ::: .. pn .. . .. . . 1 p1 1 C C C C A jF I j = p () 3.2 Métodos de reducción a matriz tridiagonal y a matriz Hessenberg 3.2.1 Si A es tridiagonal 0 B A=B B a1 c2 : : : b2 a2 : : : . @ .. 0 .. ::: . bn 0 0 1 C C .. C . A an CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II jA I j = a1 47 0 c2 : : : .. b2 .. . .. . .. . . .. 0 . bn ::: an bn = a1 = (an ) jAn 1 I j = (an ) pn 1 () bn cnpn 2 () .. . .. . bn 1 cn = Entonces, queda, para los polinomios sucesivos: p0 () = 1 p1 () = a1 pk () = (ak ) pk 1 () bk ck pk 2 () k = 2 : n (3.5) 3.2.2 Si A es Hessenberg superior 0 B A=B B @ Con todos los bi a11 a12 : : : a1n b2 a22 : : : a2n .. . .. 0 . ::: .. . bn 1 C C .. C . A ann 6= 0 para i = 2 : n. Se trata de anular los elementos de la última columna, multiplicando por s1 segunda, etc., siendo sn . ( )=1 () a la primera columna, por s2 () a la Para ello, se utiliza la siguiente recurrencia, conocida como método de Hyman: sn () = 1 k=n: Si bk 1 : 2 ! sk 1 () = (akk ) sk () + bk n P j =k+1 akj sj () (3.6) 6= 0. De esta forma, se obtiene: 0 det (A In ) = ( Si se tiene bi 1)n+1 b2 bn @(a11 ) s1 () + n X j =2 1 a1j sj ()A = 0 para algún i, se pueden hacer las recurrencias de las submatrices cuadradas principales. CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 48 3.2.3 Reducción por semejanza de una matriz a tridiagonal o Hessenberg La reducción por semejanza de una matriz a tridiagonal (si es simétrica) o Hessenberg superior (en otro caso) se suele hacer por los métodos de Givens y Householder: Gtp Gt1 A G1 Gp Hn 1 H2 A H2 Hn 1 Para el caso de Givens, rotaciones de una matriz simétrica: 0 B Gt1 B B @ a11 a21 : : : an1 a21 a22 : : : an2 .. . an1 .. . an2 : : : (3 1) 0 1 .. . ann C C C A G1 = B B B B B B @ a(1) a(1) 0 : : : a(1) 11 21 n1 (1) (1) a21 a22 : : : : : : a(1) n2 (1) 0 a(1) : : : : : : a 32 n3 .. . .. . .. a(1) n1 : : : (1 3) . .. . a(1) nn 1 C C C C C C A Tratamos de hacer un cero en ; y en ; . Al multiplicar por Gt1 , cambian las filas p y q , y al hacerlo por G1 las columnas p y q , por lo que hay que tener cuidado de que, al haber anulado ; , cuando anulemos ; , no cambiemos ; , que es lo que ocurre si escogemos p ,q . Entonces, escojemos la rotación sobre p; q de forma que anulemos q; p . Por ejemplo, en nuestro caso escogeríamos las filas ; para anular las filas ; , ; para anular ; , etc. (3 1) (2 4) ( (4 1) (3 1) (2 3) =3 =1 1) Si estamos haciendo transformación Householder, elegimos la simetría de i n de la columna i . +1: 1 0 H2 B @ H=I .. . ::: H de forma que se anulen los elementos 1 a11 : : : an1 .. . an1 (1 3) ( ) (3 1) .. C H 2 . A ann 2 vvt vv t Con la elección adecuada de v , podemos hacer ceros a partir de la posición que queramos. La primera transformación no tiene que tocar la primera columna, y de la misma forma, la primera fila. H2 = I t v (2) v (2) 2 v(2)t v(2) Siendo v (2) = 0 a21 + signo (a21 ) Los elementos que se quieren anular z Si la matriz A no es simétrica, llegamos a una matriz Hessenberg. }| a31 : : : an1 { ! H2 no puede tocar la CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 49 3.3 Métodos iterativos de las potencias, de Jacobi y QR Estos son métodos que atacan directamente el cálculo de autovalores. 3.3.1 Método de las potencias, de la iteración inversa y deflación 3.3.1.1 Método de las potencias Este método calcula el autovalor de máximo módulo de la matriz ello, se realiza la siguiente iteración: A, denotándose dicho autovalor como 1 . y (k) = A y (k 1) = A(k) y (0) k = 1; 2; : : : yp(k+1) yp(k) ! 1 Estamos suponiendo que 1 domina a todos los demás autovalores (estrictamente mayor): y (0) = n X i=1 Para (3.7) j! j > j2j : : : jnj. i x(i) Donde x(i) son los autovectores asociados a los autovalores i de la matriz A. En la aplicación práctica (sobre un ordenador) se requiere normalizar los vectores y(k) , usando, por ejemplo, la norma infinito: y (1) = A y (0) = y (2) = A y (1) = n X i=1 n X i=1 i i x(i) i 2i x(i) Es decir: y (p+1) = A y (p) = n X i=1 i (i p+1) x(i) Sacando el dominante del sumatorio: n X y (k) = k1 1 x(1) + i i 1 i=2 k Ya que 1i k ! x(i) = ki i x(1) ! 0. El problema con el que nos encontramos al utilizar este método con ordenadores, es que estamos elevando 1 a k , un número que puede ser muy grande, y si 1 > , tenemos un overflow, mientras que si 1 < , underflow, y perdemos la capacidad de cálculo. Por tanto, normalizamos los y(k) con un p tal que: 1 1 CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 50 (k ) yp = y(k)1 Entonces, definimos el vector z(k) : y (k ) z (k) = (k) y 1 De esta forma, nos queda: y (k+1) = A z (k) k = yp(k+1) Y por tanto, k ! 1, con su signo. yp(k+1) yp(k) Siendo v tal que v(k) !0 (1) (k+1) = 1 1xp (1)+ vp (k) ! 1 si 1 6= 0 1 xp + vp El problema pues, es escoger un y (0) tal que 1 6 de redondeo pueden ocasionar a la larga que 1 6 = 0. Aunque se escoja un y(0) para el que no se cumpla, los errores = 0. Es prudente elegir varios y(0). Por otro lado, si no se cumple que 1 es estrictamente dominante (que sea múltiple) o que 1 es complejo (por lo que existe otro de módulo máximo, su conjugado), hay adaptaciones que no vamos a considerar. Ahora la pregunta del millón: ¿va rápido o lento este método? Pues eso depende de lo rápido que 1i tienda a cero, es decir, que cuanto más dominante sea 1 más rápido será el método. Hay una variante del método que consiste en desplazar el autovalor un cierto valor q , de forma que calculamos el autovalor 1 q , aplicando el método de las potencias a A q I . + Con ello, el cociente 1i +qq tiende a 1, siendo más rápido. 3.3.1.2 Método de iteración inversa Este método resuelve la problemática de hallar el autovalor de menor módulo, ya que invirtiendo los i el de menor módulo se convierte en el de mayor módulo. Por tanto, las inversas de los autovalores son los autovalores de la matriz inversa. No hay que invertir la matriz A, sólo hay que resolver el sistema de ecuaciones siguiente: A y (k+1) = y (k) Por algún método de factorización. yp(k+1) yp(k) ! 1 n CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 51 Siendo n el autovalor de la matriz A de menor módulo. Si se utiliza desplazamiento: (A q In ) y (k+1) = y (k) yp(k+1) yp(k) ! 1 q n Si A es simétrica, conviene usar el cociente de Rayleigh y la norma euclídea (en lugar de la norma infinito): R (x) = Interesa mucho factorizar la matriz A (o A xt A x xt x q I ) para resolver rápidamente el sistema varias veces. Todo lo visto anteriormente no sirve para una matriz ortogonal, ya que sus autovalores son todos de módulo la unidad. 3.3.1.3 Método de deflación Este método lo que hace es “desinflar” el problema. Se utiliza un autovalor 1 y un autovector x(1) para transformar A y obtener otro autovalor como autovalor de una matriz de orden inferior. Hay varias técnicas, alguna de las cuales vamos a comentar. Teorema general de deflación. t B = A 1 x(1) v (1) Con un v(1) tal que v (1) t x(1) = 1. 0; 2; : : : ; n g si A tiene de autovalores f1; 2 ; : : : ; n g. Se puede demostrar entonces que B tiene de autovalores f Deflación de Hotelling: x(1) x(1) 2 2 v (1) = Deflación de Wielandt: A x(1) = 1 x(1) (1) ai x(1) = x(1) i con xi 6= 0 Siendo ai la fila i de la matriz A. CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 52 0 v (1) = B @ ai1 1 1 .. C . A (1) ain 1 xi Como es un autovector, alguna componente es distinta de cero. Ejemplo: =6 el autovalor de módulo máximo, transformar A en Dada la matriz A y 1 teniendo el autovector x (1) . 0 A=@ B mediante la deflación de Wielandt 4 1 1 1 1 3 2A 1 2 3 0 x(1) = @ 1 1 1A 1 Hallamos el vector v (1) : 0 v (1) = @ Por tanto, aplicando B =A 4 11 1A 1 6 1 x(1) v t : 0 B=@ 0 0 0 1 3 2 1A 3 1 2 Y los valores de la submatriz 2 1 1 2 Son los restantes autovalores de A. | 3.3.2 Método de Jacobi Se aplica para matrices A simétricas. Se transforma en diagonal por semejanza mediante giros. Ak+1 = Gtpk qk Ak Gpk qk CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 53 Donde pk y qk dependen del paso en que nos encontremos. Sin considerar el subíndice k , la submatriz tenemos que usar para la transformación es: bpp 0 0 bqq = c s s c = app apq aqp aqq = c s s c 2 2 que Eligiendo s y c de forma que sc , por estabilidad numérica. Las filas p y q no tienen porqué estar juntas, sólo lo marcamos así para ver cómo escojer s y c. 1 Se lleva el control de la suma de los cuadrados de los elementos no diagonales: v u u t kAk2F off (A) = Como off n X i=1 a2ii (Ak+1)2 = off (Ak )2 2ap(kk)qk , off (Ak ) tiende a cero, y por tanto, Ak tiende a ser diagonal. Para elegir pk y qk : (k) 1. Criterio clásico: pk y qk tales que apk qk 2. Jacobi cíclico: = maxi6=j a(ijk) (pk ; qk ) siguen un orden. (pk ; qk ) para los que ap(kk)qk no supere un cierto umbral. 3. Jacobi cíclico con filtro: se salta en el cíclico los pares Ejemplo: Reducir a tridiagonal la siguiente matriz: 0 5 B 1 A=B @ 2 2 Aplicando H 1 1:5 2 1 2 2 1 2 1 C C 9 5 A 5 1 = I 2 vvtvvt y calculando el vector v (1): 0 B v (1) = B @ 0 1 + p12 + 22 + 22 2 2 0 B H1 A H1 = B @ 0 B v (2) = B @ 1 0 01 C B 4 C C=B C A @ 2 A 2 5 3 0 0 1 3 9:5 4 3 C A 0 4 1 1 C 0 3 1 1 1 0 0 C B 0 B A=@ 4 p16 + 9 C 3 0 1 0 C A 9C 3 CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 54 0 B H2 (H1 A H1 ) H2 = B @ 5 3 3 9:5 0 5 0 0 0 0 1 5 0 C A 0:68 1:24 C 1:24 0:68 Por ser una matriz simétrica, sus autovalores son reales. | 3.3.3 Método QR Este método es esencial. Se consigue una matriz triangular o cuasitriangular realizando factorizaciones QR y multiplicando con el orden cambiado Q y R: A1 = A Ak = Qk Rk Ak+1 = Rk Qk (3.8) Tendiendo Ak a triangular o cuasitriangular. Si es cuasitriangular, una parte de la matriz “se resiste” a ser triangular, y lo que se hace es calcular los autovalores de esa parte por separado. Qk Ak+1 = Qk Rk Qk = Ak Qk Ak+1 = Qtk Ak Qk Las matrices son semenjantes a A (multiplicamos por matrices invertibles), por tanto, los autovalores de Ak son los de A. Es un método más lento, pero llega a la solución (en las iteraciones que sean, pero llega). ¿Qué matrices llegan a triangulares y cuáles a cuasitriangulares? La respuesta la tiene el siguiente teorema: Teorema 3.2. El método QR sobre una matriz Hessenberg H irreducible de forma sucesiva, acaba siendo triangular si y sólo si no existen dos autovalores distintos con el mismo módulo y multiplicidades de la misma paridad. Por ejemplo, si una matriz Hessenberg tiene como autovalores 3 y -3, no acabará siendo triangular. Se dice que una matriz H es irreducible si hi+1;i 6= 0 para i = 1 : n 1. Los autovalores deben estar “en la misma caja”, es decir, que si al ir reduciendo por QR una matriz se obtiene una cuasitriangular que va tendiendo a triangular, esto se aplica a las partes de la matriz diferentes que se “resisten” a ser triangulares. = En la práctica, se reduce la matriz a Hessenberg o tridiagonal (si es simétrica) haciendo A1 Qt0 A Q0 , para anular los elementos de la primera subdiagonal por Givens, lo cual sólo requiere n-1 rotaciones, lo que representa un coste muy pequeño. Si Ak = Gk Rk , Qk es Hessenberg superior. Ak+1 = Rk Qk es Hessenberg superior o tridiagonal simétrica. CAPÍTULO 3. ÁLGEBRA LINEAL NUMÉRICA II 55 También se aplican desplazamientos para acelerar el proceso: Hallar un k para que: Hk k In = Qk Rk Hk+1 = Rk Qk + k In eligiéndose cada k de forma que: 1. 2. k) mientras h(k) 6= 0. Si es cero, se pasa a la fila anterior empezando por abajo. k = h(nn n;n 1 (k) (k) ! h h (k) n 1 ;n 1 n 1;n El autovalor de es más próximo a hnn . k) (nn k) h(n;n h 1 Con esta aceleración se puede llegar en unas 10 iteraciones, mientras que de la otra forma son necesarias alrededor de 100. Capítulo 4 Interpolación y aproximación Introducción Se tiene información de una función f para determinados valores de la/s variable/s independiente y dependiente. Se trata de determinar un elemento p de una clase de funciones a elegir tal que p interpole a f (aproximación exacta) en los puntos en los que se dispone de la información. Por tanto, p es la que mejor aproxima f siguiendo algún criterio. Esto nos puede servir para varias cosas: 1. Averiguar cuánto vale f mación. () si es difícil de evaluar. Vale p (), considerando el error de interpolación o aproxi- (). Éste es p0 (). Rb Rb 3. Calcular a f (x) dx ! a p (x) dx. 4. Hallar un valor de tal que f () = y dado el valor de y . 2. Hallar el valor de f 0 4.1 Interpolación polinomial, de Hermite y trigonométrica 4.1.1 Interpolación polinomial = ( )g i = 0 : n con xi distintos entre sí. Queremos determinar el ( ) = f (xi ) para i = 0 : n. Si no hay igualdad, no podemos llamarlo Suponemos que tenemos los valores fxi ; yi f xi polinomio p 2 Pn de grado máximo n tal que p xi interpolación. En primer lugar, veamos que la solución es única: p 1 2 Pn y p2 2 Pn . Entonces p1 (xi ) = f (xi ) 8i y p2 (xi ) = f (xi ) 8i. Se cumple además que p 1 p2 2 Pn . p1 (xi ) p2 (xi ) = 0 constituye un polinomio de grado n con n + 1 soluciones (ya que tenemos n + 1 valores), por Suponemos que hay dos: tanto: p1 (x) = p2 (x) Y la solución es única. 56 CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN 4.1.1.1 57 Método de interpolación de Lagrange Usamos una base fl0 (x) ; l1 (x) ; : : : ; ln (x)g para el espacio Pn, de forma que: p (x) = n X k=0 yk lk (x) (4.1) Esta es la fórmula de Lagrange, y se tiene, para cada valor que tenemos: p (xi ) = n X k=0 yk lk (xi ) = yi La forma fácil de hacer esto es que sólo quede un sumando para cada xi : yi li (xi ) = yi Por tanto, se define a los li (x) como funciones delta (delta de Kronecker): lk (xi ) = Æik = Por tanto, se pueden escribir los li (x) = (x 0 i =6 k 1 i=k (x) de la siguente forma: (x (xi x 0 ) (x li (x) = Y si escribimos !n+1 x0 ) (x xi 1 ) (x xi+1 ) (x xn ) x0 ) (xi xi 1 ) (xi xi+1 ) (xi xn ) xn ), nos queda: li (x) = !n+1 (x) (x xi ) !n0 +1 (xi ) Ejemplo: Si se tiene la siguiente tabla de valores: xi yi -1 0 4 1 4 2 3 -2 El polinomio de Lagrange nos queda: p (x) = 4 ( 1 x0)(x( 14) (x4) ( 1)1 1) (x 4)(x 1) + 2 ((0x ++ 1) 1) (0 + 4)(0 1) (x 0)(x 1) + 3 ((4x ++ 1) 1) (4 0)(4 1) ( x + 1) (x 0)(x 4) 2 (1 + 1) (1 0)(1 4) (4.2) CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN 58 | El inconveniente de este método es que el polinomio cuesta más evaluarlo que con el algoritmo de Horner (Ruffini): p (x) = a0 xn + a1 xn 1 + an y = a0 y = yx + ai i = 1 : n Además, si se añade otro dato, hay que volver a escribir el polinomio entero desde el principio. 4.1.1.2 Polinomio de interpolación de Newton Se pretende con este método que al añadir un punto, sólo se añada un sumando al polinomio, sin alterar el resto. Vamos a verlo paso a paso, empezando con un punto: Se tiene (x0 ; y0 ): p0 (x) = y0 Si se añade un punto (x1 ; y1 ): p1 (x) = p0 (x) + a1 (x x0 ) ! p1 (x0 ) = p0 (x0 ) = y0 p1 (x1 ) = y1 = y0 + a1 (x1 x0 ) y y a1 = 1 0 x1 x0 = f [x0 x1 ] [x0 x1 ] se le llama diferencia dividida. Añadimos un tercer punto (x2 ; y2 ): Donde a f p2 (x) = p1 (x) + a2 (x x0 )(x x1 ) ! y2 p1 (x2 ) a2 = (x2 x0 ) (x2 x1 ) p2 (xi ) = p1 (xi ) i = 0 : 1 y2 = p2 (xi ) = p1 (xi ) + a2 (x2 x0 ) (x2 x1 ) = y2 ((yx02 + fx[0x)(0 xx21 ](xx21 ) x0 )) = f [x0 xx22] f [x0 x1 ] x1 Por inducción, llegamos a: f [xi0 ; xi1 ; : : : xik ] = (1) }| { f [xi ; : : : ; xik ] z 1 (2) }| f xi ; xi ; : : : ; xik xik xi z 0 0 1 { 1 (4.3) CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN x x0 x1 x2 x3 x4 x5 f (x) f [x0 ] f [x1 ] f [x2 ] f [x3 ] f [x4 ] f [x5 ] 59 Primeras diferencias Segundas diferencias f [x0 ; x1 ] = f [xx11] f [x1 ; x2 ] = f [xx22] f [x3 ; x2 ] = f [xx33] f [x4 ; x3 ] = f [xx44] f [x5 ; x4 ] = f [xx55] f [x0 ; x1 ; x2 ] = f [x1 ; x2 ; x3 ] = f [x2 ; x3 ; x4 ] = f [x3 ; x4 ; x5 ] = f [x0 ] x0 f [x1 ] x1 f [x2 ] x2 f [x3 ] x3 f [x4 ] x4 f [x1 ;x2] x2 f [x2 ;x3] x3 f [x3 ;x4] x4 f [x4 ;x5] x5 Terceras diferencias f [x0 ;x1] x0 f [x1 ;x2] x1 f [x2 ;x3] x2 f [x3 ;x4] x3 f [x0 ; x1 x2 ; x3 ] = f [x1 ;x2 ;xx33] xf [0x0 ;x1 ;x2] f [x1 ; x2 ; x3 ; x4 ] = f [x2 ;x3 ;xx44] fx[1x1 ;x2 ;x3 ] f [x2 ; x3 ; x4 ; x5 ] = f [x3 ;x4 ;xx55] fx[2x2 ;x3 ;x4 ] Tabla 4.1: Diferencias divididas para 6 puntos El que está en (1) y no está en (2), tiene que estar en el denominador, lo mismo que está en (2) y no en (1). Por tanto, nos queda el polinomio de interpolación siguiente: Pn (x) = f [x0 ] + f [x0 ; x1 ] + : : : + f [x0 ; x1 ; : : : ; xn ](x x0 ) (x x1 ) (x xn 1 ) (4.4) En la tabla (4.1) se puede ver un ejemplo de diferencias divididas sucesivas con 6 puntos. Ejemplo: Teniendo la siguiente tabla de valores, hallar el polinomio de interpolación de Newton: xi yi -1 0 4 1 4 2 3 -2 Hallamos las diferencias divididas sucesivas: a1 = 0 2( 41) = f [x0 ; x1 ] = 2 a2 = 4 3( 41) = f [x0 ; x2 ] = 51 ! 2 4 = f [x0 ; x3 ] = 3 ! a3 = 1+1 ( 2) 9 4 0 = f [x0 ; x1 ; x2 ] = 20 3 ( 2) = f [x0 ; x1 ; x3 ] = 1 ! 1 0 1 5 1 1 4 9 20 = 2960 Tenemos, por tanto, el siguiente polinomio: p ( x) = 4 2(x + 1) + 209 (x + 1)(x 0) + 29 60 (x + 1) x (x 4) | Fórmulas en diferencias finitas: Esto es sólo como mención. Se usa para puntos equiespaciados, es decir, para xi Se definen las siguientes diferencias: f (x) = f (x + h) f (x); k = k 1 2. Regresiva: rf (x) = f (x) f (x h); rk = r rk 1 3. Central: Æf (x) = f (x + h=2) f (x h=2); Æk = Æ Æ k 1 1. Progresiva: = xo + ih CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN 60 Son todos operadores lineales. La fórmula de Newton en diferencias finitas (progresiva)queda: f [x0 ; : : : ; xk ] = k f (x0 ) hk k ! Se puede hacer de forma similar para la diferencia regresiva, empezando por el último punto. 4.1.1.3 Error de interpolación E (x) = f (x) Pn (x) En los puntos xi , que son los datos de que se dispone, obviamente distinto de cero. (z ) = f (z ) Pn (z ) E (xi ) = 0. En los demás, es normal que sea f (x) Pn (x) ! (z ) !n+1 (x) n+1 = xi . f es de clase n + 1 en el intervalo [min fxi ; xg ; max fxi ; xg]. también lo es, ya que se define a partir de operaciones elementales de polinomios y no se cuentan los puntos en los que !n+1 (x) = 0, que son los xi . (x) = 0 tiene n + 2 raices, siendo de grado n + 1. Aplicando el teorema de Rolle: Para los x 6 9c 2 (min fxi ; xg ; max fxi ; xg) =0 = f (n+1) (c) 0 f (x!) P(xn)(x) (n + 1)! n+1 Despejando: f (n+1) (c) f (x) Pn (x) = (n + 1)! !n+1 (x) = E (x) Donde c depende de x. Esto es importante para acotar el error cometido al derivar o integrar con el polinomio de interpolación. A continuación vemos otra expresión del error: ( Teniendo el conjunto f xi ; f (xi )) i = 0 : n; (x; f (x)) ; x 6= xi g Pn+1 (z ) = Pn (z ) + f [x0 ; x1 ; : : : ; xn ; x] (z x0 ) (z xn ) Es el polinomio de interpolación de Newton añadiendo el punto x. Pn+1 (x) = f (x) = Pn (x) + f [x0 ; : : : ; xn ; x] (x x0 ) (x xn ) Esto tiene poca utilidad con una tabla, pero si se conoce f , se puede acotar el error, derivando la función en un intervalo a; b . ( ) max axb f (n+1) (x) jE (x)j j!n+1 (x)j (n + 1)! (4.5) CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN 61 Por tanto, si evaluamos en un punto que esté cerca de alguno de los puntos de interpolación obtenemos mayor precisión por decrecer la función !n+1 x para dichos puntos. () No extrapolar salvo en puntos próximos a los extremos. No usar muchos puntos de interpolación (derivadas de orden pequeño e interpolación de bajo grado). Si se aumenta el número de puntos ¿el polinomio se parece más a f ? No es lógico pensarlo, y en general no ocurre. Tampoco suele servir puntos concretos. Teorema de Weierstrass. Una función continua y definida en un intervalo quiera por un polinomio definido en ese intervalo. [a; b] se puede aproximar tanto como se 4.1.2 Interpolación osculatorio y de Hermite En problemas diferenciales se suele disponer de valores sobre la función y sobre su/s derivada/s: 0 x0 f (x0 ) f (x0 ) : : : f (k0 ) (x0 ) 0 x1 f (x1 ) f (x1 ) : : : f (k1 ) (x1 ) .. . xn .. . 0 f (xn ) f (xn ) : : : f (kn ) (xn ) Se trata de determinar p 2 Pk0 +k1 +:::kn +n tal que: p (xi ) = f (xi ) i = 0 : n p(j ) (xi ) = f (j ) (xi ) j = 1 : ki El conjunto de los polinomios osculantes Pk0 +k1 +:::kn +n es una generalización de los polinomios de Taylor y de Lagrange. La propiedad de estos polinomios es que dados n números distintos x1 : : : xn y n enteros no negativos m0 : : : mn , el polinomio osculante que aproxima a la función f 2 Cm a; b siendo m fm0 : : : mng y xi 2 a; b 8i n, el el polinomio de menor grado que coincide con la función y todas sus derivadas de orden menor o igual que mi en xi para i n. +1 [ ] =0: [ ] +1 = max =0: El grado de ese polinomio osculante será como mucho. M Los polinomios de Hermite se dan cuando mi en cada punto. Este es un caso frecuente. = n X i=0 mi + n = 1 i = 0 : n, es decir, cuando se conocen la función y la derivada primera Al resolver estos polinomios se dan diferencias divididas con puntos coincidentes, ya que se conoce más de un dato por cada punto: f x k:+1 :: x Teniendo la siguiente fórmula: f [x0 : : : xn ; x] = f (n+1) (c) (n + 1)! Al tomar límites cuando xi tiende a x para todo i, c tiende a x: CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN lim f xi !x Por tanto, para k 62 n+2 puntos x0 : : : xn ; x + 1 puntos coincidentes: f [x; : : : ; x] = (n+1) (x) = f(n + 1)! f (k) (x) k! (4.6) Si hay puntos que coinciden y otros que no, y suponiendo que están ordenados: ( f [x0 ; : : : ; xn ] = 4.1.2.1 f (n) (x0 ) n! f [x1 :::xn ] f [x0 :::xn xn x0 1 ] si x0 si x0 = xn 6= xn (4.7) Expresión de Newton para el polinomio de interpolación de Hermite En la tabla (4.2) se pueden ver las diferencias divididas aplicables al caso de que haya puntos coincidentes. zi x0 x0 x1 x1 .. . xn xn f [zi ] f (x0 ) f (x0 ) f (x1 ) f (x1 ) .. . f [zi 1 ; zi ] 0 f (x0 ) f [x0 ; x1 ] 0 f (x1 ) .. . f (xn ) f [xn 1 ; xn ] 0 f (xn ) f (xn ) Tabla 4.2: Diferencias divididas indefinidas El polinomio de interpolación sale, por tanto, de grado P2n+1 (x) 4.1.2.2 = + + + + 2n + 1: f [x0 ] + f [x0 ; x0 ] (x x0 ) f [x0 ; x0 ; x1 ](x x0 )2 f [x0 ; x0 ; x1 ; x1 ](x x0 )2 (x x1 ) ::: f [x0 ; x0 ; x1 ; x1 ; : : : ; xn ; xn ](x x0 )2 (x xn 1 )2 (x xn ) Forma de Lagrange P2n+1 (x) = ^ n X i=0 f (xi ) Hi (x) + n X 0 i=0 f (xi ) H^ i (x) (4.8) Con Hi y Hi a determinar: Hj (x) = 1 2(x 0 xj ) Ln;j (xj ) L2n;j (x) (4.9) y H^ j (x) = (x xj ) L2n;j (x) Donde Ln;j (x) denota el j-ésimo coeficiente del polinomio de Lagrange de grado n. (4.10) CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN 63 4.1.3 Métodos recurrentes Vamos a ver el algoritmo de Neville para generar recursivamente aproximaciones polinómicas de Lagrange: = fxS g y T S Dados S y T dos subconjuntos de fx0 ; x1 ; : : : ; xn g con S T interpolación de grado k que utiliza los puntos de un conjunto C fx0 ; x1 ; : : : los puntos xi todos distintos: = fxT g, PC;k (x) es el polinomio de ; xn g siendo k + 1 el cardinal de C y P (x) (x xT ) PT;k 1 (x) (x xS ) PS [T ;k (x) = S;k 1 xS xT (4.11) 0 Denotándose P0;:::n;k el polinomio en los puntos f ; : : : ng de grado k , se pueden ver en la tabla (4.3) las aproximaciones para polinomios de Lagrange usando el método de Neville. xi x0 x1 x2 .. . xn f (xi ) f (x0 ) f (x1 ) f (x2 ) 1 punto P0;0 () P1;0 () P2;0 () 2 puntos 3 puntos P0;1;1 () P1;2;1 () P0;1;2;2 () .. . f (xn ) Pn;0 () Pn 1;n;1 () Pn 2;n 1;n;2 () Tabla 4.3: Aproximaciones para el método de Neville 4.1.4 Interpolación trigonométrica [0 2 ) Pasa el problema de reales a complejos. Se toman puntos equiespaciados en ; , conociendo valores de la función en esos puntos. Consiste entonces en expresar el polinomio de interpolación en función de senos y cosenos. Si hay un número N par de puntos (N = 2M ): (x) = a20 + y si es impar (N M X (ak cos(kx) + bk sen(kx)) (4.12) (ak cos(kx) + bk sen(kx)) + a2M cos(Mx) (4.13) k=1 = 2M + 1): (x) = a20 + M X1 k=1 Recordamos las fórmulas de Moivre: ix cos x = e +e 2 ix sen x = e 2ie ix ix e = cos x + i sen x y e Ya que ix ix = cos x i sen x. Usando esta fórmula de Moivre, el problema se queda como: CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN 64 M ikx X (x) = a20 + ak e +e 2 k=1 = 0 + M X ak k=1 eikx e ikx 2i k=1 M ak + ibk ikx ibk ikx X e + e 2 2 k=1 ikx + M X bk Expresión compleja del polinomio trigonométrico: ix t (x) = 0 + 1 e +2 2eix + : : : + 1 N (N 1)ix e (4.14) Con los j complejos, que se pueden calcular de la siguiente forma: j = Siendo t 1 NX1 yk ! j = 1 NX1 yk ijk N e k N N 2 k=0 (4.15) k=0 (xk ) = yk para k = 0 : N 1. Demostración: Notamos !k = eixk por comodidad, siendo x k = 2Nk . 1 B 1 B B 1 B 0 B . @ .. 1 1 1 ::: 11 N : : : !1 : : : !2N 1 !12 !22 !1 !2 .. . !N2 !N 1 !N2 1 : : : 10 CB CB CB CB CB A@ 1 0 1 2 .. . N 1 1 0 C C C C C A B B B B B @ = Que se denota: F [i ] = [yi ] i = 0 : N Moltiplicando por 1 (F )t (conjugada traspuesta): (F )t F [i ] = (F )t [yi ] i = 0 : N 1 Queda entonces: 0 N 0 B B B . @ .. 0 ::: N ::: 0 0 .. . 0 0 1 C C .. C . A [i] = (F )t [yi ] ::: N Por tanto, la solución al sistema para hayar los j es inmediata: 1 y0 y1 y2 .. . yN 1 C C C C C A CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN j = 1 NX1 yk ! 65 k N k=0 j j=0:N 1 (4.16) | Para los coeficientes ah y bh : 0 = a20 j = aj 2ibj N j = aj +2ibj j =1:M a0 = 20 aj = j + N j bj = i (j N j ) j = 1 : M (4.17) Para N impar y: 0 = a20 j = aj 2ibj N j = aj +2ibj j=1:M a0 = 20 aj = j + N j bj = i (j N j ) j = 1 : M Cuando los puntos xi no los tenemos para el intervalo 1 1 M = a2M aM = 2M (4.18) [0; 2): t ! x0 ; x0 + h; x0 + 2h; : : : ; x0 + (N 1) h Definimos una nueva variable: x! t x0 2 h N 4.2 Teoría de la aproximación en espacios vectoriales normados 4.2.1 Introducción Ahora tratamos de aproximar un elemento siendo esta la mejor aproximación posible. f de un conjunto E mediante elementos de un subconjunto V de E, Hay que elegir un criterio de aproximación. Una vez fijado el criterio que seguimos tenemos que preguntarnos: ¿Bajo qué condiciones existe alguna mejor aproximación? ¿Es esta única? ¿Cómo se caracterizan las mejores aproximaciones? ¿Cómo se calculan? Vamos a trabajar con espacios normados y subespacios de dimensión finita, y consideraremos aproximaciones mínimocuadráticas. 4.2.2 Teoremas y definiciones Teorema 4.1. Dado un subespacio V del espacio normado E , de dimensión finita, para cada f 2 E existe alguna mejor aproximación en V , y el conjunto de las mejores aproximaciones de f es un subconjunto convexo de V . Definición: Un subconjunto de un espacio V es convexo si cumple: f + (1 ) g 2 V 2 V; 0 1 Si f; g CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN 66 Teorema 4.2. Si E es un espacio estrictamente convexo, para cada subespacio V de dimensión finita. 2 E existe una y sólo una aproximación en un f Definición: Un espacio es estrictamente convexo si: 8f; g= kf k = 6=kggk = 1 ) f kf + (1 ) gk < 1 0<<1 Ejemplo: El conjunto R2 con la norma infinito no es estrictamente convexo, ya que hay segmentos que unen puntos de norma 1 que a su vez son también de norma 1, en cambio, con la norma 2 sí es estrictamente convexo. | Definición: Producto interior o escalar: 1. 2. 3. hf; gi 0 y hf; f i = 0 , f = 0 hf; gi = hg; f i hf + g; hi = hf; hi + hg; hi p E es normado con la norma kf k = hf; f i (un vector no tiene norma cero si no es el vector nulo). E es estrictamente convexo. Demostración: kf + (1 ) gk2 + (1 ) kf gk2 = 2 hf; f i + (1 )2 hg; gi + 2 (1 ) hf; gi + (1 ) hf; f i + (1 ) hg; gi 2 (1 ) hf; gi Como kf k = kgk = 1, esto queda: 2 + (1 )2 + 2 (1 ) = 2 + 1 + 2 2 + 2 22 = 1 Y por tanto: kf + (1 ) gk < 1 Si f 6= g y 0 < < 1, con lo cual es convexo. Teorema 4.3. (Para caracterizar la mejor aproximación): Un elemento v 2V (subespacio con producto escalar) es la mejor aproximación de f hf v; vi = 0 8v 2 V 2 E en V si y sólo si: CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN 67 4.2.3 Método de las ecuaciones normales ( ) =0: Dada una base de V (n+1 dimensional), fi x ; i ng, según la condición de ortogonalidad anterior, las coordenadas de la mejor aproximación v , ai en esa base son solución del siguiente sistema de ecuaciones normales: n X i=0 hi (x) ; j (x)i ai = hf; j (x)i j = 0 : n (4.19) Con una base ortogonal el sistema de ecuaciones es sencillo de resolver. Dada una base: 0 B @ h0; 0i : : : h0; ni .. . .. . hn; 0i : : : hn; ni 1 C A Que se conoce como Matriz de Gram, se dice que la base es ortogonal si cumple hi; k i = 0 = k. Entonces, para el sistema anterior se tiene: Para todo i 6 ak = hk ; f i hk ; k i 4.3 Aproximación por mínimos cuadrados polinomial y trigonométrica, discreta y continua 4.3.1 Aproximación polinomial por mínimos cuadrados polinomial discreta =1: Dados m valores reales yi , para i m, de una función f en los puntos xi , i polinomio Pn de forma que minimice: m X i=1 = 1 : m, el problema es determinar un wi (yi Pn (xi ))2 Siendo wi pesos positivos. La aplicación de esto es aproximar una información que se transmite y llega con ruido, dando mayor o menor peso según resulte la forma de onda esperada. Se puede utilizar la siguiente base: 0 (x) = 1; 1 (x) = 0; : : : ; n (x) = xn hk ; j i = xk ; xj = m X i=1 wi xki xji CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN hk ; f i = m X i=1 68 wi f (xi ) xki El sistema de ecuaciones normales queda: At W A a = At W y Siendo las columnas de A los vectores: v (k) = xk1 ; xk2 ; : : : ; xkm t k=0:n W es diagonal con los pesos wi y el vector y = (y1 ; y2 ; : : : ym )t Este sistema es mal condicionado, por lo que se soluciona el siguiente sistema (solución de mínimos cuadrados) por alguno de los métodos de Householder, Givens o Gram-Schmidt: M a=b M 0 B @ pw1 : : : .. . 0 0 .. . : : : pwn 10 1 CB . A @ .. 1 = x1 xm p p W a; b = W y 1 0 .. C B .. C . A@ . A xnm an =B @ x21 : : : xn1 x2m : : : 10 a0 f (x1 ) pw1 .. . f (xn ) pwn 1 C A (4.20) Usando una base de polinomios ortogonales en un conjunto de puntos xi , pk , se reduce el sistema de ecuaciones normales a diagonal. Estos polinomios se pueden obtener aplicando la siguiente relación de recurrencia: pj +1 (x) = j (x j ) pj (x) j pj 1 (x) ; p 1 (x) = 0; p0 (x) = A0 6= 0 donde los coeficientes son: j hpj ;pj i ji j = AAj+1 j = hhppjj;xp ;pj i j = j 1 hpj 1 ;pj 1 i j Siendo Aj el coeficiente principal de pj . 4.3.2 Aproximación polinomial por mínimos cuadrados continua Ahora consideramos tener información de la función en todos los puntos de un intervalo Si tenemos un espacio de funciones continuas en un intervalo hf; gi = Z b a [a; b]. [a; b] con el producto escalar: w (x) f (x) g (x) dx CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN con w exista 69 (x) 0 en [a; b], nula en un número finito de puntos, y de forma que para toda función continua en el intervalo Z b a w (x) f (x) dx tratamos de hallar el polinomio de grado a lo sumo n Pn que mejor aproxime a f . Esto implica minimizar Z b E= Siendo Pn Pn (x))2 dx (f (x) a n (x) = P ak xk : k=0 E= Z b a (f (x))2 dx 2 n X k=0 ak Z b a xk f (x) dx + Z b n X a k=0 ak xk !2 dx Por tanto, al minimizar para los aj : @E @aj = 2 Z b a xj f (x) dx + 2 n X k=0 ak Z b a xj +k dx = 0 Se obtiene el siguiente sistema de ecuaciones normales: n X k=0 ak Z b a xj +k dx = [ ] = Z b a xj f (x) dx; j = 0 : n (4.21) El sistema tiene solución única dados f 2 C a; b y a 6 b. La resolución del sistema es inmediata si se usan polinomios ortogonales sobre el intervalo con respecto a la función peso w x , generados con la recurrencia de la sección anterior. En cambio, la evaluación de las integrales Z b a () w (x) f (x) pj (x) dx normalmente requiere algún tipo de discretización si tema siguiente). f es muy complicada (integración numérica, que se verá en el A continuación veremos algunas sucesiones de polinomios ortogonales: Siendo P Nombre Intervalo Peso Legendre [ 1; 1] w (x) = 1 Chebyshev [ 1; 1] w (x) = p11 x2 Laguerre [0; 1] ! (x) = e x Hermite [ 1; 1] 2 w ( x) = e x Polinomio hPj ; Pj i = 2j2+1 (j + 1) Pj+1 (x) = (2j+ 1) xPj (x) jPj 1 (x) 0 hTj ; Tj i = =2 jj = >0 Tj +1 (x) = 2xTj (x) Tj 1 (x) hLj ; Lj i = (j !)2 Lj +1 (x) = (2j + 1 x) Lj (xp) j 2 Lj 1 (x) hHj ; Hj i = j !2j Hj +1 (x) = 2xHj (x) 2jHj 1 (x) 1 (x) = 0 y P0 (x) = 1, llevado a todos los polinomios, T; L y H . CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN 70 4.3.3 Aproximación trigonométrica por mínimos cuadrados discreta 2k equiespaciados, siendo k Se tienen los puntos xk N de la función f en esos puntos yk ; k N . = =0: = 0 : N 1; N = 2M + 1, en el intervalo [0; 2] y los valores 1 Queremos obtener la función trigonométrica: q a X (x) = 0 + (ak cos kx + bk sen kx) ; q M 2 k=1 (4.22) de forma que minimice NX1 k=0 (xk ))2 (yk Como en el caso de interpolación trigonométrica, el problema se transforma en uno complejo en el que se determina el polinomio tn (x) = 0 + 1 ixe +2 2eix + : : : + n nix e Siendo j 2 C ; j = 0 : n y n = 2q N 1. Minimizando NX1 k=0 ( yk En el espacio vectorial C N cuyo producto escalar es hx; y i tn (xk ))2 = xt v y siendo w(k) = 1; w1k ; w2k ; : : : ; wNk 1 t 2ik ixk N , los w(k) son ortogonales y de norma dos w(k) con k n y wk 2 aproximación tn x es única y sus coeficientes se obtienen de la siguiente forma: =0: () =e =e j = hy; w (j)i = 1 w(k) 2 2 = pN . En este caso, la mejor NX1 y w j; j = 0 : n N k=0 k k La ortogonalidad de los w(k) permite asegurar que incrementando n, la nueva mejor aproximación se obtiene añadiendo términos a la anterior. 4.4 La transformada discreta de Fourier y el algoritmo FFT La transformada discreta de Fourier de N valores yk ; k=0:N Yj = NX1 k=0 1 son los N números siguientes: yk wk j (4.23) CAPÍTULO 4. INTERPOLACIÓN Y APROXIMACIÓN Para j 71 = 0 : N 1. El algoritmo FFT o Transformada Rápida de Fourier permite evaluar los valores Yj con un coste de operaciones del orden O N log2 N . t: Algoritmo de la FFT para N ( )) ( = F F T (y; N ) N = 1, Y = y función si Y =2 en otro caso m = N=2 w = e 2Ni YT = F F T (y (1 : 2 : N ) ; m) YB = F F T (y (2 : 2 : N) ; m) d = 1; w; w2 ; : : : wm 1 t z = d: YB Y = YYT + zz T fin ] Capítulo 5 Derivación e integración numéricas En este tema vamos a tratar de obtener la derivada o la integral de una función, de forma numérica, bien porque la función sea muy compleja o porque tengamos una tabla de datos de esa función, con la que tengamos que trabajar para obtener su derivada o integral. 5.1 Métodos de derivación numérica 5.1.1 Introducción 1 Dados k y , vamos a tratar de aproximar o calcular fórmulas lineales del tipo: n X i=0 =0: f (k) (), de forma que tienda a un sólo número, a base de Ai f (xi ) = f (k) () Donde xi ; i n son los puntos donde se evalúa derivación numérica. f y Ai los coeficientes que nos encontraremos en la fórmula de Tenemos varias opciones a la hora de elegir un método de resolver el problema: 1. Usar una función que interpole o aproxime a una tabla de datos: Teniendo los valores xi ; f xi con i n, si usamos la fórmula de interpolación, obtenemos ( k ) Pn , siendo: () ( ( )) =0: f(k) () = n X f (k) () = Pn(k) () + Dk E (x)x= = Ai f (xi ) + E (k) () i=0 Con Ai = li(k) (), si usamos la interpolación de Lagrange. 2. Método de los coeficientes indeterminados: imponiendo que la fórmula sea exacta para xj con j grado más alto posible. De esta forma, se obtiene el siguiente sistema: Dk xj x= = n X i=0 72 Ai xji ; j = 0; 1; 2; : : : (5.1) = 0 : k, siendo k el CAPÍTULO 5. DERIVACIÓN E INTEGRACIÓN NUMÉRICAS n X i=0 Ai xji 8 > > > > > < => 73 0 j k 1 k! j =k (k+1)! j = k + 1 1! (k+2)! 2 2! j = k + 2 > > > > : .. (5.2) .. . . El sistema es lineal en los Ai si los xi están fijados, no lineal en otro caso. 3. Desarrollo de Taylor: f (k) () = n X i=0 Ai f (xi ) = = n X i=0 m X j =0 0 m X Ai @ f (j ) () (xi j =0 j ! n 1X A (x j ! i=0 i i f (j ) () 1 f (m+1) (c) m+1 A ) + (m + 1)! (xi + ) j ) j ! + f (m+1) (c) (xi )m+1 ( m + 1)! i=0 n X (5.3) (5.4) haciendo cero todos los coeficientes menos el de la derivada k-ésima: n 1X A (x j ! i=0 i i ) j = 0k! j = 0 : m; j 6= k j=k Con m hasta donde se pueda llegar, lo suficientemente grande. Definición: grado de exactitud de una fórmula de derivación: Una fórmula se dice de grado de exactitud q si q es el menor entero positivo para el que la fórmula es exacta para todo polinomio de grado no mayor que q y no exacta para algún polinomio de grado q . n P Ai f xi se dice que es Teorema 5.1. Si f es continuamente diferenciable hasta el orden necesario, una fórmula i=0 interpolatoria si y sólo si su grado de exactitud es mayor o igual que n. +1 Ejemplo: Deducir una fórmula que estime la derivada segunda de una función como A 0 f Usando la segunda opción, imponemos que sea exacta para 1; x; x 2 : ( f (x) = 1 ! 0 = A0 + A1 + A2 f (x) = x ! 0 = A0 ( h) + A1 + A2 ( + h) f (x) = x2 ! 2 = A0 ( h)2 + A1 2 + A2 ( + h)2 Montamos el sistema: ( ) h) + A1 f () + A2 f ( + h). CAPÍTULO 5. DERIVACIÓN E INTEGRACIÓN NUMÉRICAS 0 @ 1 1 h h)2 2 ( 74 1 01 +h 0 A ( + h)2 2 Reduciendo por Gauss, queda: 0 1 1 1 01 @ 0 h 2h 0 A 0 0 2h2 2 Las soluciones, por tanto son: A0 = h12 A1 = h2 A2 = h12 Y la fórmula queda: 00 f () = f ( h) 2f () + f ( + h) h2 | 5.1.2 Fórmulas de derivación numérica En la tabla (5.1) vemos algunas de las fórmulas de derivación numérica más usuales, para las derivadas de orden 1, 2 y 3. El punto c es interior al intervalo de evaluación de la función en cada una de las fórmulas (por ejemplo, ; h en la fórmula progresiva de 3 puntos). [ +2 ] Estas fórmulas de derivación son inestables, debido a los errores de discretizacion (Ed ) y al evaluar f f (xi ) = f^i + i ! n X i=0 (xi ) (i). Ai i = Er + = Siendo Er el error de redondeo. Para obtener un valor de h óptimo, hay que minimizar jEr j jEd j o jEr j jEdj. En general, lo segundo no da el mismo punto que lo primero, pero es más fácil de resolver, y la diferencia no es demasiado grande. Una problemática de la derivación numérica es que no existen fórmulas de derivación estables. 5.2 Métodos de integración numérica de Newton-Côtes y de Gauss 5.2.1 Introducción al método n Rb P Ahora tratamos de calcular o aproximar el valor de la integral a f x dx por Ai f xi . Con w x (igual i=0 a cero sólo en un número finito de puntos) una función peso, podemos calcular por la misma fórmula la integral Rb a w x f x dx. () ( ) () () Si la primitiva es difícil de determinar o de evaluar, podemos usar alguno de estos métodos. () 0 CAPÍTULO 5. DERIVACIÓN E INTEGRACIÓN NUMÉRICAS 0 f () = f (+hh) f () 75 h f (2) (c) 2 0 f () = 3f ()+4f (2+h h) f (+2h) + h3 f (3) (c) 0 f () = f ( 2h) 4f2(h h)+3f () + h3 f (3) (c) 0 f (+h) h f (3) (c) f () = f ( h2)+ h 6 0 )+8f (+h) f (+2h) + h f (5) (c) f () = f ( 2h) 8f ( h12 h 30 0 f () = 25f ()+48f (+h) 36f (12+2h h)+16f (+3h) 3f (+4h) + h5 f (5) (c) 00 f () = f ( h) 2fh()+f (+h) h12 f (4) (c) 00 f () = f () 2f (+hh)+f (+2h) hf (3) (c1 ) + h6 f (4) (c2 ) 00 f ()+16f (+h) f (+2h) + h f (6) (c) f () = f ( 2h)+16f ( h) 30 12h 90 000 f () = f ( 2h)+2f ( h2)h 2f (+h)+f (+2h) h4 f (5) (c) 2 3 3 puntos Formula progresiva puntos 2 Formula regresiva 2 4 4 Formula centrada 5 puntos 5 Formula centrada de Formula progresiva puntos 2 2 2 2 4 2 2 3 Tabla 5.1: Fórmulas de derivación numérica 1. Fórmulas interpolatorias: se usa el polinomio de interpolación para la función f con los puntos xi : Z b a Con s w (x) f (x) dx = Z b a w (x) s (x) dx (x) el polinomio interpolante o aproximatorio. Si f (x) = Pn (x) + E (x): Z b a w (x) f (x) dx = Z b a w (x) Pn (x) dx + Z b a w (x) E (x) dx Al usar la interpolaciń de Lagrange, tenemos que: 0 n Z b X i=0 con n+1 (x) = (x B @ 1 w (x) li (x) a | {z Ai } dxC Af (xi ) + w (x) f (n+1) (c) (n + 1)! n+1 (x) a Z b (5.5) x0 ) (x xn ). 2. Método de coeficientes indeterminados: de nuevo, se obtiene una fórmula exacta para un conjunto de funciones básicas (polinomios de bajo grado, por ejemplo f x xi ; i ; ; : : :, hasta el grado más alto posible. Queda el sistema: ( )= Z b a w (x) xi dx = n X k=0 =0 1 Ak xik ; i = 0; 1; 2; : : : (5.6) CAPÍTULO 5. DERIVACIÓN E INTEGRACIÓN NUMÉRICAS 76 3. Desarrollo de Taylor: Z n X f (j ) () X f (j ) () b w (x) (x )j dx Ai (xi )j = j ! j ! a i=0 j =0 j =0 X (5.7) Definicion: Se define el grado de exactitud de una fórmula de cuadratura de la misma forma que en el apartado anterior: Una fórmula de cuadratura se dice de grado de exactitud q si dicho q es el menor entero positivo para el que la fórmula es exacta para todo polinomio de grado no mayor que q y no exacta para algún polinomio de grado q . +1 Se puede ver también el mismo teorema que en el apartado de derivación numérica, sin ninguna variación. 5.2.2 Fórmulas de integración de Newton-Côtes En la tabla (5.2) se pueden ver las fórmulas simples de Newton-Côtes cerradas, que son las que se usan cuando los dos extremos del intervalo están contenidos en los puntos xi que se evalúan, y en la tabla (5.3) las fórmulas simples de Newton-Côtes abiertas, que se usan para intervalos en los que ninguno de los extremos está en el conjunto de los xi . Para aquellos intervalos en los que uno de los extremos está en el conjunto de puntos, la fórmula se llama semiabierta, pero no vamos a verlas. En ambas tablas, c es un punto interior al intervalo de integración. Para estas fórmulas de Newton-Côtes, no se distingue peso en el integrando, es decir: puntos xi equiespaciados. R x1 x0 R x2 x0 f (x) dx = h2 (f (x0 ) + f (x1 )) h3 f (2) 12 f (x) dx = h3 (f (x0 ) + 4f (x1 ) + f (x2 )) w (x) = 1, y se consideran los (c) h5 f (4) 90 Trapecios ( c) R x3 Simpson 5 f (x) dx = 38h (f (x0 ) + 3f (x1 ) + 3f (x2 ) + f (x3 )) 380h f (4) (c) R x4 2h 8h7 (6) x0 f (x) dx = 45 (7f (x0 ) + 32f (x1 ) + 12f (x2 ) + 32f (x3 ) + 7f (x4 )) 954 f (c) x0 Simpson 3=8 Boole Tabla 5.2: Fórmulas de Newton-Côtes cerradas simples R x1 x R x2 x R x3 x R x4 x 1 1 1 f (x) dx = 2hf (x0 ) + h3 f (2) (c) 3 1 Punto medio 3 f (x) dx = 32h (f (x0 ) + f (x1 )) + 3h4 f (2) (c) 5 f (x) dx = 43h (2f (x0 ) f (x1 ) + 2f (x2 )) + 1445h f (4) (c) h5 f (4) (c) f (x) dx = 524h (11f (x0 ) + f (x1 ) + f (x2 ) + 11f (x3 )) + 95144 Tabla 5.3: Fórmulas de Newton-Côtes abiertas simples 5.2.3 Fórmulas compuestas En este tipo de fórmulas lo único que se hace es romper el intervalo de integración en varios subintervalos, de forma que se aplican las fórmulas simples que se deseen a cada subintervalo. Esto nos sirve para reducir el valor de h sin tener que recurrir a usar más puntos, por contra, aumenta el cálculo a realizar. CAPÍTULO 5. DERIVACIÓN E INTEGRACIÓN NUMÉRICAS 77 Por ejemplo, para aplicar el método de Simpson dividiendo en m subintervalos: Z b a Siendo x0 f (x) dx = Z x2 x0 f (x) dx + Z x4 x2 f (x) dx + : : : + Z x2m x2m 2 f (x) dx = a, x2m = b y h = b2ma . Los errores de redondeo y discretización en la integración numérica van multiplicadas por h, con lo que tienden a cero cuando h tiende a cero. Por tanto, las fórmulas de integración numérica son estables. Ejemplo: Determinar los coeficientes de la siguiente fórmula integral: 1 Z 1 Siendo fijo e incluido en el intervalo ¿es posible una mejor elección de ? Usar la fórmula anterior para calcular Empezamos por determinar los A i : f (x) dx = A0 f ( 1) + A1 f () + A2f (1) [ 1; 1], de forma que la fórmula sea lo más exacta posible. Razonadamente, R1 2 0 p5x+4 dx acotando el error cometido, y usando la mejor elección. f (x) = 1 R1 f (x) = x R1 1 dx = A0 + A1 + A2 = 2 1 xdx = A0 + A1 + A2 = 0 R f (x) = x2 1 1 x2 dx = A0 + 2 A1 + A2 = 32 Montamos el sistema: 0 @ 1 1 1 2 1 1 1 0 A 1 2 1 2=3 Y resolviendo el sistema, obtenemos los coeficientes siguientes: 1+3 A1 = 4 2 A2 = 1 3 A0 = 3(1+ ) 3(1 ) 3(1 ) 2 El grado de exactitud de la fórmula es q , ya que es exacta para cualquier polinomio de grado menor o igual que 2 (como hemos exigido al crear el sistema de ecuaciones). Veamos si es exacta para x 3 : Z 1 1 x3 dx = 0 = A0 + 3 A1 + A2 1 + 3 + 43 + 1 3 3(1 + ) 3(1 )2 3(1 ) = 34 = = 0, el grado de exactitud es 2, y si es = 0, q 3. Por tanto, si 6 CAPÍTULO 5. DERIVACIÓN E INTEGRACIÓN NUMÉRICAS =0 Pero si , nos quedan como coeficientes A 0 es la de Simpson, cuyo grado de exactidud es 3. 78 = 1=3, A1 = 4=3 y A2 = 1=3, de forma que la fórmula que resulta A continuación, pasamos a resolver la integral propuesta: El intervalo de integracion es distinto al de la fórmula que tenemos que aplicar, con lo que necesitamos hacer un cambio de variable para que los intervalos coincidan: 0 x = 2x 1 ) x = 12 x0 + 1 Con el que la integral se transforma en: Z 1 1 q 1 dx0 2 5 (x0 + 1) + 4 2 2 Aplicando la fórmula, nos queda: Z p 0 11 4 1 2 1 1 5 4 1 1 q q + p + = + dx = 3 2 3 132 3 3 3 6 13 1 25 (x0 + 1) + 4 1 ! | 5.2.4 Fórmulas de Gauss o de cuadratura superexactas Se puede hacer una elección especial de los puntos xi y los coeficientes Ai de forma que el grado de exactitud de la n P Ak f xk sea mayor que n. fórmula k=0 n P Teorema 5.2. Para que una fórmula Ak f xk sea exacta para todo polinomio de grado a lo sumo n k con k k=0 (condición necesaria y suficiente), debe ser interpolatoria y además se cumple: ( ) + ( ) Z b a w (x) xj !n+1 (x) dx = 0; j = 0 : k Como tiene que ser exacta para xj !n+1 mente, n k . + n P i=0 Ai f (xi ) exacta para todos los polinomios de grado 2n + 2. Demostración: Supongamos que una fórmula es de grado de exactitud !n2 +1 es de grado 2n + 2. Z b Sin embargo, w puede ser nula. x0 ) (x xn ) (x), que es un polinomo de grado n + 1+ j , el grado de exactitud es, efectiva- Teorema 5.3. No existe ninguna fórmula del tipo a 1; !n+1 (x) = (x 1 w (x) ! 2 n+1 2n + 2: (x) dx = n X i=0 Ai !n2 +1 (xi ) = 0 (x) wn2 +1 (x) es un número positivo, sólo nulo en un número finito de puntos, por lo que la integral no Se parte de un supuesto incorrecto, por tanto, no existe ninguna fórmula de grado de exactitud 2n + 2. CAPÍTULO 5. DERIVACIÓN E INTEGRACIÓN NUMÉRICAS 5.3 Método de extrapolación de Richardson y métodos adaptativos 79 Capítulo 6 Métodos numéricos para ecuaciones diferenciales ordinarias 6.1 Problema de valor inicial 6.2 Métodos unipaso de Taylor y de Runge-Kutta 6.3 Métodos multipaso y predictores-correctores 6.4 Convergencia y estabilidad de los métodos 6.5 Problema de contorno 6.6 Métodos del disparo, de diferencias finitas y de elementos finitos 80 Capítulo 7 Resolución de ecuaciones no lineales 7.1 Métodos de iteración de punto fijo 7.2 Teoremas de convergencia 7.3 Métodos para ecuaciones algebraicas 7.4 Sistema de ecuaciones no lineales 7.5 Iteración de punto fijo, métodos de Newton y cuasi-Newton 81 Capítulo 8 Métodos numéricos de optimización 8.1 Optimización no restringida 8.2 Métodos iterativos de descenso, del gradiente, del gradiente cojungado, de Newton y cuasi-Newton 8.3 Problema de mínimos cuadrados no lineal: método de Levenberg-Marquardt 8.4 Programación no lineal 8.5 Métodos de penalización, de conjunto activo y de programación cuatrática secuencial 82 Bibliografía [1] Burden, R.L.; Faires, J.D. Análisis Numérico. Grupo Editorial Iberoamérica, 1985 83