Você está na página 1de 77

1.

Introduccin
La ciencia y la tecnologa describen los fenmenos reales mediante modelos matemticos. El estudio de estos modelos permite un conocimiento ms profundo del fenmeno, as como de su evolucin futura. La matemtica aplicada es la rama de las matemticas que se dedica a buscar y aplicar las herramientas ms adecuadas a los problemas basados en estos modelos. Desafortunadamente, no siempre es posible aplicar mtodos analticos clsicos por diferentes razones: No se adecan al modelo concreto. Su aplicacin resulta excesivamente compleja. La solucin formal es tan complicada que hace imposible cualquier interpretacin posterior. Simplemente no existen mtodos analticos capaces de proporcionar soluciones al problema. En estos casos son tiles las tcnicas numricas, que mediante una labor de clculo ms o menos intensa, conducen a soluciones aproximadas que son siempre numricos. El importante esfuerzo de clculo que implica la mayora de estos mtodos hace que su uso est ntimamente ligado al empleo de computadores. De hecho, sin el desarrollo que se ha producido en el campo de la informtica resultara difcilmente imaginable el nivel actual de utilizacin de las tcnicas numricas en mbitos cada da ms diversos1.

2. Errores
El concepto de error es consustancial con el clculo numrico. En todos los problemas es fundamental hacer un seguimiento de los errores cometidos a fin de poder estimar el grado de aproximacin de la solucin que se obtiene. Los errores asociados a todo clculo numrico tienen su origen en dos grandes factores: Aquellos que son inherentes a la formulacin del problema. Los que son consecuencia del mtodo empleado para encontrar la solucin del problema. Dentro del grupo de los primeros, se incluyen aquellos en los que la definicin matemtica del problema es slo una aproximacin a la situacin fsica real. Estos errores son normalmente despreciables; por ejemplo, el que se comete al obviar los efectos relativistas en la solucin de un problema de mecnica clsica. En aquellos casos en que estos errores no son realmente despreciables, nuestra solucin ser poco precisa independientemente de la precisin empleada para encontrar las soluciones numricas. Otra fuente de este tipo de errores tiene su origen en la imprecisin de los datos fsicos: constantes fsicas y datos empricos. En el caso de errores en la medida de los datos

empricos y teniendo en cuenta su carcter generalmente aleatorio, su tratamiento analtico es especialmente complejo pero imprescindible para contrastar el resultado obtenido computacional-mente. En lo que se refiere al segundo tipo de error (error computacional), tres son sus fuentes principales: 1. Equivocaciones en la realizacin de las operaciones (errores de bulto). Esta fuente de error es bien conocida por cualquiera que haya realizado clculos manualmente o empleando una calculadora. El empleo de computadores ha reducido enormemente la probabilidad de que este tipo de errores se produzcan. Sin embargo, no es despreciable la probabilidad de que el programador cometa uno de estos errores (calculando correctamente el resultado errneo). Ms an, la presencia de bugs no detectados en el compilador o en el software del sistema no es inusual. Cuando no resulta posible verificar que la solucin calculada es razonablemente correcta, la probabilidad de que se haya cometido un error de bulto no puede ser ignorada. Sin embargo, no es esta la fuente de error que ms nos va a preocupar. 2. El error causado por resolver el problema no como se ha formulado, sino mediante algn tipo de aproximacin. Generalmente est causado por la sustitucin de un infinito (sumatorio o integracin) o un infinitesimal (diferenciacin) por una aproximacin finita. Algunos ejemplos son: El clculo de una funcin elemental (por ejemplo, Seno x) empleando slo n trminos de los infinitos que constituyen la expansin en serie de Taylor. Aproximacin de la integral de una funcin por una suma finita de los valores de la funcin, como la empleada en la regla del trapezoide. Resolucin de una ecuacin diferencial reemplazando las derivadas por una aproximacin (diferencias finitas). Solucin de la ecuacin f(x) = 0 por el mtodo de Newton-Raphson: proceso iterativo que, en general, converge slo cuando el nmero de iteraciones tiende a infinito. Denominaremos a este error, en todas sus formas, como error por truncamiento, ya que resulta de truncar un proceso infinito para obtener un proceso finito. Obviamente, estamos interesados en estimar, o al menos acotar, este error en cualquier procedimiento numrico. 3. Por ltimo, la otra fuente de error de importancia es aquella que tiene su origen en el hecho de que los clculos aritmticos no pueden realizarse con precisin ilimitada. Muchos nmeros requieren infinitos decimales para ser representados correctamente, sin embargo, para operar con ellos es necesario redondearlos. Incluso en el caso en que un nmero pueda representarse exactamente, algunas operaciones aritmticas pueden dar lugar a la aparicin de errores (las divisiones pueden producir nmeros que deben ser redondeados y las multiplicaciones dar

lugar a ms dgitos de los que se pueden almacenar). El error que se introduce al redondear un nmero se denomina error de redondeo.

2.1 Definiciones
Ahora que disponemos de una idea correcta de qu es el error y de cual es su origen, podemos formalizar el concepto de error. Generalmente, no conocemos el valor de una cierta magnitud y hemos de conformarnos con un valor aproximado x. Para estimar la magnitud de este error necesitamos dos definiciones bsicas:
Error absoluto de x: (1)

Error relativo de x:

(2)

En la prctica, se emplea la expresin:

(3)

En general, no conocemos el valor de este error, ya que no es habitual disponer del valor exacto de la magnitud, sino slo de una acotacin de su valor, esto es, un nmero , tal que: (4)

o bien: (5)

De acuerdo con este formalismo, tenemos que un numero se representar del siguiente modo:
= = (6) (7)

2.2 Dgitos significativos


Sea x un nmero real que, en general, tiene una representacin decimal infinita. Podemos decir que x ha sido adecuadamente redondeado a un nmero con d decimales, al que denominaremos x(d), si el error de redondeo, es tal que: (8)

Ejemplo 1: Exprese el nmero x=35.47846 correctamente redondeado a cuatro (x(4)) y tres (x(3)) decimales. Calcular el error cometido. Solucin: en el primer caso obtenemos:
x(4) = 35.4785

En el segundo caso, la aproximacin correcta es:


x(3) = 35.478

y no la siguiente: x(3) = 35.479

Es decir, no es correcto redondear por exceso cuando el dgito anterior es 5 y proviene de un acarreo previo.

Otra forma de obtener el nmero de cifras significativas es mediante truncamiento, en donde simplemente se eliminan los dgitos de orden inferior. El error cometido en este caso es:
(9)

y que, en general, conduce a peores resultados que el mtodo anterior.

Ejemplo 2: Exprese el nmero x=35.47846 truncado a cuatro (x(4)) y tres (x(3)) decimales. Calcular el error cometido. Solucin:
x(4) = 35.4784 =

x(3) = 35.478 =

2.3 Propagacin de errores


Cuando se resuelve un problema matemtico por mtodos numricos y aunque las operaciones se lleven a cabo exactamente, obtenemos una aproximacin numrica del resultado exacto. Es importante tratar de conocer el efecto que sobre el resultado final del problema tiene cada una de las operaciones realizadas.

Para estudiar como se propaga en error, veamos cual es el efecto que cada una de las operaciones bsicas tiene sobre el error final cuando se aplican sobre dos nmeros y :
= = = (10) (11) (12)

(13)

Cuando el problema consiste en calcular el resultado y = f(x)tenemos la siguiente frmula aproximada de propagacin del error:
(14)

En el caso ms general, en que una funcin depende de ms de una variable ( ), la frmula aproximada de propagacin del error maximal es:

(15)

Ejemplo 3: Determinar el error mximo cometido en el clculo y = x1 x22 para y .

Solucin: El error cometido, de acuerdo con la ecuacin (15), se puede calcular mediante:

Sustituyendo valores, obtenemos:

Por lo que el resultado final se debe expresar como:

Ejemplo 4: Sea el siguiente sistema de ecuaciones lineales:

en donde determinar el producto xy?

; b = 1 / a y d = b - aCon qu exactitud podemos

Solucin: Primero resolveremos el sistema de ecuaciones por reduccin:

Ecuaciones que conducen a la siguiente expresin para el producto:

(16)

Resolveremos ahora el problema por dos mtodos. Primero, calcularemos el error asociado a cada una de las variables y los trminos de la expresin anterior:

Sustituyendo valores, obtenemos el siguiente resultado:

Una forma mucho ms adecuada de resolver este problema consiste en sustituir en la expresin (16) los valores de b y d por sus correspondientes expresiones en funcin de a. Sustituyendo y operando, obtenemos que el producto y el error asociado vienen dados por:

que, sustituyendo valores, conduce al resultado:

Si ambos resultados son correctos Por qu el error es mucho menor en el segundo caso que en el primero? La respuesta es simple: en el segundo caso hemos eliminado operaciones intermedias, permitiendo que algunos errores se cancelen mutuamente. En general, cuanto menor sea el nmero de pasos intermedios que efectuemos para alcanzar la solucin, menor ser el error cometido.

2.4 Ejercicios adicionales


1. Con qu exactitud es necesario medir el radio de una esfera para que su volumen sea conocido con un error relativo menor de 0.01%? Cuantos decimales es necesario emplear para el valor de ?

Soluciones: cifras decimales.


2.

. El nmero

debe expresarse al menos con seis

Supongamos una barra de hierro de longitud l y seccin rectangular fija por uno de sus extremos. Si sobre el extremo libre aplicamos una fuerza F perpendicular a la barra, la flexin s que sta experimenta viene dada por la expresin:

en donde E es una constante que depende slo del material denominada mdulo de Young. Conociendo que una fuerza de 140 Kp aplicada sobre una barra de 125 cm de longitud y seccin cuadrada de 2.5 cm produce una flexin de 1.71 mm, calcular el mdulo de Young y el intervalo de error. Suponer que los datos vienen afectados por un error mximo correspondiente al de aproximar por truncamiento las cifras dadas.

3. Aritmtica de computadores
Los computadores no almacenan los nmeros con precisin infinita sino de forma aproximada empleando un nmero fijo de bits (apcope del trmino ingls Binary Digit) o bytes (grupos de ocho bits). Prcticamente todos los computadores permiten al programador elegir entre varias representaciones o 'tipos de datos'. Los diferentes tipos de datos pueden

diferir en el nmero de bits empleados, pero tambin (lo que es ms importante) en cmo el nmero representado es almacenado: en formato fijo (tambin denominado 'entero') o en punto flotante2 (denominado 'real').

3.1 Aritmtica de punto fijo


Un entero se puede representar empleando todos los bits de una palabra de computadora, con la salvedad de que se debe reservar un bit para el signo. Por ejemplo, en una mquina con longitud de palabra de 32 bits, los enteros estn comprendidos entre -(231 - 1) y 231 - 1 = 2147483647. Un nmero representado en formato entero es 'exacto'. Las operaciones aritmticas entre nmeros enteros son tambin 'exactas' siempre y cuando:
1. La solucin no est fuera del rango del nmero entero ms grande o ms pequeo que se puede representar (generalmente con signo). En estos casos se dice que se comete un error de desbordamiento por exceso o por defecto (en ingls: Overflow y Underflow) y es necesario recurrir a tcnicas de escalado para llevar a cabo las operaciones. 2. La divisin se interpreta que da lugar a un nmero entero, despreciando cualquier resto. Por estos motivos, la aritmtica de punto fijo se emplea muy raramente en clculos no triviales.

3.2.1 Notacin cientfica normalizada

En el sistema decimal, cualquier nmero real puede expresarse mediante la denominada notacin cientfica normalizada. Para expresar un nmero en notacin cientfica normalizada multiplicamos o dividimos por 10 tantas veces como sea necesario para que todos los dgitos aparezcan a la derecha del punto decimal y de modo que el primer dgito despus del punto no sea cero. Por ejemplo:

En general, un nmero real x distinto de cero, se representa en notacin cientfica normalizada en la forma:

(17)

en donde r es un nmero tal que

y n es un entero (positivo, negativo o cero).

Exactamente del mismo modo podemos utilizar la notacin cientfica en el sistema binario. En este caso, tenemos que:
(18)

donde m es un entero. El nmero q se denomina mantisa y el entero m exponente. En un ordenador binario tanto q como m estarn representados como nmeros en base 2. Puesto que la mantisa q est normalizada, en la representacin binaria empleada se cumplir que: (19)

3.2.2 Representacin de los nmeros en punto flotante En un ordenador tpico los nmeros en punto flotante se representan de la manera descrita en el apartado anterior, pero con ciertas restricciones sobre el nmero de dgitos de q y m impuestas por la longitud de palabra disponible (es decir, el nmero de bits que se van a emplear para almacenar un nmero). Para ilustrar este punto, consideraremos un ordenador hipottico que denominaremos MARC-32 y que dispone de una longitud de palabra de 32 bits (muy similar a la de muchos ordenadores actuales). Para representar un nmero en punto flotante en el MARC-32, los bits se acomodan del siguiente modo: Signo del nmero real x: Signo del exponente m: Exponente (entero |m|): 1 bit 1 bit 7 bits

Mantisa (nmero real |q|): 23 bits En la mayora de los clculos en punto flotante las mantisas se normalizan, es decir, se toman de forma que el bit ms significativo (el primer bit) sea siempre '1'. Por lo tanto, la mantisa q cumple siempre la ecuacin (19).

Dado que la mantisa siempre se representa normalizada, el primer bit en q es siempre 1, por lo que no es necesario almacenarlo proporcionando un bit significativo adicional. Esta forma de almacenar un nmero en punto flotante se conoce con el nombre de tcnica del 'bit fantasma'. Se dice que un nmero real expresado como aparece en la ecuacin (18) y que satisface la ecuacin (19) tiene la forma de punto flotante normalizado. Si adems puede representarse exactamente con |m| ocupando 7 bits y |q| ocupando 24 bits, entonces es un nmero de mquina en el MARC-323 La restriccin de que |m| no requiera ms de 7 bits significa que:

Ya que , la MARC-32 puede manejar nmeros tan pequeos como 10-38 y tan grandes como 1038. Este no es un intervalo de valores suficientemente generoso, por lo que en muchos casos debemos recurrir a programas escritos en aritmtica de doble precisin e incluso de precisin extendida. Como q debe representarse empleando no ms de 24 bits significa que nuestros nmeros de mquina tienen una precisin limitada cercana a las siete cifras decimales, ya que el bit menos significativo de la mantisa representa unidades de . Por tanto, los nmeros expresados mediante ms de siete dgitos decimales sern objeto de aproximacin cuando se almacenen en el ordenador. Por ejemplo: 0.5 representado en punto flotante en el MARC-32 (longitud de palabra de 32 bits) se almacena en la memoria del siguiente modo:

Ejemplo 5: Suponga un ordenador cuya notacin de punto fijo consiste en palabras de longitud 32 bits repartidas del siguiente modo: 1 bit para el signo, 15 bits para la parte entera y 16 bits para la parte fraccionaria. Represente los nmeros 26.32, y 12542.29301 en base 2 empleando esta notacin de punto fijo y notacin de punto flotante MARC-32 con 32 bits. Calcule el error de almacenamiento cometido en cada caso. Solucin: El nmero 26.32 en binario se escribe del siguiente modo:

Empleando las representaciones comentadas, obtenemos:

Si expresamos el error como la diferencia entre el valor y el nmero realmente almacenado en el ordenador, obtenemos:

En cuanto a los otros dos nmeros, obtenemos:

Antes de entrar con detalle en la aritmtica de los nmeros en punto flotante, es interesante notar una propiedad de estos nmeros de especial importancia en los clculos numricos y que hace referencia a su densidad en la lnea real. Supongamos que p, el nmero de bits de la mantisa, sea 24. En el intervalo (exponente f = 0) es posible representar 224 nmeros igualmente espaciados y separados por una distancia 1/224. De modo anlogo, en cualquier intervalo hay 224 nmeros equiespaciados, pero su densidad en este caso es 2f/224. Por ejemplo, entre 220 = 1048576 y 221 = 2097152 hay 224 = 16777216 nmeros, pero el espaciado entre dos nmeros sucesivos es de slo . De este hecho se deriva inmediatamente una regla prctica: cuando es necesario comparar dos nmeros en

punto flotante relativamente grandes, es siempre preferible comparar la diferencia relativa a la magnitud de los nmeros. En la figura (1) se representa grficamente la separacin entre dos nmeros consecutivos en funcin del exponente f en el rango f = [20,30].

Figure: Evolucin de la separacin entre dos


nmeros consecutivos en funcin del exponente, f, de la representacin en punto flotante de un nmero real.

[bb=55 60 455 410, clip=true, scale=0.7]eps/expon

3.3 Aritmtica de punto flotante


En este apartado analizaremos los errores inherentes a la aritmtica de los nmeros de punto flotante. Primero consideraremos el error que surge como consecuencia de que los nmeros reales no se pueden almacenar, en general, de forma exacta en un ordenador. Despus analizaremos las cuatro operaciones aritmticas bsicas y finalmente ampliaremos el estudio a un clculo ms complejo.

3.3.1 Nmeros de mquina aproximados

Estamos interesados en estimar el error en que se incurre al aproximar un nmero real positivo x mediante un nmero de mquina del MARC-32. Si representamos el nmero mediante:

en donde cada ai es 0 1 y el bit principal es a1 = 1. Un nmero de mquina se puede obtener de dos formas:

Truncamiento: descartando todos los bits excedentes . El nmero resultante, x' es siempre menor que x (se encuentra a la izquierda de x en la recta real). Redondeo por exceso: Aumentamos en una unidad el ltimo bit remanente a24 y despus eliminamos el exceso de bits como en el caso anterior.

Todo lo anterior, aplicado al caso del MARC-32, se resume diciendo que si x es un nmero real distinto de 0 dentro del intervalo de la mquina, entonces el nmero de mquina x* ms cercano a x satisface la desigualdad:

(20)

que se puede escribir de la siguiente forma:

Ejemplo 6: Cmo se expresa en binario el nmero x = 2/3? Cules son los nmeros de mquina x' y x'' prximos en el MARC-32?

El nmero 2/3 en binario se expresa como:

Los dos nmeros de mquina prximos, cada uno con 24 bits, son: x' = x'' =

en donde x' se ha obtenido por truncamiento y x'' mediante redondeo por exceso. Calculamos ahora las diferencias x - x' y x'' - x para estimar cual es el error cometido:

x - x'

x'' - x

Por tanto, el nmero ms prximo es fl(x) = x'' y los errores de redondeo absoluto y relativo son:

|fl(x) - x| =

= 2-25 < 2-24

3.3.2 Las operaciones bsicas

Vamos a analizar el resultado de operar sobre dos nmeros en punto flotante normalizado de l-dgitos de longitud, x e y, que producen un resultado normalizado de l-dgitos. Expresaremos esta operacin como:

en donde op es +, -, . Supondremos que en cada caso la mantisa del resultado es primero normalizada y despus redondeada (operacin que puede dar lugar a un desbordamiento que requerira renormalizar el nmero). El valor de la mantisa redondeada a p bits, qr, se define como (de una forma ms rigurosa que en el caso anterior):

en donde la funcin redondeo por defecto

es el mayor entero menor o igual a x y la funcin

redondeo por exceso es el menor entero mayor o igual a x. Para nmeros enteros, esta funcin se traduce en la bien conocida regla de sumar 1 en la posicin p + 1. Teniendo en cuenta slo la mantisa, redondear de este modo da lugar a un intervalo mximo del error de: (21)

y un error relativo mximo en el intervalo:

(22)

Analizaremos ahora el error generado por cada una de las operaciones bsicas:
Multiplicacin. La operacin de multiplicar dos nmeros expresados en punto flotante implica sumar los exponentes y multiplicar las mantisas. Si la mantisa resultante no est normalizada, se

recurre a renormalizar el resultado ajustando adecuadamente el exponente. Despus, es necesario redondear la mantisa a p bits. Para analizar el error de esta operacin supongamos dos nmeros:

Tenemos entonces que el producto ser: xy = qx qy 2fx + fy

en donde el valor de la mantisa se encontrar en el rango:

ya que tanto x como y satisfacen la ecuacin (19). Por tanto, la normalizacin del producto qx qy implica un desplazamiento a la derecha de, como mximo, una posicin. La mantisa redondeada ser entonces uno de estos dos posibles valores:

en donde

, que es el error de redondeo, cumple la ecuacin (21). Tenemos entonces:

en donde, de acuerdo con la ecuacin (22), tenemos:

Por tanto, la cota del error relativo en la multiplicacin es la misma que la que surge por redondear la mantisa.
Divisin. Para llevar a cabo la divisin en punto flotante, se divide la mitad de la mantisa del numerador por la mantisa del denominador (para evitar cocientes mayores de la unidad), mientras que los exponentes se restan. Esto es:

Puesto que ambas mantisas satisfacen la ecuacin (18), el valor del cociente estar acotado entre los lmites:

Aplicando un anlisis similar al empleado en el caso de la multiplicacin, obtenemos:

en donde, de acuerdo con la ecuacin (22), tenemos:

Es decir, la cota mxima del error relativo en la divisin, como en el caso anterior, es la misma que la que surge por redondear la mantisa. Adicin y sustraccin. La operacin de suma o resta se realiza del siguiente modo: se toma la mantisa del operando de menor magnitud (supongamos que es y) y se desplaza fx - fy posiciones a la derecha. La mantisa resultante es sumada (o restada) y el resultado se normaliza y despus se redondea. Es decir:

El anlisis del error cometido en esta operacin es ms complejo que los estudiados hasta ahora, por lo que no lo vamos a ver en detalle. Sin embargo, el resultado final indica que la cota mxima del error cometido en la adicin y la sustraccin viene dado por:

En conclusin, en todas las operaciones aritmticas elementales en punto flotante, el error absoluto del resultado es no mayor de 1 en el bit menos significativo de la mantisa. Sin embargo, los errores de redondeo se acumulan a medida que aumenta el nmero de clculos. Si en el proceso de calcular un valor se llevan a cabo N operaciones aritmticas es
4 posible obtener, en el mejor de los casos, un error de redondeo total del orden de (que coincide con el caso en que los errores de redondeo estn aleatoriamente distribuidos, por lo que se produce una cancelacin parcial). Desafortunadamente, este error puede crecer muy rpidamente por dos motivos:

Es muy frecuente que la regularidad del clculo o las peculiaridades del computador den lugar a que el error se acumule preferentemente en una direccin; en cuyo caso el error de redondeo se puede aproximar a . En circunstancias especialmente desfavorables pueden existir operaciones que incremente espectacularmente el error de redondeo. Generalmente, este fenmeno se da cuando se calcula la diferencia entre dos nmeros muy prximos, dando lugar a un resultado en el

cual los nicos bits significativos que no se cancelan son los de menor orden (en los nicos en que difieren). Puede parecer que la probabilidad de que se de dicha situacin es pequea, sin embargo, algunas expresiones matemticas fomentan este fenmeno.

Veamos con un ejemplo los problemas comentados anteriormente. Hay dos formas de calcular las soluciones de la familiar ecuacin cuadrtica:
ax2 + bx + c = 0

que son:

(23)

(24)

Cualquiera de estas dos expresiones da problemas cuando a, c o ambos, son pequeos. En estos casos, el valor del discriminante es muy prximo al valor de b:

por lo que la diferencia viene afectada de un error de redondeo importante. En efecto, la ecuacin (23) evala bien la raz ms grande en valor absoluto, pero da psimos resultados al estimar la raz menor en valor absoluto. Por otra parte, la ecuacin (24) calcula bien la raz menor (siempre en valor absoluto) pero no la raz ms grande.

La solucin del problema pasa por emplear una expresin mejor condicionada. En este caso, es preferible calcular previamente:

(25)

y las dos races a partir de valor de q como: (26)

Ejemplo: Calcular las races de la siguiente ecuacin cuadrtica:


ax2 + bx + c = 0

siendo:

Solucin: Empleando la ecuacin (23), obtenemos:

Sin embargo, empleando la expresin (24):

Por ltimo, empleando las expresiones (25) y (26) se obtienen ambas soluciones correctas:

3.4 Desbordamiento por exceso y desbordamiento por defecto


En la discusin anterior, hemos ignorado la posibilidad de que el resultado de una operacin del punto flotante pueda no ser representable mediante el esquema fijo (l-bits) empleado por el ordenador. La magnitud ms grande que puede representarse mediante la frmula general (18) es:
(27)

en donde F es el mayor exponente positivo representable (generalmente 27 - 1) y M es la mantisa que tiene todos sus bits puestos a 1 ( M = 1 - 224). Un desbordamiento por exceso de punto flotante (overflow en ingls) se origina cuando el resultado de una operacin de punto flotante tiene una magnitud mayor que la representada por la ecuacin (27).

Ejemplo: Con q = 8 (y por tanto F = 27 - 1 = 127), las siguientes operaciones aritmticas dan lugar a desbordamiento por exceso:

El desbordamiento por defecto (underflow en ingls) se produce cuando el resultado de una operacin en punto flotante es demasiado pequeo, aunque no nulo, como para que se pueda expresar en la forma dada por la ecuacin (18). El nmero ms pequeo representable suponiendo que siempre trabajamos con mantisas normalizadas es en donde -F es el exponente negativo ms grande permitido (generalmente -2-q-1). Por ejemplo, con q=8 resulta -F = -128. Ejemplo: Con q = 8 (y por tanto -F = -128), la siguiente operacin aritmtica da lugar a desbordamiento por defecto: ,

El desbordamiento por exceso es casi siempre resultado de un error en el clculo. Sin embargo, en el caso del desobordamiento por defecto, en muchas ocasiones es posible continuar el clculo reemplazando el resultado por cero.

3.5 Condicionamiento y estabilidad


La 'inestabilidad' en un clculo es un fenmeno que se produce cuando los errores de redondeo individuales se propagan a travs del clculo incrementalmente. Veamos brevemente este fenmeno y el problema relacionado con este: el 'condicionamiento' del mtodo o del problema.

La mejor forma de ver este fenmeno es a travs de un ejemplo. Supongamos el siguiente sistema de ecuaciones diferenciales:

que tiene la siguiente solucin general:

En el caso particular en que las condiciones iniciales de nuestro problema son: y1(0) = -y2(0) = 1

es posible determinar que el valor de las constantes a1 y a2 es: a1 = 0 & y & a2 = 1 Hasta este punto, las soluciones son exactas. Sin embargo, supongamos que el sistema de ecuaciones anterior se resuelve empleando un mtodo numrico cualquiera con el fin de calcular los valores de las funciones y1 y y2 en una secuencia de puntos y

que el error del mtodo da lugar a un valor de . Ya que a1 multiplica a un exponencial creciente cualquier valor, por pequeo que sea, de a1 dar lugar a que el trmino ex domine sobre el trmino e-x para valores suficientemente grandes de x (ver figura (2)). La conclusin que se obtiene es que no es posible calcular una solucin al sistema de ecuaciones diferenciales anterior que, para valores suficientemente grandes de x, no de lugar a un error arbitrariamente grande en relacin con la solucin exacta.

Figure: Representacin grfica de las funciones y = ex

en donde se pone de manifiesto que ambas funciones difieren rpidamente a partir de un cierto valor de la ordenada x.

[scale=0.7]eps/sinu

El problema anterior se dice que es inherentemente inestable, o empleando una terminologa ms comn en clculo numrico, se dice que est 'mal condicionado' (illconditioned).

4. Clculo de races de ecuaciones


El objeto del clculo de las races de una ecuacin es determinar los valores de x para los que se cumple:

f(x) = 0

(28)

La determinacin de las races de una ecuacin es uno de los problemas ms antiguos en matemticas y se han realizado un gran nmero de esfuerzos en este sentido. Su importancia radica en que si podemos determinar las races de una ecuacin tambin podemos determinar mximos y mnimos, valores propios de matrices, resolver sistemas de ecuaciones lineales y diferenciales, etc... La determinacin de las soluciones de la ecuacin (28) puede llegar a ser un problema muy difcil. Si f(x) es una funcin polinmica de grado 1 2, conocemos expresiones simples que nos permitirn determinar sus races. Para polinomios de grado 3 4 es necesario emplear mtodos complejos y laboriosos. Sin embargo, si f(x) es de grado mayor de cuatro o bien no es polinmica, no hay ninguna frmula conocida que permita determinar los ceros de la ecuacin (excepto en casos muy particulares). Existen una serie de reglas que pueden ayudar a determinar las races de una ecuacin: El teorema de Bolzano, que establece que si una funcin continua, f(x), toma en los extremos del intervalo [a,b] valores de signo opuesto, entonces la funcin admite, al menos, una raz en dicho intervalo. En el caso en que f(x) sea una funcin algebraica (polinmica) de grado n y coeficientes reales, podemos afirmar que tendr n races reales o complejas. La propiedad ms importante que verifican las races racionales de una ecuacin algebraica establece que si p/q es una raz racional de la ecuacin de coeficientes enteros:

entonces el denominador q divide al coeficientes an y el numerador p divide al trmino independiente a0. Ejemplo: Pretendemos calcular las races racionales de la ecuacin: 3x3 + 3x2 - x - 1 = 0

Primero es necesario efectuar un cambio de variable x = y/3:

y despus multiplicamos por 32: y3 + 3y2 -3y -9 = 0

con lo que los candidatos a raz del polinomio son:

Sustituyendo en la ecuacin, obtenemos que la nica raz real es y = -3, es decir, (que es adems la nica raz racional de la ecuacin). Lgicamente, este mtodo es muy poco potente, por lo que slo nos puede servir a modo de orientacin. La mayora de los mtodos utilizados para el clculo de las races de una ecuacin son iterativos y se basan en modelos de aproximaciones sucesivas. Estos mtodos trabajan del siguiente modo: a partir de una primera aproximacin al valor de la raz, determinamos una aproximacin mejor aplicando una determinada regla de clculo y as sucesivamente hasta que se determine el valor de la raz con el grado de aproximacin deseado.

4.1 Mtodo de la biseccin


Es el mtodo ms elemental y antiguo para determinar las races de una ecuacin. Est basado directamente en el teorema de Bolzano explicado con anterioridad. Consiste en partir de un intervalo [x0,x1]tal que f(x0)f(x1) < 0, por lo que sabemos que existe, al menos, una raz real. A partir de este punto se va reduciendo el intervalo sucesivamente hasta hacerlo tan pequeo como exija la precisin que hayamos decidido emplear.

Figure: Diagrama de flujo correspondiente a la


implementacin del mtodo de la biseccin.

[scale=0.9]eps/bisecc

El algoritmo empleado se esquematiza en la figura (3). Inicialmente, es necesario suministrar al programa el nmero mximo de iteraciones MaxIter, la tolerancia , que representa las cifras significativas con las que queremos obtener la solucin y dos valores de la variable independiente, x0 y x1, tales que cumplan la relacin f(x0)f(x1) < 0. Una vez que se comprueba que el intervalo de partida es adecuado, lo dividimos en dos

subintervalos tales que y y determinamos en qu subintervalo se encuentra la raz (comprobando de nuevo el producto de las funciones). Repetimos el proceso hasta alcanzar la convergencia (hasta que ) o bien hasta que se excede el nmero de iteraciones permitidas (Iter > MaxIter), en cuyo caso es necesario imprimir un mensaje de error indicando que el mtodo no converge. Dos operaciones representadas en el esquema de la figura (3) requieren una explicacin adicional:

El punto medio del intervalo se calcula como

en lugar de

emplear . Se sigue de este modo una estrategia general al efectuar clculos numricos que indica que es mejor calcular una cantidad aadiendo un pequeo trmino de correccin a una aproximacin obtenida previamente. Por ejemplo, en un computador de precisin limitada, existen valores de x0 y x1 para los cuales xm calculado mediante se sale del intervalo [x0,x1].

La convergencia ( ) se calcula mediante la expresin . De este modo, el trmino , representa el nmero de cifras significativas con las que obtenemos el resultado.

4.2 Mtodo de las aproximaciones sucesivas


Dada la ecuacin f(x) = 0, el mtodo de las aproximaciones sucesivas reemplaza esta ecuacin por una equivalente, x=g(x), definida en la forma g(x)=f(x)+x. Para encontrar la solucin, partimos de un valor inicial x0 y calculamos una nueva aproximacin x1=g(x0). Reemplazamos el nuevo valor obtenido y repetimos el proceso. Esto da lugar a una sucesin de valores si converge, tendr como lmite la solucin del problema. , que

Figure: Interpretacin geomtrica del mtodo de las


aproximaciones sucesivas.

[scale=0.9]eps/as-1

En la figura (4) se representa la interpretacin geomtrica del mtodo. Partimos de un punto inicial x0 y calculamos y = g(x0). La interseccin de esta solucin con la recta y=x nos dar un nuevo valor x1 ms prximo a la solucin final. Sin embargo, el mtodo puede divergir fcilmente. Es fcil comprobar que el mtodo slo podr converger si la derivada g'(x) es menor en valor absoluto que la unidad (que es la pendiente de la recta definida por y=x). Un ejemplo de este caso se muestra en la figura (5). Esta condicin, que a priori puede considerarse una severa restriccin del mtodo, puede obviarse fcilmente. Para ello basta elegir la funcin g(x) del siguiente modo:

de forma que tomando un valor de la condicin de la derivada.

adecuado, siempre podemos hacer que g(x) cumpla

Figure: Demostracin grfica de que el mtodo de


las aproximaciones sucesivas diverge si la derivada g'(x) > 1.

[scale=0.9]eps/as-2

4.3 Mtodo de Newton


Este mtodo parte de una aproximacin inicial x0 y obtiene una aproximacin mejor, x1, dada por la frmula:

(29)

La expresin anterior puede derivarse a partir de un desarrollo en serie de Taylor. Efectivamente, sea r un cero de f y sea x una aproximacin a r tal que r=x+h. Si f'' existe y es continua, por el teorema de Taylor tenemos:

0 = f(r) = f(x+h) = f(x) + hf'(x) + O(h2)

(30)

en donde h=r-x. Si x est prximo a r (es decir hes pequea), es razonable ignorar el trmino O(h2):

0 = f(x) + hf'(x)

(31)

por lo que obtenemos la siguiente expresin para h:

(32)

A partir de la ecuacin (32) y teniendo en cuenta que r=x+h es fcil derivar la ecuacin (29).

Figure: Interpretacin geomtrica del mtodo de


Newton.

[scale=0.9]eps/new-1

El mtodo de Newton tiene una interpretacin geomtrica sencilla, como se puede apreciar del anlisis de la figura (6). De hecho, el mtodo de Newton consiste en una linealizacin de la funcin, es decir, f se reemplaza por una recta tal que contiene al punto (x0,f(x0)) y cuya pendiente coincide con la derivada de la funcin en el punto, f'(x0). La nueva aproximacin a la raz, x1, se obtiene de la interseccin de la funcin linear con el eje X de ordenadas. Veamos como podemos obtener la ecuacin (29) a partir de lo dicho en el prrafo anterior. La ecuacin de la recta que pasa por el punto (x0,f(x0)) y de pendiente f'(x0) es:

y - f(x0) = f'(x0)(x-x0)

(33)

de donde, haciendo y=0 y despejando x obtenemos la ecuacin de Newton-Raphson (29).

Figure: Dos situaciones en las que el mtodo de


Newton no funciona adecuadamente: (a) el mtodo no alcanza la convergencia y (b) el mtodo converge hacia un punto que no es un cero de la ecuacin.

[scale=0.9]eps/new-2

El mtodo de Newton es muy rpido y eficiente ya que la convergencia es de tipo cuadrtico (el nmero de cifras significativas se duplica en cada iteracin). Sin embargo, la convergencia depende en gran medida de la forma que adopta la funcin en las proximidades del punto de iteracin. En la figura (7) se muestran dos situaciones en las que este mtodo no es capaz de alcanzar la convergencia (figura (7a)) o bien converge hacia un punto que no es un cero de la ecuacin (figura (7b)).

4.4 Mtodo de la secante


El principal inconveniente del mtodo de Newton estriba en que requiere conocer el valor de la primera derivada de la funcin en el punto. Sin embargo, la forma funcional de f(x) dificulta en ocasiones el clculo de la derivada. En estos casos es ms til emplear el mtodo de la secante.

El mtodo de la secante parte de dos puntos (y no slo uno como el mtodo de Newton) y estima la tangente (es decir, la pendiente de la recta) por una aproximacin de acuerdo con la expresin:

(34)

Sustituyendo esta expresin en la ecuacin (29) del mtodo de Newton, obtenemos la expresin del mtodo de la secante que nos proporciona el siguiente punto de iteracin:

(35)

Figure: Representacin geomtrica del mtodo de la


secante.

[scale=0.9]eps/secante

En la siguiente iteracin, emplearemos los puntos x1 y x2para estimar un nuevo punto ms prximo a la raz de acuerdo con la ecuacin (35). En la figura (8) se representa geomtricamente este mtodo. En general, el mtodo de la secante presenta las mismas ventajas y limitaciones que el mtodo de Newton-Raphson explicado anteriormente.

4.5 Mtodo de Steffensen


El mtodo de Steffensen presenta una convergencia rpida y no requiere, como en el caso del mtodo de la secante, la evaluacin de derivada alguna. Presenta adems, la ventaja adicional de que el proceso de iteracin slo necesita un punto inicial. Este mtodo calcula el siguiente punto de iteracin a partir de la expresin:

(36)

4.6 Mtodo de la falsa posicin


El mtodo de la falsa posicin pretende conjugar la seguridad del mtodo de la biseccin con la rapidez del mtodo de la secante. Este mtodo, como en el mtodo de la biseccin, parte de dos puntos que rodean a la raz f(x) = 0, es decir, dos puntos x0 y x1tales que f(x0)f(x1) < 0. La siguiente aproximacin, x2, se calcula como la interseccin con el eje X de la recta que une ambos puntos (empleando la ecuacin (35) del mtodo de la secante). La asignacin del nuevo intervalo de bsqueda se realiza como en el mtodo de la biseccin: entre ambos intervalos, [x0,x2] y [x2,x1], se toma aquel que cumpla f(x)f(x2) < 0. En la figura (9) se representa geomtricamente este mtodo.

Figure: Representacin geomtrica del mtodo de la


falsa posicin.

[scale=0.9]eps/falpos

La eleccin guiada del intervalo representa una ventaja respecto al mtodo de la secante ya que inhibe la posibilidad de una divergencia del mtodo. Por otra parte y respecto al

mtodo de la biseccin, mejora notablemente la eleccin del intervalo (ya que no se limita a partir el intervalo por la mitad).

Figure: Modificacin del mtodo de la falsa posicin


propuesta por Hamming. La aproximacin a la raz se toma a partir del punto de interseccin con el eje X de la recta que une los puntos ( x0,f(x0)/2) y (x1,f(x1)) si la funcin es convexa en el intervalo (figura a) o bien a partir de la recta que une los puntos (x0,f(x0)) y (x1, f(x1)/2) si la funcin es cncava en el intervalo (figura b).

[scale=0.9]eps/hamming

Sin embargo, el mtodo de la falsa posicin tiene una convergencia muy lenta hacia la solucin. Efectivamente, una vez iniciado el proceso iterativo, uno de los extremos del intervalo tiende a no modificarse (ver figura (9)). Para obviar este problema, se ha propuesto una modificacin del mtodo, denominada mtodo de Hamming. Segn este mtodo, la aproximacin a una raz se encuentra a partir de la determinacin del punto de interseccin con el eje X de la recta que une los puntos ( x0,f(x0)/2) y (x1,f(x1)) si la funcin es convexa en el intervalo o bien a partir de la recta que une los puntos (x0,f(x0)) y (x1, f(x1)/2) si la funcin es cncava en el intervalo. En la figura (10) se representa grficamente el mtodo de Hamming. Como hemos comentado, el mtodo de Hamming requiere determinar la concavidad o convexidad de la funcin en el intervalo de iteracin. Un mtodo relativamente sencillo para determinar la curvatura de la funcin consiste en evaluar la funcin en el punto medio del intervalo, f(xm) (en donde xm se calcula como en el mtodo de la biseccin) y comparar este valor con la media de los valores de la funcin en los extremos del intervalo, . Tenemos entonces que:

5. Puntos fijos e iteracin funcional


El mtodo de Newton y el de Steffenson son ejemplos de procedimientos mediante los cuales se calcula una sucesin de puntos empleando una frmula de recurrencia como la siguiente:

xn+1 = F(xn)

(37)

El algoritmo definido de este modo se denomina iteracin funcional. Ejemplo: En el caso del mtodo de Newton, la expresin (37) se escribira del modo:

en tanto que para el mtodo de Steffensen resulta ser:

La frmula (37) puede utilizarse para generar sucesiones que no convergen, como por ejemplo la sucesin 1, 3, 9, 27,..., que se obtiene con x0=1 y F(x)=3x. Sin embargo, estamos interesados en aquellos casos para los que existe para los que se cumple: . Es decir, aquellos casos

Es fcil comprobar que si F es continua se cumple la siguiente relacin entre F y s:

Tenemos, por tanto, que F(s)=s y denominamos a s punto fijo de la funcin F. Podemos considerar al punto fijo como un valor al que se fija la funcin durante el proceso iterativo. Como hemos visto en el apartado anterior, con frecuencia un problema matemtico puede reducirse al problema de encontrar un punto fijo de una funcin. En este caso, nos limitaremos a analizar el caso ms sencillo en que F enva en s mismo algn conjunto cerrado y adems se trata de una aplicacin contractiva. Se dice que una transformacin es contractiva si existe un nmero menor que 1 que satisfaga la relacin: (38)

para todos los puntos x e y en el dominio de F. Las aplicaciones contractivas cumplen una propiedad de gran importancia, que se puede expresar del siguiente modo: Sea F una aplicacin contractiva que va de un conjunto cerrado a C. Entonces F tiene un punto fijo. Ms an, este punto fijo es el lmite de toda sucesin que se obtenga a partir de la ecuacin (37) con cualquier punto inicial .

El enunciado anterior, conocido como teorema de la aplicacin contractiva se puede demostrar fcilmente. Para ello, primero escribimos xn en la forma:

De acuerdo con la expresin anterior, vemos que la sucesin [xn]converge si y slo si la serie

converge. Para demostrar que esta serie converge, basta con demostrar que la serie (39)

converge.

Por otra parte, usando la propiedad de las aplicaciones contractivas expresada por (38) junto con la ecuacin (37), podemos escribir: (40)

La relacin expresada por (40) puede repetirse para obtener: (41)

Para comprobar que la sucesin (39) converge, podemos utilizar el criterio de comparacin, de modo que a partir de la expresin (41) obtenemos:

Es decir, la sucesin converge tal como establece el teorema de la aplicacin contractiva expresado anteriormente. Comprobemos ahora que el punto fijo es efectivamente nico. Para ello, supongamos que existen dos puntos fijos, x e y. De acuerdo con la relacin (38), tenemos:

Ya que es un nmero finito menor que uno, la nica forma de que la ecuacin anterior se cumpla es si |x-y| = 0; es decir, si el punto fijo es nico. Ejemplo: Demuestre que la sucesin [xn] definida recursivamente de acuerdo con:

es contractiva y tiene un punto fijo. Para comprobar que la funcin anterior es contractiva, calculemos la diferencia entre dos trminos cualesquiera de la sucesin anterior:

(por la desigualdad triangular). Por tanto, de acuerdo con el teorema de la aplicacin contractiva, la sucesin debe converger a un nico punto fijo, cuyo valor es 2 (comprubelo).

6. Resolucin de sistemas de ecuaciones lineales


El objetivo de este apartado es examinar los aspectos numricos que se presentan al resolver sistemas de ecuaciones lineales de la forma:

(42)

Se trata de un sistema de n ecuaciones con n incgnitas, x1, x2, ..., xn. Los elementos aij y bi son nmeros reales fijados. El sistema de ecuaciones (42) se puede escribir, empleando una muy til representacin matricial, como:

(43)

Entonces podemos denotar estas matrices por A, x y b de forma que la ecuacin se reduce simplemente a: Ax=b (44)

Los mtodos de resolucin de sistemas de ecuaciones se pueden dividir en dos grandes grupos: Los Mtodos exactos o algoritmos finitos que permiten obtener la solucin del sistema de manera directa. Los Mtodos aproximados que utilizan algoritmos iterativos e infinitos y que calculan las solucin del sistema por aproximaciones sucesivas. Al contrario de lo que pueda parecer, en muchas ocasiones los mtodos aproximados permiten obtener un grado de exactitud superior al que se puede obtener empleando los denominados mtodos exactos, debido fundamentalmente a los errores de truncamiento que se producen en el proceso. De entre los mtodos exactos analizaremos el mtodo de Gauss y una modificacin de ste denominado mtodo de Gauss-Jordan. Entre los mtodos aproximados nos centraremos en el estudio de los mtodos de Richardson, Jacobi y Gauss-Seidel.

6.1 Mtodos de resolucin exacta


Antes de abordar el estudio de los mtodos de resolucin exacta de sistemas de ecuaciones lineales, analizaremos algunas propiedades y relaciones tiles que caracterizan a estos sistemas.
6.1.1 Sistemas fciles de resolver

Analizaremos previamente un sistema que sea fcil de resolver. Por ejemplo, supongamos que la matriz A de presenta estructura diagonal, es decir, todos los componentes distintos de cero se encuentran sobre la diagonal principal. El sistema de ecuaciones (43) toma por tanto la forma:

(45)

En este caso el sistema se reduce a n ecuaciones simples y la solucin es:

(46)

Continuando con la bsqueda de sistemas con soluciones fciles, supongamos ahora que A tiene una estructura triangular inferior, es decir, todos los elementos de Adistintos de cero se sitan bajo la diagonal principal:

(47)

Es fcil ver que el valor de x1 se obtiene directamente a partir de la primera ecuacin. Sustituyendo el valor conocido de x1 en la segunda ecuacin es posible obtener el valor de x2. Procediendo de la misma forma para el resto de las ecuaciones, es posible obtener todos los valores x1 , x2, x3, ..., xn uno tras otro y en ese orden. El algoritmo formal para encontrar la solucin se denomina sustitucin progresiva y se puede expresar como:

(48)

Se puede emplear el mismo razonamiento para el caso en que la estructura de la matriz A sea triangular superior. En este caso el sistema matricial adopta la forma:

(49)

y es posible obtener las soluciones en el orden xn, xn-1, ..., x1, empleando en este caso una modificacin del algoritmo expresado por la ecuacin (48) y que denominados algoritmo de sustitucin regresiva:

(50)

Como es lgico, los mtodos descritos se pueden aplicar a todos aquellos sistemas que se pueden convertir en un sistema triangular permutando filas y columnas de forma adecuada.
6.1.2 La factorizacin LU

Supongamos que A se puede factorizar como el producto de una matriz triangular inferior L con una matriz triangular superior U:

A = LU

(51)

En este caso, el sistema de ecuaciones dado por (44) podra representarse en la forma:

LUx=b

(52)

Si denominamos z a la matriz columna de n filas resultado del producto de las matrices Ux, tenemos que la ecuacin (52) se puede reescribir del siguiente modo:

Lz=b

(53)

A partir de las ecuaciones (52) y (53), es posible plantear un algoritmo para resolver el sistema de ecuaciones empleando dos etapas: Primero obtenemos z aplicando el algoritmo de sustitucin progresiva en la ecuacin (53). Posteriormente obtenemos los valores de x aplicando el algoritmo de sustitucin regresiva a la ecuacin Ux = z

El anlisis anterior nos muestra lo fcil que es resolver estos dos sistemas de ecuaciones triangulares y lo til que resultara disponer de un mtodo que nos permitiera llevar a cabo la factorizacin A=LU. Si disponemos de una matriz A de encontrar aquellas matrices: , estamos interesados en

tales que cumplan la ecuacin (51). Cuando esto es posible, decimos que A tiene una descomposicin LU. Se puede ver que las ecuacin anterior no determina de forma nica a Ly a U. De hecho, para cada i podemos asignar un valor distinto de cero a lii o uii (aunque no ambos). Por

ejemplo, una eleccin simple es fijar lii=1 para haciendo de esto modo que L sea una matriz triangular inferior unitaria. Otra eleccin es hacer U una matriz triangular superior unitaria (tomando uii=1 para cada i).

Para deducir un algoritmo que nos permita la factorizacin LU de Apartiremos de la frmula para la multiplicacin de matrices:

(54)

en donde nos hemos valido del hecho de que lis=0 para s >i y usj=0 para s>j.

En este proceso, cada paso determina una nueva fila de U y una nueva columna de L. En el paso k, podemos suponer que ya se calcularon las filas las columnas de U, al igual que

de L. Haciendo i=j=k en la ecuacin (54) obtenemos

(55)

Si especificamos un valor para lkk (o para ukk), a partir de la ecuacin (55) es posible determinar un valor para el otro trmino. Conocidas ukk y lkk y a partir de la ecuacin (54) podemos escribir las expresiones para la k-sima fila (i=k) y para la k-sima columna (j=k), respectivamente:

(56)

(57)

Es decir, las ecuaciones (57) se pueden emplear para encontrar los elementos ukj y lik.

El algoritmo basado en el anlisis anterior se denomina factorizacin de Doolittle cuando se toman los trminos lii = 1 para (L triangular inferior unitaria) y factorizacin de Crout cuando se toman los trminos uii=1 (U triangular superior unitaria). Una implementacin en pseudocdigo del algoritmo para llevar a cabo la factorizacin LU se muestra en la figura (11).

Figure: Implementacin del algoritmo de la factorizacin LU.

Es interesante notar que los bucles que permiten el cmputo de la k-sima fila de U y de la k-sima columna de L se pueden llevar a cabo en paralelo, es decir, pueden evaluarse simultneamente sobre dos procesadores, lo que redunda en un importante ahorro del tiempo de clculo. Ejemplo: Encuentre las factorizaciones de Doolittle y Crout de la matriz:

La factorizacin de Doolittle es, a partir del algoritmo:

En vez de calcular la factorizacin de Crout directamente, la podemos obtener a partir de la factorizacin de Doolittle que acabamos de ver. Efectivamente, si tenemos en cuenta que la matriz A es simtrica, es posible comprobar que se cumple la relacin:
A = LU = UTLT

por lo que la factorizacin de Crout resulta ser:

6.1.3 Eliminacin gaussiana bsica

Ilustraremos el mtodo de Gauss aplicando el procedimiento a un sistema de cuatro ecuaciones con cuatro incgnitas:

(58)

En el primer paso, multiplicamos la primera ecuacin por despus multiplicamos la primera ecuacin por

y la restamos a la segunda,

y la restamos a la tercera y finalmente

multiplicamos la primera ecuacin por y la restamos a la cuarta. Los nmeros 2, y -1 son los multiplicadores del primer paso del proceso de eliminacin. El nmero 6 es el elemento pivote de este primer paso y la primera fila, que no sufre modificacin alguna, se denomina fila pivote. El sistema en estos momentos tiene el siguiente aspecto:

(59)

En el siguiente paso del proceso, la segunda fila se emplea como fila pivote y -4 como elemento pivote. Aplicamos del nuevo el proceso: multiplicamos la segunda fila por de la tercera y despus multiplicamos la segunda fila por multiplicadores son en esta ocasin 3 y y la restamos

y la restamos a la cuarta. Los

y el sistema de ecuaciones se reduce a:

(60)

El ltimo paso consiste en multiplicar la tercera ecuacin por sistema resultante resulta ser:

y restarla a la cuarta. El

(61)

El sistema resultante es triangular superior y equivalente al sistema original (las soluciones de ambos sistemas coinciden). Sin embargo, este sistema es fcilmente resoluble aplicando el algoritmo de sustitucin regresiva explicado en el apartado 6.1.1. La solucin del sistema de ecuaciones resulta ser:

Si colocamos los multiplicadores utilizados al transformar el sistema en una matriz triangular inferior unitaria (L) ocupando cada uno de ellos la posicin del cero que contribuy a producir, obtenemos la siguiente matriz:

Por otra parte, la matriz triangular superior (U) formada por los coeficientes resultantes tras aplicar el algoritmo de Gauss (ecuacin 61), es:

Estas dos matrices nos dan la factorizacin LU de la matriz inicial de coeficientes, A, expresada por la ecuacin (58):

Figure: Implementacin del algoritmo de eliminacin gaussiana.

En la figura (12) se muestra un algoritmo en pseudocdigo para llevar a la prctica el proceso bsico de eliminacin gaussiana que acabamos de describir. En este algoritmo se supone que todos los elementos pivote son distintos de cero.
6.1.4 Mtodo de Gauss-Jordan

Como hemos visto, el mtodo de Gauss transforma la matriz de coeficientes en una matriz triangular superior. El mtodo de Gauss-Jordan contina el proceso de transformacin hasta obtener una matriz diagonal unitaria (aij=0 para cualquier ).

Veamos el mtodo de Gauss-Jordan siguiendo con el ejemplo empleado en el apartado anterior. Aplicando el mtodo de Gauss habamos llegado a la siguiente ecuacin:

Ahora seguiremos un procedimiento similar al empleado en el mtodo de Gauss. Tomaremos como pivote el elemento a44=-3; multiplicamos la cuarta ecuacin por restamos a la primera: y la

Realizamos la misma operacin con la segunda y tercera fila, obteniendo:

Ahora tomamos como pivote el elemento a33=2, multiplicamos la tercera ecuacin por restamos a la primera:

y la

Repetimos la operacin con la segunda fila:

Finalmente, tomamos como pivote a22=-4, multiplicamos la segunda ecuacin por sumamos a la primera:

y la

El sistema de ecuaciones anterior es, como hemos visto, fcil de resolver. Empleando la ecuacin (46) obtenemos las soluciones:

6.1.5 Pivoteo

Sin embargo, los algoritmos de Gauss y Gauss-Jordan que acabamos de describir pueden dar lugar a resultados errneos fcilmente. Por ejemplo, analicemos el siguiente sistema de ecuaciones, en el que es un nmero muy pequeo pero distinto de cero:

Al aplicar el algoritmo gaussiano se obtiene el siguiente sistema triangular superior:

y la solucin es:

En el computador, si

es suficientemente pequeo, los trminos y

se

computarn como un mismo nmero, por lo que correcta es:

. Sin embargo, la solucin

Tenemos entonces que la solucin calculada es exacta para x2 pero extremadamente inexacta para x1.

El problema anterior no radica en la pequeez del trmino aii, sino en su pequeez relativa respecto de los otros elementos de su fila. La conclusin que podemos extraer es que un buen algoritmo debe incluir el intercambio de ecuaciones cuando las circunstancias as lo exijan. Un algoritmo que cumple este requisito es el denominado eliminacin gaussiana con pivoteo de filas escaladas.

6.2 Mtodos iterativos


El mtodo de Gauss y sus variantes se conocen con el nombre de mtodos directos: se ejecutan a travs de un nmero finito de pasos y dan lugar a una solucin que sera exacta si no fuese por los errores de redondeo. Por contra, un mtodo indirecto da lugar a una sucesin de vectores que idealmente converge a la solucin. El clculo se detiene cuando se cuenta con una solucin aproximada con cierto grado de precisin especificado de antemano o despus de cierto nmero de iteraciones. Los mtodos indirectos son casi siempre iterativos: para obtener la sucesin mencionada se utiliza repetidamente un proceso sencillo.
6.2.1 Conceptos bsicos

En general, en todos los procesos iterativos para resolver el sistema Ax=b se recurre a una cierta matriz Q, llamada matriz descomposicin, escogida de tal forma que el problema original adopte la forma equivalente:

Qx = (Q-A)x+b

(62)

La ecuacin (62) sugiere un proceso iterativo que se concreta al escribir: (63)

El vector inicial x(0) puede ser arbitrario, aunque si se dispone de un buen candidato como solucin ste es el que se debe emplear. La aproximacin inicial que se adopta, a no ser que se disponga de una mejor, es la idnticamente nula . A partir de la ecuacin (63) se puede calcular una sucesin de vectores x(1), x(2), .... Nuestro objetivo es escoger una matriz Q de manera que: se pueda calcular fcilmente la sucesin [x(k)]. la sucesin [x(k)] converja rpidamente a la solucin.

Como en todo mtodo iterativo, deberemos especificar un criterio de convergencia y un nmero mximo de iteraciones M, para asegurar que el proceso se detiene si no se alcanza la convergencia. En este caso, puesto que x es un vector, emplearemos dos criterios de convergencia que se debern satisfacer simultneamente:
1.

El mdulo del vector diferencia,

, partido por el mdulo del vector x,

deber ser menor que la convergencia deseada:

2. La diferencia relativa del mayor elemento en valor absoluto del vector x(k), , deber ser diez veces menor que :

6.2.2 Mtodo de Richardson

El mtodo de Richardson toma como matriz Q la matriz identidad (I). En este caso la ecuacin (63) queda en la forma:

Ix(k) = (I-A)x(k-1)+b = x(k-1)+r(k-1)

(64)

en donde r(k-1) es el vector residual definido mediante r(k-1)=b-Ax(k-1).

La matriz identidad es aquella matriz diagonal cuyos elementos no nulos son 1, es decir:

y cumple que IA = A

para cualquier valor de A; es decir, es el elemento neutro del producto matricial. De acuerdo con esto, la ecuacin (64) se puede escribir como: x(k) = x(k-1) - Ax(k-1) + b = x(k-1) + r(k-1)

en donde un elemento cualquiera del vector r(k-1) vendr dado por la expresin:

En la figura (13) se muestra un algoritmo para ejecutar la iteracin de Richardson. Este mtodo recibe tambin el nombre de mtodo de relajacin o mtodo de los residuos.

Figure: Implementacin del algoritmo iterativo de


Richardson.

6.2.3 Mtodo de Jacobi

En la iteracin de Jacobi, se escoge una matriz Q que es diagonal y cuyos elementos diagonales son los mismos que los de la matriz A. La matriz Q toma la forma:

y la ecuacin general (63) se puede escribir como

Qx(k) = (Q-A)x(k-1) + b

(65)

Si denominamos R a la matriz A-Q:

la ecuacin (65) se puede reescribir como: Qx(k) = -Rx(k-1) + b

El producto de la matriz Q por el vector columna x(k) ser un vector columna. De modo anlogo, el producto de la matriz R por el vector columna x(k-1) ser tambin un vector columna. La expresin anterior, que es una ecuacin vectorial, se puede expresar por necuaciones escalares (una para cada componente del vector). De este modo, podemos escribir, para un elemento i cualquiera y teniendo en cuenta que se trata de un producto matriz-vector:

Si tenemos en cuenta que en la matriz Q todos los elementos fuera de la diagonal son cero, en el primer miembro el nico trmino no nulo del sumatorio es el que contiene el elemento diagonal qii, que es precisamente aii. Ms an, los elementos de la diagonal de Rson cero, por lo que podemos eliminar el trmino i=j en el sumatorio del segundo miembro. De acuerdo con lo dicho, la expresin anterior se puede reescribir como:

de donde despejando xi(k) obtenemos:

que es la expresin que nos proporciona las nuevas componentes del vector x(k) en funcin de vector anterior x(k-1) en la iteracin de Jacobi. En la figura (14) se presenta un algoritmo para el mtodo de Jacobi.

Figure: Implementacin del mtodo de Jacobi.

El mtodo de Jacobi se basa en escribir el sistema de ecuaciones en la forma:

(66)

Partimos de una aproximacin inicial para las soluciones al sistema de ecuaciones y sustituimos estos valores en la ecuacin (66). De esta forma, se genera una nueva aproximacin a la solucin del sistema, que en determinadas condiciones, es mejor que la aproximacin inicial. Esta nueva aproximacin se puede sustituir de nuevo en la parte derecha de la ecuacin (66) y as sucesivamente hasta obtener la convergencia.
6.2.4 Mtodo de Gauss-Seidel

La iteracin de Gauss-Seidel se define al tomar Q como la parte triangular inferior de A incluyendo los elementos de la diagonal:

Si, como en el caso anterior, definimos la matriz R=A-Q

y la ecuacin (63) se puede escribir en la forma: Qx(k) = -Rx(k-1) + b

Un elemento cualquiera, i, del vector Qx(k) vendr dado por la ecuacin:

Si tenemos en cuenta la peculiar forma de las matrices Q y R, resulta que todos los sumandos para los que j > i en la parte izquierda son nulos, mientras que en la parte derecha son nulos todos los sumandos para los que . Podemos escribir entonces:

de donde despejando xi(k), obtenemos:

Obsrvese que en el mtodo de Gauss-Seidel los valores actualizados de xi sustituyen de inmediato a los valores anteriores, mientras que en el mtodo de Jacobi todas las componentes nuevas del vector se calculan antes de llevar a cabo la sustitucin. Por contra, en el mtodo de Gauss-Seidel los clculos deben llevarse a cabo por orden, ya que el nuevo valor xi depende de los valores actualizados de x1, x2, ..., xi-1. En la figura (15) se incluye un algoritmo para la iteracin de Gauss-Seidel.

Figure: Algoritmo para la iteracin de Gauss-Seidel.

7. Interpolacin
Nos centraremos ahora en el problema de obtener, a partir de una tabla de parejas (x,f(x)) definida en un cierto intervalo [a,b], el valor de la funcin para cualquier xperteneciente a dicho intervalo. Supongamos que disponemos de las siguientes parejas de datos: x x0 x1 x2 y y0 y1 y2 xn yn

El objetivo es encontrar una funcin continua lo ms sencilla posible tal que f(xi) = yi (67)

Se dice entonces que la funcin f(x) definida por la ecuacin (67) es una funcin de interpolacin de los datos representados en la tabla. Existen muchas formas de definir las funciones de interpolacin, lo que da origen a un gran nmero de mtodos (polinomios de interpolacin de Newton, interpolacin de Lagrange, interpolacin de Hermite, etc). Sin embargo, nos centraremos exclusivamente en dos funciones de interpolacin: 1.

Los polinomios de interpolacin de Lagrange. 2. Las funciones de interpolacin splines. Estas funciones son especialmente importantes debido a su idoneidad en los clculos realizados con ordenador.

7.1 Polinomios de interpolacin de Lagrange


Un polinomio de interpolacin de Lagrange, p, se define en la forma:

(68)

en donde

son polinomios que dependen slo de los nodos tabulados , pero no de las ordenadas . La frmula general del polinomio

es:

(69)

Para el conjunto de nodos , estos polinomios son conocidos como funciones cardinales. Utilizando estos polinomios en la ecuacin (68) obtenemos la forma exacta del polinomio de interpolacin de Lagrange.

Ejemplo: Suponga la siguiente tabla de datos:


x 5 -7 -6 0

y 1 -23 -54 -954 Construya las funciones cardinales para el conjunto de nodos dado y el polinomio de interpolacin de Lagrange correspondiente.

Las funciones cardinales, empleando la expresin (69), resultan ser:

El polinomio de interpolacin de Lagrange es:

7.2 Interpolacin de splines


Una funcin spline est formada por varios polinomios, cada uno definido sobre un subintervalo, que se unen entre s obedeciendo a ciertas condiciones de continuidad.

Supongamos que disponemos de n+1 puntos, a los que denominaremos nudos, tales que . Supongamos adems que se ha fijado un entero . es una

Decimos entonces que una funcin spline de grado k con nudos en funcin S que satisface las condiciones:
(i)

en cada intervalo (ii)

, S es un polinomio de grado menor o igual a k.

S tiene una derivada de orden (k-1) continua en

Los splines de grado 0 son funciones constantes por zonas. Una forma explcita de presentar un spline de grado 0 es la siguiente:

Los intervalos no se intersectan entre s, por lo que no hay ambigedad en la definicin de la funcin en los nudos. Un spline de grado 1 se puede definir por:

En las figuras (16) y (17) se muestran las grficas correspondientes a los splines de grado cero y de grado 1 respectivamente.

Figure: Spline de grado 0 con seis puntos. [scale=1.0]eps/spline-1

Figure: Spline de grado 1 con seis puntos. [scale=1.0]eps/spline-2

7.3 Splines cbicos


El spline cbico (k=3) es el spline ms empleado, debido a que proporciona un excelente ajuste a los puntos tabulados y su clculo no es excesivamente complejo.

Sobre cada intervalo , S est definido por un polinomio cbico diferente. Sea Si el polinomio cbico que representa a S en el intervalo [ti,ti+1], por tanto:

Los polinomios Si-1 y Si interpolan el mismo valor en el punto ti, es decir, se cumple:
Si-1(ti) = yi = Si(ti)

por lo que se garantiza que S es continuo en todo el intervalo. Adems, se supone que S' y S'' son continuas, condicin que se emplea en la deduccin de una expresin para la funcin del spline cbico. Aplicando las condiciones de continuidad del spline S y de las derivadas primera S' y segunda S'', es posible encontrar la expresin analtica del spline. No vamos a obtener esta expresin, ya que su demostracin queda fuera del mbito de estos apuntes. Simplemente diremos que la expresin resultante es:

En la expresin anterior, hi=ti+1-ti y son incgnitas. Para determinar sus valores, utilizamos las condiciones de continuidad que deben cumplir estas funciones. El resultado (que tampoco vamos a demostrar) es:

La ecuacin anterior, con lineales con n+1 incgnitas

genera un sistema de n-1ecuaciones . Podemos elegir z0 y z1 de forma arbitraria y .

resolver el sistema de ecuaciones resultante para obtener los valores de Una eleccin especialmente adecuada es hacer z0=z1=0. La funcin spline resultante se denomina spline cbico natural y el sistema de ecuaciones lineal expresado en forma matricial es:

(70)

en donde:

hi = ti+1-ti

ui =

bi =

(71)

Figure: Algoritmo para encontrar los coeficientes zi de un

spline cbico.

Este sistema de ecuaciones, que es tridiagonal, se puede resolver mediante eliminacin gaussiana sin pivoteo como se muestra en la figura (18). El cdigo acepta como entrada un conjunto de nodos (ti) y el conjunto de los valores de la funcin correspondiente (yi) y produce un vector con los vectores zi. Por ltimo, el valor del spline S en un punto xcualquiera interpolado se puede calcular de forma eficiente empleando la siguiente expresin:
(72)

en donde

Ai =

Bi =

Ci =

(73)

Veamos un ejemplo para ilustrar el empleo de los splines cbicos para interpolar los valores de una tabla. En la tabla (1) se muestran algunos valores de una serie de valores tabulados a intervalos regulares de la funcin en el intervalo [0,2.25]. Tambin se indican los valores interpolados empleando el correspondiente spline cbico as como el error absoluto cometido. Obsrvese que el error es cero para los nudos. En la figura (19) se representan grficamente los valores tabulados.

Table: Valores interpolados mediante un spline cbico para la funcin


cometido (en valor absoluto).

e indicacin del error

Si(x)

0.0000 0.0000 0.0000 0.0000E+00 0.0625 0.1250 0.1875 0.1426 1.0732E-01 0.2782 7.5266E-02 0.3997 3.3261E-02

0.2500 0.5000 0.5000 0.0000E+00

0.3125 0.3750 0.4375

0.5744 1.5440E-02 0.6285 1.6155E-02 0.6701 8.6732E-03

0.5000 0.7071 0.7071 0.0000E+00

1.7500 1.3228 1.3228 0.0000E+00 1.8125 1.8750 1.9375 1.3462 6.8994E-07 1.3693 5.9953E-06 1.3919 8.7004E-06

2.0000 1.4142 1.4142 0.0000E+00 2.0625 2.1250 2.1875 1.4361 2.4522E-05 1.4577 4.7329E-05 1.4790 4.6215E-05

2.2500 1.5000 1.5000 0.0000E+00

En la figura (20) se muestra otro ejemplo. Se representan grficamente los puntos interpolados mediante una funcin spline cbica para la funcin y=sen(x).

. Los crculos representan los valores tabulados de la funcin y la lnea continua los puntos interpolados mediante una funcin spline cbica.

Figure: Representacin de la funcin

[bb=560 195 70 580,scale=0.60,clip=true]eps/spline-3

Figure: Representacin de la funcin y=sen(x). Los


crculos representan los valores tabulados de la funcin y la lnea continua los puntos interpolados mediante una funcin spline cbica.

[bb=560 195 70 580,scale=0.60,clip=true]eps/spline-4

8. Integracin numrica
Dada una funcin f definida sobre un intervalo [a,b], estamos interesados en calcular (74)

suponiendo que esta integral tenga sentido para la funcin f. La cuadratura o integracin numrica consiste en obtener frmulas aproximadas para calcular la integral J(f) de f. Estos mtodos son de gran utilidad cuando la integral no se puede calcular por mtodos analticos, su clculo resulta muy costoso y estamos interesados en una solucin con

precisin finita dada o bien slo disponemos de una tabla de valores de la funcin (es decir, no conocemos la forma analtica de f).

8.1 Integracin va interpolacin polinomial


Una estrategia muy til para calcular el valor numrico de la integral dada por la ecuacin (74) consiste en reemplazar fpor otra funcin g, fcil de integrar, que aproxima a f de forma adecuada. Si , se deduce que

Los polinomios son buenos candidatos para el papel de g. De hecho, g puede ser un polinomio que interpola a f en cierto conjunto de nodos5.

Supongamos que deseamos calcular la integral (74). Podemos elegir una serie de nudos, en el intervalo [a,b] e iniciar un proceso de interpolacin de Lagrange (ver apartado 7.1 para una descripcin de los polinomios de interpolacin de Lagrange). El polinomio de grado menor o igual a n que interpola a f en los nudos es:

(75)

La integral (74) se puede escribir entonces como:

Es decir, tenemos una frmula general que se puede emplear para cualquier f y que tiene la forma:

(76)

en donde

8.2 Regla del trapecio


Si en la expresin (76) empleamos polinomios de grado n=1 y tomamos como nudos x0=a y x1=b, tenemos el caso ms sencillo posible, en donde los polinomios de interpolacin son:

por lo que:

La frmula de cuadratura correspondiente es:

Esta expresin se conoce como regla del trapecio y proporciona un resultado exacto para todas las funciones de grado menor o igual a 1.

8.3 Regla de Simpson


Empleando un razonamiento similar al anterior y tomando un polinomio de grado n=2 para interpolar a f, obtenemos la conocida regla de Simpson:

(77)

que es exacta para todos los polinomios de grado polinomios de grado 3.

2 y curiosamente, exacta para todos los

En los clculos prcticos se emplea, generalmente, la regla de Simpson compuesta, en la que el intervalo de integracin [a,b] se divide en un nmero par, n, de subintervalos. Tenemos entonces:

en donde h = (b-a)/n Aplicando la regla de Simpson (77) en cada uno de los subintervalos se obtiene la expresin final:

(78)

Você também pode gostar