Está en la página 1de 117

Introduccin al ANLISIS NUMRICO

JESS J. ORTEGA TRIGUERO

INTRODUCCIN AL ANLISIS NUMRICO


Jess J. Ortega Triguero Departamento de Matemticas E. S. Informtica Universidad de Castilla-La Mancha

2008 El autor
Todos los derechos reservados. Estas notas pueden ser copiadas y distribuidas en todo o en parte, siempre que se respete su integridad. Queda prohibida su venta.

Este texto es el resultado de unos apuntes elaborados por el autor para la asignatura de Anlisis Numrico, del primer curso de de la E.S. de Informtica de Ciudad Real, Universidad de Castilla-La Mancha.

NDICE
1. ARITMETICA PUNTO FLOTANTE Y ERRORES DE REDONDEO 1 Nmeros binarios ..................................................................................... 2 El estndar IEEE 754 ................................................................................ 3 Errores de redondeo .................................................................................. Ejercicios ...................................................................................................... 2. RESOLUCIN NUMRICA DE ECUACIONES 1 Mtodo de la biseccin ............................................................................ 2 Mtodo del punto fijo .............................................................................. 3 Mtodo de Newton-Rahpson ................................................................... 4 Races de Polinomios ............................................................................... Ejercicios ..................................................................................................... 3. INTERPOLACIN POLINOMIAL 1 Problema de interpolacin polinomial ..................................................... 2 Frmula de Lagrange ............................................................................... 3 Frmula de Newton o de diferencias divididas ............. ......................... 4 El error en la interpolacin polinomial ........................................ ........... Ejercicios ................................................... ........................... .................... 4. DIFERENCIACIN E INTEGRACIN NUMRICA 1 Una generalizacin del algoritmo de Horner .......................................... 2 El error E(x) ........................................................................................... 3 Frmulas de derivacin numrica ........................................................... 4 Frmulas de Newton-Cotes .................................................................... 5 Integracin compuesta ............................................................................ Ejercicios ....................................................................................................

1 6 9 11

13 18 23 31 39

41 43 45 50 52

56 59 62 65 69 73

5. RESOLUCIN NUMRICA DE SISTEMAS DE ECUACIONES LINEALES 1 Sistemas de ecuaciones y matrices ......................................................... 75 2 El mtodo de eliminacin de Gauss ........................................................ 78 3 Clculo de matrices inversas y determinantes ........................................ 88 4 Estrategias de pivoteo ............................................................................. 93 5 Algoritmo de factorizacin LU .............................................................. 96 6 Algoritmo de Choleski .......................................................................... 105 Ejercicios .................................................................................................. 109 BIBLIOGRAFA .............................................................................................. 111

1. Aritmtica punto flotante y errores de redondeo

1. Aritmtica punto flotante y errores de redondeo

Cuando se implementa un algoritmo de Clculo Numrico en el ordenador, es fundamental tener en cuenta la aritmtica que usa el entorno de programacin en el que vamos a escribir dicho algoritmo. Internamente, los ordenadores almacenan y operan nmeros representados en forma binaria y, como no puede ser de otra manera, empleando un nmero predeterminado de bits. En consecuencia, slo pueden acceder a un nmero finito de nmeros racionales, los llamados nmeros mquina o nmeros punto flotante. Ningn nmero racional cuyo denominador tenga un factor primo distinto de 2 es un 7 nmero mquina, y tampoco lo son los nmeros irracionales. As, las fracciones 1 10 ,o 3 los irracionales 2 , o e no son nmeros mquina y, por tanto, estn fuera del alcanze del ordenador. Cuando en el transcurso de un clculo surge uno de estos nmeros, o cuando lo introducimos como dato en el ordenador, ste emplea en su lugar el nmero mquina ms prximo. El error resultante de esta sustitucin es el llamado error de redondeo, que puede ser importante si el nmero de operaciones que se realiza es elevado. El estndar IEEE 754 es el que siguen la mayora de los fabricantes de ordenadores para almacenar y operar internamente con nmeros reales. Describir este estndar y mostrar cmo surgen los errores de redondeo es el objetivo de este primer tema. Antes, es conveniente repasar como se representan los nmeros en el sistema binario.

1 Nmeros binarios
Todos estamos familiarizados con el sistema decimal; esto es, con la representacin de los nmeros en base 10. En este sistema, escribimos 123 456 para abreviar el desarrollo de potencias: 110 2 + 210 1 + 310 0 + 410 1 + 510 2 + 610 3 , correspondiente a la fraccin 123456 ; , en forma irreducible, 15432 . 125 1000 Recprocamente, si el denominador de una fraccin irreducible slo contiene los factores primos 2 5, multiplicando numerador y denominador por cierta potencia de 2 5 puede conseguirse que el denominador resultante sea una potencia de 10 y entonces tenemos ya expresada la fraccin en forma decimal. Por ejemplo: 1

1. Aritmtica punto flotante y errores de redondeo

43 = 43 = 435 2 = 1075 = 1 075. 40 1000 2 3 5 3 2 3 5 Los nmeros racionales con factores primos distintos de 2 5 en el denominador de su forma irreducible no son expresables mediante nmeros con un nmero finito de decimales, pero s mediante nmeros con infinitos decimales que se repiten peridicamente. Por ejemplo: 4 = 1 333 = 1 3 3 311 = 3 4555 = 3 45 90 ( 4 = 1 + 310 n ) 3 n=1 ( 311 = 3 + 410 1 + 510 n ). 90 n=2

Tales desarrollos peridicos pueden obtenerse a partir del algoritmo de divisin, calculando progresivamente los decimales hasta observar el periodo. Los nmeros irracionales se corresponden con los desarrollos decimales infinitos no peridicos: 2 = 1 414213562 , = 3 141592654 El cmputo de los decimales requiere del Clculo Infinitesimal. En el sistema binario la representacin es anloga, pero empleando 2 como base de las potencias y los dgitos 0 y 1. Bueno... no es tan sencillo. En la muy rpida descripcin anterior del sistema decimal hemos obviado las cuestiones de Aritmtica sobre la que se fundamenta la representacin y manejo de nmeros en una base dada. El punto de partida es el siguiente Teorema de representacin: Fijado un entero b 2, todo entero m 1 se escribe m = a r b r + a r 1 b r 1 + + a 1 b + a 0 , siendo cada a i entero, con 0 a i < b y a r > 0. Adems, r y los a i son nicos.

La sucesin de enteros a i se denomina representacin de m en la base b. Si convenimos en ciertos signos para representar a cada uno de los enteros entre 0 y b 1; si, por ejemplo, a r se representa por el smbolo $, a r1 por %, ..., a 1 por & y a 0 por #, entonces m se escribe en base b as: ($ % & #) b . Como bien sabemos, b = 10 en el sistema decimal y utilizamos los dgitos del 0 al 9 para representar a los enteros menores que 10. Dado que el sistema decimal es el habitual, los parntesis y el subndice b = 10 se omiten (algo que tamben se hace cuando se utilizan otras bases si no hay lugar a confusin). En el sistema binario, b = 2 y slo se requieren dos signos, que suelen ser los dgitos 0 y 1, llamados ahora bits. Otro sistema muy utilizado es el hexadecimal, en el que b = 16 y los dgitos del 0 al 9 se amplian con las letras de la A a la F para representar a los nmeros del 10 al 15, respectivamente. Por ejemplo, he aqu las representaciones binaria y hexadecimal del entero m = 428 (escrito en base 10): m = (110101100) 2 = (1AC) 16 . (428 = 12 8 + 12 7 + 02 6 + 12 5 + 02 4 + 12 3 + 12 2 + 02 + 0 = 116 2 + 1016 + 12). Para expresar en forma binaria un nmero escrito en forma decimal, se divide sucesivamente dicho nmero entre 2 y se toma las sucesin de restos en orden inverso. Por ejemplo, estas son las divisiones correspondientes al anterior decimal 428: 2

1. Aritmtica punto flotante y errores de redondeo

428 0

2 214 2 0 107 2 1 53 1 2 26 0 2 13 1 2 6 0 2 3 1 2 1

En general, para obtener la representacin en base B de un entero m escrito en otra base b puede procederse de dos maneras. Una dividiendo sucesivamente m entre B usando aritmtica en base b. Es lo que hemos hecho antes: hemos dividido sucesivamente m = 428 entre B = 2 usando aritmtica en base b = 10, la misma que aprendemos en el colegio. La otra forma es multiplicar sucesivamente m por b empleando aritmtica en base B. Mstremos esta segunda forma obteniendo de nuevo la representacin binaria de 428. Es 428 = 410 2 + 210 + 8 = (410 + 2)10 + 8. Escribimos en binario los enteros decimales 2, 4, 8 y 10 que son los involucrados en la anterior descomposicin de 428: 2 = (10) 2 , 4 = (100) 2 , 8 = (1000) 2 y 10 = (1010) 2 . Y operamos usando aritmtica en base B = 2: 410 = (100) 2 (1010) 2 = (101000) 2 410 + 2 = (101000) 2 + (10) 2 = (101010) 2 (410 + 2)10 = (101010) 2 (1010) 2 = (110100100) 2 (410 + 2)10 + 8 = (110100100) 2 + (1000) 2 = (110101100) 2 As pues, 428 = (110101100) 2 . Notemos que en hemos necesitado sumar y mltiplicar en base 2. Ello se puede hacer de la misma manera que en la habitual base 10, ya que los algoritmos para estas operaciones son independientes de la base elegida. No entraremos en detalles. Visto como se representan los enteros en base 2, mostremos cmo se escriben las fracciones en este sistema. Como ya se habr observado, en el sistema binario las potencias positivas de 2 se escriben con un 1 seguido de 0: 2 = (10) 2 , 4 = (100) 2 , 8 = (1000) 2 y, en general, 2 r = (100. . . 0) 2 , un 1 seguido de r ceros. Se corresponden con las potencias positivas de 10 en el sistema decimal. Las potencias negativas de 2 se representan en binario del mismo modo que las potencias negativas de 10 en el sistema decimal: con una coma seguida de ceros y al final un 1.

1. Aritmtica punto flotante y errores de redondeo

2 1 = (0 1) 2 , 2 2 = (0 01) 2 , 2 3 = (0 001) 2 , . . . 2 r = (0 00 01) 2 . (Ntese que el exponente negativo indica el nmero de bits que se escriben a la derecha de la coma). Representando as las potencias negativas de 2, una expresin binaria como (11010 1011) 2 abrevia el siguiente desarrollo de potencias de 2: 12 4 + 12 3 + 02 2 + 12 1 + 02 0 + 12 1 + 02 2 + 12 3 + 12 4 , el cual corresponde a la fraccin escrita en decimal: 12 8 + 12 7 + 02 6 + 12 5 + 02 4 + 12 3 + 02 2 + 12 1 + 12 0 = 427 . 16 2 4 Recprocamente, si el denominador de una fraccin es una potencia de 2, podemos desarrollar primero el numerador como sumas de potencias 2 y a continuacin dividir por el denominador, resultando una suma de potencias positivas y negativas de 2 que podemos abreviar escribiendo nicamente los bits separados por la coma en el lugar que corresponde. Naturalmente, ello equivale a escribir primero en base 2 el nmerador y despus situar la coma contando hacia la izquierda tantos lugares como indica el exponente del denominador. He aqu unos ejemplos: 19 = (10011) 2 = (10 011) 2 8 23 155 = (10011011) 2 = (10 011011) 2 64 26 7 = (111) 2 = (0 00000111) 2 256 28 Los nmeros racionales cuyo denominador no es una potencia de 2 no son expresables mediante un nmero finito de bits (esto es, mediante una suma finita de potencias de 2). Estos nmeros necesitan infinitos bits tras la coma (es decir, una suma infinita de potencias de 2), que dan lugar a una sucesin peridica. Un modo de obtenerla es el mismo que se emplea en el sistema decimal, pero usando la aritmtica binaria en lugar de la decimal: Se divide primero el numerador entre el denominador, depus se aaden ceros al resto y se vuelve a dividir; y as sucesivamente, hasta encontrar el primer resto repetido. Tal repeticin nos proporciona el periodo. Ilustremos este mtodo calculando el desarrollo binario de la fraccin 51 : Es 14 51 = (110011) 2 , 14 = (1110) 2 y sta es la divisin binaria (en negrita van los bits que se aaden en cada paso):

1. Aritmtica punto flotante y errores de redondeo

110011 010111 010010 001000 10000 000100 100

1110 11 1010

El primer resto repetido es 100. Por tanto, los bits del cociente obtenidos entre las repeticiones constituyen el periodo: 010. As, 51 = (11 1 010 010 010 ) 2 = (11 1 010) 2 . 14 El mtodo anterior puede simplificarse evitando la aritmtica binaria. Usando aritmtica decimal, se divide primero el numerador entre el denominador. El cociente obtenido, escrito en binario, es la parte que va antes de la coma. Para obtener los infinitos bits que siguen a la coma, se multiplica el resto por 2 y se observa si el resultado es menor que el denominador. Si es menor, el primer bit despus de la coma es un 0; si es mayor o igual, dicho bit es un 1 y a dicho resultado se le resta el denominador. Se multiplica de nuevo por 2 y del mismo modo se obtiene el segundo bit tras la coma. El proceso se repite hasta obtener de nuevo el resto o un resultado repetido. Vemoslo con el ejemplo anterior. La divisin de 51 entre 14 da como cociente 3 y resto 9. En binario 3 = (11) 2 . Estos son los bits anteriores a la coma. Para encontrar los bits que siguen a la coma procedemos como se ha explicado: Comparacin 92 = 18 14 42 = 8 < 14 82 = 16 14 22 = 4 < 14 Bit 1 0 1 0 Resultado 18 14 = 4 8 16 14 = 2 4

El primer resultado repetido es 4. Luego los bits obtenidos entre ambos 4 forma el periodo: 010. Obtenemos como antes 51 = (11 1 010 ) 2 . 14 Y como en el sistema decimal, los nmeros irracionales se corresponden con los desarrollos binarios infinitos no peridicos. Su cmputo, recordemos, requiere del Clculo Infinitesimal.

1. Aritmtica punto flotante y errores de redondeo

2 El estndar IEEE 754


Como ya dijimos al comienzo del tema, el estndar IEEE 754 es el que se emplea en la mayora de los ordenadores para almacenar y operar internamente con nmeros reales. Este estndar utiliza el sistema binario, pero en notacin cientfica. Es muy comn en Fsica, Qumica o Ingeniera emplear la notacin cientfica para representar nmeros decimales muy grandes o muy pequeos. Por ejemplo: la masa de la Tierra es 5 974 10 24 kg, la carga del electrn es 1 6025 10 19 culombios. De hecho, estos nmeros decimales estn normalizados, ya que su primer dgito es no nulo y tras l viene la coma que precede a los decimales. Por otra parte, escibir un nmero decimal en notacin cientfica normalizada es sencillo: basta multiplicar por la potencia de 10 que sita la coma tras el primer dgito no nulo. He aqu unos nmeros decimales convertidos a esta notacin: 123 456 = 1 23456 10 2 , 0 005612 = 5 612 10 3 , 15725 831 = 1 5725 831 10 4 , 0 00000 831 = 8 31 831 10 6 .

En general, fijada una base b , b 2, todo nmero racional x 0 se escribe en notacin cientfica normalizada x = q b e , con q , 1 q < b, y e . La fraccin q y el entero e son nicos; y se llaman mantisa y exponente, respectivamente. As, el racional x 0 se escribe en binario y con notacin cientfica normalizada: x = (1 b 1 b 2 b t ) 2 2 e , con b i = 1 0 y e . Y como en los anteriores ejemplos de nmeros decimales, un nmero binario se normaliza desplazando la coma que separa la parte entera de la fraccionaria hasta situarla tras el primer 1 y aadiendo despues la correspondiente potencia de 2. Por ejemplo: (11010 1011) 2 = (1 10101011) 2 2 4 , (0 000001011) 2 = (1 011) 2 2 6 , (11 1 010 ) 2 = (1 11 010 ) 2 2 (0 00010 11 ) 2 = (1 0 11 ) 2 2 4 .

(Ntese que la parte entera de la mantisa de un nmero normalizado siempre es 1 en el sistema binario.) El estndar IEEE 754 especifica cuatro formatos para representar los nmeros, segn el nmero de bits que se utilizen: simple precisin, que emplea 32 bits; precisin simple extendida, con 43 bits o ms (no empleada normalmente); doble precisin, que usa 64 bits; y precisin doble extendida, con al menos 79 bits (generalmente, 80 bits). Existe tambin la cudruple precisin, de 128 bits, no contemplada en el IEEE 754, pero de hecho es un 6

1. Aritmtica punto flotante y errores de redondeo

estndar entre los fabricantes de ordenadores. Seguidamente, describimos la simple precisin. Los 32 bits empleados en simple precisin se numeran desde el 0 hasta el 31, siendo el bit 0 el situado a la derecha. Los 23 bits desde el 0 hasta el 22 contienen la parte fraccionaria de la mantisa. Los siguientes 8 bits desde el 23 al 30 almacenan el exponente. El ltimo bit, el 31, corresponde al signo. Si el bit del signo es 0, el nmero es positivo; si es 1, negativo. Si los 8 bits del exponente no son todos 0 ni todos 1, entonces determinan un entero binario entre 1 y 254. Restando 127 a dicho entero se obtiene el exponente e. De este modo, 126 e 127 y el nmero representado es entonces (1 b 22 b 21 b 0 ) 2 2 e . Cuando los 8 bits del exponente son nulos, el nmero no est normalizado. En este caso, e = 126 y la parte entera de la mantisa es 0; de manera que el nmero representado es (0 b 22 b 21 b 0 ) 2 2 126 . Ntese que estos nmeros no normalizados estn ms prximos a 0 que los anteriores normalizados. Precisamente, el 0 se obtiene cuando tambin son nulos los bits de la mantisa, independientemente del valor del bit del signo. (Luego, el 0 admite dos representaciones). Si todos los bits del exponente son 1 y todos los de la mantisa son 0, el nmero representado es , segn sea el signo. En otro caso, si algn bit de la mantisa es 1, tal configuracin no representa ningn nmero; es el resultado de alguna operacin invlida. He aqu un nmero representado en simple precisin: N bit: Nmero: 31 0 Signo 30 23 22 Mantisa 0

10001110 Exponente

01000100101101010011011

Como su bit 31 es 0, el nmero es positivo. Sus siguientes 8 bits determinan el entero (10001110) 2 = 142. Luego, el exponente e = 142 127 = 15. Por tanto, el nmero representado en este ejemplo es: (1 01000100101101010011011) 2 2 15 =
23 22 21 1 0 = 12 + 02 + 12 23+ + 12 + 12 2 15 = 10640027 2 28

La representacin de los nmeros en las otras precisiones es similar, pero destinando ms bits a la mantisa y al exponente. La siguiente tabla especifica el nmero de bits de la mantisa y el exponente en cada precisin. En ella denotamos: s al nmero de bits del exponente, t al de la mantisa, e es el mnimo valor del exponente e y e + el mayor:

1. Aritmtica punto flotante y errores de redondeo

Precision Simple Doble Doble extendida Cudruple

N bits 32 64 79 128

s 8 11 15

t 23 52 112

e 126 1022 16382

e+ 127 1023 16383

15 63 16382 16383

Los nmeros representables en los formatos del estndar IEEE se denominan nmeros mquina o nmeros punto flotante. Ya es claro que constituyen un subconjunto finito del conjunto de los nmeros racionales cuyo denominador es una potencia de 2. Su distribucin en la recta real no es uniforme. Como para cada valor del exponente e entre e y e + hay siempre 2 t nmeros mquina en el intervalo [2 e , 2 e+1 ), resulta que cerca del 0 hay una gran concentracin de ellos, pero conforme nos alejamos del 0 se van dispersando. La siguiente figura da una idea de esta distribucin:

Figura 1..1. Distribucin de los nmeros punto flotante.

Seguidamente mostramos algunos numros mquina significativos que dan una idea de los lmites de la aritmtica de punto flotante; concretando en precisiones simple y doble, las ms habituales: El mayor nmero mquina M. Tal M = (1. 11 1) 2 2 e + . Como (1. 11 1) 2 = 1 + 1 + 1 + + 1t = 2 4 2 1 1 2 t+ 1 = 2 1 , 2t 1 1 2

resulta que M = (2 1t ) 2 e + 2 e + +1 . En simple precisin, M 3 4028 10 38 ; en doble 2 precisin M 1 7976 10 308 . El menor nmero mquina positivo es 0 = (0. 00 1) 2 2 e = 2 t+e . En simple precisin, 0 1 4012 10 45 ; en doble precisin 0 4 9406 10 324 . El menor nmero mquina normalizado es 1 = (1. 00 0) 2 2 e = 2 e . En simple precisin, 1 1 1754 10 38 ; en doble 1 2 2250 10 308 . El nmero mquina que sigue a 1 es (1. 00 1) 2 = 1 + 2 t . La distancia entre este nmero y 1, = 2 t , se denomina unidad de redondeo. En simple precisin, 1 1921 10 7 ; en doble precisin, 2 2204 10 16 . El entero positivo N con la siguiente propiedad: cualquier otro entero positivo menor o igual que N es nmero mquina, pero N + 1 no lo es. Este entero N = 2 t+1 . En efecto: Todo entero positivo m < 2 t+1 se escribe con t + 1 bits todo lo ms: m = (1b 1 b 2 b r ) 2 , con r t. Normalizando:

1. Aritmtica punto flotante y errores de redondeo

m = (1 b 1 b 2 b r 0 0 ) 2 2 r y es, por tanto, un nmero mquina. Por otro lado, 2 t+1 = (1 000) 2 2 t+1 es tambin un nmero mquina. El siguiente es (1 001 ) 2 2 t+1 = (1 + 2 t ) 2 t+1 = 2 t+1 + 2. Luego 2 t+1 + 1 no es nmero mquina. En simple precisin, N = 2 24 = 16777216; mientras que en doble precisin N = 2 53 = 9007199254740992.

3 Errores de redondeo
Considrese el siguiente pseudocdigo, en el que las variables uno, dos, x e y son nmeros reales e i es entero: 1: uno = 1. 0, dos = 2. 0, x = 1. 0, y = 0. 0 2: i = 1 3: Mientras que i 1 : 3.1: x = x dos 3.2: y = uno + x 3.3: Si y = uno entonces: 3.3.1: SALIDA: i, FIN. en otro caso: 3.3.2: i = i + 1 Si se ejecuta este cdigo en un ordenador, la salida i = 24 en simple precisin; e i = 53 en doble precisin. Tal salida es el mnimo entero positivo i para el que 1 + 2 i = 1 en la aritmtica de la mquina; de modo que 1 + 2 24 = 1 en simple precisin y 1 + 2 53 = 1 en doble precisin. Sustituyamos las lneas 3.1 y 3.3 del cdigo anterior por estas otras: 3.1: x = x dos 3.3: Si y = x entonces: La salida i es la misma que antes. Esta salida es ahora el mnimo entero positivo i para el que 1 + 2 i = 2 i en la aritmtica de la mquina. As, 1 + 2 24 = 2 24 en simple precisin y 1 + 2 53 = 2 53 en doble precisin. Los ordenadores trabajan internamente con ms bits que los lmites impuestos por la simple y doble precisin. Por ejemplo, los registros de los procesadores Intel presentes en la mayora de los PCs almacenan los nmeros reales en precisin doble extendida de 80 bits. Cuando uno de los nmeros de un registro se copia en una variable declarada en simple o doble precisin, tal nmero se redondea a otro representable en los lmites de la variable.

1. Aritmtica punto flotante y errores de redondeo

Dicha aproximacin produce un error denominado error de redondeo. Por ejemplo, la ejecucin del cdigo anterior ha mostrado que en simple precisin el nmero 1 + 2 24 se redondea a 1 y que 1 + 2 24 se redondea a 2 24 . En el primer caso, el error de redondeo es 2 24 ; en el segundo es 1. Ntese que tanto 1 + 2 24 como 1 + 2 24 son representables con 80 bits, pero no con 32. Si x < y son dos nmeros mquina consecutivos en una precisin fijada, cualquier otro nmero z (x, y) se redondear a x o a y. El estndar IEEE determina cuatro tipos de redondeo para decidir uno u otro. El usado por defecto es el denominado redondeo al par ms cercano. En l, entre x o y se elige el ms prximo a z; y en caso de ser ambos equidistantes, aquel cuyo bit menos signicativo sea 0. En general, dado un nmero real x 0 y una aproximacin suya x , el error absoluto x . La siguiente en esta aproximacin es |x x |. El error relativo se define como x x tabla contiene unos ejemplos de estos errores al aproximar un nmero por otro en simple precisin, usando redondeo al par ms cercano. En ella puede observarse como aumenta el error absoluto conforme crece x; y tambin que el error relativo est siempre en torno a , la unidad de redondeo. x 2 150 1 + 2 24 3 + 2 23 1 + 2 24 2 32 + 256 x 0 1 3 2 24 2 32 |x x | 2 150 2 24 2 23 1 256 x x x 1 2 24
1 3

2 23

2 24 2 24

Un aspecto a tener en cuenta es el comportamiento de los errores de redondeo con las operaciones algebraicas bsicas. Dado que un anlisis de tal comportamiento est fuera del alcance de estas notas (puede consultarse en algunos textos avanzados), nos conformaremos con algunos ejemplos. Pongamos x = 1 + 2 24 e y = 3 + 2 23 . La siguiente tabla muestra los errores absoluto y relativo obtenidos al operar y con x. Llamamos z al resultado exacto y z al aproximado: Operacin y+x yx yx y x z 4 + 2 23 + 2 24 2 + 2 24 3 + 2 22 + 2 24 3 2 24 z 4 2 3 3 |z z | 2 23 + 2 24 2 24 2 24 z z z 2 25 2 25
1 3 1 3

2 22 + 2 24

2 22 2 24

Los resultados obtenidos son satisfactorios, el error se mantiene dentro de los lmites de la precisin simple. No obstante, cuando el nmero de operaciones es elevado, el error de redondeo en el resultado final puede ser importante. Por ejemplo, considrese el siguiente

10

1. Aritmtica punto flotante y errores de redondeo


10 8

pseudocdigo, en el que se computa la suma 1 n : n=1 1: uno = 1. 0, suma = 0. 0, n = 0. 0 2: i = 1 3: Mientras que i 10 8 : 3.1: n = n + uno 3.2: suma = suma + uno n 3.3: i = i + 1 4: SALIDA: suma, FIN. Usando simple precisin, la salida suma = 15 40368. Ahora bien, el Clculo establece N que 1 n ln N + , siendo = 0 5772156 la constante de Euler. Y que, adems, el n=1 error en esta aproximacin es menor o igual que 1 . El valor ln 10 8 + 18 9978964, que N difiere de la salida suma en ms de 3. El valor 18 9978964 se alcanza usando doble precisin.
2 Considrese ahora la suma 12 . Puede probarse que 12 1 con error N 6 n=1 n n=1 n 1 menor o igual que 2 . Por lo tanto, N 10 8 N

n=1

10 8

1 1 64493407684822644 n2

con error 10 16 . Si se cambia la lnea 3.2 del cdigo anterior por esta otra: 3.2: suma = suma + uno n2 la salida es suma = 1 644725 en simple precisin y 1 64493405783458 en doble precisin. Obsrvese el error de redondeo en cada caso.

Ejercicios
1. Representar en binario los siguientes nmeros decimales: b) 0 1 c) 21 25 d) 48 32 a) 40 9 2. Usando el estndar IEEE 754 y simple precisin, qu nmero decimal representa la siguiente secuencia de 32 bits: 1 01110001 11100011100011100011100 3. Supngase simple precisin y el estndar IEEE 754. Comprubese que el entero 67108848 es un nmero mquina y encuntrese su representacin en dicho estndar. Cul es el siguiente nmero mquina?

11

1. Aritmtica punto flotante y errores de redondeo

4. Sea ahora el entero 134217697. Verificar que no es un nmero mquina en simple precisin. qu nmero emplear el ordenador en su lugar? Cul es el error de redondeo cometido? 5. Por qu 0 1 no es un nmero mquina? En simple precisin, qu nmero emplear el ordenador en su lugar? Cul es el error de redondeo cometido? 6. Repetir el ejercicio anterior con 1 . 3 7. Sea la serie (1) n+1 1 n = log 2 0, 6931471805599453 a) Elaborar un programa en el ordenador para calcular la suma de los primeros 10 8 trminos de la serie usando simple precisin. b) Segn el criterio de Leibnitz, si (1) n+1 a n = l, el error cometido al sumar los N primeros
n=1 n=1

trminos
n=1

(1) n+1 a n l

a N+1 .

Se ha obtenido un error tan pequeo?


2 8. Repetir el ejercicio con la serie (1) n+1 12 = 0 82246703342411321823 usando doble 12 n n=1 precisin.

12

2. Resolucin numrica de ecuaciones

2. Resolucin numrica de ecuaciones

En este captulo tratamos el problema de resolver ecuaciones de la forma f (x) = 0, donde f es una funcin de una variable real, como por ejemplo x 5 4x 2 10 = 0 cos x x = 0.

Por lo general, no es posible obtener soluciones exactas de las ecuaciones planteadas (as sucede con las dos ecuaciones anteriores) y hemos de conformarnos con soluciones aproximadas. Todos los mtodos que proporcionan tales aproximaciones generan una sucesin recurrente de nmeros reales {s n } cuyo lmite es una solucin (exacta) s de la ecuacin. La aproximacin se obtiene al considerar el trmino n-simo de la sucesin {s n }. Se trata tambin de estimar el error cometido en dicha aproximacion: |s n s |. Comenzamos con el primer y ms elemental mtodo:

1 Mtodo de la biseccin
Est basado en el siguiente teorema de Bolzano para funciones continuas, estudiado en la asignatura de Clculo: Teorema de Bolzano: Sea f : [a, b] continua y tal que f (a)f (b) < 0. Entonces existe c (a, b) tal que f (c) = 0. La figura 2.1 ilustra la situacin del teorema de Bolzano. Ntese que el c de dicho teorema no tiene porque ser nico.

Figura 2.1. Teorema de Bolzano

13

2. Resolucin numrica de ecuaciones

Esencialmente, el mtodo de la biseccin consiste en partir en dos el intervalo [a, b] y, de los dos subintervalos resultantes, considerar aquel que f sigue manteniendo un cambio de signo en sus extremos. La figura 2.2 ilustra esta idea y los prrafos que siguen la desarrollan.

Figura 2.2. Mtodo de la biseccin

Antes, es conveniente introducir la siguiente funcin que nos proporciona el signo de un nmero real: para y denotamos 0 sg y = + si y = 0 si y > 0

si y < 0 Fijamos f : [a, b] continua y tal que f (a)f (b) < 0. Consideramos el punto medio del intervalo [a, b] : s 1 = a + b y evaluamos f (s 1 ). Si casualmente f (s 1 ) = 0, entonces s 1 2 es una solucin de la ecuacin f (x) = 0 y paramos el mtodo. En otro caso, consideramos el signo de f (s 1 ) y lo comparamos con el de f (a). Si sg f (s 1 ) = sg f (a), entonces nos quedamos con el subintervalo [a 1 , b 1 ] = [s 1 , b]; si sg f (s 1 ) sg f (a), ponemos [a 1 , b 1 ] = [a, s 1 ]. En ambos casos sg f (a 1 ) = sg f (a) y sg f (b 1 ) = sg f (b) y, por tanto, mantenemos el cambio de signo en el subintervalo [a 1 , b 1 ]. Y es b 1 a 1 = b a . 2 Repetimos el argumento con el intervalo [a 1 , b 1 ]. Consideramos su punto medio s 2 = a 1 + b 1 y evaluamos f (s 2 ). Si casualmente f (s 2 ) = 0, entonces s 2 es solucin de 2 f (x) = 0 y paramos el mtodo. En otro caso, si sg f (s 1 ) = sg f (a 1 ), sea [a 2 , b 2 ] = [s 2 , b 1 ]; si sg f (s 1 ) sg f (a), [a 2 , b 2 ] = [a 1 , s 2 ]. Al igual que antes, en ambos casos mantenemos los signos: sg f (a 2 ) = sg f (a 1 ) y sg f (b 2 ) = sg f (b 1 ). Y es b 2 a 2 = b 1 a 1 2 Razonamos ahora con [a 2 , b 2 ] y as sucesivamente. De este modo, o casualmente encontramos una solucin exacta de f (x) = 0 (algo muy poco probable) o construimos una sucesin de intervalos [a n , b n ] y sus puntos medios s n+1 = a n + b n verificando que 2 1. [a n+1 , b n+1 ] = [s n+1 , b n ] o [a n+1 , b n+1 ] = [a n , s n+1 ]. 2. n sg f (a n ) = sg f (a) y sg f (b n ) = sg f (b). 3. b n a n = b n1 a n1 2 Como a n+1 = a n o a n+1 = s n+1 , la sucesin {a n } es creciente. Del mismo modo, como b n+1 = b n o b n+1 = s n+1 , la sucesin {b n } es decreciente. Es n a a n b n b; luego ambas sucesiones estn incluidas en [a, b] y, por tanto, estn acotadas. Al ser montonas acotadas, tienen lmite. Adems, como 14

2. Resolucin numrica de ecuaciones

a1 = b a , b n a n = b n1 a n1 = b n2 2 a n1 = . . . = b 1 2 2n 2 2 n1 b a = 0. Luego las dos sucesiones {a n } y {b n } tienen el mismo b n a n = lim resulta lim n n 2n lmite. Sea s este lmite comn. Es f (s) = 0. En efecto, supongamos que, por ejemplo, f (a) > 0 y f (b) < 0. Entonces n f (a n ) > 0 y f (b n ) < 0, por 2. Como f es continua, al tomar a n ) = lim f (a n ) 0 y tambin f (s) = f (lim b n ) = lim f (b n ) 0. Luego lmites: f (s) = f (lim n n n n debe ser f (s) = 0. Al ser s n = a n1 + b n1 , tambin lim s n = s y, por tanto, las tres sucesiones {a n }, {b n } n 2 y {s n } convergen a la raz s. Estimemos ahora el error cometido al aproximar s por s n . Como {a n } es creciente y {b n } decreciente, ha de ser a n1 s b n1 . Luego ambos s, s n [a n1 , b n1 ]. Y como s n es el punto medio de este intervalo, entonces |s n s | b n1 a n1 . Por tanto, el error 2 |s n s | b n a . 2 Si de antemano deseamos que este error sea menor que cierto > 0, podemos calcular el entero n del modo siguiente: planteamos la desigualdad b n a < y despejamos n: 2 b a < 2 n > (b a) 1 n > log ((b a) 1 ). 2 2n As, si n es un entero mayor que este logaritmo, entonces |s n s | b n a < . Y 2 recordemos que un logaritmo en base 2 puede ser calculado como cociente de logaritmos neperianos: log 2 ((b a) 1 ) = Vemos un ejemplo: Ejemplo 2.1. Sea la ecuacin f (x) = x 3 + x 1 = 0. La funcin f es continua en todo y presenta un cambio de signo en [0, 1] : f(0) = 1 y f(1) = 1. Luego, por el teorema de Bolzano, f tiene una raz s en [0, 1]. Por otro lado, f (x) = 3x 2 + 1 1. En consecuencia, f es creciente y la raz s es la nica que tiene. Calculmosla con error < 10 3 . Como log 2 10 3 = 9. 96, bastar considerar n = 10 y obtener s 10 . Los clculos los recogemos en la siguiente tabla: ln((b a) 1 ) . ln 2

15

2. Resolucin numrica de ecuaciones

n
1 2 3 4 5 6 7 8 9 10

a n1
0 0. 5 0. 5 0. 625 0. 625 0. 65625 0. 671875 0. 6796875

b n1
1 1 0. 75 0. 75 0. 6875 0. 6875 0. 6875 0. 6875

sn
0. 5 0. 75 0. 625 0. 6875 0. 65625 0. 671875 0. 6796875 0. 6835938

f (s n )
0. 375 0. 171875 0. 130859 1. 2451 10 2 6. 1126 10 2 2. 4829 10 2 6. 3138 10 3 3. 0374 10 3 1. 6460 10 3 6. 9374 10 4

0. 6796875 0. 6835938 0. 6816406 0. 6816406 0. 6835938 0. 6826172

Luego s s 10 = 0. 6826172, con error < 10 3 .

A la hora de efectuar los clculos, siempre es preferible disponer de un programa en el ordenador para tal menester. El siguiente pseudocdigo puede servir de base a dicho programa.

ALGORITMO DE LA BISECCIN
Entradas: a, b, f, n (el nmero de iteraciones). Salida: s (el trmino n-simo de la sucesin {s n }. ) 1. i = 1. 2. Mientras que i n hacer: 2.1. s = a + b . 2 2.2. Si f(s) = 0, entonces SALIDA: "Solucin exacta: ", s. FIN. 2.3. Si sg f (a) = sg f (s), entonces a = s; en otro caso b = s. 2.4. i = i + 1. 3. SALIDA: "Solucin aproximada: ", s. FIN.

El mtodo de la biseccin presenta un inconveniente: si durante la ejecucin del mtodo el trmino s n est prximo a una raz, entonces el valor f (s n ) devuelto por la mquina estar cercano a 0; pero su signo puede ser errneo debido a los errores de la aritmtica de punto flotante. En tal caso, la salida producida por el mtodo no slo no estar tan prxima a la raz buscada como hayamos previsto de antemano; sino que, si tal circunstacia se da al principio del algoritmo, el error puede ser grande. Es lo que sucede en el siguiente Ejemplo 2.2. Consideremos el polinomio P(x) = 0. 128 + 1. 344x 6. 048x 2 + 15. 120x 3 22. 680x 4 + 20. 412x 5 10. 206x 6 + 2. 187x 7 .

16

2. Resolucin numrica de ecuaciones

Es P(0) = 0. 128 y P(1) = 0. 001. Luego P tiene una raz en [0, 1]. Puesto que log 2 10 5 = 16. 609, para calcularla con error < 10 5 necesitamos el trmino s 17 . Usando simple precisin se obtiene la siguiente tabla: n
1 2 3 4 5 ... 17

a n1
0 0. 5 0. 5 0. 625 0. 6875

b n1
1 1 0. 75 0. 75 0. 75

sn
0. 5 0. 75 0. 625 0. 6875 0. 71875

sg f (s n )
+

...

...

...

...

0. 73346 0. 733475 0. 733467

As: s s 17 = 0. 733467, con error < 10 5 . (3x 2) 7 Este es un ejemplo preparado. En realidad, P(x) = y la nica raz de P es 10 3 . Sucede que para la mquina el valor P(s 4 ) = 8. 24399 10 8 y tiene, entonces 2 = 0. 6 3 por tanto, signo negativo. Sin embargo, el valor exacto es P(s 4 ) = P(0. 6875) = P( 11 ) = 16 (3 11 2) 7 16 1 = > 0. 10 3 16 7 10 3

Luego la quinta y sucesivas filas de la tabla son incorrectas. Usando doble precisin en lugar de simple, el ordenador devuelve el valor s 17 = 0. 671898. Slo est un poco ms prximo a la solucin correcta. Conclumos esta seccin con una aplicacin del teorema del valor medio que proporciona una estimacin del error |s n s | vlida para cualquier mtodo. Es el siguiente teorema, el cual usaremos en las siguientes secciones: Teorema 2.1: Sea f continua en [a, b] y derivable en (a, b). Sea {s n } [a, b] una sucesin que converge a un punto s [a, b] que es raz de f. Si m > 0 tal que x (a, b) |f (x)| m, entonces |s n s | |f (s n )| m .

Demostracin: Si s n = s, la desigualdad es obvia. Si s n s, aplicando el teorema del valor medio: f (s n ) f (s) = f (c n )(s n s), siendo c n un punto entre s n y s. Como f (s) = 0 y |f (c n )| m: |s n s | = |f (s n )| |f (s )| mn . |f (c n )|

17

2. Resolucin numrica de ecuaciones

2 Mtodo del punto fijo


Escribiendo una ecuacin f (x) = 0 en la forma g(x) = x, puede ser posible encontrar una solucin mediante el algoritmo del punto fijo. Este mtodo no presenta los inconvenientes del algoritmo de la biseccin, manifestados en el ejemplo 2.2; y constituye la base terica del mtodo de Newton que estudiaremos en la tercera seccin. En primer lugar definimos el concepto de punto fijo de una funcin: Definicin: Un punto s del dominio de una funcin f se dice que es un punto fijo si f (s) = s. Ntese que si s es un punto fijo de f, entonces la recta y = x corta a la curva y = f (x) en el punto (s, f (s)). Vase la figura 2.3. El siguiente teorema permite averiguar si una funcin tiene un punto fijo en un intervalo: Teorema 2.2: Sea f : [a, b] continua tal que f (a) y f (b) [a, b]. Entonces f tiene un punto fijo en [a, b]. Si, adems, f es derivable en (a, b) y x (a, b) f (x) 1, entonces el punto fijo es nico. Demostracin: La siguiente figura 2.3 ilustra la situacin del teorema:

Figura 2.3. Teorema del punto fijo

Para probar que f tiene un punto fijo, consideremos g(x) = f (x) x, que tambin es continua en [a, b]. Es g(a) = f (a) a 0, ya que f (a) [a, b]. Por la misma razn, g(b) = f (b) b 0. Luego, por el teorema de Bolzano, c [a, b] tal que g(c) = 0. Esto es: f (c) = c. Veamos ahora que que si x (a, b) f (x) 1, entonces el punto fijo es nico. Supongamos que c 1 , c 2 [a, b] son dos puntos fijos distintos de f con, por ejemplo, c1 < c2. Por el teorema del valor medio, d (c 1 , c 2 ) tal que f (c 2 ) f (c 1 ) = f (d)(c 2 c 1 ). Como f (c 1 ) = c 1 y f (c 2 ) = c 2 , resulta que

18

2. Resolucin numrica de ecuaciones

c 2 c 1 = f (d)(c 2 c 1 ). Como c 2 c 1 > 0, entonces f (d) = 1, hiptesis. Por tanto, no pueden existir dos puntos fijos de f en [a, b].

contradiciendo la

Ejemplo 2.3. La funcin cos x es continua y derivable en todo . Es cos 0 = 1 y cos 1 = 0. 5403. Luego tiene un punto fijo en [0, 1]. Adems, como (cos x) = sen x 1 en [0, 1], tal punto fijo es nico en dicho intervalo. (De hecho, es el nico punto fijo de cos x; ya que la recta y = x est por encima de su grfica cuando x > 1 y por debajo de ella si x < 0. ) El mtodo para calcular puntos fijos es muy simple: consiste en generar la sucesin recurrente {s n }, s n = f (s n1 ), a partir de un valor inicial s 0 . Si esta sucesin converge a un punto s en el que f es continua, entonces f (s) = f (lim s n1 ) = lim f (s n1 ) = lim s n = s. n n n Esto es, s es un punto fijo para f. En el siguiente teorema se establecen condiciones que aseguran la convergencia de esta sucesin. Tambin se porporcionan dos estimaciones del error: Teorema 2.3: Sea f continua en [a, b] y derivable en (a, b). Supongamos que: 1. f [a, b] [a, b] 2. k < 1 tal que x (a, b) |f (x)| k. Entonces, f tiene un nico punto fijo s en [a, b]. Si s 0 es cualquier nmero de dicho intervalo, la sucesin recurrente {s n }, s n = f (s n1 ), est bien definida y converge a s. Adems, se tienen las siguientes cotas para el error: a) |s n s | k n (b a) b) |s n s | k |s n s n1 |. 1k Demostracin: El punto fijo s existe y es nico por el teorema anterior: Al ser f [a, b] [a, b], f (a) y f (b) [a, b]. Y como x (a, b) |f (x)| k < 1, es f (x) 1. Sea ahora s 0 [a, b]. La sucesin {s n } est bien definida si n s n [a, b]. Esto se sigue por induccin en n: si s n1 [a, b], tambin s n = f (s n1 ) [a, b], porque f [a, b] [a, b]. Mostremos que {s n } converge a s. Para ello emplearemos el siguiente hecho: si x, y [a, b]: |f (x) f (y)| k|x y |. En efecto: si x = y, la desigualdad es obvia. Si x y, aplicando el teorema del valor medio: |f (x) f (y)| = |f (z)(x y)|, siendo z un punto entre x e y. Como |f (z)| k, se obtiene (*). Usando la desigualdad (*) sucesivas veces: |s n s | = |f (s n1 ) f (s)| k|s n1 s | k 2 |s n2 s | . . . k n |s 0 s |. |s n s | lim |s n s | = 0 Tomando lmites: lim k n |s 0 s | = 0, ya que 0 k < 1. Luego lim n n n y, en consecuencia, lim s n = s. n (*)

19

2. Resolucin numrica de ecuaciones

De la desigualdad |s n s | k n |s 0 s | resulta tambin la cota a), ya que |s 0 s | b a por ser s 0 , s [a, b]. Para obtener la cota b) consideramos g(x) = x f (x). Es g(s) = 0, puesto que s es un punto fijo de f. La derivada g(x) = 1 f (x) 1 k, ya que |f (x)| k. Aplicando el teorema 2.1 a g con m = 1 k: |s n s | |s f (s n )| |g(s n )| |s s n+1 | = n = n . 1k 1k 1k

Por otra parte, utilizando de nuevo (*): |s n s n+1 | = |f (s n1 ) f (s n )| k|s n1 s n |. Y combinando las dos desigualdades se obtiene ya la cota b): |s n s | |s n s n+1 | k |s n s n1 |. 1k 1k

Ejemplo 2.4. Apliquemos este teorema para calcular el nico punto fijo s que cos x tiene en [0, 1]. Primero comprobamos las hiptesis 1 y 2: Como cos x es continua y decreciente en [0, 1], la imagen cos([0, 1]) = [cos 1, cos 0] = [0. 5403, 1] [0, 1]. Por otro lado, al ser sen x creciente en [0, 1 ]: x (0, 1) |(cos x) | = sen x sen 1 = 0. 84147. Luego, tomando k = sen 1 conseguimos la hiptesis 2. Aplicando entonces el teorema, si s 0 es cualquier punto de [0, 1], la sucesin {s n }, s n = cos s n1 , tiene por lmite s. Comenzando con s 0 = 0. 5 se obtiene esta tabla: n
0 1 2 3 4 5

sn
0. 5 0. 8775825 0. 6390124 0. 8026851 0. 6947780 0. 7681958 ...

n
10

sn
0. 7350063090 ...

20

0. 7390067798 ...

38 39 40

0. 7390850693 0. 7390851762 0. 7390851527

As, s s 40 = 0. 7390851527. Segn la desigualdad b) del teorema, el error cometido en esta aproximacin |s 40 s | sen 1 |s s 39 | 1. 247 10 7 . 1 sen 1 40

En este ejemplo, partiendo de un valor inicial s 0 hemos generado los 40 primeros trminos de la sucesin y, usando la cota b) del teorema, hemos estimado el error al aproximar por el ltimo trmino calculado. Si de antemano se desea un error menor que cierto > 0 dado, puede calcularse el entero n que asegura tal error a partir de la cota a) del teorema: planteamos la desigualdad k n (b a) < y despejamos n:

20

2. Resolucin numrica de ecuaciones

k n (b a) < k n < (b a) 1 (k 1 ) n > (b a) 1 ln((b a) 1 ) n > log k 1 ((b a) 1 ) = . ln k 1 As, si n es un entero mayor que este cociente de logaritmos neperianos, entonces |s n s | k n (b a) < . Ntese que cunto ms cerca est k de 1, ms pequeo es el logaritmo ln k 1 y, por tanto, ms grande es el entero n necesario para conseguir la aproximacin deseada. A esta misma conclusin se llega haciendo uso de la acotacin b) del teorema. El siguiente pseudocdigo implementa el algoritmo del punto fijo. En l simplemente se calcula el trmino s n para un entero n que es un dato de entrada. Por supuesto, puede completarse con un cdigo que, introduciendo tambin como datos la cota k del teorema y > 0, el algoritmo proporcione un trmino s n que asegure un error menor que dicho . Dejamos esto como ejercicio.

ALGORITMO DEL PUNTO FIJO


Entradas: f, s 0 , n (el nmero de iteraciones). Salida: s (el trmino n-simo de la sucesin {s n }). 1. s = s 0 2. Desde i = 1 hasta n hacer: 2.1. s = f (s) 3. SALIDA: "Solucin aproximada: ", s. FIN.

En la prctica, hallar un intervalo [a, b] que cumpla las hiptesis 1 y 2 del teorema puede no ser sencillo. Incluso puede ocurrir que f tenga un punto fijo s y no haya ningn intervalo [a, b] que contenga a s y cumpla dichas hiptesis. No obstante, si f es continua y |f (s)| < 1, tal intervalo [a, b] existe. En efecto, gracias a la continuidad de f es posible encontrar k < 1 y > 0 tal que x [s , s + ] |f (x)| k. Luego tomando a = s y b = s + tenemos ya la hiptesis 2 del teorema en [a, b]. Y tambin la primera: dado x [s , s + ], usando la desigualdad (*) de la demostracin del teorema |f (x) s | = |f (x) f (s)| k|x s | < |x s | , lo que implica que tambin f (x) [s , s + ] y, en consecuencia, f [a, b] [a, b]. Resumimos este hecho en la siguiente Observacin: Si la derivada f es continua en un punto fijo s de f y |f (s)| < 1, entonces > 0 tal que el intervalo [s , s + ] verifica las hiptesis 1 y 2 del teorema 2.3. Ejemplo 2.5. Apliquemos la idea contenida en la argumentacin anterior para calcular el nico punto fijo de f : (0, ) , f (x) = 52 + 2, con error menor que 10 5 . En primer x lugar, notemos que tal punto fijo existe: Como f es continua, considerando el intervalo [2, 4], f (2) = 3. 25 y f (4) = 2. 31; luego ambos valores pertenecen a dicho intervalo. As, , por el teorema 2.2, f tiene un punto fijo en [2, 4]. Adems, como f (x) = 10 x3

21

2. Resolucin numrica de ecuaciones

x > 0 f (x) 1 y, en consecuencia, el punto fijo es nico; de nuevo por el mismo teorema. No obstante, no sirve el intervalo [2, 4] para calcular el punto fijo aplicando el teorema 2.3, ya que no se cumple la segunda hiptesis. Es necesario reducirlo. Si x > 0, |f (x)| < 1 10 < 1 x 3 > 10 x > x3
3

10 = 2. 154434.

Luego, para conseguir la segunda hiptesis del teorema 2.3, el intervalo considerado debe estar a la derecha de 3 10 . Por otra parte, al ser f negativa en (0, ), f es decreciente. Por tanto, si [a, b] (0, ), f [a, b] = [f (b), f (a)]. Teniendo esto en cuenta, podemos encontrar un intervalo [a, b] que cumpla las hiptesis del teorema 2.3 evaluando f en puntos a la derecha de 3 10 . He aqu dichas evaluaciones: x f (x )

2. 2 3. 03 2. 3 2. 94 2. 4 2. 86 2. 5 2. 8 2. 6 2. 74 2. 7 2. 68 2. 8 2. 64
Figura 2.4: f (x) = 5 +2 x2

A la vista de los datos obtenidos, consideramos el intervalo [2. 5, 2. 8]. Segn lo observado antes, f [2. 5, 2. 8] = [2. 64, 2. 8] [2. 5, 2. 8], cumplindose la hiptesis 1 del teorema 2.3. Si x [2. 5, 2. 8]: |f (x)| = 10 103 = 0. 64. x3 2. 5 En consecuencia, tomando k = 0. 64 se obtiene tambin la hiptesis 2 del teorema 2.3. Por tanto, comenzando con cualquier punto s 0 de [2. 5, 2. 8], la sucesin {s n }, s n = f (s n1 ) converge al punto fijo s. Segn vimos anteriormente, un entero n tal que |s n s | < = 10 5 es n> ln((2. 8 2. 5)10 5 ) ln((b a) 1 ) = = 23. 09. ln k 1 ln(0. 64 1 )

Para s 0 = 2. 5, se obtiene s 24 = 2. 690647.

22

2. Resolucin numrica de ecuaciones

3 Mtodo de Newton-Raphson
Es quizs el mtodo ms usado. Seguramente, porque con pocas iteraciones se consigue una gran precisin. Para introducirlo, consideremos una funcin f (x) derivable en un intervalo abierto I y tal que f (s) = 0 para cierto s I. La figura 2.5 explica grficamente el mtodo de Newton. Sea s 0 I. Como f es derivable, podemos considerar la tangente a la curva y = f (x) en el punto (s 0 , f (s 0 )). Su ecuacin: y = f (s 0 )(x s 0 ) + f (s 0 ).

Figura 2.5: Mtodo de Newton

Dado que la tangente es una aproximacin a la curva y = f (x), una aproximacin a una solucin de f (x) = 0 es el punto de corte de la tangente con el eje OX. Si f (s 0 ) 0, podemos calcular este punto de corte: 0 = f (s 0 )(x s 0 ) + f (s 0 ) x = s 0 f (s 0 ) . f (s 0 )

Supongamos que este punto x I y llammosle s 1 . Podemos repetir lo anterior con s 1 en lugar de s 0 : la tangente es ahora y = f (s 1 )(x s 1 ) + f (s 1 ) y, si f (s 1 ) 0, el punto de f (s 1 ) corte de esta tangente con el eje OX es s 2 = s 1 . Y de este modo, si n es f (s 1 ) s n I y f (s n ) 0, tenemos definida la sucesin recurrente {s n }, donde s n+1 = s n f (s n ) . f (s n )

La llamaremos sucesin de Newton-Raphson para f y el valor inicial s 0 . La aproximacin a la raz s mediante los trminos de esta sucesin es el mtodo de Newton-Raphson.

23

2. Resolucin numrica de ecuaciones

Antes que nada, notemos que la sucesin de Newton-Raphson es precisamente la sucesin del mtodo del punto fijo para la funcin g(x) = x y que como g(s) = s, s es un punto fijo de g. Ello sugiere la idea de aplicar el mtodo del punto fijo a g para obtener la convergencia del mtodo de Newton a la raz s. Es justamente lo que hacemos en el siguiente teorema. En l usamos la expresin f C 2 (I) para indicar que f es de clase 2 en I; esto es, que existe la derivada segunda en I y es continua. Teorema 2.4: Sea I un intervalo abierto, f C 2 (I) y s I tal que f (s) = 0 pero f (s) 0. Entonces > 0 tal que s 0 [s , s + ] la sucesin de Newton est bien definida (esto es: n s n I y f (s n ) 0) y converge a s. Demostracin: Probemos la existencia de un > 0 tal que la funcin g anterior verifica las hiptesis del teorema 2.3 en el intervalo [s , s + ]. Como f (s) 0 y f es continua en el intervalo abierto I, existe > 0 tal que [s , s + ] I y x [s , s + ] f (x) 0. Luego la funcin g es de clase 1 en este intervalo [s , s + ]. Su derivada g(x) = 1 f (x) 2 f (x)f (x) f (x)f (x) = . 2 f (x ) f (x ) 2 f (x ) , f (x )

Como f (s) = 0, tambin g(s) = 0. Por la observacin que precede al ejemplo 2.5, existe > 0 ( < ) tal que g verifica las hiptesis 1 y 2 del teorema 2.3 en [s , s + ]. Aplicando este teorema, g tiene un nico punto fijo en [s , s + ]; el cual es s, naturalmente. Y si s 0 es cualquier punto de este intervalo, entonces la sucesin {s n }, s n = g(s n1 ) est bien definida y converge a s. Ahora bien, dicha sucesin es la de Newton-Raphson. Este teorema asegura la convergencia del mtodo de Newton siempre que la derivada de la funcin no se anule en la raz y el punto inicial s 0 est "suficientemente" cerca de dicha raz. Si el valor inicial s 0 se aleja de la raz, la sucesin de Newton puede seguir convergiendo a la raz; pero tambin puede dejar de hacerlo. Los siguientes ejemplos muestran este hecho y dejan entrever tambin otras propiedades de la sucesin de Newton que analizaremos ms adelante. Ejemplo 2.6. La ecuacin cos x x = 0 tiene una nica solucin s 0. 7390851 que hemos calculado aplicando el mtodo del punto fijo a cos x. Veamos que obtenemos mediante el mtodo de Newton. He aqu los primeros trminos de la sucesin {s n } para diferentes valores iniciales s 0 :

24

2. Resolucin numrica de ecuaciones

n
0 1 2 3 4 5

sn
0. 7

sn
2

sn
3. 25

0. 73943649784 0. 7345361688 1. 509034 0. 73908516046 0. 7390897242 0. 7390851332 0. 7390851332 0. 7390851332 0. 7390851332 0. 7390851332 0. 7390851332 822. 306 2022. 22 911. 954 3207. 4

Para los valores iniciales 0.7 y 2 la sucesin de Newton converge a la solucin s. El valor inicial 3.25 est ya demasiado lejos de ella y la sucesin de Newton parece diverger. Ejemplo 2.7. La grfica de la funcin f (x) = ln x + 2 x muestra que tiene dos races; una en el intervalo (0, 1), otra en (3, 4):

Figura 2.6: f (x) = ln x + 2 x

La siguiente tabla contiene la sucesin de Newton para algunos valores iniciales s 0 : n


0 1 2 3 4 5

sn
0. 5 0. 30685 ERROR

sn
0. 25 0. 128764 0. 1551514 0. 1585497 0. 1585943 0. 1585943

sn
1 ERROR

sn
4 3. 18172581 3. 14628484 3. 14619322 3. 14619322 3. 14619322

Para el valor inicial s 0 = 0. 5 se obtiene s 1 = 0. 30685 que no est en el dominio de f; para s 0 = 1 se anula la derivada. En estos dos casos no est definida la sucesin de Newton. En los otros converge a una de las dos races de f (x). Ejemplo 2.8. Usando la regla de Ruffini pueden calcularse las tres races de la

25

2. Resolucin numrica de ecuaciones

ecuacin x 3 + 3x 2 2x 4 = 0: 1, 1 5 y 1 + 5 . Resulta curioso observar que para s 0 = 2 la sucesin de Newton oscila indefinidamente entre los valores 0 y 2: {2, 0, 2, 0, 2, 0. . . }. Tal y como muestran los ejemplos, la sucesin de Newton no tiene porque converger. No obstante, cuando lo hace, su lmite es una raz. El siguiente teorema muestra esta propiedad: Teorema 2.5: Sea f C 1 (I), siendo I un intervalo. Sea s 0 I tal que la sucesin de Newton est bien definida ( n s n I y f (s n ) 0) y converge a un punto s I. Entonces f (s) = 0. Demostracin: Despejando f (s n ) en la igualdad s n+1 = s n f (s n ) = f (s n )(s n s n+1 ). Puesto que lim s n = s y ambas f y f son continuas, lim f (s n ) = f (s) y lim f (s n ) = f (s). n n n Tomando lmites en la igualdad anterior: f (s) = f (s)(s s) = 0. Fijmonos de nuevo en la figura 2.5. En ella puede observarse que eligiendo un valor inicial s 0 a la derecha de la raz s, no necesariamente cercano a ella, la sucesin de Newton que se obtiene es decreciente y converge a s. Las condiciones para que se produzca este hecho se recogen en el siguiente teorema 2.6. En su demostracin hacemos uso del teorema Taylor, el cual se estudia en la asignatura de Clculo. Lo recordamos rpidamente: Teorema de Taylor: Sean I un intervalo, f : I derivable r + 1 veces en I y x 0 , x I. Entonces existe un punto d entre x 0 y x tal que f (x) = f (x 0 ) + f (x 0 )(x x 0 ) + f (x 0 )(x x 0 ) 2 f r) (x 0 )(x x 0 ) r f r+1) (d)(x x 0 ) r+1 + + + . 2 r! (r + 1)! f (s n ) : f (s n )

Teorema 2.6: Sea f C 2 ([a, b]) verificando: 1. f(a)f(b) 0. 2. x [a, b] f (x) 0. 3. x [a, b] f (x) 0 x [a, b] f (x) 0. Entonces, f tiene una nica raz s en [a, b]. Si s 0 [a, b] verifica que sg f (s 0 ) = sg f (s 0 ), entonces la sucesin de Newton es montona y converge a s. Demostracin: Que f tiene una nica raz en [a, b] es consecuencia de los teoremas de Bolzano y de Rolle, en base a las hiptesis 1 y 2. En funcin de los signos de f y f se distinguen cuatro casos, obviamente. Anlizamos slo el caso que x [a, b] f (x) > 0 y x [a, b] f (x) 0, en el que f es creciente y convexa (como en la figura 2.5). Los otros tres casos son anlogos. Como f es creciente en [a, b] y f (s) = 0, entonces x [a, s) f (x) < 0 y x (s, b] f (x) > 0. Si s 0 [a, b] es tal que sg f (s 0 ) = sg f (s 0 ), entonces s 0 [s, b] ya que x [a, b] f (x) 0. Probamos por induccin en n que n s n [s, b]: Sea n 0 y supongamos que s n [s, b], mostremos que tambin s n+1 [s, b]. Si

26

2. Resolucin numrica de ecuaciones

s n [s, b], es f (s n ) 0. Como f (s n ) > 0, s n+1 = s n Para probar que s n+1

f (s n ) s n b. Luego s n+1 b. f (s n ) s aplicamos el teorema de Taylor poniendo r = 1, x 0 = s n y x = s: f (d n )(s s n ) 2 2

0 = f (s) = f (s n ) + f (s n )(s s n ) + con d n [s, s n ]. Dividiendo por f (s n ): 0 =

f (d n )(s s n ) 2 f (d n )(s s n ) 2 f (s n ) + (s s n ) + 0 = s n+1 + s + 2f (s n ) 2f (s n ) f (s n ) f (d n )(s s n ) 2 . s n+1 s = 2f (s n )

Y se sigue que s n+1 s 0 porque f (d n ) 0 y f (s n ) > 0. Por tanto, s n+1 s. Ya hemos visto que s n+1 s n , luego la sucesin {s n } es montona. Si n s n [s, b], entonces est acotada. Al ser montona y acotada, es convergente. Por el teorema previo, su lmite es una raz de f. Deber ser s, ya que es la nica raz de f en [s, b]. Podemos observar como se cumple este teorema en el ejemplo 2.7, con la funcin f (x) = ln x + 2 x y el intervalo [3, 4]. Como puede verse en la figura 2.6, f (3) > 0, f (4) < 0 y x [3, 4] f (x) y f (x) son negativos. De acuerdo con la conclusin del teorema 2.6, al iniciar el mtodo de Newton con el valor s 0 = 4, la sucesin que se obtiene es decreciente y converge a la nica raz de f en [3, 4]. Seguidamente analizamos el error que se comete en el mtodo de Newton. Como dijimos al principio de la seccin y como puede comprobarse en los ejemplos previos, la sucesin de Newton, cuando converge, lo hace muy rpido. En los siguientes prrafos vemos porque. Supongamos las hiptesis del teorema previo. En su demostracin hemos obtenido esta igualdad: s n+1 s = Tomando valores absolutos: |s n+1 s | = f (d n ) |s n s | 2 . 2f (s n ) f (d n )(s s n ) 2 . 2f (s n )

Dado que x [a, b] f (x) 0, la continuidad de f y f nos trae la existencia de cierta f (x) cota C > 0 tal que x, y [a, b] C. De este modo: 2f (y) |s n+1 s | C|s n s | 2 . Esto significa que, si C no es demasiado grande, al pasar de la iteracin n-sima a la siguiente, el nuevo error es aproximadamente el cuadrado del error anterior. O, dicho en trminos de decimales, si en el paso n-simo hemos conseguido los primeros r decimales de la raz s, en el siguiente paso obtendremos el doble de decimales. Puede observarse este hecho en los ejemplos anteriores. La propiedad anterior se se expresa diciendo que la sucesin del mtodo de Newton

27

2. Resolucin numrica de ecuaciones

tiene orden de convergencia cuadrtica. Con precisin: Definicin: Sea {s n } una sucesin con lmite s, siendo n s n s. Se dice que {s n } tiene orden de convergencia + si lim n |s n+1 s | = 0. |s n s |

Cuando = 1, la convergencia se dice lineal; si = 2, cuadrtica, etctera. El siguiente teorema muestra que, en general, la convergencia del mtodo de Newton es cuadrtica: Teorema 2.7: Sean I un intervalo, f C 2 (I) y s 0 I tal que la sucesin de Newton est bien definida y converge a s I. Si ambos f (s), f (s) 0, entonces la convergencia es cuadrtica. Demostracin: En realidad, para conseguir la igualdad |s n+1 s | = f (d n ) |s n s | 2 . 2f (s n )

no necesitamos las hiptesis del teorema 2.6; sino simplemente aplicar el teorema de Taylor, como hizimos en la demostracin. Dividiendo esa igualdad por |s n s | 2 , tomando lmites y usando la continuidad de f y f : lim n |s n+1 s | f (d n ) = lim 2 n 2f (s n ) |s n s | = f (s) 2f (s) 0.

Luego, la convergencia es cuadrtica. y Observacin: Si en el teorema anterior fuese f C p (I) p1) p) f (s) = f (s) =. . . = f (s) = 0 pero f (s) 0, entonces la convergencia sera de orden p. Este hecho puede probarse del mismo modo, mediante el teorema de Taylor; pero con r = p 1. La igualdad que obtiene ahora es: s n+1 s = f p) (d n )(s s n ) p . p!f (s n )

El siguiente teorema establece una cota para el error |s n s |. Teorema 2.8: Sean I un intervalo, f C 2 (I) y s 0 I tal que la sucesin de Newton {s n } I y converge a s I. Si m > 0 tal que x I |f (x)| m y M 0 tal que x I |f (x)| M, entonces |s n+1 s | M (s n+1 s n ) 2 . 2m Demostracin: Aplicando el teorema de Taylor con r = 1, x 0 = s n y x = s n+1 : f (s n+1 ) = f (s n ) + f (s n )(s n+1 s n ) + con d n entre s n y s n+1 . Puesto que s n+1 = s n Luego 28 f (d n )(s n+1 s n ) 2 , 2

f (s n ) , resulta f (s n ) + f (s n )(s n+1 s n ) = 0. f (s n )

2. Resolucin numrica de ecuaciones

f (s n+1 ) = Usando ahora el teorema 2.1: |s n+1 s |

f (d n )(s n+1 s n ) 2 . 2

|f (s n+1 )| |f (d n )| = (s n+1 s n ) 2 M (s n+1 s) 2 . m 2m 2m

Ejemplo 2.9: Consideremos la ecuacin f (x) = x 3 3x 1 = 0. En el intervalo [2, 3 ] se cumplen las hiptesis del teorema 2.6: 2 1. f(2)f( 3 ) = (3) 1 < 0. 2 8 2. x [2, 3 ] f (x) = 3(x 2 1) > 0. 2 3 3. x [2, ] f (x) = 6x 0. 2 Por dicho teorema, como sg f (2) = sg f (2), la sucesin de Newton que se genera con s 0 = 2 es creciente y converge a la nica raz s de f en [2, 3 ]. La siguiente tabla 2 contiene sus primeros trminos: n
0 1 2 3 4

sn
2 1. 6666666 1. 5486111 1. 53239016 1. 53208899

Apliquemos el teorema 2.8 para estimar el error |s 4 s |. Para x [2, 3 ]: 2 |f (x)| = 3(x 2 1) 3(( 3 ) 2 1) = 3. 75, 2 |f (x)| = |6x | 12. luego la cotas de ese teorema pueden ser m = 3. 75 y M = 12. Entonces |s 4 s | M (s 4 s 3 ) 2 = 12 1. 45 10 7 . 2m 23. 75 Dada la convergencia cuadrtica de la sucesin de Newton, son suficientes unos pocos trminos para alcanzar cierta precisin. Incluso las operaciones pueden ser hechas con una simple calculadora cientfica; aunque siempre es ms cmodo disponer de un programa en el ordenador. Un pseudocdigo para el mtodo de Newton puede ser el siguiente:

ALGORITMO DE NEWTON-RAPHSON
Entradas: f, f , s 0 , N (el nmero mximo de iteraciones), (el error deseado) Salida: s 1 (trmino de la sucesin {s n }). 1. i = 1. 29

2. Resolucin numrica de ecuaciones

2. Mientras que n N hacer: f (s 0 ) . 2.1. s 1 = s 0 f (s 0 ) 2.2. Si |s 1 s 0 | < , entonces SALIDA: "Solucin: ", s. FIN. en otro caso s 0 = s 1 ; n = n + 1. 3. SALIDA: "Tras", N, "iteraciones no se obtuvo el error", . FIN.

Dentro del bucle principal del algoritmo hemos includo la condicin de paro |s 1 s 0 | < , donde aqu s 1 es el n-simo trmino de la sucesin de Newton y s 0 el anterior. La razn de emplear tal condicin est en el teorema 2.8: cuando la sucesin converga a una raz s y se verifique tal condicin tendremos la desigualdad |s 1 s | M 2 que, 2m aunque desconozcamos las cotas M y m, seguramente garantice |s 1 s | < . Una de las hiptesis requeridas en el teorema 2.4 es que la derivada no se anule en la raz s (tambin falla la hiptesis 2 del teorema 2.6 si f (s) = 0). No obstante, el mtodo de Newton tambin es aplicable en este caso singular. Supongamos que f C p (I), siendo I un intervalo abierto, y que s I es una raz de multiplicidad p 2; esto es: f (s) = f (s) =. . . = f p1) (s) = 0 pero f p) (s) 0. Como f p) es continua, > 0 tal que (s , s + ) I y x (s , s + ) f p) (x) 0. Sea x s un punto de este intervalo. Aplicando el teorema de Taylor a f con r = p 2 y x 0 = s, se obtiene: f (x ) = f p) (d)(x s) p1 , (p 1)!

con d entre s y x. Como f p) (d) 0, tambin f (x) 0. De este modo, la siguiente funcin h est bien definida en (s , s + ) {s}: h(x) = f (x ) . f (x )

Puede comprobarse que lim h(x) = 0; con lo que definiendo h(s) = 0, h es continua en s. xs Tambin puede probarse que h es continua en todo (s , s + ) y que h(s) = 1 p . Entonces la funcin g(x) = x h(x) p1 tiene en s un punto fijo y verifica que g es continua y g(s) = p < 1. Por la observacin anterior al ejemplo 2.5, existe > 0 ( < ) tal que si s 0 es cualquier punto de este intervalo, entonces la sucesin {s n }, s n = g(s n1 ) est bien definida y converge a s. Ahora bien, dicha sucesin es la de Newton-Raphson para f. La argumentacin anterior prueba que aunque la raz s sea mltiple, el mtodo de Newton sigue funcionando. No obstante, la convergencia es lineal ahora; ya no es cuadrtica. Una pequea modificacin en la sucesin puede devolvernos la convergencia cuadrtica. Si en lugar de la anterior g consideramos esta otra funcin g 1 (x) = x ph(x), tambin s es un punto fijo de g 1 y g 1 es continua. Pero g 1 (s) = 0, lo que implica la convergencia cuadrtica de la sucesin {s n }, s n = g 1 (s n1 ). As pues, es preferible usar la 30

2. Resolucin numrica de ecuaciones

siguiente sucesin de Newton modificada: s n+1 = s n pf (s n ) . f (s n )

Por otra parte, en la prctica hay que ir con precaucin con las races mltiples. Cuando s n est prximo a s, ambas f (s n ) y f (s n ) estarn cercanas a 0 y, en consecuencia, la aritmtica de punto flotante puede calcular un trmino s n+1 con un error grande. Es aconsejable disponer de la mayor precisin posible en la mquina. Ejemplo 2.10: Consideremos la ecuacin f (x) = x 6 6x 4 + 12x 2 8 = 0. En realidad, f (x) = (x 2 2) 3 . Luego s = 2 es una raz triple de f : f (s) = f (s) = 0 y f (s) 0. De acuerdo con lo anterior, la sucesin s n+1 = s n 3f (s n ) f (s n )

debe converger a 2 para valores iniciales s 0 cercanos a dicho punto. Para s 0 = 1. 5, estos son los primeros trminos devueltos por el ordenador: n
0 1 2 3 4 5

sn
1. 5 1. 4166666666666667 1. 4142156862663620 . 1. 4142243878208307 1. 4142136697435403 1. 4142136697435403

Ntese la rapidez de la convergencia. Y tambin que, aunque hemos usado doble precisin, la aritmtica de punto flotante impide aproximarnos ms a 2 = 1. 414213562373095. . .

4 Races de polinomios
En esta seccin nos ocupamos de las ecuaciones polinmicas; esto es, ecuaciones del tipo a 0 x n + a 1 x n1 +. . . +a n1 x + a n = 0, donde los a i son nmeros reales. No vamos a estudiar ninguno de los varios mtodos que existen para esta clase particular de ecuaciones. El mtodo de Newton es suficiente (sirve incluso para calcular las races complejas). Nos centraremos en el problema de determinar el nmero de races reales que tiene y localizarlas. Localizar una raz significa encontrar un intervalo (a, b) que la contiene y que no contiene otra raz. Resolver este problema es previo al cmputo de las races. Tal solucin es proporcionada por los clsicos teoremas de Sturm 31

2. Resolucin numrica de ecuaciones

y de Budan-Fourier. Antes, recordamos el Teorema fundamental del Algebra: Sea P(x) [x], un polinomio con coeficientes complejos. Entonces P factoriza P (x ) = a 0 (x z i ) i ,
i= 1 r

siendo a 0 el coeficiente principal de P, z i las races distintas de P y i sus multiplicidades. En virtud de este teorema, el nmero de races de un polinomio es menor o igual que su grado. Ms an, si contamos cada raz tantas veces como indica su multiplicidad, el total resultante es igual al grado. Por supuesto, aunque los coeficientes del polinomio sean reales, las races pueden ser complejas. El ejemplo tpico es P(x) = x 2 + 1, cuyas races son la unidad imaginaria i y su conjugado i. Conjugando la igualdad proporcionada por el teorema fundamental, se _ obtiene que si z es raz de P [x], entonces su conjugado z tambin es raz y con la misma multiplicidad. Por tanto, si se suman las multiplicidades de las races complejas, las suma debe ser un nmero par. Se deduce entonces que todo polinomio P [x] de grado impar tiene al menos una raz real. Siempre es conveniente disponer de una cota del tamao de las races de un polinomio en funcin de sus coeficientes. El siguiente teorema proporciona una calculable a simple vista. Ntese que la cota sirve incluso para polinomios con coeficientes complejos: Teorema 2.9: Sea P(x) = a 0 x n + a 1 x n1 +. . . +a n1 x + a n [x]. Pongamos a i i = 1, 2, . . . n . B = max a 0 Si z es raz de P, entonces |z | 1 + B. Demostracin: Sea z una raz de P. Supondremos que |z | > 1 + B y llegaremos a una contradiccin. Despejando z n en la igualdad a 0 z n + a 1 z n1 +. . . +a n1 z + a n = 0 y tomando modulos: |z | n = a 1 z n1 +. . . +a n1 z + a n a0 a 1 |z | n1 +. . . + a n1 |z | + a n a0 a0 a0

B(|z | n1 +. . . +|z | + 1) = B

|z | n 1 , |z | 1

usando en la ltima igualdad la frmula para una progresin geomtrica. Si |z | 1 > B, entonces B < 1 y queda |z | 1 |z | n B que es una contradiccin. Ejemplo 2.11: Para el polinomio P(x) = x 4 4x + 1, el B del teorema es 4. Luego z raz de P: |z | 5. Como es bien conocido, un polinomio de segundo grado P(x) = ax 2 + bx + c puede tener dos, una o ninguna races reales; segn sea su discriminante b 2 4ac positivo, nulo o 32 |z | n 1 < |z | n 1, |z | 1

2. Resolucin numrica de ecuaciones

negativo, respectivamente. En virtud del teorema fundamental, un polinomio P de tercer grado puede tener: 1. Tres races reales. 2. Dos races reales, una doble y otra simple. 3. Una raz real y dos complejas. 4. Una raz real triple. Quizs la manera ms rpida de averiguarlo sea obteniendo las races reales de su derivada P, que es de grado dos. Si P tiene dos races reales, stas han de ser un mximo y un mnimo de P. Si en una de ellas P tiene signo positivo y en la otra negativo, entonces P tiene tres races reales. Si P se anula en una de las races, entonces sta ha de ser raz doble de P y ste ha de poseer otra raz real. Si P presenta el mismo signo en las dos races, entonces tiene una raz real y dos complejas. En el caso que P tenga una nica raz real (es entonces un punto de inflexin de P) o ninguna, entonces P no tiene mximos ni mnimos. Es montono y slo corta una vez al eje OX. Si P tiene una nica raz y en ella se anula tambin P, sta es raz triple de P. En otro caso, P presenta una raz real y dos complejas. Los casos se multiplican para polinomios de grado mayor que tres. Es entonces cuando hemos de hacer uso de los teoremas de Sturm o de Budan-Fourier. Ambos teoremas se basan en la idea siguiente: en puntos "anteriores" a una raz de un polinomio, ste y su derivada tienen signo distinto; pero en puntos "posteriores" el signo es el mismo. Teorema 2.10: Sea r una raz real de un polinomio P. Existe > 0 tal que x (r , r) P(x)P(x) < 0 y x (r, r + ) P(x)P(x) > 0. Demostracin: Como el nmero de races de P y P es finito, es posible encontrar > 0 tal que en el intervalo (r , r + ) ni P ni P tienen otra raz que no sea r. Sea la multiplicidad de r en P. Entonces P = (x r) M, con M otro polinomio tal que M(r) 0. Como en (r , r + ) la nica raz de P es r, el polinomio M no puede cambiar el signo en dicho intervalo; esto es, x (r , r + ) sg M(x) = sg M(r). Derivando: P = (x r) 1 M + (x r) M = (x r) 1 (M + (x r)M) = (x r) 1 N, siendo N = M + (x r)M. Es N(r) = M(r) 0. Como en (r , r + ) la nica raz posible de P tambin es r, el polinomio N no puede cambiar el signo en dicho intervalo. As: x (r , r + ) sg N(x) = sg N(r), el cual coincide con sg M(r). Se sigue entonces que M y N tienen el mismo signo en todo el intervalo (r , r + ). En consecuencia, x (r , r + ) sg(P(x)P(x)) = sg(x r), de donde resulta el teorema. El teorema de Sturm determina el nmero de races reales que tiene un polinomio en un intervalo (a, b). Para enunciarlo, necesitamos algunas definiciones. La primera, la sucesin de Sturm de un polinomio, que es la secuencia de los restos algoritmo de Euclides para el cmputo del mximo comn divisor del polinomio y su derivada, pero cambiados de signo. Con precisin: Sea P [x] y P su derivada. Ponemos P 0 = P y P 1 = P. Seguidamente, se divide P 0 entre P 1 : se obtienen dos polinomios Q 1 (el cociente) y R 1 (el resto), con grado R 1 < grado P 1 y tales que: P 0 = Q 1 P 1 + R 1 . Sea P 2 = R 1 . Se divide P 1 entre P 2 : P 1 = Q 2 P 2 + R 2 . Sea P 3 = R 2 . Y as continuamos

33

2. Resolucin numrica de ecuaciones

hasta obtener un resto nulo: P k1 = Q k P k (algo que debe ocurrir, ya que los grados de los restos van disminuyendo). Definicin: La sucesin de Sturm de P es la secuencia de polinomios {P 0 , P 1 , P 2 , , P k }. Como hemos dicho antes, la sucesin de Sturm es la de los restos del algoritmo de Euclides, pero cambiados de signo. En consecuencia, el ltimo trmino P k = MCD(P, P). (Ms an: para 0 i < k P k = MCD(P i , P i+1 ), tal y como sucede en el algoritmo de Eucldes). Si P k es una constante, entonces P y P no tienen factores comunes y, en consecuencia, todas las races de P son simples. En otro caso, si grado P k 1, P tiene races mltiples. Ejemplo 2.12: Calculemos la sucesin de Sturm del polinomio P del ejemplo previo. Segn hemos indicado, P 0 = P = x 4 4x + 1; P 1 = P = 4x 3 4. Dividimos: P0 = ( 1 x)P 1 3x + 1 4 x2 + P1 = ( 4 3
4 9

P 2 = 3x 1
104 27

x+

4 27

) P 2

P3 =

104 27

As pues, {P 0 , P 1 , P 2 , P 3 } es la sucesin de Sturm de P. Como P 3 es una constante, todas las races de P son simples. Dada una lista de nmeros reales {x 0 , x 1 , , x k }, definimos el nmero de cambios de signo de esta manera: Primero suprimimos los ceros si los hay; y, a continuacin, contamos un cambio de signo cada vez que un trmino x i y el que le sigue tengan signo diferente. Por ejemplo, en la lista {1, 2, 0, 0, 4, 1, 2} hay dos cambios de signo. En esta otra hay tres: {2, 1, 0, 2, 4, 0, 1, 2}. Y fijado un polinomio P, definimos la siguiente funcin v P : : Considerando la sucesin de Sturm de P, {P 0 , P 1 , P 2 , , P k }, v P (x) es el nmero de cambios de signo en la lista {P 0 (x), P 1 (x), , P k (x)}. Ejemplo 2.13: He aqu algunos valores de v P para el polinomio P de los dos ejemplos anteriores:
104 v P (0) = n c. sg{P 0 (0), P 1 (0), P 2 (0), P 3 (0)} = n c. sg{1, 4, 1, 27 } = 2. 104 v P (1) = n c. sg{P 0 (1), P 1 (1), P 2 (1), P 3 (1)} = n c. sg{2, 0, 2, 27 } = 1. 104 v P (2) = n c. sg{P 0 (2), P 1 (2), P 2 (2), P 3 (2)} = n c. sg{9, 28, 5, 27 } = 0.

Una vez establecidas estas definiciones puede enunciarse el mencionado teorema de Sturm: Teorema de Sturm: Sea P [x] y a < b dos nmeros reales que no son races mltiples de P. El nmero de races de P en el intervalo (a, b] es igual a v P (a) v P (b). Demostracin: Haremos uso del siguiente: Lema: Sean I un intervalo abierto y {G 0 , G 1 , , G k } una lista de polinomios tales que: 1. G k no se anula en I. 2. Si r I es raz de G i , con 1 i < k, entonces G i1 (r)G i+1 (r) < 0. 3. Si r I es raz de G 0 , existe > 0 tal que x (r , r) G 0 (x)G 1 (x) < 0 y x (r, r + ) G 0 (x)G 1 (x) > 0.

34

2. Resolucin numrica de ecuaciones

Entonces si a, b I, a < b, el nmero de races de G 0 en el intervalo (a, b] es igual a v(a) v(b); siendo v(x) el nmero de cambios de signo en la lista{G 0 (x), G 1 (x), , G k (x)}. Demostremos primero este lema. Sean r 1 < r 2 < < r t las races de todos estos polinomios G i . Si I = (c, d), ponemos r 0 = c, r t+1 = d y consideramos para j = 1, 2, , t + 1 los intervalos I j = (r j1 , r j ). Entonces, en cada I j ninguno de los polinomios G i se anula y, en consecuencia, tienen signo constante. Se sigue entonces que tambin en cada I j la funcin v es constante. Analizamos como vara v al pasar de I j a I j+1 a travs de la raz r j. Supongamos que r j es raz de G i con 1 i < k. Entonces no lo es de G i1 ni de G i+1 , por la hipteis 2. Luego estos dos polinomios no se anulan en el intervalo (r j1 , r j+1 ) y, en consecuencia, deben tener signo constante en dicho intervalo. Al ser G i1 (r)G i1 (r) < 0, el signo que tiene G i1 en (r j1 , r j+1 ) es distinto del que tiene G i+1 . De este modo, tenemos estas dos posibilidades para los signos de los tres polinomios G i1 , G i y G i+1 al pasar de I j a I j+ 1 : sg G i1 Ij rj I j+ 1 + + + sg G i sg G i+1 0 Ij rj I j+ 1 sg G i1 sg G i sg G i+1 0 + + + .

En ambos casos, tanto en los intervalos I j e I j+1 como en r j hay un cambio de signo. Por tanto, aunque varan los signos de los polinomios, la funcin v no se ve afectada. Supongamos ahora que r j es raz de G 0 . Por 3, el signo de este polinomio en I j es distinto del que tiene G 1 ; pero es el mismo en I j+1 . De este modo, en el intervalo I j hay un cambio de signo; pero no lo hay ni en r j ni en I j+1 . Luego la funcin v disminuye en 1 unidad. Hemos probado entonces que, al pasar de I j a I j+1 a travs de la raz r j , la funcin v slo vara si r j es una raz de G 0 ; y, en tal caso, lo hace exctamente en 1 unidad. Si ahora a < b son dos puntos de I, al recorrer el intervalo [a, b] desde a hasta b, la funcin v disminuye en 1 unidad cada vez que encontremos una raz de G 0 . Luego v(a) v(b) es justamente el nmero de races de G 0 en (a, b]. Una vez probado el lema, iniciamos la demostracin del teorema. Consideremos la sucesin de Sturm de P: {P 0 = P, P 1 = P, . . . , P k }. Si P k es una constante, entonces se verifican las tres hiptesis del lema en I = . En efecto: Al ser P k constante se tiene 1. Por el teorema 2.10 se cumple 3. Sea ahora r una raz de P i , con 1 i < k. De la divisin P i1 = Q i P i P i+1 , se obtiene P i1 (r) = P i+1 (r). Como MCD(P i , P i+1 ) = P k es constante, r no es raz de P i+1 . Luego P i1 (r)P i+1 (r) = P i+1 (r) 2 < 0, lo que demuestra 2. Aplicando el lema a la sucesin de Sturm, se obtiene el teorema. Supongamos ahora que P k no es una constante. En este caso, dividimos todos los polinomios P i por P k y consideramos la sucesin de polinomios resultante {G 0 , G 1 , , G k }. Estos polinomios cumplen las tres hiptesis del lema en I = . En efecto: Es G k = 1, una constante. Sea r I una raz de G i , con 1 i < k. Dividiendo por P k la igualdad P i1 = Q i P i P i+1 , se obtiene G i1 = Q i G i G i+1 . Usando esta igualdad y que MCD(G i , G i+1 ) = G k = 1, se obtiene la hiptesis 2. La tercera requiere ms argumentacin:

35

2. Resolucin numrica de ecuaciones

Sea r una raz de G 0 . Tambin lo es de P, ya que ambos polinomios tienen las mismas races. Si es la multiplicidad de r en P, P = (x r) H, con H(r) 0. Derivando P = m(x r) 1 H + (x r) H = (x r) 1 (H + (x r)H). Como P k = MCD(P, P), debe ser P k = (x r) 1 D, con D divisor de H y tambin de de H (de hecho, D = MCD(H, H)). Pongamos H = DM y H = DN. Entonces, dividiendo P y P por P k : G 0 = (x r)H, G 1 = H + (x r)N. Por tanto, para x < r sg G 0 (x) = sg H(x), para x > r sg G 0 (x) = sg H(x) y para x r pero x prximos a r, sg G 1 (x) = sg H(x). Ello prueba la hiptesis 3. Aplicando el lema, si a < b, la diferencia v(a) v(b) es el nmero de races de G 0 en (a, b]. Notemos ahora que el nmero de cambios de signo en una lista no vara si multiplicamos o dividimos todos los elementos de la lista por un mismo nmero no nulo. Como a y b no son races mltiples de P, P k (a) y P k (b) son distintos de 0. Luego, v(a) = v P (a) y v(b) = v P (b). Por tanto, tambin v P (a) v P (b) es el nmero de races de G 0 en (a, b]. Y el de P, ya que ambos polinomios tienen las mismas races. Ejemplo 2.14: Sea P(x) = x 4 4x + 1. En el ejemplo 2.12 calculamos su secuencia de Sturm: P 0 = P, P 1 = P = 4x 3 4, P 2 = 3x 1, P 3 =
104 27

lim v (x) y v P () = xlim v (x), los cuales pueden calcularse Denotemos v P () = x P P fcilmente mirando los coeficientes principales de los P i : v P () = n c. sg{+, +, +, +} = 0, v P () = n c. sg{+, , , +} = 2. Como v P () v P () = 2, ste es el nmero de races reales de P. Dado que grado P = 4, P tiene otras 2 races complejas. En el ejemplo 2.13 obtuvimos v P (0) = 2, v P (1) = 1 y v P (2) = 0. Como, adems, 1 y 2 no son races de P, una de las races de P est en (0, 1) y la otra en (1, 2). (De hecho, tales races son 0. 2509921 y 1. 493359). Las divisiones de polinomios es siempre una tarea engorrosa y es conveniente disponer de un programa en el ordenador que las haga. En tal caso, hay que sealar que la aritmtica punto flotante no es la ms adecuada. En una divisin de polinomios, una pequea variacin de sus coeficientes puede variar tambin el grado del resto; lo que puede ocasionar que la diferencia v P (a) v P (b) computada sea distinta del nmero de races reales. Ello se evita usando "aritmtica multiprecisin"; esto es, un software capaz de manejar "cualquier" nmero racional. Los bien conocidos paquetes de software "Mathematica", "Maple", "Matlab"... traen incorporada esta aritmtica y algoritmos para dividir polinomios. Es aconsejable emplear uno de estos programas. Si no es posible y las divisiones hemos de efectuarlas "a mano", notemos que si multiplicamos cada polinomio P i por el mnimo comn multiplo de los denominadores de sus coeficientes, el resultado es un polinomio con coeficientes enteros. Ello no altera la funcin v P y es siempre ms cmodo trabajar con enteros que con fracciones. Veamos un ejemplo: Ejemplo 2.15: Calculemos la sucesin de Sturm de P = x 4 + 2x 2 + x + 3. Es P 0 = P y 36

2. Resolucin numrica de ecuaciones

P 1 = P = 4x 3 + 4x + 1. Para obtener el resto de los polinomios, dividimos P i1 entre P i , cambiamos de signo el resto y lo multiplicamos por el mnimo comn multiplo de los denominadores de sus coeficientes: P0 = ( 1 x ) P 1 + x 2 + 4 P 1 = (x +
3 4

) P 2
238 529

3 4 23 4

x+3 x + 10
15868 529

P 2 = x 2 3x 12, P 3 = 23x 40, P 4 = 1.

4 x P 2 = ( 23

) P 3

La sucesin de Sturm es entonces la lista {P 0 , P 1 , P 2 , P 3 , P 4 }. Evaluamos v P en los puntos del infinito: v P () = n c. sg{+, , , , +} = 2, v P () = n c. sg{+, +, , +, +} = 2. Luego P no tiene ninguna raz real. Sus cuatro races son complejas.

Ejemplo 2.16: Sea el polinomio P = x 6 2x 4 2x 3 + x 2 + 2x + 1. Ponemos P 0 = P y P1 = 1 P = 3x 5 4x 3 3x 2 + x + 1. Dividimos para obtener el resto de la sucesin de 2 Sturm: P0 = ( 1 x ) P 1 3 x P1 = ( 3 2
9 4 2 3

x4 x3 +
23 4

2 3

x2 +

5 3

x+1

P 2 = 2x 4 + 3x 3 2x 2 5x 3, P 3 = x 3 + x + 1,

) P 2 +

(x 3 x 1)

P 2 = (2x 3)P 3 + 0. La lista {P 0 , P 1 , P 2 , P 3 } es la sucesin de Sturm de P. Evaluamos v P en algunos puntos: v P () = n c. sg{+, , +, +} = 2, v P (0) = n c. sg{1, 1, 3, 1} = 2,

v P () = n c. sg{+, +, +, } = 1. Por tanto, P tiene una nica raz real; que, adems, es positiva. Notamos que como MCD(P, P) = P 3 no es una constante, P tiene races mltiples. En este caso, es preferible trabajar con G 0 = P = x 3 + x + 1 para calcular la nica raz real r de P; ya que tiene las P3 mismas races que P, pero todas simples. El mtodo de Newton aplicado al polinomio G 0 proporciona la aproximacin r 1. 324718. Una alternativa al teorema de Sturm es el de Budan-Fourier, que no requiere dividir polinomios; slo derivar sucesivas veces. Pero no determina completamente el nmero de races: Teorema de Budan-Fourier: Sea P [x] de grado n y considereremos la sucesin de sus derivadas: {P, P, P, , P n) }. Para x denotamos w P (x) al nmero de cambios de signo en la lista {P(x), P(x), P(x), , P n) (x)}. Si a < b son dos nmeros reales, entonces la suma de las mltiplicidades de las races de P en el intervalo (a, b] es igual a w P (a) w P (b) 2m, siendo m un entero no negativo. Demostracin: Es similar a la del teorema de Sturm. Sean ahora r 1 < r 2 < < r t todas las races de P y sus derivadas. Ponemos r 0 = , r t+1 = y consideramos para j = 1, 2, , t + 1 los intervalos I j = (r j1 , r j ). Entonces, en cada I j ni P ni sus derivadas se anulan y, en consecuencia, tienen signo constante. Se sigue entonces que tambin en cada I j 37

2. Resolucin numrica de ecuaciones

la funcin w P es constante. Analizamos como vara w P al pasar de I j a I j+1 a travs de la raz r j. Sea r j una raz de P. Si es su multiplicidad, entonces 1) P(r j ) = P(r j ) = = P (r j ) = 0, pero P ) (r j ) 0. Por el teorema 2.10, para 0 i < , sg P i) sg P i+1) en I j , pero sg P i) = sg P i+1) en I j+1 . Hay, por tanto, cambios de signo en I j y ninguno en I j+1 ni en r j . Supongamos ahora que r j es raz de P i) pero no de P i1) , siendo 0 < i < n. Si es la multiplicidad, entonces P i+1) (r j ) = = P i+1) (r j ) = 0, pero P i+) (r j ) 0. Como antes, para i k < i + , sg P k) sg P k+1) en I j , pero sg P k) = sg P k+1) en I j+1 y hay cambios de signo en I j y ninguno en I j+1 ni en r j . Distinguimos si es par o impar y si el signo de P i1) coincide o no con el de P i) en I j . Supongamos que es impar. Entonces P i) cambia de signo al pasar de de I j a I j+1 . No lo hace P i1) , que mantiene signo constante en todo el intervalo (r j1 , r j+1 ). Si sg P i1) sg P i) en I j , entonces sg P i1) = sg P i) en I j+1 . Luego hay un cambio de signo ms en I j y ninguno en I j+1 . Tampoco hay cambio de signo en la raz r j ; ya que, en este caso, los polinomios P i1) y P i+) coinciden en signo en todo (r j1 , r j+1 ). Por ejemplo, si este ltimo signo es +, he aqu el esquema resultante: sg P i1) sg P i) sg P i+1) P i+1) sg P i+) Ij rj I j+ 1 + + + 0 + + 0 + 0 + + + + .

Caso impar, sg P i1) sg P i) en I j

Luego, en total hay + 1 cambios de signo en I j y ninguno en I j+1 ni en en r j . Ello implica que la funcin w P disminuye en + 1 unidades. Si sg P i1) = sg P i) , entonces sg P i1) sg P i) en I j+1 . Quien gana ahora un cambio de signo es I j+1 . Y tambin la raz r j , como puede verse en este otro cuadro, en el que tambin hemos supuesto sg P i1) = + : sg P i1) sg P i) sg P i+1) P i+1) sg P i+) Ij rj I j+ 1 + + + + 0 0 + 0 .

Caso impar, sg P i1) = sg P i) en I j

Ahora hay en total cambios de signo en I j y uno I j+1 y en r j . Luego, la funcin w P disminuye en 1 unidades. Si par, entonces P i) no cambia de signo al pasar de de I j a I j+1 . Si dicho signo es distinto del de P i1) , hay en total + 1 cambios de signo en I j y uno en I j+1 y en r j . Si es igual, hay cambios de signo en I j y ninguno en I j+1 ni en r j . (Hganse los correspodientes cuadros de signos si no se est convencido de ello.) En ambos casos, la funcin w P

38

2. Resolucin numrica de ecuaciones

disminuye en unidades. En resumen, cuando se llega a una raz de de P, la funcin w P disminuye en tantas unidades como la multiplicidad. Cuando se llega a una raz de una derivada, la disminucin de dicha funcin es siempre un nmero par. Ello prueba el teorema. Una aplicacin del teorema de Budan-Fourier es la conocida regla de Descartes, que permite estimar el nmero de races positivas de un polinomio: Regla de Descartes: Sea P(x) = a 0 x n + a 1 x n1 + +a n1 x + a n [x]. Sea w el nmero de cambios de signo en la lista {a n , a n1 , , a 1 , a 0 }. La suma de las multiplicidades de las races positivas de P es igual a w 2m, siendo m un entero no negativo. Demostracin: Consideremos la funcin w P . Sin perdida de generalidad, podemos suponer a 0 > 0. Entonces, todas las derivadas de P son positivas en el infinito. Luego, w P () = 0. Por otra parte, P i) (0) = i!a ni y, en consecuencia, w P (0) = w. Aplicando el teorema de Budan-Fourier se sigue la regla de Descartes. Como decamos, el teorema de Budan-Fourier no determina por completo el nmero de races reales en un intervalo. A no ser que la diferencia w P (a) w P (b) sea 0 1; ya que entonces el m del teorema slo puede ser 0. Esta observacin permite aislar las races reales de un polinomio en algunos casos: Ejemplo 2.17: Sea P = x 4 2x 3 4x 2 + 4x + 4. Estos son algunos valores de w P : w P (0) = n c. sg{+, +, , , +} = 2 w P (2) = n c. sg{, , +, +, +} = 1 w P (1) = n c. sg{+, , , +, +} = 2 w P (3) = n c. sg{+, +, +, +, +} = 0

w P (1) = n w P (2) = n c. sg{, +, +, , +} = 3 c. sg{+, , +, , +} = 4 Como w P (0) w P (1) = 0, P no tiene ninguna raz en (0, 1]. Hay exactamente una en (1, 2), ya que w P (1) w P (2) = 1 (y P(2) 0). Y otra en cada uno de los intervalos (2, 3), (1, 0) y (2, 1). Luego P tiene exctamente cuatro races reales, todas simples. En este ejemplo hemos podido localizar las races reales del polinomio usando slo el teorema de Budan-Fourier porque todas sus races son reales y simples. Cuando esto no sea as, no siempre ser posible.

Ejercicios
1. Obtener mediante el mtodo de la biseccin y con error < 10 3 una solucin de e x + x = 0. 2. Averiguar cuantas soluciones tiene la ecuacin x 2 x = 0 calcularlas con error < 10 3 mediante el mtodo de la biseccin. 3. Dibujar las grficas de y = e x e y = sen x. Comprobar que e x = sen x tiene infinitas soluciones r 1 < r 2 < r 3 <. . . y calcular r 3 mediante el mtodo de la biseccin con error < 10 3 . 4. Calcular, con error < 10 3 y mediante el mtodo de la biseccin, una solucin de la ecuacin e x + 2 x + 2 cos x 6 = 0. 5. Sea la funcin f(x) = 1 x . Comprobar que tiene un nico punto fijo s. Probar que si s 0 = 0. 5,

39

2. Resolucin numrica de ecuaciones la sucesin {s n }, s n = f(s n1 ), converge a s. Calcular un entero n tal que |s n s | < 10 100 . 6. Probar que f(x) = x 3 + 1 tiene un nico punto fijo en [0, 1]. Generar los 15 primeros trminos de la sucesin del mtodo del punto fijo comenzando con s 0 = 0. 5. Por qu no converge esta sucesin? 7. Demostrar que f(x) = 5 x tiene un nico punto fijo y calcularlo con error < 10 3 . x 2 8. Lo mismo para f(x) = 2 e + x . 3 9. Sea la ecuacin 8x cos x 2x 2 = 0. Encontrar un intervalo donde haya una nica raz. Transformar la ecuacin en otra de la forma x = f(x) que asegure la convergencia del mtodo del punto fijo. Usando este mtodo, calcular la raz con error < 10 3 . 10. Repetir el ejercicio anterior con la ecuacin e x + sen x = 2. 11. Sea f(x) = x 3 3x 1 y s 0 = 2. Probar que la sucesin de Newton-Raphson para f y s 0 , es montona y converge a una raz de f. Sea {s n } esta sucesin y s su lmite. Calcular s 1 , s 2 y s 3 . Acotar |s 3 s |. 12. Sea la ecuacin x = 1 + arctan x. Demostrar que tiene una nica solucin. Encontrar s 0 que asegure la convergencia de la sucesin de Newton-Raphson. Calcular el trmino s 4 de esta sucesin y estimar |s 4 s |. 13. Repetir el ejercio anterior con la ecuacin x log x = 1. 14. Idem con la ecuacin log x = sen x. 15. Calcular, con error < 10 5 todas las soluciones de las siguientes ecuaciones: a) 3x 2 e x = 0 b) x 2 + 10 cos x = 0 c) cos x log 10 x = 0. 16. La ecuacin f(x) = x 2 + 2xe x + e 2x = 0 tiene una raz doble en (1, 1). Calcular los 10 primeros tminos de la sucesin del mtodo de Newton, comenzando con s 0 = 0. Repetir con la sucesin 2f (s n ) . s n+1 = s n f (s n ) 17. Probar que la ecuacin log x sen x = 0 tiene una nica solucin en [2, 2. 5]. Comenzando con s 0 = 2 y s 1 = 2. 5, calcular los 15 primeros trminos de la sucesin del mtodo de la secante. Qu sucede? 18. Probar que las siguientes ecuaciones tienen un nica solucin en el intervalo que se indica y calcularla mediante el mtodo de la secante con error < 10 5 : a) x 3 2x 2 5 = 0 en [2, 3]. b) x 6 x = 1 en [1, 2]. c) e x + 2 x + 2 cos x = 6 en [3, 2] 19. Sea P(x) = x 3 x 1. a) Calcular la sucesin de Sturm de este polinomio. b) Calcular intervalos (a, b) que contengan cada uno de ellos a una nica raz de P. c) Calular las races reales de P con error < 10 5 . 20. Repetir el ejercicio con P(x) = x 4 2x 3 4x 2 + 4x + 4. 21. Idem con P(x) = x 4 4x 2 3x + 5. 22. Sea P(x) = x 3 7x 7. Usando la sucesin de Budan-Fourier, probar que P tiene exctamente una raz positiva. Calcularla con error < 10 5 . Tiene races negativas? 23. Sea P(x) = 2x 5 x 4 4x 3 + 2x 2 6x + 3. Haciendo uso de la sucesin de Budan-Fourier probar que tiene un nica raz negativa. Calcularla con error < 10 5 .

40

3. Interpolacin polinomial

3. Interpolacin polinomial

Con frecuencia, en diversos campos de la ciencia y la ingeniera, se plantea un problema que admite la siguiente modelizacin: Supongamos que de una funcin de variable real slo se conocen los valores que toma en ciertos puntos de su dominio, pero se est interesado en otros valores desconocidos. Es posible dar una estimacin fiable de estos valores? Por ejemplo, es sabido que el valor de la gravedad en un punto de la superficie terrestre situado a nivel del mar depende de su latitud. En la siguiente tabla figuran algunos valores de la gravedad en funcin de la latitud, obtenidos experimentalmente: Latitud (en grados) 0 30 45 60 90 Gravedad (en m/s 2 ) 9. 78035 9. 793238 9. 806154 9. 819099 9. 832072 Qu valor tiene la gravedad en Alicante, que se encuentra a 38 20 ? Una estrategia para resolver el problema planteado es buscar una funcin de cierto tipo que tome los valores conocidos en los respectivos puntos y aproximar el dato deseado por el valor proporcionado por la funcin. Las funciones ms sencillas y manejables son los polinomios. Cuando ste es el tipo de funcin buscada, el problema anterior recibe el nombre de:

1 Problema de interpolacin polinomial


Problema: Sea f (x) una funcin de variable real, x 0 , x 1 , , x n n + 1 puntos distintos de su dominio y, para i = 0, 1, , n, f i = f (x i ). Esquemticamente: xi : x0 x1 x2 xn fi : f0 f1 f2 fn Encontrar un polinomio P que coincida con f en los puntos x i ; esto es, que i = 0, 1, , n P (x i ) = f i . Con objeto de resolver este problema, consideramos un polinomio de grado n, con coeficientes indeterminados:

41

3. Interpolacin polinomial

P(T) = a 0 + a 1 T + + a n T n . Las igualdades deseadas P(x i ) = f i llevan al siguiente sistema de n + 1 ecuaciones en las n + 1 incgnitas a 0 , a 1 , , a n :
n a0 + a1x0 + a2x2 0 + + anx0 = f0 n a0 + a1x1 + a2x2 1 + + anx1 = f1

...
n a0 + a1xn + a2x2 n + + anxn = fn

El determinante de la matriz de coeficientes es el conocido determinante de Van der Monde:


n 1 x0 x2 0 x0 n 1 x1 x2 1 x1

0i<jn

(x j x i ).

n 1 xn x2 n xn

(Vase cualquier texto de Algebra Lineal). Puesto que todos los x i son distintos, el producto anterior es 0. Luego, el sistema tiene una nica solucin. Hemos probado as el siguiente teorema: Teorema 3.1: Existe un nico polinomio de grado menor o igual que n que es solucin del problema de interpolacin polinomial. Dicho polinomio recibe el nombre de polinomio de interpolacin de f en los puntos x0, x1, , xn. Notemos que podemos obtener el polinomio de interpolacin resolviendo el anterior sistema de ecuaciones: Ejemplo 3.1: Para los datos: xi : 0 1 2 3 f i : 0 1 0 1 resulta el siguiente sistema de ecuaciones: a0 a0 + a1 + a2 + a3 a 0 + 2a 1 + 4a 2 + 8a 3 = 0 = 1 = 0 ,

a 0 + 3a 1 + 9a 2 + 27a 3 = 1 Su nica solucin es a 0 = 0, a 1 = 8 , a 2 = 2 y a 3 = 3 8 1 3 2 interpolacin es P(T) = 3 T 2T + 3 T.


1 3

. As pues, el polinomio de

42

3. Interpolacin polinomial

Acabamos de ver en este ejemplo que una forma de obtener el polinomio de interpolacin es resolviendo el correspondiente sistema lineal de ecuaciones. No es el mtodo ms eficiente. Como veremos en el tema 5, la resolucin de un sistema de n ecuaciones y n incgnitas requiere del orden de 2 n 3 operaciones aritmticas. El mtodo de 3 diferencias divididas (estudiado ms adelante en este captulo) baja el nmero de operaciones al orden 3 n 2 . Por otro lado, y esto es ms importante, si las diferencias |x j x i | 2 son pequeas, digamos del orden de 10 1 menores, el determinate de Van der Monde (x j x i ) est muy prximo a 0. Ello puede ocasionar importantes errores de redondeo al resolver el sistema.

2 Frmula de Lagrange
Como en la seccin anterior, sea la tabla: xi : x0 x1 x2 xn fi : f0 f1 f2 fn ;

donde, recordemos, los x i son todos distintos. Para cada ndice j = 0, 1, , n consideramos el polinomio L j (T) =

i= 0 i j

T xi xj xi .

Es inmediato comprobar que L j (x j ) = 1 y, si i j, L j (x i ) = 0. En consecuencia, el polinomio P(T) = f 0 L 0 (T) + f 1 L 1 (T) + + f n L n (T) verifica que j = 0, 1, , n P(x j ) = f j . Por otra parte, puesto que el grado de cada L j es n, grado P n. Por tanto, en virtud del teorema 3.1, P es el polinomio de interpolacin de f en los nodos x i . La combinacin lineal P = f 0 L 0 + f 1 L 1 + + f n L n es la frmula de Lagrange. Ejemplo 3.2: Sea la tabla: xi 1 0 1 2 f i : 2 2 0 4 Los polinomios L j son: .

43

3. Interpolacin polinomial

(T 0)(T 1)(T 2) (1 0)(1 1)(1 2 ) (T + 1)(T 1)(T 2) L 1 (T) = (0 + 1)(0 1)(0 2 ) (T + 1)(T 0)(T 2) L 2 (T) = (1 + 1)(1 0)(1 2 ) (T + 1)(T 0)(T 1) L 3 (T) = (2 + 1)(2 0)(2 1 ) L 0 (T) =

= 1 (T 3 3T 2 + 2T), 6 = 1 (T 3 2T 2 T + 2), 2

= 1 (T 3 T 2 2T), 2 = 1 (T 3 T). 6

Por tanto, P(T) = 2L 0 (T) 2L 1 (T) + 0L 2 (T) + 4L 3 (T) = T 2 + T 2.

En principio, la frmula de Lagrange puede parecer poco prctica debido a los polinomios L j . As es, si a partir de ella se calcula la expresin del polinomio de interpolacin en la forma P(T) = a 0 + a 1 T + + a n T n . No obstante, si no es necesaria esta expresin y slo se desea evaluar el polinomio en un punto x concreto, la frmula de Lagrange puede ser interesante: Fijado x, distinto de los x i , pongamos para i = 0, 1, , n : y i = x x i e y = y i . Entonces: P (x ) = f j L j (x ) = f j
j= 0 j= 0 i= 0 i j n n n n yi y x xi = n f = fj = j xj xi y i yj j= 0 j= 0 y j y i y j i= 0 i j i n

= y

j= 0

fj . yj yi yj
i

Evaluar esta ltima expresin requiere n(n + 1) restas, n(n + 1) + 1 productos, n + 1 divisiones y n sumas. Teniendo en cuenta las n + 1 restas necesarias para calcular los y i y los n productos para y, el nmero total de operaciones es 2n 2 + 6n + 3. Muchas menos que las necesarias para resolver el sistema de ecuaciones de la seccin anterior. Ejemplo 3.3: Calculemos, usando la frmula de Lagrange, el valor que toma el polinomio de interpolacin para los datos: x i : 2 1 0 1 f i : 5 en x = 2. Los datos y i = x x i son: y 0 = 4, y 1 = 3, y 2 = 2, y 3 = 1 e y = y i = 24. Entonces: P(2) = y
3 j= 0

1 1

fj 5 + 1 + 1 + 1 = 24 32 16 4 ( 6) 2(2) yj yi yj
i

= 7.

44

3. Interpolacin polinomial

3 Frmula de Newton o de diferencias divididas


Sea P(T) el polinomio de interpolacin para los datos: xi : x0 x1 x2 xn fi : f0 f1 f2 fn .

Puesto que grado P n, P es un vector del espacio vectorial formado por todos los polinomios de grado menor o igual que n y con coeficientes reales. Es un ejercicio de Algebra Lineal el comprobar que el siguiente conjunto de n + 1 vectores 1, T x 0 , (T x 0 )(T x 1 ), , (T x 0 )(T x 1 )(T x n1 ) es una base de dicho espacio vectorial. En consecuencia, podemos expresar P como combinacin lineal de los elementos de esta base: P(T) = A 0 + A 1 (T x 0 ) + A 2 (T x 0 )(T x 1 ) + + A n (T x 0 )(T x 1 )(T x n1 ), para ciertos A i . A esta expresin de P se la denomina frmula de Newton o de diferencias divididas. Las diferencias divididas son los coeficientes A i . Reciben este nombre porque se dispone de un algoritmo que los computa efectuando un cociente de dos restas. Antes de presentar tal algoritmo, hemos de enunciar algunos teoremas: Teorema 3.2: Para cada k = 0, 1, , n el polinomio P k (T) = A 0 + A 1 (T x 0 ) + + A k (T x 0 )(T x 1 )(T x k1 ), es precisamente el polinomio de interpolacin de f en los puntos x 0 , x 1 , , x k . Demostracin: Puesto que P es el polinomio de intepolacin de f en todos los puntos x i , f i = P(x i ). Por tanto, f i = A 0 + A j (x i x 0 )(x i x 1 )(x i x j1 ).
j= 1 n

Si 0 i k, el producto (x i x 0 )(x i x 1 )(x i x j1 ) = 0 para j > k. Luego, si 0 i k : f i = A 0 + A j (x i x 0 )(x i x 1 )(x i x j1 ).


j= 1 k

Y esta expresin es justamente P k (x i ). Como adems grado P k k, se concluye que P k es el polinomio de interpolacin de f en los puntos x 0 , x 1 , , x k . Como consecuencia de este teorema, los coeficientes de P k slo dependen de f y los puntos x 0 , x 1 , , x k , y no del resto de los x i . Es por ello que, en adelante, denotaremos al

45

3. Interpolacin polinomial

coeficiente A k por f [x 0 , x 1 , , x k ]. Con esta notacin, la frmula de Newton queda: P(T) = f [x 0 ] + f [x 0 , x 1 , , x k ](T x 0 )(T x 1 )(T x k1 ).
k=1 n

Evidentemente, f [x 0 ] = f 0 . Puesto que f 1 = P 1 (x 1 ) = f 0 + f [x 0 , x 1 ](x 1 x 0 ), resulta que f f0 f [x 0 , x 1 ] = x 1 . 1 x0 Una expresin explcita para f [x 0 , x 1 , , x k ] cuando k > 1, la proporciona el siguiente teorema: Teorema 3.3: Con las notaciones previas: f [x 0 , x 1 , , x k ] = 1 . fj xj xi
j= 0 i= 0 i j k k

Demostracin: La expresin del polinomio P k mediante la frmula de Lagrange es: P k (T) =

f j L j (T) =
j= 0

k T xi . f j x j xi j= 0 i= 0 i j

En esta frmula, el coeficiente del monomio T k es: 1 . fj xj xi


j= 0 i= 0 i j k k

Ahora bien, dicho coeficiente en la frmula de Newton es precisamente f [x 0 , x 1 , , x k ]. Naturalmente, podemos emplear la frmula presentada en este teorema para calcular f [x 0 , x 1 , , x k ]; pero, como anunciamos antes, es ms eficiente hacerlo mediante el algoritmo de diferencias divididas que veremos a continuacin. Antes, un par de teoremas ms: Teorema 3.4: Con las notaciones previas, para k = 1, 2, , n sea Q k1 el polinomio de interpolacin de f en los puntos x 1 , x 2 , , x k . Entonces: P k (T) = (T x 0 )Q k1 (T) (T x k )P k1 (T) . xk x0

Demostracin: LLamemos S al polinomio de la derecha en esta igualdad. Puesto que Q k1 y P k1 son polinomios de interpolacin en k puntos, su grado es menor o igual que k 1. Luego, grado S k. Es S(x 0 ) = Si i = 1, 2, , k 1 : (x 0 x 0 )Q k1 (x 0 ) (x 0 x k )P k1 (x 0 ) = P k1 (x 0 ) = f 0 . xk x0

46

3. Interpolacin polinomial

S(x i ) = Y

(x i x 0 )Q k1 (x i ) (x i x k )P k1 (x i ) (x x 0 )f i ( x i x k )f i = i = fi. xk x0 xk x0 (x k x 0 )Q k1 (x k ) (x k x k )P k1 (x k ) = Q k1 (x k ) = f k . xk x0

S(x k ) =

Si grado S k y i = 0, 1, , k S(x i ) = f i , entonces S = P k ; en virtud de la unicidad del polinomio de interpolacin. El siguiente teorema justifica el nombre de diferencia dividida para los coeficientes f [x 0 , x 1 , , x k ] : Teorema 3.5: Con las notaciones previas, f [x 0 , x 1 , . . . , x k ] = f [x 1 , x 2 , , x k ] f [x 0 , x 1 , , x k1 ] . xk x0

Demostracin: Fijmonos en los coeficientes del monomio T k de los polinomios de la ecuacin del enunciado del teorema previo. El de P k es la diferencia dividida f [x 0 , x 1 , , x k ], el de Q k1 es f [x 1 , x 2 , , x k ] y el de P k1 es f [x 0 , x 1 , , x k1 ]. Igualando los coeficientes de los polinomios de ambos lados de dicha ecuacin, se obtiene la frmula del presente teorema. En virtud de este teorema, puede calcularse la diferencia dividida f [x 0 , x 1 , , x k ] a partir de f [x 1 , x 2 , , x k ] y f [x 0 , x 1 , , x k1 ]. A su vez, stas tambin se obtienen a partir de otras dos diferencias divididas en las que slo intervienen k 1 puntos: f [x 2 , , x k ] f [x 1 , , x k1 ] , xk x1 f [x 1 , , x k1 ] f [x 0 , , x k2 ] . f [x 0 , x 1 , , x k1 ] = x k1 x 0 f [x 1 , x 2 , , x k ] = As, mediante la frmula proporcionada por el teorema, pueden calcularse recurrentemente todas las diferencias divididas necesarias en la frmula de Newton. Ello puede disponerse segn la siguiente TABLA DE DIFERENCIAS DIVIDIDAS xi fi x0 fi x1 fi x2 fi x3 fi x4 fi f [x 0 , x 1 ] f [x 1 , x 2 ] f [x 2 , x 3 ] f [x 3 , x 4 ] f [x 0 , x 1 , x 2 ] f [x 1 , x 2 , x 3 ] f [x 2 , x 3 , x 4 ]

f [x 0 , x 1 , x 2 , x 3 ] f [x 1 , x 2 , x 3 , x 4 ]

f [x 0 , x 1 , x 2 , x 3 , x 4 ]

47

3. Interpolacin polinomial

Se disponen dos columnas con los datos x i y f i , respectivamente. En una siguiente columna se escriben las n diferencias divididas f [x 0 , x 1 ], f [x 1 , x 2 ], , f [x n1 , x n ]. En una tercera columna las n 1 diferencias f [x 0 , x 1 , x 2 ], f [x 1 , x 2 , x 3 ], , f [x n2 , x n1 , x n ]. Y as sucesivamente, hasta colocar la diferencia f [x 1 , x 2 , , x n ] en una ltima columna. De acuerdo con el teorema 3.5, la frmula para obtener todas ellas es f [x i , x i+1 , , x i+k ] = f [x i+1 , , x i+k ] f [x i , , x i+k1 ] . x i+ k x i

Ejemplo 3.4: He aqu una tabla de diferencias: xi 0 1 3 4 fi 0 1 9 64 1 1 4 55 0 1 17 1 1

1 4

3 4

El polinomio de interpolacin, segn la frmula de Newton, es: P(T) = 1 + (T + 1) +


1 4

(T + 1)T(T 1) +

3 4

(T + 1)T(T 1)(T 3).

Contemos el nmero de operaciones necesarias para construir la tabla de diferencias divididas. En primer lugar, determinemos el nmero de tales diferencias: necesitamos n diferencias de dos puntos, n 1 de tres, n 2 de cuatro, ... y 1 de n + 1 puntos; que suman n + (n 1) + (n 2) + + 1 = n(n + 1) 2

diferencias. Como cada diferencia conlleva dos restas y un cociente, el cmputo de la tabla n(n+1) n(n + 1) operaciones. requiere n(n + 1) diferencias y 2 divisiones. En total, 3 2 La tabla de diferencias puede computarse tambin por filas en lugar de columnas, como se ha descrito antes. Es lo que se hace en el siguiente pseudocdigo:

ALGORITMO DE DIFERENCIAS DIVIDIDAS


Entradas: n, x i , f i (i = 0, 1, , n). Salida: a k ( = f [x 0 , x 1, , x k ]; k = 0, 1, , n). 1. d 0 = f 0 , a 0 = f 0 2. Desde k = 1 hasta n hacer: 2.1. d k = f k 2.2. Desde i = k 1 hasta 0 hacer: i+ 1 d i 2.2.1. d i = dx k xi 2.3. a k = d 0 . 3. Desde k = 0 hasta n hacer: 48

3. Interpolacin polinomial

3.1. SALIDA: a k FIN

Explicacin: En el bucle 2 se calcula la fila k-sima de la tabla; esto es, las diferencias f [x k1 , x k ], f [x k2 , x k1 , x k ], , f [x 0 , x 1 , , x k ]. Se guardan en la lista d, de modo que, para i = k, k 1, , 0, es d i = f [x i , , x k ]. En efecto: Antes de ejecutarse el paso 2.2.1, el valor d i+1 es ya la diferencia f [x i+1 , , x k ], mientras que d i es an f [x i , , x k1 ]. Luego el cociente d i+1 d i = f [x i+1 , , x k ] f [x i , , x k1 ] = f [x , , x ], i k xk xi xk xi y se guarda en la variable d i . Por tanto, tras el bucle 2.2, d 0 = f [x 0 , , x k ] y se almacena en a k en el paso 2.3. Una vez calculadas las diferencias divididas y escrito el polinomio de interpolacin segn la frmula de Newton P(T) = f 0 + f [x 0 , x 1 , , x k ](T x 0 )(T x 1 )(T x k1 ),
k=1 n

no es necesario desarrollar los productos (T x 0 )(T x k1 ) para evaluar el polinomio en un punto x. En su lugar, puede calcularse P(x) siguiendo este esquema: P (x ) = f 0 + ( x x 0 ) + f [x 0 , x 1 ] + (x x 1 ) f [x 0 , x 1 , x 2 ] + ;

f [x 0 , , x n1 ] + (x x n1 )f [x 0 , , x n ]

en donde slo se requieren n restas y otras tantas sumas y productos. Esto es, 3n operaciones. Y sumando este nmero de operaciones con las 3 n(n + 1) necesarias para el cmputo 2 3 2 de la tabla de diferencias, se obtiene un total de 2 n + 9 n operaciones requeridas para 2 evaluar P(x) mediante la frmula de Newton. Menos que con la de Lagrange. Ejemplo 3.5: Evaluemos en x = 2 el polinomio de interpolacin del ejemplo 3.4 segn el esquema anterior: P(2) = 1 + (2 + 1) 1 + 2 0 + (2 1)
1 4

+ (2 3) 3 4

= 1.

He aqu el pseudocdigo de un algoritmo para evaluar P(x) en la forma descrita. En l suponemos guardadas las diferencias divididas en una lista a; de modo que para i = 0, 1, , n sea a i = f [x 0 , , x i ] :

ALGORITMO PARA EVALUAR P(x)


Entradas: n, x i , x, a i ( = f [x 0 , , x i ]; i = 0, 1, , n). Salida: p ( = P(x)). 1. p = a n , i = n

49

3. Interpolacin polinomial

2. Mientras que i > 0 hacer: 2.1. i = i 1 2.2. p = (x x i )p + a i 3. SALIDA: p FIN

Ejemplo 3.6: Demos respuesta a la pregunta planteada al comienzo del tema calculando el valor de la gravedad en Alicante mediante interpolacin. La tabla de diferencias para aquellos datos es la siguiente: xi
0

fi
9. 78035 4. 295985 10 4 8. 611043 10 8. 630117 10 4. 324277 10
4 4 4

30 9. 793238 45 9. 806154 60 9. 819099 90 9. 832072

9. 589019 10 6 6. 357829 10 6 9. 568533 10 6

1. 58757 10 7 1. 60535 10
7

1. 97537 10 11

Y como 38 20 = 38. 33, P(38. 33) = 9. 800218.

la

gravedad

en

Alicante

es

aproximadamente

4 El error en la interpolacin polinomial


En esta seccin estimamos el error cometido en la interpolacin polinomial cuando sea posible acotar las derivadas de la funcin a interpolar. A primera vista, puede parecer poco prctica esta condicin; ya que, si la interpolacin tiene utilidad cuando no podamos evaluar la funcin en puntos cualesquiera, cmo vamos a acotar sus derivadas? No obstante, esto es factible en ocasiones. As sucede, por ejemplo, con muchas de las integrales paramtricas que se manejan en los diferentes campos de la ciencia e ingeniera. Mantenemos las notaciones de las secciones anteriores: f es una funcin de variable real, x 0 , x 1 , , x n son n + 1 puntos distintos de su dominio y P es el polinomio de interpolacin. Teorema 3.6: Para x x i : f (x) P(x) = f [x 0 , x 1 , , x n , x] (x x i ).
i= 0 n

Demostracin: Sea Q el polinomio de interpolacin para los datos:

50

3. Interpolacin polinomial

xi : x0 x1 x2 xn

f i : f 0 f 1 f 2 f n f (x ) Como es

Q(T) = P(T) + f [x 0 , x 1 , , x n , x] (T x i ),
i= 0

haciendo T = x resulta el teorema.

Notemos que como no conocemos f (x), no es posible calcular f [x 0 , x 1 , , x n , x]. Luego, el error en la interpolacin f (x) P(x) no es calculable a partir de la igualdad suministrada por el teorema anterior. El siguiente teorema expresa las diferencias divididas en funcin de las derivadas de la funcin: Teorema 3.7: Si f es derivable k veces: f [x 0 , x 1 , , x k ] = f k) (c) , k!

donde c es un punto del mnimo intervalo I que contiene a los nodos x 0 , x 1 , , x k . Demostracin: Pongamos R(x) = f (x) P k (x), con P k el polinomio de interpolacin de f en los puntos x 0 , x 1 , , x k . Tambin R es derivable k veces. Como se anula en k + 1 puntos distintos x 0 , x 1 , , x k , el teorema de Rolle dice que R se anula en k puntos distintos, todos ellos en I. De nuevo por el teorema de Rolle, R se anula en k 1 puntos del intervalo I. Y as, la derivada R k) se anula en un punto c I. Como grado P k k y f [x 0 , x 1 , , x k ] es el coeficiente del monomio T k de P k : R k) (x) = f k) (x) P k (x) = f k) (x) k!f [x 0 , x 1 , , x k ]. Luego, si R k) (c) = 0, queda f k) (c) k!f [x 0 , x 1 , , x k ] = 0, de donde se sigue el teorema. Haciendo k = n + 1 y x n+1 = x en el teorema 3.6, se obtiene: Teorema 3.8: Si f es derivable n + 1 veces y x x i : f (x ) P (x ) = f n+1) (c) (n + 1)!
n k)

(x x i ),
i= 0

donde c es un punto del mnimo intervalo I que contiene a los nodos x i y x.

En consecuencia, si es conocida una cota de la derivada f n+1) en el intervalo I; esto es, si M > 0 tal que c I |f n+1) (c)| M, entonces |f (x) P(x)| M (n + 1)!

|x x i |.
i= 0

Esta desigualdad permite estimar el error en la interpolacin polinomial.

51

3. Interpolacin polinomial

1 x t2 1 2 dt, que es la funcin de densidad de la e 2 distribucin normal tipificada, viene tabulada en todos los textos de Estadstica. De uno de ellos se ha extrado la siguiente tabla:

Ejemplo 3.7: La funcin f (x) =

xi :

0. 1

0. 3

f i : 0. 5 0. 5398 0. 6179

Aproximemos por interpolacin el valor f (0. 2) y estimemos el error cometido. La tabla de diferencias divididas es: xi
0

fi
0. 5 0. 398 0. 025 0. 3905

0. 1 0. 5398 0. 3 0. 6179

Y el valor P(0. 2) = 0. 5 + (0. 2 0) 0. 398 + (0. 2 0. 1)(0. 025) = 0. 5791. Luego, f (0. 2) 0. 5791. Para estimar el error cometido, necesitamos acotar f 3) en [0, 0. 3]. De acuerdo con el 1 2 teorema fundamental del Clculo, f (x) = 1 e 2 x . Derivando dos veces: 2 1 2 x 1 f 3) (x) = (x 2 1)e 2 . Por tanto, c [0, 0. 3] : 2 |f 3) (c)| =
c2 1 |c 2 1 |e 1 2 2

1 = 0. 39894. 2

Poniendo entonces M = 0. 4 en la anterior frmula, el error |f (0. 2) P(0. 2)| 0. 4 |0. 2 0 ||0. 2 0. 1 ||0. 2 0. 3 | = 1. 3 10 4 . 3!

Ejercicios
1. Calcular un polinomio P(x) de grado 3 que tome los siguientes valores: x 2 1 0 1 1 1 1 P(x) 5

Calcular otro polinomio de grado 4 que tambin tome esos valores. 2. La siguiente tabla contiene datos de cierta funcin f(x):

52

3. Interpolacin polinomial

0. 3

0. 4

0. 5

0. 6

f(x) 0. 7408 0. 6703 0. 6065 0. 5488 Calcular el polinomio de interpolacin mediante la frmula de Lagrange. Aproximar f(0. 45) con este polinomio. 3. Usando la frmula de Lagrange pero sin calcular el polinomio de interpolacin, aproximar f(0. 5) con los datos: x 0 0. 2 0. 4 0. 6 0. 8 f(x) 1 1. 2214 1. 4918 1. 8221 2. 2255 4. Aproximar 3 mediante interpolacin de f(x) = 3 x y la tabla: x f(x) 2 1 0 1 2
1 9 1 3

1 3 9

5. La siguiente tabla corresponde a f(x) = log 10 x : x 1020 1030 1040 1050 f(x) 3. 0086 3. 0128 3. 0170 3. 0212 Aproximar f(1044) mediante interpolacin. Estimar el error cometido sin evaluar f(x). x 2 6. La siguiente tabla contiene valores de f(x) = 2 e t dt : 0 x 1. 4 1. 5 1. 6 1. 7 f(x) 0. 9523 0. 9661 0. 9763 0. 9838 Aproximar f(1. 43) y estimar el error cometido. 7. La siguiente tabla contiene valores de f(x) = x 1

sen t dt : t 1. 7 2

1. 3

f(x) 0 0. 2379 0. 5035 0. 6593 Aproximar f(1. 5) y estimar el error cometido. 1 8. He aqu algunos valores de la funcin de Bessel f(x) = x 0 0. 2 0. 4 0. 6

0 cos(x sen t)dt :


0. 7 0. 9

f(x) 1 0. 990025 0. 960398 0. 912005 0. 881201 0. 807524 Sabiendo que f es infinitamente derivable y que n x |f n) (x)| 1, aproximar f(0. 8) con error < 10 4 . Calcular tambin f(1) con error < 10 4 .

53

4. Diferenciacin e integracion numrica

4. Diferenciacin e integracin numrica

Se abordan en este tema los siguientes dos problemas: Problema de diferenciacin numrica: Consideremos una funcin f derivable en un intervalo I y la tabla de datos xi : x0 x1 x2 xn fi : f0 f1 f2 fn ,

con x i I y f i = f (x i ). Sea tambin x I. El problema de diferenciacin consiste en aproximar el valor f (x) y estimar el error cometido en la aproximacin. Problema de integracin numrica: Siendo ahora I = [a, b], f integrable en este b intervalo y con los datos de antes, aproximar la integral a f y estimar el error cometido. Naturalmente, la diferenciacin numrica tiene inters cuando no sea conocida una expresin para f (x); ya que, si tal expresin es conocida, no suele ser difcil obtener otra para f (x). Sin embargo, dada la dificultad del clculo de primitivas, la integracin numrica es til incluso en el caso de disponer de una expresin explcita para f (x). Incluso con frecuencia sucede que f (x) es expresable en trminos elementales pero no sus primitivas. 2 x Por ejemplo, as ocurre con 1 + x 3 , e x sen x . La estrategia que seguiremos en ambos problemas es la misma: Consideraremos el polinomio de interpolacin P para los datos de partida y la ecuacin f (x ) = P (x ) + E (x ), donde E(x) es el error cometido al aproximar f (x) por P(x) : E(x) = f (x) P(x). Si f es derivable o integrable, tambin lo es E. Luego, derivando e integrando la ecuacin anterior: f (x ) = P (x ) + E (x )

a f = a P + a E.
As, P(x) y a P son aproximaciones a f (x) y a f, respectivamente, y E(x) y a E son los errores cometidos en cada aproximacin. Se trata de obtener algoritmos para el cmputo b b de P(x) y a P y de estimar los errores E(x) y a E.
b b b

Comenzamos con un algoritmo para calcular P(x) a partir de la tabla de diferencias divididas. Dicho algoritmo no es sino una generalizacin del conocido mtodo de Horner y 55

4. Diferenciacin e integracion numrica

proporciona tambin las derivadas de orden superior de P. Su primera etapa ya fu presentada en la tercera seccin del tema anterior, para evaluar P(x) una vez calculadas las diferencias divididas.

1 Una generalizacin del algoritmo de Horner


El algoritmo de Horner proporciona un mtodo rpido para evaluar un polinomio y su derivada en un punto x. El siguiente ejemplo muestra dicho algoritmo: Ejemplo 4.1: Sea P(T) = 2T 4 3T 2 + 3T 4 y x = 2. Para obtener P(2) y P(2) se procede as: 2 2 2 0 4 2 4 3 8 5 3 7 4 10 = P(2) = P(2) 10 14

4 16 42 2 8 21 49

Explicacin: En realidad, el mtodo de Horner es la regla de Ruffini. La primera etapa del algoritmo calcula la divisin de P(T) entre T + 2 : P(T) = Q(T)(T + 2) + r, con Q(T) = 2T 3 4T 2 + 5T 7 y r = 10. El esquema anterior calcula los coeficientes de Q y el resto r. Si en la igualdad previa hacemos T = 2, resulta P(2) = r. Derivando con respecto a T : P(T) = Q(T) + Q(T)(T + 2). Luego, P(2) = Q(2). Este valor Q(2) puede obtenerse del mismo modo que antes, dividiendo Q(T) entre T + 2. Es lo que se hace en la segunda fase del algoritmo. En la generalizacin del esquema de Horner que vamos a presentar, se parte de n nodos (puntos) x 0 , x 1 , , x n1 no necesariamente distintos y n + 1 coeficientes a 0 , a 1 , , a n . Sea entonces el polinomio P(T) = a 0 + a i (T x 0 )(T x 1 )(T x i1 ).
i= 1 n

Notemos que si todos los x i = 0, esta expresin es la "habitual" para un polinomio. Si los nodos x i son todos distintos y los coeficientes a i son diferencias divididas, tal expresin es la frmula de Newton para el polinomio de interpolacin. Si todos los x i son iguales y los a i = i1! f i) (x 0 ), entonces P es un polinomio de Taylor.

56

4. Diferenciacin e integracion numrica

Como ya hicimos en el tema 3, reescribimos P sacando factor comn a los monomios T xi : P(T) = a 0 + (T x 0 ) a 1 + (T x 1 ) a 2 + + (a n1 + (T x n1 )a n ) .

Esta expresin de P sugiere definir de modo recurrente los polinomios P i siguientes: P n (T) = a n y, para i = n 1, n 2, , 0 : P i (T) = a i + (T x i )P i+1 (T). Notemos que, en virtud de la expresin anterior, P 0 = P. Y tambin que, si a n 0, el grado de cada P i es n i y a n es precisamente su coeficiente principal. El siguiente teorema proporciona una expresin recurrente para las derivadas de los polinomios P i : Teorema 4.1: Para r = 1, 2, , n e i = n 1, n 2, , 0 : P i (T) = rP i+1 (T) + (T x i )P i+1 (T) Demostracin: Por induccin en r. Si r = 1 : P i = (a i + (T x i )P i+1 ) = P i+1 + (T x i )P i+1 . Luego se cumple el teorema para r = 1. Sea ahora r > 1 y supongamos cierto el teorema para r 1; esto es: Pi Derivando:
r) r1) r1) r) r 1) r) P i = (r 1 )P i+1 + P i+1 + (T x i )P i+1 = rP i+1 + (T x i )P i+1 . r1) r 2) r 1) = (r 1 )P i + 1 + ( T x i )P i + 1 . r) r 1) r)

Luego es cierto el teorema. Este es el anunciado algoritmo:

ALGORITMO PARA LAS DERIVADAS P r) (x)


Entradas: n, x, x i (i = 0, 1, , n 1), a i (i = 0, 1, , n). Salida: d r (= P r) (x), r = 0, 1, , n). 1: Para i = 0, 1, , n 1 : 1.1: y i = x x i 2: d n = a n 3: Para i = n 1, n 2, , 0 : 3.1: d i = a i + y i d i+1 4: Para r = 1, 2, , n : 4.1: d n = rd n 57

4. Diferenciacin e integracion numrica

4.2: Para i = n 1, n 2, , r : 4.2.1: d i = rd i + y ir d i+1 5: Para r = 0, 1, , n : 5.1: SALIDA: d r FIN Explicacin: En el bucle 1 se guardan las diferencias x x i en la variable y i . En el bucle 3, cada d i = P i (x); en virtud de la definicin recurrente de los polinomios P i . En el r) paso 4.2.1, para i = n 1, , r el nuevo valor de d i es P ir (x). En efecto: Suponiendo que r) r 1) ya es d i+1 = P i+1r (x) y que antes de ejecutarse este paso 4.2.1 d i = P ir+1 (x), entonces el nuevo valor de d i es rd i + y ir d i+1 = rP i+1r (x) + (x x ir )P i+1r (x) = P ir (x), por el teorema anterior. En consecuencia, al concluir el bucle 4, d r = P 0 (x) = P r) (x).
r) r 1) r) r)

Contemos el nmero de operaciones que realiza el algoritmo. En el bucle 1, n restas. En el 3, n productos y otras tantas sumas. En el bucle 4, para cada r se realizan 1 + 2(n r) productos y n r sumas; que suponen 1 + 3(n r) operaciones. Sumando en r :

1 + 3(n r) = n + 3 n r = n + 3 r = n + 3
r= 1 r= 1 5 2 r= 0

n1

(n 1)n . 2

En total: 3n + n +

3 2

(n 1)n =

3 2

n2 +

n operaciones.

Naturalmente, si slo se est interesado en el valor de la primera derivada de P, puede simplificarse el bucle 4 para que el algoritmo slo compute P(x). Con esta simplificacin, el nmero de operaciones se reduce a 6n 3. Ejemplo 4.2: Los siguientes datos corresponden a un polinomio P con grado P 3 : x i : 2 1 0 1 P i : 5 1 1 1 Obtengamos P(2), P(2) y P(2) mediante el algoritmo. Denotando para i = 0, 1, 2, 3 : a i = P[x 0 , , x i ], el algoritmo de diferencias divididas proporciona los datos a 0 = 5, a 1 = 6, a 2 = 3, a 3 = 1. Con estos datos, el algoritmo generalizado de Horner devuelve P(2) = 7, P(2) = 11 y P(2) = 12. Ejemplo 4.3: La siguiente tabla contiene datos de f(x) = xe x : xi : 1. 8 2 2. 1 2. 15 . .

f i : 10. 8894 14. 7781 17. 1489 18. 4574 Aproximemos f (1. 9) y f (1. 9) mediante interpolacin.

58

4. Diferenciacin e integracion numrica

Si para i = i = 0, 1, 2, 3 : a i = f [x 0 , , x i ], el algoritmo de diferencias divididas proporciona los datos a 0 = 10. 8894, a 1 = 19. 4435, a 2 = 14. 215, a 3 = 6. 2809. Si ahora P es el polinomio de interpolacin, el algoritmo generalizado de Horner proporciona las derivadas P(1. 9) = 19. 3807 y P(1. 9) = 25. 9176. Notemos que como f (x) = (x + 1)e x y f (x) = (x + 2)e x , la calculadora permite obtener los valores "exactos" de las derivadas: f (1. 9) = 19. 3891 y f (1. 9) = 26. 075.

2 El error E(x)
Recordemos: E(x) = f (x) P(x), donde P es el polinomio de interpolacin de f en n + 1 nodos x 0 , x 1 , , x n . Veamos al final del tema anterior que si f es derivable n + 1 veces y x x i : E (x ) = f n+1) (c x ) (n + 1)!

(x x i ),
i= 0

donde c x es un punto del mnimo intervalo que contiene a los nodos x i y x. Buscamos una expresin similar para E(x). Para ello, vamos suponer que f es derivable en un intervalo I que contiene a los nodos x i . Denotamos (x) = y, para x I, x x i : (x) = E (x ) . (x)

(x x i )
i= 0

Evidentemente: E(x) = (x)(x), para puntos x I, x x i . En estos mismos puntos: E(x) = (x)(x) + (x)(x). Interesa definir en los nodos x i de modo que tambin sea derivable en ellos. En tal caso, puesto que (x i ) = 0, la igualdad anterior quedara E(x i ) = (x i )(x i ). Y como (x ) = obtendramos

(x x j ),
i= 0 j i

59

4. Diferenciacin e integracion numrica

E(x i ) = (x i ) (x i x j ).
j i

Luego debe ser (x i ) = E (x i ) . j i (x i x j )

Definiendo entonces (x i ) mediante esta igualdad, tenemos extendida a todo el intervalo I. En el siguiente teorema se establece la derivabilidad de . Su demostracin tiene cierta dificultad y la omitimos. Teorema 4.2: Con las notaciones previas, sea k 0 un entero: 1. Si f es de clase k + 1 en I, entonces es de clase k en I. 2. Si f es de clase n + k + 1 en I, entonces k) (x) = k!f n+k+1) (d x ) , (n + k + 1)!

donde d x es un punto del mnimo intervalo que contiene a los nodos x i y x.

Gracias a este teorema, podemos expresar E(x) en trminos de las derivadas de f : Como E(x) = (x)(x) + (x)(x), si f es de clase n + 2 en I, existen puntos c x y d x en el mnimo intervalo que contiene a los x i y x tales que E (x ) = f n+2) (d x ) f n+1) (c x ) (x ) + (x). (n + 1)! (n + 2)!

Sustituyendo (x) y (x) por sus expresiones, queda E (x ) = f n+1) (c x ) (n + 1)!

(x x j ) +
i= 0 j i

f n+2) (d x ) (n + 2)!

(x x i ).
i= 0

Como (x i ) = 0 y (x i ) = x = xi :

j i (x i x j ),
f n+1) (c i ) (n + 1)!

la expresin anterior se simplifica cuando

E (x i ) =

(x i x j ).
j i 1 2 2 0 e x sen t dt :

Ejemplo 4.4: La siguiente tabla contiene datos de f(x) =

60

4. Diferenciacin e integracion numrica

xi : 0

0. 2

0. 4

0. 6

f i : 1 1. 010025 1. 040402 1. 092045 Aproximar f (0. 3) y f (0. 4) y estimar los errores cometidos. Si para i = 0, 1, 2, 3 : a i = f [x 0 , , x i ], proporciona los datos el algoritmo de diferencias divididas

a 0 = 1, a 1 = 0. 050125, a 2 = 0. 2544, a 3 = 0. 019041 Y el algoritmo de Horner proporciona las aproximaciones P(0. 3) = 0. 151695 y P(0. 4) = 0. 204288. Para estimar el error cometido, notamos que las derivadas de f pueden obtenerse diferenciando con respecto a x bajo el signo integral: f n) (x) = Por tanto: |f n) (x)|
1 2 1 2

sen n te x sen t dt.

sen n te x sen t dt

1 2

0 |sen n te x sen t |dt

1 2

e x dt = e x .

Luego n x [0, 0. 6] : |f n) (x)| e 0.6 < 2. Usando entonces las anteriores frmulas para E(x) : |E(0. 3)| = f 4) (c x ) 4! |f 4) (c x )| 4!
3

(0. 3 x j ) +
i= 0 j i 3

f 5) (d x ) 5! |f 5) (d x )| 5!

(0. 3 x i )
i= 0 3 i= 0

|0. 3 x j | +
i= 0 j i 3

|0. 3 x i | <

< 2 4! Y |E(0. 4)| =

2 |0. 3 x j | + 5! i= 0 j i

|0. 3 x i | = 2. 015 10 3 .
i= 0

f 4) (c 2 ) 4!
j i

(0. 4 x j )
j i

|f 4) (c 2 )| 4!

|0. 4 x j |
j i

< 2 4!

|0. 4 x j | = 1. 333 10 3 .

61

4. Diferenciacin e integracion numrica

3 Frmulas de derivacin numrica


Con frecuencia sucede que los nodos x i estn igualmente espaciados; es decir que la distancia entre un nodo x i y el siguiente x i+1 es siempre la misma. En tal caso, y si el nmero de nodos es pequeo, es posible obtener frmulas directas para la aproximacin P(x i ). Su empleo es siempre ms cmodo que el algoritmo dado en 1. Para mostrar el origen de estas frmulas, consideramos la frmula de Lagrange para el polinomio de interpolacin: P (x ) = La derivada L j (x) =

f j L j (x ),
j= 0

con L j (x) =

i j

x xi xj xi .

i j

ki,j x x k kj x j x k
L j (x j ) =

i j

1 xj xi

ki,j

x xk xj xk .

El valor de L j en el nodo x j es entonces:

i j

1 xj xi ,

y para i j : 1 L j (x i ) = x j xi Luego, fj 1 P(x i ) = f i L i (x i ) + f j L j (x i ) = f i x i xj + xj xi


j i j i j i

ki,j

xi xk . xj xk

ki,j

xi xk . xj xk

En el caso que los nodos estn igualmente espaciados, pongamos que x i+1 x i = h para i = 0, 1, , n 1, entonces x i x j = h(i j) y la expresin anterior queda: P (x i ) = fi h

j i

1 + 1 ij h

j i

fj ji

ki,j

ik. jk

Por otra parte, la anterior frmula para E(x i ) queda: E (x i ) = f n+1) (c i ) (n + 1)!

(x i x j ) =
j i

f n+1) (c i ) n h (i j ). (n + 1)! j i

Y llevando ambas frmulas a la igualdad f (x i ) = P(x i ) + E(x i ), se obtiene la siguiente

62

4. Diferenciacin e integracion numrica

frmula general de diferenciacin numrica: f (x i ) = fi h

j i

1 + 1 ij h

j i

fj ji

ki,j

n+1) i k + f (c i ) h n (i j ). (n + 1)! jk j i

Los casos ms utilizados corresponden a los valores n = 2, 3 y 4; dando lugar a las llamadas frmulas de 3, 4 y 5 puntos. Las exponemos a continuacin: Frmulas de 3 puntos: Corresponden al valor n = 2 y 3 nodos x 0 , x 1 y x 2 igualmente espaciados, como se indica en la siguiente figura:

Figura 4.1: 3 nodos igualmente espaciados.

Segn la frmula previa, si f es de clase 3 en el intervalo [x 0 , x 2 ] : f (x 0 ) = f 1 2 f0 1 f + 1 + 1 + 2 1 2 1 2 h 1 h 1 1 f 3) (c 0 )h 2 3f 0 + 4f 1 f 2 = + , 3 2h + f 3) (c 0 ) 2 h (1)(2) = 3!

con c 0 [x 0 , x 2 ]. Del mismo modo se deducen frmulas para f (x 1 ) y f (x 2 ) : f 3) (c 1 )h 2 f 0 + f 2 6 2h f 3) (c 2 )h 2 f 4f 1 + 3f 2 f (x 2 ) = 0 + 3 2h f (x 1 ) = con c 1 , c 2 [x 0 , x 2 ]. Frmulas de 4 puntos: Ahora tenemos 4 nodos x 0 , x 1 , x 2 y x 3 igualmente espaciados, a distancia h cada uno del siguiente:

Figura 4.2: 4 nodos igualmente espaciados.

Desarrollando la frmula general de diferenciacin nmerica se obtienen estas otras 4:

63

4. Diferenciacin e integracion numrica

f 4) (c 0 )h 3 11f 0 + 18f 1 9f 2 + 2f 3 4 6h 4) f (c 1 )h 3 2f 0 3f 1 + 6f 2 f 3 f (x 1 ) = + 12 6h 4) f (c 2 )h 3 f 6f 1 + 3f 2 + 2f 3 f (x 2 ) = 0 12 6h f 4) (c 3 )h 3 2f 0 + 9f 1 18f 2 + 11f 3 f (x 3 ) = + 4 6h f (x 0 ) = con los c i [x 0 , x 3 ]. Frmulas de 5 puntos: Para 5 nodos x i (i = 0, 1, 2, 3, 4) igualmente espaciados: f (x 0 ) = f (x 1 ) = f (x 2 ) = f (x 3 ) = f (x 4 ) = con los c i [x 0 , x 4 ]. . Ejemplo 4.5: Consideremos la funcin f(x) y la tabla de datos del ejemplo 4.4 anterior. Como los nodos estn igualmente espaciados, podemos aproximar f (0. 4) con la frmula de 4 puntos para f (x 2 ) : f (0. 4) f 0 6f 1 + 3f 2 + 2f 3 1. 040402 + 21. 092045 = 0. 204288. = 1 61. 010025 + 36 0. 2 6h f 5) (c 0 )h 4 25f 0 + 48f 1 36f 2 + 16f 3 3f 4 + 5 12h 5) f (c 1 )h 4 3f 0 10f 1 + 18f 2 6f 3 + f 4 20 12h f 5) (c 2 )h 4 f 0 8f 1 + 8f 3 f 4 30 12h f 5) (c 3 )h 4 f 0 + 6f 1 18f 2 + 10f 3 + 3f 4 20 12h f 5) (c 4 )h 4 3f 0 16f 1 + 36f 2 48f 3 + 25f 4 5 12h

Naturalmente, el resutado obtenido es el mismo que el proporcionado por el algoritmo usado en el ejemplo 4.4. Tambin podemos estimar el error con la misma frmula de 4 puntos: |E(0. 4)| = f 4) (c 2 )h 3 12
3 < 20. 2 = 1. 33 10 3 , 12

ya que n x [0, 0. 6] : |f n) (x)| < 2; segn vimos en el ejemplo 4.4. Aunque 0. 3 no es uno de los nodos de la tabla, podemos aproximar f(0. 3) mediante la frmula de 3 puntos para f (x 1 ); ya que no requiere conocer f 1 . Hemos de poner x 0 = 0. 2, x 2 = 0. 4 y h = 0. 1 : f (0. 3) f 0 + f 2 + 1. 040402 = 0. 151885. = 1. 010025 20. 1 2h

El resultado obtenido es ligeramente distinto del calculado en el ejemplo 4.4. La razn es que ahora interpolamos con 3 puntos en lugar de 4. Por esta misma razn, la nueva estimacin del error es un poco mayor:

64

4. Diferenciacin e integracion numrica

|E(0. 3)| =

f 3) (c 1 )h 2 6

2 < 20. 1 = 3. 33 10 3 . 6

En ocasiones, tambin interesa aproximar la derivada segunda. Tambin hay fmulas anlogas para esta derivada segunda, obtenidas del mismo modo. Las empleadas habitualmente corresponden a los valores n = 2 4, para los nodos centrales. Son las siguientes: Frmulas de 3 puntos para f : Si x 0 , x 1 y x 2 estn igualmente espaciados, a distancia h cada uno del siguiente: f (x 1 ) = siendo c 1 [x 0 , x 2 ]. Frmulas de 5 puntos para f : Para 5 nodos x i igualmente espaciados: f (x 2 ) = siendo c 2 [x 0 , x 4 ]. Ejemplo 4.6: Siguiendo con los datos del ejemplo 4.4, aproximemos f (0. 4) y estimemos el error cometido mediante la anterior frmula de 3 puntos. Siendo x 0 = 0. 2, x 1 = 0. 4, x 2 = 0. 6 y h = 0. 2 : f (0. 4) Y el error |E(0. 4)| = f 4) (c 1 )h 2 12
2 20. 2 = 0. 66 10 2 . 12

f 4) (c 1 )h 2 f 0 2f 1 + f 2 , 12 h2

f 6) (c 2 )h 4 f 0 + 16f 1 30f 2 + 16f 3 f 4 , 90 12h 2

f 0 2f 1 + f 2 + 1. 092045 = 0. 53165. = 1. 010025 21. 040402 0. 2 2 h2

4 Frmulas de Newton-Cotes
Seguidamente, abordamos el problema de la integracin numrica. Sea entonces un intervalo [a, b], con a < b, y f una funcin integrable en dicho intervalo. Fijamos tambin a un entero positivo n, ponemos h = b n y consideramos los n + 1 puntos de ese intervalo x 0 , x 1 , , x n , siendo x i = a + ih.

65

4. Diferenciacin e integracion numrica

Figura 4.3: Los nodos x i

Para estos nodos x i suponemos conocidos los valores f i = f (x i ). Como en secciones previas, sea P el polinomio de interpolacin para estos datos y E el error cometido. Las frmulas de Newton-Cotes se obtienen al desarrollar la igualdad

a
Segn la frmula de Lagrange: P (x ) = de modo que la integral
n

f=

P + E.
a

f j L j (x ),
j= 0

con L j (x) =

i j b

x xi xj xi ,

P(x) dx =

a j= 0

f j L j (x) dx =

fj a
j= 0 i j

x xi x j x i dx.

Hagmos el cambio de variable x = a + th en estas integrales. Cuando x = a, t = 0; si x = b, t = n. Y el cociente x xi ti xj xi = j i . Luego,

a i j
b

n x xi ti x j x i dx = h 0 j i dt. i j

Notemos que estas ltimas integrales no dependen de f ni del intervalo [a, b]; slo del entero n y el ndice j = 0, 1, , n. Por ello, tiene sentido denotar j ( n) = Entonces:

0 i j
n

t i dt. ji

66

4. Diferenciacin e integracion numrica

a a P(x) dx = b n
b

f j j (n).
j= 0 b

La obtencin de una expresin para el error a E es mucho ms complicado y no lo haremos. Slo enunciamos el siguiente teorema cuya demostracin figura en textos avanzados de Anlisis Numrico (vase el texto de Isaacson/Keller "Analysis of Numerical Methods", pag. 313): Teorema 4.3: Con las notaciones previas: 1. Si n es impar y f C n+1) ([a, b]), existe d [a, b] tal que

a a
b

E(x) dx =

(b a) n+2 f n+1) (d) n n+2 (n + 1)!

0 t(t 1)(t n) dx.

2. Si n es par y f C n+2) ([a, b]), existe d [a, b] tal que E(x) dx = (b a) n+3 f n+2) (d) n n+3 (n + 2)!
b

0 t 2 (t 1)(t n) dx.
b

Con estas expresiones para a E y las anteriores de a P, las frmulas de Newton-Cotes para los valores n = 1, 2, 3 y 4 son las siguientes: Caso n = 1. Regla del trapecio: Los dos coeficientes j (1) :

0 1 1 (1) = 0
0 (1) = Y la integral del teorema 4.3:
1

t 1 dx = 1 01 2 t 0 dx = 1 10 2

0 t(t 1) dx = 1 6
Luego, si f C 2) ([a, b]), la frmula del trapecio queda:
3 b a (f(a) + f(b)) (b a) f (d) , f ( x ) dx = a 12 2 b

siendo d [a, b]. Caso n = 2. Regla de Simpson: Los tres coeficientes j (2) : 0 (2) = 1 (2) = 2 (2) = (t 1)(t 2) dx = 1 3 (0 1)(0 2) (t 0)(t 2) dx = 4 3 (1 0)(1 2) (t 0)(t 1) dx = 1 . 3 (2 0)(2 1)

0 0 0

67

4. Diferenciacin e integracion numrica

Y la integral del teorema 4.3: 4 . 0 t 2 (t 1)(t 2) dx = 15 Por tanto, si f C 4) ([a, b]), la frmula de Simpson queda:
5 4) b a (f(a) + 4f(x 1 ) + f(b)) (b a) f (d) , 2880 6 2

a f(x) dx =

siendo x 1 = a + b y d [a, b]. 2 De igual manera se obtienen las siguientes dos reglas: Caso n = 3. Regla 3 : Si f C 4) ([a, b]), 8
5 4) b a (f(a) + 3f(x 1 ) + 3f(x 2 ) + f(b)) (b a) f (d) , f ( x ) dx = a 8 6480 siendo x i = a + i b a y d [a, b]. 3 b

Caso n = 4. Regla de Boole: Si f C 6) ([a, b]),


7 6) b a (7f(a) + 32f(x 1 ) + 12f(x 2 ) + 32f(x 3 ) + 7f(b)) (b a) f (d) , f ( x ) dx = a 90 1935360 siendo x i = a + i b a y d [a, b]. 4 b

Ejemplo 4.7: Aproximemos la integral I = 0 f(x) dx, con f(x) = e x , mediante las frmulas anteriores.
1
2

Segn la regla del trapecio: I 1 0 (f(0) + f(1)) = 0. 6839397. 2 Mediante la de Simpson: I 1 0 f(0) + 4f( 1 ) + f(1) = 0. 7471804. 2 6 Usando la regla
3 8

I 1 0 f(0) + 3f( 1 ) + 3f( 2 ) + f(1) = 0. 7469923. 3 3 8 Y con la de Boole: I 1 0 7f(0) + 32f( 1 ) + 12f( 1 ) + 32f( 3 ) + 7f(1) = 0. 7468337. 4 2 4 90 El valor "exacto" de I es 0. 7468241. Como era de esperar, la regla de Boole proporciona la mejor aproximacin; y la del trapecio la peor.

68

4. Diferenciacin e integracion numrica

5 Integracin compuesta
La expresin del error en las frmulas de Newton-Cotes muestra que, por lo general, si la longitud del intervalo [a, b] es grande y se desea cierta aproximacin, ha de emplearse una frmula con un grado n elevado; cuya obtencin puede ser excesivamente tediosa. En lugar de tal frmula, es preferible emplear la integracin compuesta; esto es, dividir el intervalo [a, b] en subintervalos de longitud suficientemente pequea y emplear en cada uno de ellos la anterior regla del trapecio o de Simpson. Expliquemslo ms detenidamente. Comencemos con la regla compuesta del trapecio. Como en la seccin anterior, fijado a un entero positivo n, dividimos el intervalo [a, b] en n subintervalos de longitud h = b n considerando para i = 0, 1 , n los puntos x i = a + ih (vase la figura 4.4).

Figura 4.4: Regla compuesta del trapecio.

Descomponemos la integral a f en la suma

a f

x1
0

f + f + +
x1

x2

xn x n1

f =

x
i= 1

xi
i1

f.

Suponiendo que f C 2) ([a, b]), aplicamos la anterior frmula del trapecio a cada sumando: x i x i1 (f + f ) (x i x i1 ) 3 f (d i ) , f = i 1 i xi1 2 12
xi

donde f i = f(x i ) y d i [x i1 , x i ]. Como x i x i1 = h, queda

a f

i= 1

3 h (f i1 + f i ) h f (d i ) = h 2 12 2

f i 1
i= 1

3 + fi h 12

f (d i ).
i= 1

Se verifica que

69

4. Diferenciacin e integracion numrica

f (d i ) = nf (d),
i= 1

para cierto d [a, b]. En efecto: Puesto que f es continua, la imagen del intevalo [a, b] es otro intervalo cerrado y acotado; esto es: f ([a, b]) = [, ], para ciertos , . Como cada d i [a, b], f (d i ) . Entonces: n = As: 1 n


i= 1

f (d i )
i= 1 n

= n.
i= 1

f (d i ) .
i= 1

Y como [, ] = f ([a, b]), existe d [a, b] tal que f (d) = 1 n De donde se sigue la igualdad deseada. Sustituyendo en la anterior expresin para a f :
b n

f (d i ).
i= 1

a f = h 2
Llegamos as a la

f i 1 + f i
i= 1

3 h nf (d). 12

Frmula compuesta del trapecio: Sean f C 2) ([a, b]) y n . Entonces:


3 b a (f 0 + 2f 1 + 2f 2 + + 2f n1 + f n ) (b a) f (d) , f = a 2n 12n 2 a donde f i = f(x i ), x i = a + i b n y d [a, b]. b

Si f es de clase 2 en [a, b], entonces |f | est acotada en este intervalo: M tal que x [a, b] |f (d)| M. Luego, el error (b a) 3 f (d) 12n 2 (b a) 3 M . 12n 2

Y considerando n suficiente grande, podemos conseguir que este error sea tan pequeo como deseemos. Por ejemplo, si deseamos un error < : (b a) 3 M 12n 2 < > 1 n > 2 12n (b a) 3 M
1

1 (b a) 3 M . 12
2

Ejemplo 4.8: Calculemos la integral I = 0 f(x) dx, f(x) = e x , con error < 10 5 y mediante la anterior frmula compuesta del trapecio. En primer lugar, acotamos |f | en [0, 1]. Puesto que f (x) = 2(1 + 2x 2 )e x , si
2

70

4. Diferenciacin e integracion numrica

x [0, 1] : |f (x)| = 2(1 + 2x 2 )e x


2 2

= 2|1 + 2x 2 |e x 2,
2

ya que, en [0, 1], tanto |1 + 2x 2 | como e x estn acotados por 1. Segn desigualdad anterior, el entero n que asegura un error menor que 10 5 debe ser mayor que: 1 (b a) 3 M = 12 10 5 (1 0) 3 2 = 129. 099. 12
129 i= 1

Luego, basta tomar n = 130 en la frmula compuesta del trapecio. As:

0 e

x 2

dx 1 0 2130

e + 2 e (i/130) + e 1
0
2

= 0. 7468207,

con error < 10 5 . (Naturalmente, las operaciones se han realizado con un programa ejecutado en un ordenador). Seguidamente, obtenemos la frmula compuesta de Simpson. Para ello, es necesario que el entero n sea par; pongamos n = 2m. Ahora dividimos el intervalo [a, b] en m subintervalos [a, x 2 ], [x 2 , x 4 ], , [x n2 , x n ]; donde los puntos x i son como antes: a x i = a + ih, con h = b n . (Vase la figura 4.5).

Figura 4.5: Regla compuesta de Simpson

Descomponemos la integral a f en la suma

a f
x 2i

x2
0

f + f + +
x2

x4

xn x n2

f =

x
i= 1

x 2i
2i2

f.

Suponiendo que f C 4) ([a, b]), aplicamos la frmula de Simpson a cada sumando: (x 2i x 2i2 ) 5 f 4) (d i ) x 2i x 2i2 (f ) f = + 4 f + f , 2 i 2 2 i 1 2 i x2i2 6 2880 donde f i = f(x i ) y d i [x 2i2 , x 2i ]. Como x 2i x 2i2 = 2h, queda

71

4. Diferenciacin e integracion numrica

f=

i= 1

5 4) h (f 2i2 + 4f 2i1 + f 2i ) h f (d i ) = 3 90

= h 3

f 2i2 + 4f 2i1 + f 2i
i= 1 m

5 h 90

f 4) (d i ).
i= 1

Gracias a la continuidad de f 4) , la suma

f 4) (d i ) = mf 4) (d),
i= 1

para cierto d [a, b]. (La prueba de ello es repetir el mismo argumento dado antes en la obtencin de la frmula compuesta del trapecio). Sustituyendo en la anterior expresin para a f :
b m

a f = h 3
Esta es la denominada

f 2i2 + 4f 2i1 + f 2i
i= 1

5 h mf 4) (d). 90

Frmula compuesta de Simpson: Sean f C 4) ([a, b]) y n un entero positivo y par. Entonces:
5 4) b a (f 0 + 4f 1 + 2f 2 + 4f 3 + 2f 4 + 4f n1 + f n ) (b a) f (d) , f = a 3n 180n 4 a donde f i = f(x i ), x i = a + i b n y d [a, b]. b

Observamos que, en la expresin del error de esta frmula, aparece el factor n 4 en el denominador; el cual crece muy rpidamente. As, con valores no muy grandes de n puede alcanzarse un error suficientemente pequeo. Concretamente, si M es tal que x [a, b] |f 4) (x)| M, el error (b a) 5 f 4) (d) 180n 4 Por tanto, si se desea un error absoluto < :
4 (b a) 5 M < 180n5 > 1 n > 4 (b a) M 180n
4

(b a) 5 M . 180n 4 1 (b a) 5 M . 180
2

Ejemplo 4.9: Consideremos de nuevo la integral I = 0 f(x) dx, f(x) = e x . Vimos en el ejemplo 4.7 que para asegurar un error < 10 5 con la frmula del trapecio era necesario un valor n 130. Probemos con la regla compuesta de Simpson.
1

La derivada f 4) (x) = 4(3 12x 2 + 4x 4 )e x . Luego si x [0, 1] :


2

|f 4) (x)| = 4|3 12x 2 + 4x 4 |e x 4|3 12x 2 + 4x 4 |.


2

En [0, 1], el polinomio P(x) = 3 12x + 4x 2 es decreciente. Como P(0) = 3 y P(1) = 5, resulta que x [0, 1] |P(x)| 5. Luego, tambin x [0, 1] |3 12x 2 + 4x 4 | 5 y, por 72

4. Diferenciacin e integracion numrica

tanto, |f 4) (x)| 45 = 20. As pues, el entero n que asegura un error menor que 10 5 debe ser mayor que:
4

1 (b a) 5 M = 180

10 5 (1 0) 5 20 = 10. 27. 180

Por tanto, basta tomar n = 12 en la frmula compuesta de Simpson para asegurar un error < 10 5 . De modo anlogo a como se han obtenido las reglas compuestas del trapecio y de Simpon, pueden derivarse las correspondientes frmulas 3/8 y de Boole. Son las siguientes: Frmula compuesta 3 : Sean f C 4) ([a, b]) y n un entero positivo multiplo de 3. 8 Entonces: 3(b a) (b a) 5 f 4) (d) ( f + 3 f + 3 f + 2 f + 3 f + 3 f + 2 f + + 3 f + f ) , 0 1 2 3 4 5 6 n 1 n a 8n 80n 4 a donde f i = f(x i ), x i = a + i b n y d [a, b].
b

f=

Frmula compuesta de Boole: Sean f C 6) ([a, b]) y n un entero positivo multiplo de 4. Entonces: 2(b a) 2(b a) 7 f 6) (d) ( 7 f + 32 f + 12 f + 32 f + 14 f + + 32 f + 7 f ) , 0 1 2 3 4 n 1 n a 45n 945n 6 a donde f i = f(x i ), x i = a + i b n y d [a, b].
b

f=

Ejercicios
1. De un polinomio P(x) de grado 3 se conocen los siguientes datos: x i : 2 1 0 1 P i : 5 1 1 1 Calcular P(1) y P(1) mediante el algoritmo generalizado de Horner. x 2. La siguiente tabla contiene datos de f(x) = sen t dt : t 1 xi : 1 1. 2 1. 3 1. 5 f i : 0 0. 16196 0. 23787 0. 37860 .

Aproximar f (1. 3), f (1. 3), f (1. 25) y f (1. 25) usando el algoritmo generalizado de Horner. Comparar con los valores "exactos" obtenidos al derivar f mediante el teorema fundamental del Clculo. 3. La siguiente tabla contiene datos de una funcin f(x) infinitamente derivable y tal que n x |f n) (x)| 2 :

73

4. Diferenciacin e integracion numrica

xi : 0

0. 1

0. 25

0. 3

f i : 1 1. 0948 1. 2163 1. 2508

Aproximar f (0. 1), y f (0. 2). Estimar tambien el error cometido. 1 cos(x sen t)dt : 4. He aqu algunos valores de la funcin de Bessel f(x) = 0 x 0 0. 2 0. 4 0. 6 0. 7 0. 9 f(x) 1 0. 990025 0. 960398 0. 912005 0. 881201 0. 807524 Sabiendo que f es infinitamente derivable y que n x |f n) (x)| 1, calcular f (0. 4), y f (0. 8) con error < 10 4 . 5. La siguiente tabla corresponde a f(x) = xi : 0 0. 2
1 2

e x sen t dt : 0. 6 0. 8 1

0. 4

f i : 1 1. 010025 1. 040402 1. 092045 1. 166515 1. 266066 Sabiendo que n x |f n) (x)| e x y usando frmulas de diferenciacin numrica, calcular: a) f (0. 8) con error < 10 3 . b) f (0. 4) con error < 10 3 . c) f (0. 5) con error < 10 2 . d) f (0. 6) con error < 10 3 . 6. Para un circuito con voltaje V(t), intensidad I(t), resistencia R e inductancia L, la primera ley de Kirchhoff establece la relacin V(t) = LI (t) + RI(t). Se mide la intensidad para algunos valores del tiempo t y se obtiene la siguiente tabla: t: 1 1. 01 1. 02 1. 03 1. 04 I(t) : 3. 10 3. 12 3. 14 3. 18 3. 24 .

Estimar el voltaje en los tiempos t = 1 y t = 1. 04 sabiendo que R = 0. 142 ohmios y L = 0. 98 henrios. 7. Usando la frmula compuesta del trapecio, calcular, con error < 10 3 : 1 log 2 2 a) 0 1 + x 3 dx. b) 0 cos e x dx. c) 1 log(sen x) dx. d) 04 sen x 2 dx. 8. Usando la frmula compuesta de Simpson, calcular, con error < 10 5 : 3 0.5 2 2 x dx. b) 1 log 2 x dx. c) 04 cos d) 0 1 3 dx. a) 0 e x dx. x 9. Sea f(x) la funcin del ejercicio 4. Calcular 11. La siguiente tabla contiene valores de f(x) xi : 0 Calcular 0 f con error < 10 4 .
1 1+x 0.6 f con error < 10 4 . 0 1 f con error < 10 4 . 0 x = cos(t 2 )dt : 0

10. Sea f(x) la funcin del ejercicio 5. Calcular

0. 2

0. 4

0. 6

0. 8

f i : 0 0. 199968 0. 398977 0. 59227 0. 767847 0. 904524

12. La intensidad de corriente es la carga que pasa por una seccin de conductor por unidad de tiempo. Ms formalmente, si Q(t) es la carga que ha pasado por el conductor en el instante t, la intensidad I(t) = Q(t). En el ejercicio 6, qu carga pas por el conductor entre los instantes t 0 = 1 y t 1 = 1. 04?

74

5. Resolucin numrica de sistemas de ecuaciones lineales

5. Resolucin numrica de sistemas de ecuaciones lineales

La resolucin de un sistema de ecuaciones lineales es una tarea frecuente en muchas disciplinas cientficas. Cuando el nmero de ecuaciones es pequeo, el sistema puede resolverse "a mano", empleando lpiz y papel como nicas herramientas. El problema est cuando hay un nmero elevado de ecuaciones. En este caso, su resolucin requiere el uso de un programa en el ordenador. Los textos de Anlisis Numrico clasifican los diferentes mtodos para resolver un sistema lineal en dos grupos. Uno, los llamados mtodos directos; otros los denominados mtodos iterativos. Los primeros proporcionan soluciones exactas del sistema (naturalmente, no son exactas en la prctica; por los errores de redondeo). Los segundos suministran soluciones aproximadas; concretamente: generan una sucesin recurrente que converge a una solucin exacta. La conveniencia de un mtodo u otro depende de las caractersticas del sistema de ecuaciones. En estas notas estudiaremos nicamente algunos mtodos directos. Los que tienen su base en la eliminacin gausiana y slo requieren conocer las nociones ms bsicas sobre matrices.

1 Sistemas de ecuaciones y matrices.


Fijemos un cuerpo conmutativo como, por ejemplo, , o . Un sistema de m ecuaciones lineales, n incgnitas x 1 , x 2 , , x n y coeficientes en es el formado por m igualdades de la forma a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2 ... a m1 x 1 + a m2 x 2 + + a mn x n = b m donde los a ij y los b j estn en y se llaman, respectivamente, coeficientes del sistema y

75

5. Resolucin numrica de sistemas de ecuaciones lineales

trminos independientes. Notemos que podemos escribir el sistema de ecuaciones en forma matricial, de este modo: a 11 a 12 a 1n a 21 a 22 a 2n a m1 a m2 a mn O, abreviadamente, AX = b. La matriz A, que tiene m filas y n columnas, se denomina matriz de coeficientes. Introducimos tambin la denominada matriz ampliada: a 11 a 12 a 1n b 1 B= a 21 a 22 a 2n b 2 a m1 a m2 a mn b m formada al aadir a la matriz A la columna de los trminos independientes. En realidad, el sistema est completamente deteminado por su matriz ampliada; ya que los signos que usemos para representar a las incgnitas es irrelevante. Ejemplo 5.1: He aqu dos sistemas de ecuaciones con coeficientes en , escritos tambin en forma matricial: 2x 1 x 2 + x 3 = 2 x1 + x2 x3 = 1 x1 x2 = 0 x1 x2 = 2 2 1 1 1 1 1 x1 x2 x3 x1 x2 = 0 2 = 2 1 , x1 x2 xn = b1 b2 bm .

S1 :

S2 :

1 1 1 1

Una solucin del sistema es una n-upla s = (s 1 , s 2 , , s n ) n tal que al sustituir cada incgnita x i por s i se cumplen todas las ecuaciones. En trminos matriciales: AS = b, donde S es la matriz columna formada con las componentes s j . Diremos que el sistema es compatible si admite alguna solucin; e incompatible en caso contrario. Un sistema compatible se dice determinado si tiene una nica solucin; e indeterminado si posee ms de una. Ejemplo 5.2: El sistema S 1 del ejemplo 5.1 es compatible indeterminado, ya que las ternas (1, 0, 0) y (1, 1, 1) son soluciones. De hecho, todas sus soluciones son de forma 76

5. Resolucin numrica de sistemas de ecuaciones lineales

(1, , ), con . El otro sistema S 2 es incompatible. En efecto: Si (s 1, s 2 ) 2 fuese una solucin, entonces s 1 s 2 = 0 y s 1 s 2 = 2. Luego, 0 = 2; que es una contradiccin. Resolver un sistema consiste en decidir si es compatible o no; y, en tal caso, determinar sus soluciones. Ha sido muy fcil resolver los dos sistemas del ejemplo 5.1 porque slo constaban de dos ecuaciones. Como ya dijimos antes, el problema est cuando el nmero de ecuaciones es elevado. El teorema que sigue es la base del mtodo de Gauss que estudiaremos en la segunda seccin. Teorema 5.1: Si a una ecuacin de un sistema le sumamos otra multiplicada por un coeficiente , el sistema resultante tiene las mismas soluciones que el inicial. Demostracin: Sea S el sistema a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 S: a 21 x 1 + a 22 x 2 + + a 2n x n = b 2 y, para simplificar, supongamos que a la segunda ecuacin le sumamos la primera multiplicada por . Obtenemos un nuevo sistema S que tiene las mismas ecuaciones que S excepto la segunda, que tras sacar factor comn a las incgnitas queda as: a 11 x 1 S : + a 12 x 2 + Si en lugar de operar con las indeterminadas x 1 , x 2 , , x n lo hacemos con una solucin s = (s 1 , s 2 , , s n ) de S, obtenemos que tambin s cumple la segunda ecuacin de S. En consecuencia, s es solucin de S. Por tanto, toda solucin de S lo es de S. Recprocamente, podemos recuperar la segunda ecuacin de S multiplicando la primera ecuacin de S por y sumndola a la segunda. Luego, por la misma razn de antes, toda solucin de S lo es de S. As pues, S y S tienen las mismas soluciones. Repitiendo varias veces la operacin indicada en este teorema 5.1, obtenemos que: Si a una ecuacin de un sistema le sumamos otras multiplicadas por ciertos coeficientes del cuerpo , el sistema resultante tiene las mismas soluciones que el inicial. Tal suma de ecuaciones multiplicadas por coeficientes se denomina combinacin lineal. + a 1n x n = b 1 (a 21 + a 11 )x 1 + (a 22 + a 12 )x 2 + + (a 2n + a 1n )x n = b 2 .

77

5. Resolucin numrica de sistemas de ecuaciones lineales

2 El mtodo de eliminacin de Gauss.


Esencialmente, la idea de este mtodo es muy simple: Consiste en aplicar una y otra vez el teorema 5.1, eliminando progresivamente incgnitas en las ecuaciones, para pasar del sistema inicial a otro en el que sus incgnitas pueden ser despejadas de modo recursivo, obteniendo as sus soluciones. El siguiente ejemplo muestra esta idea. Ejemplo 5.3: Sea el siguiente sistema con coeficientes en : x 2y + z = 3 2x 3y + z = 3 x 3y 2z = 0 Eliminamos la incgnita x en la segunda ecuacin sumando a esta ecuacin la primera multiplicada por 2. Tambin suprimimos x en la tercera ecuacin sumando a esta ecuacin la primera: x 2y + z = 3 y z = 3 5y z = 3 Sumamos a la tercera ecuacin la segunda multiplicada por 5, eliminando as la indeterminada y : x 2y + z = 3 y z = 3 6z = 12 En virtud de esta tercera ecuacin, z = 2. A continuacin, despejamos primero y en la segunda ecuacin y despus x en la primera: y = 3 + z = 3 + 2 = 1 x = 3 + 2y z = 3 + 2(1) 2 = 1 Luego, la nica solucin del sistema es (1, 1, 2).

En efecto, el ejemplo previo ha mostrado la idea esencial del mtodo; pero no algunas dificultades que pueden surgir en l, las cuales quedarn de manifiesto en la discusin genrica que sigue a continuacin. Sea entonces un sistema de ecuaciones. Como ya notamos antes, el sistema queda definido por su matriz ampliada B. Sealamos ahora que las operaciones entre las 78

5. Resolucin numrica de sistemas de ecuaciones lineales

ecuaciones del sistema se corresponden con operaciones entre las filas de B. De hecho, es ms cmodo operar con las filas de B que con las ecuaciones porque no tenemos que escribir una y otra vez las incgnitas. Detallemos esta matriz ampliada: a 11 a 12 a 1n b 1 B= a 21 a 22 a 2n b 2 a m1 a m2 a mn b m Nos fijamos en a 11 . Si a 11 = 0, consideramos algn a ij que no fuese nulo y permutamos tanto las filas primera e i sima como las columnas primera y j sima. Tras hacerlo, el nuevo a 11 0. El intercambio de filas se corresponde con otro de ecuaciones en el sistema. Obviamente, ello no altera las soluciones. El intercambio de las columnas primera y j sima se corresponde con una permutacin de las incgnitas x 1 y x j en el sistema. Conviene apuntar en alguna parte el nuevo orden de las incgnitas. Seguidamente, a i1 . El nuevo para i = 2, 3, , m, sumamos a la fila i sima la primera multiplicada por a 11 primer elemento de esta fila i sima resulta a i1 a = 0. a i1 a 11 11 Luego, tras estas operaciones, la matriz B queda as: a 11 a 12 a 1n b 1 B= 0 0 a 22 a 2n b 2 a m2 a mn b m . .

(Obviamente, para i 2, los elementos a ij y b i son distintos a los iniciales.) Nos fijamos ahora en a 22 . Si a 22 = 0, consideramos algn a ij 0, con i 2 y j > 2, y permutamos tanto la filas segunda e i sima como las columnas segunda y j sima, consiguiendo as que el nuevo a 22 0. Como antes, si hemos permutado las columnas, anotamos el nuevo orden de las incgnitas en alguna parte. Seguidamente, para a i2 . Con ello i = 3, 4 , m, sumamos a la fila i sima la segunda multiplicada por a 22 anulamos los elementos debajo de a 22 y, tras hacerlo, la matriz B queda as: a 11 a 12 a 13 a 1n b 1 0 B= 0 0 a 22 a 23 a 2n b 2 0 0 a 33 a 3n b 3 a m3 a mn b m .

Naturalmente, en este segundo paso puede ocurrir que, para i, j 2, todos los a ij = 0. En tal caso, al ser imposible lograr mediante permutaciones de filas o columnas que el nuevo a 22 0, paramos el proceso.

79

5. Resolucin numrica de sistemas de ecuaciones lineales

De este modo, tras r pasos (con r n, m), llegaremos a una matriz B con el siguiente aspecto: a 11 a 12 a 1r a 1,r+1 a 1n 0 B= 0 0 0 donde a 11 , a 22 , , a rr 0. Esta primera etapa del algoritmo recibe el nombre de fase de eliminacin. La busqueda de elementos a ii no nulos en la diagonal principal de la matriz B se denomina pivoteo. La anterior matriz se corresponde con el siguiente sistema de ecuaciones: a 11 x 1 + a 12 x 2 + + a 1r x r + a 1,r+1 x r+1 + + a 1n x n = b 1 a 22 x 2 + + a 2r x r + a 2,r+1 x r+1 + + a 2n x n = b 2 a rr x r + a r,r+1 x r+1 + + a rn x n = b r 0 = b r+ 1 0 = bm donde, si hemos permutado la columnas de la matriz B, las incgnitas aparecern ordenadas de otra manera. Este sistema tiene las mismas soluciones que el inicial, en virtud del teorema 5.1. Distinguimos tres casos: Caso 1: r < m y algn b r+1 , , b m 0. En este caso, en el sistema figura la ecuacin 0 = b i , con b i 0. No puede haber solucin en un sistema que incluya una ecuacin como sta. Estamos ante un sistema incompatible. Caso 2: r = n y, si r < m, todos b r+1 , , b m = 0. En este caso, desconsiderando las ltimas filas de ceros, la matriz B es as: a 22 a 2r a 2,r+1 a 2n 0 0 0 0 0 0 0 0 0 a rr a r,r+1 a rn b1 b2 br b r+ 1 bm ,

80

5. Resolucin numrica de sistemas de ecuaciones lineales

a 11 a 12 0 B= 0 0 a 22 0 0

a 1,n1 a 2,n1 0

a 1n a 2n a nn

b1 b2 bn .

a n1,n1 a n1,n b n1

Como a nn 0, podemos anular los elementos a in , con i = 1, 2, , n 1, sumando a la a in . Tras hacelo, fila i sima la ltima multiplicada por a nn a 11 a 12 0 B= 0 0 a 22 0 0 a 1,n1 a 2,n1 0 0 0 0 a nn b1 b2 b n1 bn ,

a n1,n1

(naturalmente, los elementos b i han variado). Del mismo modo, como a n1,n1 0, podemos anular los elementos que estn por encima de l en su misma columna. Y los de las dems columnas, en orden decreciente. Al final, la matriz B queda de este modo: a 11 0 B= 0 0 0 0 0 0 0 0 0 0 0 a nn b1 b2 b n1 bn .

a 22

a n1,n1

Ahora es inmediato despejar las incgnitas en el sistema correspondiente: b1 a 11 x 1 = b 1 x 1 = a 11 b2 a 22 x 2 = b 2 x 2 = a 22 bn a nn x n = b n x n = a nn (Recurdese que el orden de las incgnitas pudo haber variado). En este segundo caso, el sistema tiene solucin nica; es decir, es compatible determinado. Caso 3: r < n y, si r < m, todos b r+1 , , b m = 0. En este caso, una vez desconsideradas las filas de ceros, la matriz B es as:

81

5. Resolucin numrica de sistemas de ecuaciones lineales

a 11 a 12 0 B= 0 0 a 22 0 0

a 1,r1 a 2,n1 0

a 1r a 2r a rr

a 1,r+1 a 2,r+1 a r,r+1

a 1n a 2n a rn

b1 b2 br .

a r1,r1 a r1,r

a r1,r+1 a r1,n b r1

(Hemos insertado una barra vertical tras las primeras r columnas, para distinguirlas). Como a rr 0, podemos anular los elementos a ir , con i = 1, 2, , r 1, sumando a la fila a ir . Tras hacelo, anulamos los elementos de la i sima la ltima multiplicada por a rr columna r 1-sima. Y los del resto de las columnas, en orden decreciente. Despus de todas estas operaciones, la matriz B queda as: a 11 0 B= 0 0 0 0 0 0 0 0 0 0 0 a rr a 1,r+1 a 2,r+1 a r,r+1 a 1n a 2n a rn b1 b2 br ,

a 22

a r1,r1

a r1,r+1 a r1,n b r1

(por supuesto, los elementos tras la barra vertical han cambiado). Consideramos ahora el sistema correspondiente: a 11 x 1 a 22 x 2 + a 1,r+1 x r+1 + + a 1n x n = b 1 + a 2,r+1 x r+1 + + a 2n x n = b 2 a rr x r + a r,r+1 x r+1 + + a rn x n = b r (de nuevo recordamos que el orden de las incgnitas pudo haber variado). Como a 11 , a 22 , , a rr 0, podemos despejar las incgnitas x 1 , x 2 , , x r en funcin del resto: b 1 a 1,r+1 x r+1 a 1n x n a 11 b a 2,r+1 x r+1 a 2n x n x2 = 2 a 22 b a r,r+1 x r+1 + + a rn x n xr = r a rr x1 = Es costumbre reescribir estas ecuaciones dejndo las incgnitas no despejadas como parmetros, renombrndolas con letras griegas. Por ejemplo, llamndo 1 , 2 , , nr a tales incgnitas, las igualdades anteriores quedan as:

82

5. Resolucin numrica de sistemas de ecuaciones lineales

x 1 = d 1 + c 11 1 + + c 1,nr nr x r = d r + c r1 1 + + c r,nr nr x r+ 1 = xn = 1 nr b i y c = a i,r+j . donde hemos puesto d i = a ij a ii ii En este momento entenderemos que el sistema est resuelto; porque dando valores a los parmetros generamos soluciones del mismo. As pues, el sistema es compatible indeterminado en este tercer caso. Ilustremos la discusin genrica anterior con un ejemplo de cada caso: Ejemplo 5.4: Sea el siguiente sistema con coeficientes en : x 1 2x 2 + x 3 x 4 = 1 2x 1 4x 2 + 2x 3 + x 4 = 2 x 1 + 2x 2 2x 3 2x 4 = 3 2x 1 + 4x 2 + 3x 3 = 2 .

Para resolverlo, formamos la matriz ampliada e iniciamos la fase de eliminacin:


1 2 1 2 2 4 2 4 1 2 1 1 1 2 3 2 1 2 1 0 1 1 3 0

2 2 3 0

0 0 0

0 0 0

1 3 4 5 2 0

Para conseguir un pivote a 22 0, permutamos tanto las filas 2 y 3 como la segunda y tercera columnas. Tras esta permutacin de columnas, el nuevo orden de las incgnitas es x 1, x 3 , x 2 , x 4 . Seguidamente, hacemos ceros debajo del nuevo a 22 :
1 1 2 1 1 0 0 0 3 4 3 0 1 1 2 0 0 0 1 3 3 1 4 0

0 1 0 0 0 5

0 1 0 0 0 0

2 0

17 20

Trasponiendo ahora las columnas 3 y 4 logramos que a 33 0. Con ello, las incgnitas quedan en el orden x 1, x 3 , x 4 , x 2 . Despus, hacemos ceros debajo de a 33 , lo que concluye el proceso de eliminacin:

83

5. Resolucin numrica de sistemas de ecuaciones lineales

1 3 3 17

2 0 0 0

1 4 0 20

1 2 0 0 0

1 4 0 20

0 1 0 0 0 0

0 1 3 0 0 0 0 3 0

Puesto que la cuarta fila de la matriz se corresponde con la ecuacin 0 = 20, el sistema es incompatible. Ejemplo 5.5: Sea el sistema: 2x y + 3z = 0 2x + 2y + 3z = 1 x y + 2z = 0 x + 2y + 2z = 1 En primer lugar, intercambiando las ecuaciones primera y tercera conseguimos que el elemento a 11 sea 1, en lugar del inicial 2. Los calculos son siempre ms cmodos si los a ji pivotes a ii = 1; ya que entonces los cocientes a ii son enteros en lugar de fracciones. Seguidamente, hacemos ceros debajo de la diagonal principal:
1 1 2 0 2 2 1 2 3 1 1 1 2 0 1 1 2 0

1 3 0 2 2 1

0 0 0

7 1

3 7 0 3 0 1

0 0 0

3 7 0 0 3 7 1 0 1

1 1 2 0

1 1 2 0

0 0 0

3 7 0 0 0 7 1 7 1

0 0 0

3 7 0 0 0 7 1 0 0

Estamos ante el caso 2: un sistema compatible determinado. Para obtener la nica solucin, hacemos ceros encima de la diagonal principal:
1 1 2 0 0 0 3 7 0 0
1 3

1 1 0 2 7

1 21

0 0

3 0 0 7

1 1

0 0

3 0 0 7

1 1

7 1

1 La terna ( 21 ,

1 7

) es la nica solucin.

Ejemplo 5.6: Resolvamos ahora el sistema:

84

5. Resolucin numrica de sistemas de ecuaciones lineales

x1 x2 + x3 x4 = 1 2x 1 + 3x 2 x 3 + x 4 = 1 3x 1 + 2x 2 + x 4 = 1 x 1 + 4x 2 2x 3 x 4 = 1 Formamos la matriz ampliada y hacemos ceros debajo de la diagonal principal:


1 1 2 3 1 3 2 4 1 1 0 1 1 1 1 1 1 1 1 1 1 3 3 3 1 3 4 0 1 3 4 0 1 1 1 3 0 0 1 3 1 3 1 3 1 3

0 0 0

5 5 5

0 0 0

5 0 0

2 1

Intercambiamos las columnas 3 y 4 (obtenindo el nuevo orden x 1, x 2 , x 4 , x 3 ) y conclumos el proceso de eliminacin:


1 1 1 0 0 0 5 0 0 3 1 3 1 1 1 1 1 1 1

3 3 0 0 1 3

0 0 0

5 0 0

3 1 0

3 3 0 0 1 0

Notamos que la matriz B ha quedado como en el tercer caso, por lo que el sistema es compatible indeterminado. Adems, como r = 3 y n = 4, la solucin necesitar de un parmetro; el cual corresponder a x 3 , la ltima incgnita en el nuevo orden. Para obtener la solucin, hacemos ceros por encima de la diagonal principal:
1 1 1 0 0 5 0 3 1 1 1 1 1 0 1 3 0 0 0 1 1 0 0
2 5

0 0 1

3 3 0 1

0 0

5 0

0 1

0 5 0 0 0 1

3 0

Esta es la solucin paramtrica a la que se llega: x1 = x2 = x3 = x 4 = 1 Hacindo = 0, se obtiene la solucin (0, 0, 0, 1); poniendo = 1, la solucin , 3 , 1, 1). Puede comprobarse que el sistema inicial est bien resuelto generada es ( 2 5 5 observndo si estas dos cuaternas cumplen todas sus ecuaciones. Como es sabido de la teora de matrices, al sumar a una fila de una matriz otra multiplicada por un nmero, el rango no vara. En consecuencia, durante la fase de 85
2 5 3 5

5. Resolucin numrica de sistemas de ecuaciones lineales

eliminacin, tanto el rango de la matriz de coeficiecientes como el de la matriz ampliada permanecen invariantes. Al concluir el proceso de eliminacin, el rango de A es r. El de B es r r + 1, segn sean nulos o no todos los b r+1 , , b m . Si todos los b r+1 , , b m son nulos, el sistema es compatible; mientras que si alguno de ellos es no nulo, el sistema es incompatible. Ello demuestra el conocido: Teorema de Rouch-Frbenius: Un sistema de ecuaciones es compatible si, y slo si, rang A = rang B. En tal caso, sea r dicho rango y n el nmero de incgnitas. a) Si r = n, el sistema es compatible determinado. b) Si r < n, es compatible indeterminado y en su resolucin aparecen n r parmetros.

Como decamos al principio del tema, cuando el nmero de ecuaciones de un sistema es elevado, su resolucin precisa del ordenador. A continuacin se presenta un pseudcdigo que implementa el algoritmo de Gauss en el caso que el nmero de ecuaciones del sistema coincide con el de incgnitas. La salida del algoritmo es o la nica solucin del sistema o un mensaje advirtiendo que el sistema no es compatible determinado. Naturalmente, el algoritmo puede extenderse al caso general donde el nmero de ecuaciones no sea necesariamente el mismo que el de incgnitas; e incluso resolver el sistema cuando ste sea indeterminado, proporcionando la solucin en forma paramtrica. Dejamos como ejercicio la extensin del cdigo al caso general.

ALGORITMO DE GAUSS
Entradas: n (el nmero de ecuaciones e incgnitas), a ij (i = 1, , n; j = 1, , n, n + 1; la matriz ampliada del sistema) Salida: x i (i = 1, , n; la nica solucin del sistema) o "No hay solucin nica". 1: Para i = 1, 2, , n 1 : 1.1: p = i, var = a ii 1.2: Mientras que var = 0 y p < n : 1.2.1: p = p + 1, var = a pi 1.3: Si var = 0 entonces: 1.3.1: SALIDA: "No hay solucin nica", FIN. 1.4: Si p > i entonces: 1.4.1: Para j = i, i + 1, , n + 1 : 1.4.1.1: var = a ij , a ij = a pj , a pj = var 1.5: Para k = p + 1, p + 2, , n : ki 1.5.1: var = a a ii 1.5.2: Para j = i + 1, i + 2, , n + 1 : 1.5.2.1: a kj = a kj vara ij 2: Si a nn = 0 entonces: 2.1: SALIDA: "No hay solucin nica", FIN. en otro caso: a n,n+1 2.2: x n = a nn 86

5. Resolucin numrica de sistemas de ecuaciones lineales

3: Para j = n, n 1, , 2 : 3.1: Para i = 1, 2, , j 1 : 3.1.1: a i,n+1 = a i,n+1 a ij x j a j1,n+1 3.2: x j1 = a j1,j1 4: Para j = 1, 2, , n : 4.1: SALIDA: x j FIN Explicacin: El bucle 1 implementa el proceso de eliminacin. Para cada ndice i = 1, 2, , n 1, en los pasos 1.1 y 1..2 se busca el pivote entre los elementos a pi , con p i. El primero de ellos no nulo es el pivote. Si sucede que todos estos elementos son nulos, entonces el rango de la matriz A ya no puede ser n y, en virtud del teorema de Rouch, el sistema no es compatible determinado. Esta es la razn del paso 1.3. En el paso 1.4 se intercambian las filas p sima e i sima; slo los elementos a partir de la i sima columa, ya que los de las columnas anteriores han sido anulados en los pasos previos del proceso de eliminacin. En el paso 1.5 se hacen ceros los elementos a ki . Como ya son nulos los correspondientes a los ndices k = i + 1, , p, slo necesitamos anular los de los ndices k > p. Para anular dicho elemento a ki , hemos de sumar a la fila k sima la i sima ki multiplicada por a a ii . Es lo que se hace en 1.5.2. Si se llega a paso 2, los elementos a 11 , a 22 , , a n1,n1 0; pero todos los que estn por debajo de ellos son nulos. Si tambin a nn = 0, entonces rang A = n 1 y, en consecuencia, el sistema no tiene solucin nica. En caso contrario, rang A = n y el sistema es compatible determinado. De este modo, si a nn 0, en 2.2 se calcula la componente n sima de la solucin; despus, en el bucle 3, se calculan en orden descendiente el resto de las componentes. Para ello, en el bucle 3.1 se anulan los elementos de la columna j sima por encima de la diagonal principal y, tras dicho bucle, se obtiene la componente j 1 sima de la solucin en 3.2. Nmero de operaciones: Como podemos ver, en este algoritmo hay restas, multiplicaciones y divisiones. Contemos primero el nmero de restas. En el bucle 1, para cada valor de i entre 1 y n 1, tenemos n + 1 i restas en 1.5.2 que se realizan para cada valor de la variable k entre p + 1 y n. De la variable p slo sabemos que es mayor o igual que i. Tomando p = i (que as ser la mayora de las veces), tenemos entonces (n i)(n + 1 i) restas para cada valor de i. Sumando en i :

(n i)(n + 1 i) =
i= 1

n1

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

n1

n 1

i2 + i =
i= 1 i= 1

n 1

n 1

3 (n 1)n(2(n 1) + 1) (n 1)n + = n n. 3 6 2

Por otra parte, en el bucle 3, para cada valor de j entre 2 y n, se realizan j 1 restas. Sumando en j :

j 1 =
j= 2

j =
j= 1

n 1

(n 1)n . 2

Luego, el nmero total de restas en el algoritmo es

87

5. Resolucin numrica de sistemas de ecuaciones lineales

n 3 n + n 2 n = 2n 3 + 3n 2 5n . 6 3 2 Este nmero es tambin el las de multiplicaciones; ya que, como puede verse en el pseudocdigo, las multiplicaciones y las restas van emparejadas. Contemos ahora las divisiones. En el bucle 1, para cada valor de i tenemos 1 divisin en 1.5.1 que se realiza para cada valor de la variable k entre p + 1 y n. Tomando p = i como antes, resultan n i divisiones para cada valor de i. Sumando en i :

n i =
i= 1

n1

i =
i= 1

n 1

(n 1)n . 2

Por otro lado, se realiza 1 divisin en 2.2 y n 1 en el bucle 3. Por tanto, el nmero de divisiones es
2 (n 1)n +1+n1 = n +n. 2 2

Y el total de operaciones:
3 2 2 2 2n + 3n 5n + n + n = 6 2 2 3

n3 +

3 2

n2

7 6

n.

3 Clculo de matrices inversas y determinantes


Sea A una matriz cuadrada, con n filas, n columnas, y con coeficientes en el cuerpo . Su inversa es otra matriz B tal que A B = B A = I, donde I es la matriz identidad de orden n. Como es sabido del Algebra Lineal, no todas las matrices cuadradas tienen inversa; pero si la tienen, sta es nica. Debido a esta unicidad, la inversa de la matriz A se denota A 1 . El Algebra Lineal tambin demuestra que existe A 1 si y slo si el determinante |A | 0. En tal caso, A 1 = Adj(A t ) , |A |

donde Adj(A t ) es la matriz adjunta de la traspuesta de A. No obstante, el cmputo de A 1 a partir de esta frmula es poco eficiente; ya que requiere calcular n 2 determinantes de orden n 1, adems del determinante de A. Es preferible hacerlo por el mtodo explicamos a continuacin, basado en la eliminacin gaussiana. Supongamos que A = (a ij ), con i, j = 1, 2, , n, y planteemos la ecuacin AX = I, donde X = (x ij ), i, j = 1, 2, , n, y cada x ij es una indeterminada. Esto es:

88

5. Resolucin numrica de sistemas de ecuaciones lineales

a 11 a 12 a 1n a 21 a 22 a 2n a n1 a n2 a nn Entonces:

x 11 x 12 x 1n x 21 x 22 x 2n x n1 x n2 x nn =

1 0 0 0 1 0 0 0 1 .

Teorema 5.2: A tiene inversa si y slo si la ecuacin matricial AX = I tiene solucin. Y, en tal caso, la solucin es X = A 1 . Demostracin: Si existe A 1 , entonces esta matriz es solucin de la ecuacin AX = I, por la definicin de matriz inversa. Recprocamente, sea B una matriz tal que AB = I. Tomando determinantes: |A ||B | = 1. Luego, |A | 0 y, en consecuencia, existe A 1 . Multiplicando la igualdad AB = I por A 1 : A 1 (A B ) = A 1 I (A 1 A ) B = A 1 I B = A 1 B = A 1 La ecuacin AX = I equivale a las siguientes n ecuaciones matriciales: x 11 A x 21 x n1 = 1 0 0 , A x 12 x 22 x n2 = 0 1 0 , , A x 1n x 2n x nn = 0 0 1

que son n sistemas de ecuaciones lineales; todos ellos con la misma matriz de coeficientes, pero con distintos trminos independientes. Segn 5.2, existe A 1 si y slo si cada uno de los sistemas es compatible determinado; y, en tal caso, su nica solucin es la correspondiente columna de A 1 . La resolucin de estos sistemas puede hacerse mediante el algoritmo de Gauss. Adems, como la matriz de coeficientes es la misma, pueden ser resueltos todos a la vez, partiendo de la matriz a 11 a 12 a 1n a 21 a 22 a 2n a n1 a n2 a nn 1 0 0 0 1 0 0 0 1 .

Siguiendo el mtodo de Gauss, operamos con sus filas hasta conseguir la matriz identidad a la izquierda de la barra vertical. Una vez conseguida, a la derecha de dicha barra estarn las columnas solucin de los sistemas anteriores; esto es, la matriz A 1 . Naturalmente, este proceso podr completarse si existe A 1 ; o, como ya hemos dicho, si los sistemas son compatibles determinados. As suceder si y slo si tras ejecutarse la fase de eliminacin, todos los elementos a ii 0. Veamos un par de ejemplos: Ejemplo 5.7: Calculemos la inversa, si es que existe, de la matriz con coeficientes en 89

5. Resolucin numrica de sistemas de ecuaciones lineales

:
0 1 1

A=

1 0 1 1 1 0

Ampliamos A con la matriz identidad:


0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1

e iniciamos el algoritmo de Gauss: Como a 11 = 0, intercambiamos la primera y segunda fila; despus hacemos ceros debajo de la diagonal principal:
1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0

0 1

0 1

0 1 1

0 1 1

0 0 2

1 1 1

Como todos los elementos a ii 0, existe A 1 . Para obtenerla, buscamos la matriz identidad, haciendo ceros por encima de la diagonal principal:
1 0 0 1 1 1 0 1 1 0 0 0 1 0 1 0 1
1 2

1 0
1 2

0 0 1 2

0 1 1 0 0 1

0 0 2

1 1 1

1 0 0

1 2
1 2 1 2

0 1 0 0 0 1

1 2 1 2 1 2

1 2 1 2 1 2

As, la matriz a la derecha de la barra vertical es A 1 . Ejemplo 5.8: Sea ahora


1 1 1 2 1 0 1 1 1 2

A=

2 1

2 4 2 2

Ampliamos A con la matriz identidad y ejecutamos la fase de eliminacin:

90

5. Resolucin numrica de sistemas de ecuaciones lineales

1 2 1

1 1 2

1 0 1

1 1 2

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

1 3 1 4

0 0 0

0 1 2 0 3 2 0

2 1 0 0 1 2 1 3 0 1 0 0 0 1

2 4 2 2 1 3 10 10

0 2

1 2 5 6

0 1 3

0 0 0 0 1 0

0 0 0

0 1 2 0 0 0 0 4 4

0 1 2 0 0 0 0

2 1 0 0 5 3 1 0 1 1 1 1

4 10 0 0

2 0 1

En este caso, tras la fase de eliminacin, el elemento a 44 = 0. Luego, A no tiene inversa. He aqu un pseudocdigo que calcula la matriz inversa siguiendo el mtodo anterior:

ALGORITMO PARA LA MATRIZ INVERSA


Entradas: n (el orden de la matriz), a ij (i, j = 1, , n; la matriz A) Salida: a ij (i = 1, , n; j = n + 1, n + 2, 2n; la matriz A 1 ) o "No hay matriz inversa". 0: Para i = 1, 2, , n : 0.1: Para j = n + 1, n + 2, , 2n : 0.1.1: Si i = j n entonces: a ij = 1 en otro caso: a ij = 0 1: Para i = 1, 2, , n 1 : 1.1: p = i, var = a ii 1.2: Mientras que var = 0 y p < n : 1.2.1: p = p + 1, var = a pi 1.3: Si var = 0 entonces: 1.3.1: SALIDA: "No hay matriz inversa", FIN. 1.4: Si p > i entonces: 1.4.1: Para j = i, i + 1, , 2n : 1.4.1.1: var = a ij , a ij = a pj , a pj = var 1.5: Para k = p + 1, p + 2, , n : ki 1.5.1: var = a a ii 1.5.2: Para j = i + 1, i + 2, , 2n : 1.5.2.1: a kj = a kj vara ij 2: Si a nn = 0 entonces: 2.1: SALIDA: "No hay matriz inversa", FIN. en otro caso: 91

5. Resolucin numrica de sistemas de ecuaciones lineales

3: Para j = n, n 1, , 2 : 3.1: Para k = n + 1, n + 2, , 2n 3.1.1: Para i = 1, 2, , j 1 : 3.1.1.1: a ik = a ik a ij a jk a j1,k 3.1.2: a j1,k = a j1,j1 4: Para i = 1, 2, , n : 4.1: Para j = n + 1, n + 2, , 2n : 4.1.1: SALIDA: a ij FIN Explicacin: En el bucle 0 se amplia la matriz A con las n columnas de la matriz identidad. Por lo dems, este algoritmo es muy parecido al anterior de Gauss para resolver un sistema de n ecuaciones y n incgnitas. Nos remitimos a las explicaciones dadas tras dicho algoritmo. Nmero de operaciones: El recuento de operaciones es similar al del algoritmo de Gauss. Puede comprobarse que en este algoritmo se realizan 4 n3 3 n2 + 1 n restas, otras 3 6 2 3 2 8 3 3 2 1 1 tantas multiplicaciones y 2 n 2 n divisiones. En total: 3 n 2 n 6 n. Podemos calcular el determinante |A | insertando unas pocas lneas de cdigo en el algoritmo anterior. En primer lugar, aadimos una variable d al algoritmo que incializamos d = 1 antes del proceso de eliminacin; esto es, antes del bucle 1. En este bucle slo se efectan dos operaciones con las filas de A: el intercambio de filas y sumar a una fila otra multiplicada por un coeficiente del cuerpo . Como es sabido, esta segunda operacin no altera el valor de |A |; la primera lo cambia de signo. Por tanto, durante la fase de eliminacin el determinante de A slo vara en el signo. Pueden controlarse estos cambios de signo incluyendo la lnea de cdigo d = d dentro del condicional 1.4, en el que se establece cuando han de permutarse dos filas. Tras el proceso de eliminacin, la matriz A tiene nulos sus elementos por debajo de la diagonal principal. Por tanto, su determinante es el producto de los elementos de esta diagonal. As, incluyendo tras el bucle 1 el cdigo: Para i = 1, 2, , n : d = da ii Tras este cdigo, d = |A |. Naturalmente, puede ocurrir que se interrumpa la ejecucin del algoritmo con el mensaje "No hay matriz inversa". Si esto sucede, |A | = 0. Ejemplo 5.9: Sea A la matriz del ejemplo 5.7. Durante la fase de eliminacin intercambiamos filas una sla vez. Tras dicha fase, los elementos de la diagonal principal son 1, 1 y 2. Por tanto, |A | = 11(2) = 2. Por otra parte, la matriz del ejemplo 5.8 no tena inversa. Su determinante es 0.

2.2: Para k = n + 1, n + 2, , 2n a nk 2.2.1: a nk = a nn

92

5. Resolucin numrica de sistemas de ecuaciones lineales

4 Estrategias de pivoteo
La aritmtica punto flotante puede ocasionar importantes errores de redondeo en la eliminacin gaussiana. Para ilustrarlo, consideremos el siguiente ejemplo: Ejemplo 5.10: Supongamos que disponemos de aritmtica en simple precisin, conforme al estndar IEEE (vase el tema 1). Resolvamos el siguiente sistema: 2 24 x + y = 1 x+y = 2 .

Para eliminar x en la segunda ecuacin, sumamos a esta segunda ecuacin la primera multplicada por 2 24 :
2 24 1 1 1 1 2

2 24 0

1 + 2 24 2 + 2 24

En simple precisin 1 + 2 24 = 2 24 , segn vimos en el tema 1. Por otro lado, 2 + 2 24 = (1 + 2 23 )2 24 y es, por tanto, un nmero mquina. Teniendo esto en cuenta:
2 24 0 1 1 2 24 (1 + 2 23 )2 24 2 24 0 0 2 23

2 24 1 0

1 1 + 2 23

1 1 + 2 23

1 0

0 1 1 + 2 23

obteniendo como solucin x = 2, y = 1 + 2 23 .


23 1 1 e y = 1 + 2 24 1, como 24 1+2 1+2 puede comprobarse. El error en la componente x es grande.

No obstante, la solucin correcta es x =

No se hubiera producido tanto error si cambiamos el orden de las ecuacines antes de resolver el sistema:
1 1 2 2 24 1 1

0 1 + 2 24 1 + 2 23

En simple precisin 1 + 2 24 = 1, como tambin vimos en el tema 1. Entonces:


1 1 2 0 1 1 + 2 23

1 0 1 2 23 0 1 1 + 2 23

93

5. Resolucin numrica de sistemas de ecuaciones lineales

obtenindose ahora como solucin x = 1 2 23 e y = 1 + 2 23 , muy prxima a la correcta. Como hemos podido comprobar en este ejemplo, cuando uno de los pivotes tiene un valor absoluto pequeo, pueden producirse importantes errores de redondeo. El ejemplo tambin nos ha mostrado la solucin a este inconveniente: considerar otros pivotes. Durante el proceso de eliminacin del algoritmo de Gauss, considerbamos como pivote en el paso i simo el primer elemento no nulo en la lista {a ij | j i}. Por lo general, reduciremos los errores de redondeo si en cada paso i simo usamos como pivote el de mayor valor absoluto en la lista anterior. Esta tcnica se conoce con el nombre de pivoteo de columna. La podemos incorporar en el pseudocdigo del algoritmo de Gauss modificando los pasos 1.1 y 1.2 como se indica a continuacin:

ALGORITMO DE GAUSS CON PIVOTEO DE COLUMNA


1: Para i = 1, 2, , n 1 : 1.1: p = i, var = |a ii | 1.2: Para j = i + 1, i + 2, , n : 1.2.1: Si |a ij | > var, entonces: 1.2.1.1: var = |a ij |, p = j (Los dems pasos igual)

No obstante, el pivoteo de columna no siempre previene de un error de redondeo importante. Veamos el siguiente ejemplo: Ejemplo 5.11: Sigamos considerando aritmtica en simple precisin. Sea ahora el sistema: x 2 24 y = 2 24 x+ y=2 ,

obtenido a partir del sistema del ejemplo previo multiplicando la primera ecuacin por 2 24 . Por tanto, su solucin es la misma. Resolvemos:
1 2 24 2 24 1 1 2

2 24

2 24

0 1 + 2 24 2 + 2 24 1 2 24 0 1 2 24 1 + 2 23

1 2 24 0 2 24

2 24 (1 + 2 23 )2 24

1 0

0 1 1 + 2 23

obteniendo como solucin x = 2 e y = 1 + 2 23 . De nuevo, el error en la componente x es grande. En este caso, para no obtener tanto error, es conveniente cambiar el orden de las incgnitas antes de resolver el sistema:

94

5. Resolucin numrica de sistemas de ecuaciones lineales

2 24 1 2 24 1 1 2

2 24 0

1 1 + 2 24

2 24 1

2 24 1 2 24 0 1 1

2 24 0 1 2 24 0 1 1

2 24 0 2 24 0 1 1

1 0 1 0 1 1

obtenindose ahora como solucin x = 1 e y = 1, muy prxima a la correcta.

En este otro ejemplo, el error de redondeo tan grande no se ha producido porque el valor absoluto del pivote es pequeo; sino porque lo es en relacin con el valor absoluto del resto de los coeficientes. Como tambin hemos visto en el ejemplo, la solucin pasa por el denominado pivoteo total; esto es, considerar como pivote el de mayor valor absoluto de la lista {a pq | p, q i}. Seguidamente, incluimos un pseudocdigo que incorpora el pivoteo total en el algoritmo de Gauss. Dado que este pivoteo altera el orden de las incgnitas durante la fase de eliminacin, es necesario reescribir el cdigo casi por completo.

ALGORITMO DE GAUSS CON PIVOTEO TOTAL


Entradas: n (el nmero de ecuaciones e incgnitas), a ij (i = 1, , n; j = 1, , n, n + 1; la matriz ampliada del sistema) Salida: x i (i = 1, , n; la nica solucin del sistema) o "No hay solucin nica". 0: Para i = 1, 2, , n : 0.1: Incog(i) = i 1: Para i = 1, 2, , n 1 : 1.1: p = i, q = i, var = |a ii | 1.2: Para j = i, i + 1, , n : 1.2.1: Para k = i, i + 1, , n : 1.2.1.1: Si |a ij | > var, entonces: 1.2.1.1.1: var = |a jk |, p = j, q = k 1.3: Si var = 0 entonces: 1.3.1: SALIDA: "No hay solucin nica", FIN. 1.4: Si p > i entonces: 1.4.1: Para j = i, i + 1, , n + 1 : 1.4.1.1: var = a ij , a ij = a pj , a pj = var 1.5: Si q > i entonces: 1.5.1: Para j = 1, 2, , n : 1.5.1.1: var = a ji , a ji = a jq , a jq = var 1.5.2: k = Incog(q), Incog(q) = Incog(i), Incog(i) = k 1.6: Para k = i + 1, i + 2, , n : ki 1.6.1: var = a a ii 1.6.2: Para j = i + 1, i + 2, , n + 1 : 95

5. Resolucin numrica de sistemas de ecuaciones lineales

1.6.2.1: a kj = a kj vara ij 2: Si a nn = 0 entonces: 2.1: SALIDA: "No hay solucin nica", FIN. en otro caso: a n,n+1 2.2: a n,n+1 = a nn 3: Para j = n, n 1, , 2 : 3.1: Para i = 1, 2, , j 1 : 3.1.1: a i,n+1 = a i,n+1 a ij a j,n+1 a j1,n+1 3.2: a j1,n+1 = a j1,j1 4: Para i = 1, 2, , n : 4.1: x Incog(i) = a i,n+1 5: Para j = 1, 2, , n : 5.1: SALIDA: x j FIN

Explicacin: Como el pivoteo total cambia el orden inicial de las incgnitas durante el proceso de eliminacin, es necesario controlar dicho orden en todo momento. Para ello utilizaremos la lista de enteros Incog(i). Inicialmente, Incog(i) = i; despus, Incog(i) contiene el ndice de la incgnita que ocupa el lugar i simo, de modo que el orden de las incgnitas es cada paso del proceso de eliminacin es x Incog(1), x Incog(2), , x Incog(n) . Dentro del bucle 1, en los pasos 1.1 y 1.2 se busca el pivote a pq con mayor valor absoluto. Si q > i, se intercambian en 1.5.1 las columnas i sima y q sima; y en 1.5.2 se permutan los valores Incog(i) e Incog(q), para actualizar el nuevo orden de las incgnitas. Al final del algoritmo, la ltima columna de la matriz A contiene la solucin del sistema en el orden indicado por la lista Incog(i), de modo que a i,n+1 contiene el valor que corresponde a x Incog(i) . En el bucle 4 efectuamos esta asignacin y, por ltimo, el algoritmo devuelve la solucin en el orden incial.

5 Algoritmo de factorizacin LU
Consideremos una matriz cuadrada y regular (esto es, con determinante no nulo): a 11 a 12 a 1n A= a 21 a 22 a 2n a n1 a n2 a nn Como ya hemos visto, el proceso de eliminacin en la matriz A nos produce otra matriz U cuyos elementos por debajo de la diagonal principal son todos nulos. Una matriz con estas caratersticas se denomina triangular superior. Anlogamente, una matriz que tiene 96 .

5. Resolucin numrica de sistemas de ecuaciones lineales

nulos todos los elementos por encima de la diagonal principal se dice triangular inferior. Se verifica que: Teorema 5.3: Siendo A y U como antes, si el proceso de eliminacin se ha efectuado sin intercambio de filas ni de columnas, entonces A = LU, siendo L una matriz triangular inferior. Demostracin: Como |A | 0, la eliminacin requiere de n pasos. Para j = 1, 2, , n sea U (j) la matriz obtenida en el paso j simo de dicho proceso de eliminacin. Esta matriz tiene el siguiente aspecto: u 11 u 12 0 U (j) = 0 0 0
(j) (j) (j) (j)

u 1j u 2j u jj
(j)

(j) (j)

u 1,j+1 u 2,j+1 u j,j+1


(j) (j) (j)

(j)

u 1n u 2n u jn
(j) (j) (j)

(j)

u1 u2 = uj

(j) (j)

u 22 0 0 0

(j)

(j)

u j+1,j u j+1,j+1 u j+1,n


(j) u nj

u j+ 1 un
(j)

(j)

(j) u n,j+1

(j) u nn

siendo u i el vector de n formado con la i sima fila de U (j) . Como no hay intercambio de filas ni de columnas, el paso de U (j) a U (j+1) viene dado por las siguientes igualdades de vectores: ui ui con l ij = u ij u jj
(j) (j) (j+1) (j+1)

= ui

(j) (j) (j)

si i j si i > j

= u i l ij u j

.
(j)

Estas igualdades tambin nos permiten expresar los vectores u i en funcin de los (j+1) : ui ui =
(j) ui (j)

ui
(j+1) l ij u j

(j+1)

si i j si i > j

(j+1) ui

De la misma manera, si a i es el vector formado con la i sima fila de A, entonces: u1 = a1 ui


(1) (1)

= a i l i1 a 1

si i > 1

a i1 . Despejando los a : siendo l i1 = a i 11 97

5. Resolucin numrica de sistemas de ecuaciones lineales

a1 =
(1)

u1

(1)

a i = l i1 u 1 + u i

(1)

si i > 1

.
(j)

Partiendo de estas igualdades y sustituyendo progresivamente los vectores u i por los (j+1) (n) u i , podemos expresar los a i en funcin de los u i : a1 = u1
(1) (1) (1)

u1

(2) (2) (2) (2)

==

u1

(n)

a 2 = l 21 u 1 + u 2 = l 21 u 1 + u 2
(1) (2)

(1)

(2)

= = l 21 u 1 +
(n)

(n)

u2

(n) (n)

a 3 = l 31 u 1 + u 3 = l 31 u 1 + l 32 u 2 + u 3 = = l 31 u 1 + l 32 u 2 + u 3 an =
(1) l n1 u 1

(n)

(1) un

(2) l n1 u 1

(2) l n2 u 2

+ u n = = l n1 u 1 + l n2 u 2 + + u n

(2)

(n)

(n)

(n)

Estas ltimas igualdades pueden escribirse en trminos matriciales de este modo: 1 l 21 0 1 0 0 1 0 0 0 u1 u2 u3 un


(n) (n) (n) (n)

a1 a2 = a3 an .

l 31 l 32

l n1 l n2 l n3 1

Esto es, LU (n) = A, donde L es la matriz de la izquierda. Al ser U (n) = U, el teorema queda demostrado. Como hemos podido notar en la demostracin del teorema, los elementos l ij de la matriz L son los escalares que intervienen en las combinaciones lineales de las filas de la matriz A en la fase de eliminacin. Por tanto, podemos encontrar la factorizacin A = LU procediendo como en la demostracin del teorema. Veamos un ejemplo: Ejemplo 5.12: Consideremos la matriz
1 1 1 3 0 2 1 1 1 1

A=

2 1 3

0 3

Para obtener la factorizacin A = LU, incializamos L = I (la matriz identidad), U = A y ejecutamos el proceso de eliminacin colocando en L los elementos l ij obtenidos en cada paso:

98

5. Resolucin numrica de sistemas de ecuaciones lineales

1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

1 1

1 1 3 0 2

1 1 1 1

0 0 0 1 0 0

1 0 0

1 2 3

1 1 0 0

1 2 1 2

2 1 3

2 0 1 0 3 0 0 1

0 3 1 1

0 3

1 1 2 3

0 1
3 2 3 2

0 0 0 0 1 0 0 1

1 1 0 2

1 2 4 5

0 1
3 2 3 2

0 0 1

0 0 0

1 1 0 2

1 1

1 2 4 1

0 0 3 2 0 0
3 2

1 2 3

0 0 3 2 0 0 0

1 1

Esta es la factorizacin A = LU.

La eliminacin gaussiana en A sin intercambio de filas ni de columnas puede establecerse en trminos de los denominados menores principales de A, que son los siguientes determinantes: a 11 a 12 a 1j M 1 = a 11 , , M j = a 21 a 22 a 2j a j1 a j2 a jj Teorema 5.4: Con las notaciones previas, es posible la eliminacin gaussiana sin intercambio de filas ni de columnas si y slo si los menores principales M 1 , M 2 , , M n1 son distintos de 0. Demostracin: Fijmonos de nuevo en la matriz U (j) de la demostracin del teorema anterior. Para haber llegado a esta matriz en la fase de eliminacin sin haber intercambiado (1) (2) (j1) filas ni columnas, ha sido necesario que los elementos u 11 , u 22 , , u j1,j1 sean distintos de 0. Y para pasar de esta matriz U (j) a la siguiente U (j+1) sin cambiar filas ni columnas debe (j) ocurrir que u jj 0. Ahora bien, si no hay intercambio de filas ni de columnas en la eliminacin, los menores de A permanecen invariantes. Entonces: M j = u 11 u 22 u j1,j1 u jj . Luego, como u 11 , u 22 , , u j1,j1 0, M j 0 si y slo si u jj 0. As pues, el paso de U (j) a U (j+1) sin intercambio de filas ni columnas equivale a que M j 0. Ello prueba el teorema. Como consecuencia de este teorema y del anterior, se obtiene que si los menores principales de A son todos distintos de 0, entonces A = LU, siendo L y U como en dicho teorema 5.3. Recprocamente, supongamos ahora que A factoriza en la forma A = LU, siendo L una
(1) (2) (j1) (j) (1) (2) (j1) (j)

, , M n = |A |.

99

5. Resolucin numrica de sistemas de ecuaciones lineales

matriz triangular inferior cuyos elementos de la diagonal principal son 1 y U una matriz triangular superior cuyos elementos de la diagonal principal son todos no nulos. Explicitamente: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n a 31 a 32 a 33 a 3n a n1 a n2 a n3 a nn = 1 l 21 0 1 0 0 1 0 0 0 u 11 u 12 u 13 u 1n 0 0 0 u 22 u 23 u 2n 0 0 u 33 u 3n 0 u nn .

l 31 l 32

l n1 l n2 l n3 1

Como se observa, la primera fila de U debe coincidir con la de A. Multiplicando la j esima fila de L por la primera columna de U : l j1 u 11 = a j1 . De donde, para j > 1 : a j1 l j1 = u 11 . Sea i > 1 y j i. Multiplicando la i sima fila de L por la j sima columna de U : l i1 u 1j + l i2 u 2j + + l i,i1 u i1,j + u ij = a ij . De donde u ij = a ij l i1 u 1j l i2 u 2j l i,i1 u i1,j . Luego, podemos obtener la i sima fila de U a partir de estas igualdades si previamente hemos determinado los l ik y los u kj para k < i. Anlogamente, si ahora j > i, multiplicando la j sima fila de L por la i sima columna de U : l j1 u 1i + l j2 u 2i + + l j,i1 u i1,i + l j,i u i,i = a ij . Entonces l ji = a ij l j1 u 1i l j2 u 2i l j,i1 u i1,i . u ii

Y, por tanto, es posible calcular la i sima columna de L a partir de estas igualdades si antes han sido obtenidos los l jk y los u ki para k i. En definitiva, que con estas frmulas es posible obtener la i sima fila de U y la i sima columna de L si ya han sido calculadas las anteriores filas de U y las anteriores columnas de L. Como consecuencia de ello, se deduce que los elementos de L y U estn univocamente determinados por A. Esto es, que si A factoriza en la forma A = LU, siendo L y U como se ha indicado, tales matrices L y U son nicas. Por otra parte, considererando el producto de las j primeras filas y columnas de L por las j primeras filas y columnas de U : 1 l 21 0 0 1 0 u 11 u 12 u 1j 0 0 u 22 u 2j 0 u jj = a 11 a 12 a 1j a 21 a 22 a 2j a j1 a j2 a jj .

l j1 l j2 1

100

5. Resolucin numrica de sistemas de ecuaciones lineales

Como el determinante de un producto es el producto de los determinantes, u 11 u 22 u jj = M j . Y al ser todos los u jj no nulos, deducimos que tambin lo son los menores principales M j . As, hemos demostrado el siguiente teorema, recopilacicn de todo lo anterior: Teorema 5.5: Sea A una matriz regular. Son equivalentes: 1. Todos los menores principales de A son distintos de 0. 2. A factoriza en la forma A = LU, siendo L una matriz triangular inferior cuyos elementos de la diagonal principal son 1 y U una matriz triangular superior cuyos elementos de la diagonal principal son todos no nulos. Adems, tal factorizacin es nica. U es el resultado de la eliminacin gaussiana en A sin intercambio de filas ni de columnas, y los elementos de L son los coeficientes de las combinaciones lineales que se realizan en dicha eliminacin. Las frmulas obtenidas en la discusin previa al teorema 5.5 proporcionan un mtodo alternativo a la eliminacin gaussiana para computar la factorizacin A = LU, consistente en calcular progresivamente las filas de U y las columnas de L. Como puede observarse, para calcular la columna i sima de L es necesario que el elemento u ii ya calculado sea no nulo. Por tanto, si algn u ii = 0, la factorizacin es imposible. Como ya hemos visto, ello equivale a que el i simo menor principal de A tambin sea nulo. Ilustremos este mtodo con un par de ejemplos: Ejemplo 5.13: Veamos si es posible la factorizacin A = LU para la siguiente matriz A:
1 1 1 0 1 3 1 2 1 1 0 1 0 0 1 0 0 0

u 11 u 12 u 13 u 14
0 0 0

A=

2 3 1

1 1 2 3

l 21

u 22 u 23 u 24
0 0

l 31 l 32

u 33 u 34
0

l 41 l 42 l 43 1

u 44

La primera fila de U coincide con la de A. Luego u 11 = 1, u 12 = 1, u 13 = 0, u 14 = 3. Como u 11 0, puede calcularse la primera columna de L : a 21 = 2 = 2, l = a 31 = 3 = 3, l = a 41 = 1 = 1. l 21 = u 31 41 u 11 u 11 11 1 1 1 La segunda fila de U : u 22 = a 22 l 21 u 12 = 1 21 = 1, u 23 = a 23 l 21 u 13 = 1 20 = 1, u 24 = a 24 l 21 u 14 = 1 23 = 5. Al ser, u 22 0, es posible obtener la segunda columna de L :

101

5. Resolucin numrica de sistemas de ecuaciones lineales

l 31 u 12 = 1 31 = 4, l = a 42 l 41 u 12 = 2 (1)1 = 3. l 32 = a 32 42 u 22 u 22 1 1 La tercera fila de U : u 33 = a 33 l 31 u 13 l 32 u 23 = 1 30 4(1) = 3. u 34 = a 34 l 31 u 14 l 32 u 24 = 2 33 4(5) = 13. Puesto que u 33 0, puede computarse el elemento l 43 : 3 (1)0 (3)(1) 13 l 42 u 23 l 43 = a 43 l 41 u = = 0. u 33 3 Por ltimo, el elemento u 44 : u 44 = a 44 l 41 u 14 l 42 u 24 l 43 u 34 = 1 (1)3 (3)(5) 013 = 13. Estas son las matrices L y U :
1 0 1 4 0 0 0 0 1 0 1 1 0 3 5 13 13

L=

2 3

, U=

0 1 1 0 0 0 0 3 0

1 3 0 1

Puede comprobarse que, en efecto, A = LU. Ejemplo 5.14: La siguiente matriz A es regular pero tiene nulo su tercer menor principal:
1 1 2 3 1 2 1

A=

2 0

1 1 1 5 3

1 2

Por tanto, no puede factorizarse en la forma A = LU. En este caso, si se ejecuta el mtodo anterior, resulta u 33 = 0 y, en consecuencia, no es posible completar la matriz L. El siguiente pseudocdigo implementa la factorizacin A = LU siguiendo las frmulas que permiten el clculo recursivo de las filas de U y las columnas de L. Ntese que en el cdigo no aparece ninguna matriz L, ya que se aprovechan los elementos debajo de la diagonal principal de U para almacenar los l ij .

ALGORITMO DE FACTORIZACIN A = LU
Entradas: n (el orden de la matriz), a ij (i, j = 1, , n; la matriz A) Salida: u ij (i, j = 1, 2, , n; si i > j, entonces u ij = l ij ), o "No es posible la factorizacin".

102

5. Resolucin numrica de sistemas de ecuaciones lineales

1: u 11 = a 11 2: Si u 11 = 0 entonces: 2.1: SALIDA: "No es posible la factorizacin", FIN. en otro caso: 2.2: Para j = 2, 3, , n : 2.2.1: u 1j = a 1j a j1 2.2.2: u j1 = u 11 3: Para i = 2, 3, , n 1 : 3.1: u ii = a ii 3.2: Para k = 1, 2, , i 1 : 3.2.2: u ii = u ii u ik u ki 3.3: Si u ii = 0 entonces: 3.3.1: SALIDA: "No es posible la factorizacin", FIN. en otro caso: 3.3.2: Para j = i + 1, i + 2, , n : 3.3.2.1: u ij = a ij , u ji = a ji 3.3.2.2: Para k = 1, 2, , i 1 : 3.3.2.2.1: u ij = u ij u ik u kj 3.3.2.2.2: u ji = u ji u jk u ki u ji 3.3.2.3: u ji = u ii 4: u nn = a nn 5: Para k = 1, 2, , n 1 : 5.1: u nn = u nn u nk u kn 6: Para i = 1, 2, , n : 6.1: Para j = 1, 2, , n : 6.1.1: SALIDA: u ij FIN

Nmero de operaciones: El recuento de operaciones es similar al de los algoritmos previos. Puede comprobarse que en este algoritmo se realizan 1 n3 1 n2 + 1 n restas, otras 3 2 6 1 2 1 tantas multiplicaciones y 2 n 2 n divisiones. El total de operaciones es: 2 3 n 1 n2 1 n. 3 2 6 La factorizacin A = LU puede aprovecharse para resolver un sistema de ecuaciones AX = b, siguiendo esta estrategia: AX = b (LU)X = b L(UX) = b LY = b UX = Y .

Esto es, se resuelve primero el sistema LY = b y despus UX = Y. La resolucin de ambos sistemas es rpida, ya que L y U son matrices triangulares. Veamos un ejemplo:

103

5. Resolucin numrica de sistemas de ecuaciones lineales

Ejemplo 5.15: Sea el sistema AX = b siguiente:


1 2 3 1 1 1 0 1 3 1 2 1

x1 x2 x3 x4 =

4 1 3 4

1 1 2 3

El anterior ejemplo 5.12 proporcion la factorizacin A = LU. Resolvemos primero el sistema LY = b :


1 2 3 0 1 0 0 0 0 4 1 3 4 1 0 1 0 0 0 0 4 7 15 8 1 0 0 0 4 7 13 13

4 1 0

0 4 1 0 0 3 0 1

0 1 0 0 0 0 1 0 0 0 0 1

1 3 0 1

y luego UX = Y :
1 1 0 3 5 13 13 4 7 13 13 1 1 0 0 1 2 0 1 1 2 0 1 1 1 0 0 1 2 0 1

0 1 1 0 0 0 0 3 0

0 1 1 0 0 0 0 0 3 0 0 1

0 1 0 0 0 0 1 0 0 0 0 1

1 0 0 0

0 1 0 0 0 0 1 0 0 0 0 1

Por tanto, la solucin es (1, 2, 0, 1).

He aqu un cdigo que implementa la estrategia anterior. En l suponemos como dato de entrada la matriz u ij proporcionada por el anterior algoritmo de factorizacin LU.

ALGORITMO PARA RESOLVER LY = b Y UX = Y


Entradas: n (el orden de la matriz), b i (i = 1, 2 , n) u ij (i, j = 1, , n; si i > j, entonces u ij = l ij ) Salida: x i (i = 1, 2 , n; la solucin de AX = b) 1: Para i = 2, 3, , n : 1.1: Para j = 1, 2, , i 1 : 1.1.1: b i = b i b j u ij b n 2: x n = u nn 104

5. Resolucin numrica de sistemas de ecuaciones lineales

3: Para j = n, n 1, , 2 : 3.1: Para i = 1, 2, , j 1 : 3.1.1: b i = a i u ij x j b j 1 3.2: x j1 = u j1,j1 4: Para i = 1, 2, , n : 4.1: SALIDA: xi FIN Nmero de operaciones: La resolucin LY = b requiere 1 n2 1 n restas y otras 2 2 tantas multiplicaciones. La resolucin UX = Y necesita esas mismas operaciones y, adems, n divisiones. En total: 2n 2 n operaciones. Como puede observarse, resolver un sistema de ecuaciones por el mtodo de Gauss requiere exactamente las mismas operaciones que hacerlo mediante la factorizacin A = LU. Por otra parte, si se han de resolver varios sistemas con la misma matriz de coeficientes, es preferible factorizar primero esta matriz y despus resolver cada uno de los sistemas haciendo uso de dicha factorizacin.

6 Algoritmo de Choleski
Uno de los temas principales del Algebra Lineal es el estudio de las formas bilineales y cuadrticas. Fijado un espacio vectorial V sobre el cuerpo , una forma bineal es una aplicacin F : V V que es lineal en cada una de las variables. La aplicacin Q : V , Q(x) = F(x, x) es la forma cuadrtica asociada. Si el espacio vectorial V tiene dimensin n y en l se considera una base, la forma bilineal tiene una expresin matricial como esta: a 11 a 12 a 1n F (x , y ) = x1 x2 xn a 21 a 22 a 2n a n1 a n2 a nn y1 y2 yn .

La forma bilineal F se dice simtrica si x, y V F(x, y) = F(y, x). Es equivalente a que la anterior matriz A = (a ij ) sea simtrica. Cuando = , el cuerpo de los nmeros reales, son de inters las formas bilineales simtricas y positivas; ya que definen un producto escalar. Una forma bilineal simtrica se dice positiva si x V {0} F(x, x) > 0. El Algebra lineal demuestra el siguiente teorema: Teorema 5.6: Sean F y A como antes, con F simtrica y = . Son equivalentes:

105

5. Resolucin numrica de sistemas de ecuaciones lineales

1. F es positiva. 2. Todos los menores principales de A son positivos. 3. Cualquier menor de A de la forma a i1i1 a i1i2 a i1ir a i2i1 a i2i2 a i2ir siendo 1 i 1 < i 2 < < i r n. a iri1 a iri2 a irir > 0,

En virtud del anterior teorema 5.5, si A es la matriz asociada a una forma bilineal simtrica y positiva, entonces A = LU, para unas nicas matrices triangulares L y U con las caractersticas especificadas en dicho teorema 5.5. El siguiente teorema proporciona otra factorizacin para A, la denominada factorizacin de Choleski: Teorema 5.7: Sea A una matriz real, simtrica y de orden n. Son equivalentes: 1. Todos los menores principales de A son positivos. 2. A factoriza en la forma A = LL t , donde L es una matriz triangular inferior cuyos elementos de la diagonal principal son positivos y L t es su traspuesta. Adems, en tal caso, tal matriz L es nica. Demostracin: Planteemos la ecuacin A = LL t , siendo L triangular inferior y con los coeficientes indeterminados: a 11 a 21 a 31 a n1 a 21 a 22 a 32 a n2 a 31 a 32 a 33 a n3 a n1 a n2 a n3n a nn = l 11 0 0 0 0 0 0 l 11 l 21 l 31 l n1 0 0 0 l 22 l 32 l n2 0 0 l 33 l n3 0 l nn .

l 21 l 22

l 31 l 32 l 33

l n1 l n2 l n3 l nn

Dado un ndice i entre 1 y n, el producto de las i primeras filas y columnas de L por las i primeras filas y columnas de L t es precisamente la i sima submatriz principal de A. Tomando determinantes:
2 2 l2 11 l 22 l ii = M i ,

(siendo M i el i simo menor principal de A). Por tanto, si todos los l ii 0, entonces M i > 0. Esto prueba la implicacin 2 1. 1 2 : Mostremos que en la anterior ecuacin A = LL t podemos determinar los elementos de L inductivamente, por columnas. a 11 Multiplicando la primera fila de L por la primera columna de L t : l 2 11 = a 11 . Al ser > 0, resulta

106

5. Resolucin numrica de sistemas de ecuaciones lineales

l 11 =

a 11 .

Y multiplicando la primera fila de L por las dems columnas de L t : l 11 l j1 = a j1 . Luego, a j1 . l j1 = l 11 Sea i > 1 y supongamos determinados los elementos de las columnas anteriores a la i sima, siendo l kk > 0 para 1 k < i. El producto de la i sima fila de L por la i sima columna de L t es:
2 2 2 l2 i1 + l i2 + + l i,i1 + l ii = a ii .

Por hiptesis de induccin, la nica incgnita en esta ecuacin es l ii . Despejndola: l ii =


2 2 a ii l 2 i1 l i2 l i,i1 .

Ahora bien, para que este l ii sea un nmero real positivo, el radicando tambin debe ser positivo. Para comprobar que as es, despejamos l 2 ii tanto en esta ecuacin como en la anterior del menor M i e igualamos:
2 2 2 l2 ii = a ii l i1 l i2 l i,i1 = 2 2 Al ser M i > 0, tambin a ii l 2 i1 l i2 l i,i1 > 0.

Mi 2 2 l 11 l 22 l 2 i1,i1

Sea ahora j > i. El producto de la i sima fila de L por la j sima columna de L t es: l i1 l j1 + l i2 l j2 + + l i,i1 l j,i1 + l ii l ji = a ji . Luego, l ji = a ji l i1 l j1 l i2 l j2 l i,i1 l j,i1 . l ii

Estas frmulas para l ii y l ji muestran que, si todos los M i > 0, es posible obtener inductivamente las columnas de L en la ecuacin A = LL t , siendo, adems, los l ii > 0. Ello prueba 2. Y tambin la unicidad de L. La demostracin previa proporciona un mtodo para determinar si una matriz simtrica A admite la factorizacin de Choleski: Se plantea la ecuacin matricial A = LL t con los coeficientes de L indeterminados y se van calculando progresivamente las columnas de L mediante las frmulas obtenidas en dicha demostracin. Tal y como hemos visto, para poder calcular la i sima columna necesitamos que el radicando
2 2 a ii l 2 i1 l i2 l i,i1 > 0.

Esta condicin determina la existencia o no de la factorizacin. Y como hemos probado, as suceder si y slo si los menores principales de A son positivos. Ejemplo 5.16: Veamos si es posible la factorizacin A = LL t para la siguiente matriz simtrica:

107

5. Resolucin numrica de sistemas de ecuaciones lineales

4 2 5 1

l 11 =

0 0

l 11 l 21 l 31
0 0

A=

l 21 l 22

l 22 l 32
0

2 1 11

l 31 l 32 l 33

l 33

Como a 11 > 0, podemos calcular la primera columna de L : l 11 = a 11 = 4 = 2, l 21 = a 21 = 4 = 2, l 31 = a 31 = 2 = 1. 2 2 l 11 l 11 Como a 22 l 2 21 = 5 4 = 1 > 0, es posible obtener la segunda columna: l 22 = a 22 l 2 21 = 1 = 1, 1 2(1) = 3. l 32 = a 32 l 21 l 31 = 1 l 22 Y finalmente, l 33 = Por tanto,
2 0 0 1 0
2 a 33 l 2 31 l 32 =

11 (1) 2 3 2 = 1.

L=

1 3 1

Ejemplo 5.17: Sea la matriz simtrica


8 3 0

A=

3 1 1 0 1 5

Puede comprobarse que el radicando a 22 l 2 21 < 0, por lo que no es posible la t factorizacin A = LL . Ntese que el segundo menor principal de A vale 1. He aqu un cdigo que implementa la factorizacin de Choleski:

ALGORITMO DE CHOLESKI
Entradas: n (el orden de la matriz), a ij (i, j = 1, , n; la matriz A) Salida: l ij (i j = 1, 2, , n; ), o "A no es definida positiva". 1: Si a 11 0 entonces: 1.1: SALIDA: "A no es definida positiva", FIN. en otro caso: 1.2: l 11 = a 11

108

5. Resolucin numrica de sistemas de ecuaciones lineales

1.3: Para j = 2, 3, , n : a j1 1.3.1: l j1 = l 11 2: Para i = 2, 3, , n : 2.1: l ii = a ii 2.2: Para k = 1, 2, , i 1 : 2.2.2: l ii = l ii l 2 ik 2.3: Si l ii 0 entonces: 2.3.1: SALIDA: "A no es definida positiva", FIN. en otro caso: 2.3.2: l ii = l ii 2.3.3: Para j = i + 1, i + 2, , n : 2.3.3.1: l ji = a ji 2.3.3.2: Para k = 1, 2, , i 1 : 2.3.3.2.1: l ji = l ji l jk l ik 3: Para i = 1, 2, , n : 3.1: Para j = i, i + 1, , n : 3.1.1: SALIDA: l ij FIN n3 1 n restas, otras tantas Nmero de operaciones: En este algoritmo se realizan 1 6 6 1 2 1 multiplicaciones, 2 n 2 n divisiones y n raices. El total de operaciones es: 1 3 n + 15 n2 + 1 n. 3 6 6 De este modo, resolver un sistema de ecuaciones mediante la factorizacin de Choleski requiere aproximadamente la mitad de operaciones que el algoritmo de Gauss o el de factorizacin LU. No obstante, el mtodo de Choleski necesita calcular races cuadradas y ello tiene un coste computacional elevado.

Ejercicios
Hacer los siguientes ejercicios "con lpiz y papel" en primer lugar. Despus, comparar con el resultado proporcionado por un programa ejecutado en el ordenador. 1. Resolver por el mtodo de Gauss los siguientes sistemas: 3 a) 2 1 3 2 1 3 x1 x2 x3 = 1 2 0 b) 2 3 2 3 8 2 2 1 2 2 6 1 x1 x2 x3 = 0 1 2 1

4 5

109

5. Resolucin numrica de sistemas de ecuaciones lineales

0 c) 1 1

2 1 2

0 1 5

5 0 2 1 1 1 2

x1 x2 x3 x4 x1 x2 x3 x4 x5 = =

5 0 2 4 1 0 2 3 f) d)

2 1 3 1 1 0 2 1 1

1 1 1 2

x1 x2 x3 x4 1 1 6 x1 x2 x3 x4 = =

3 2 1 0 2 1 0 1 2

1 1 3 0 0 1 2 0 5

1 2

1 1

3 1 2 1 1

1 1 2 2 e) 2 3 2 3 0 0 1 3 3 1 4 2

3 1

3 3 6

2. Calcular la inversa, si existe, de las siguientes matrices. Obtener tambin su determinante: 4 a) 3 2 0 6 7 b) 1 2 3 1 0 c) 1 1 1 2 1 1 1 1 1 5 d) 2 1 0 1 1 2 0 2 2 4 2

2 1 1

2 1 3

2 1 3 1 3 1 4 3

1 0 2 4

3. Usando la factorizacin A = LU, resolver, si es posible, los siguientes sistemas: 2 1 1 a) 3 3 1 c) 2 0 3 3 3 1 0 9 5 5 3 2 7 5 5 x1 x2 x3 x1 x2 x3 x4 = = 0 3 1 1 2 3 4 d) b) 2 4 1 1 5 4 6 8 1 4 8 x1 x2 x3 x1 x2 x3 x4 = = 2 0 1 21 52 79 82 2 2

3 3 1 2 2 8

3 10

2 6 3 1

4 12 10 6

4. Usando la factorizacin de Choleski, resolver, si es posible, los siguientes sistemas: 4 a) 2 4 3 1 c) 2 4 2 2 2 8 x1 x2 x3 x1 x2 x3 x4 = = 12 8 24 5 5 1 2 6 d) b) 9 3 0 9 6 2 1 3 5 2 0 2 2 9 9 1 x1 x2 x3 x4 x1 x2 x3 x4 = = 3 9 1 22 6 1 5 5

9 1 23 2 4 1 1 1 4 1 0 1 3

1 1 1 1 0 1 2 1 2 1 4

1 0 1 2

1 0 1

110

BIBLIOGRAFA
1. BURDEN / FAIRES: "Anlisis Numrico". Thomson 2. CONTE: "Anlisis Numrico". McGraw-Hill 3. GERALD / WHEATLEY: Anlisis Numrico con Aplicaciones. Prentice-Hall 4. ISAACSON / KELLER: Analysis of Numerical Methods. Dover 5. STOER / BURLISCH: "Introduction to Numerical Analysis". Springer

111