1-análisis del error

20
M` etodes Num` erics 1 An´ alisis del error En esta asignatura se presentan algoritmos y estrategias para el c´alculo de soluciones aproximadas ¯ z a soluciones exactas z de algunos problemas matem´aticos. La no coinci- dencia de los valores z z se conoce como error. El objetivo de este tema es m´ ultiple. Por una parte, dotar de las herramientas de an´alisis parauntratamiento riguroso delerror producidoporlamanipulaci´on mec´anica de umeros. Por otra, introducir algunos conceptos b´asicos sobre algor´ ıtmia. De entre estos conceptos destacamos los referentes a su comportamiento frente al error (estabilidad y el condicionamiento) y los referentes a su eficacia (complejidad y orden). Consideraremos los siguientes apartados. Error absoluto y error relativo Analizamos las diferentes fuentes del error. Definimos error de redondeo y error de truncamiento. Repasamos los conceptos de error absoluto y error relativo. Representaci´ on de punto flotante de los n´ umeros reales y aritm´ etica en el ordenador Para la comprensi´on y el control del error producido por la manipulaci´on mec´anica de n´ umeros es necesario conocer el modo en el que las m´aquinas representan, al- macenan y operan con los n´ umeros. En este apartado repasamos la representaci´on de n´ umeros en diferentes bases; introducimos el formato de representaci´on flotante y los estandares IEEE simple y doble precisi´on; calculamos los errores absoluto y relativo (precisi´on de la m´aquina) de estas representaciones; y calculamos el error de truncamiento en la aritm´ etica del ordenador. Errores de redondeo. Propagaci´ on del error de redondeo Estudiamos las f´ormulas de propagaci´on del error a lo largo de una expresi´on matem´atica con uno o varios datos. Calculamos la propagaci´on del error de re- dondeo a lo largo de las operaciones algebraicas. etodos estables e inestables. Problemas mal condicionados Bas´andonos en su comportamiento ante la propagaci´on del error, clasificamos los etodos num´ ericos en estables e inestables. Definimos y damos ejemplos de prob- lemas mal condicionados. Orden de convergencia de un m´ etodo y complejidad algor´ ıtmica Introducimos el concepto de complejidad algor´ ıtmica a trav´ es del n´ umero de op- eraciones (multiplicaciones y divisiones) necesarias para su ejecuci´on. Para los etodos que proporcionan una sucesi´on de valores que convergen a la soluci´on correcta (m´ etodos iterativos) introducimos el concepto de orden de convergencia y constante asint´otica del error. 1

Upload: alexander-nolasco

Post on 24-Dec-2015

2 views

Category:

Documents


1 download

DESCRIPTION

error

TRANSCRIPT

Page 1: 1-Análisis Del Error

Metodes Numerics

1 Analisis del error

En esta asignatura se presentan algoritmos y estrategias para el calculo de solucionesaproximadas z a soluciones exactas z de algunos problemas matematicos. La no coinci-dencia de los valores z y z se conoce como error.

El objetivo de este tema es multiple. Por una parte, dotar de las herramientas deanalisis para un tratamiento riguroso del error producido por la manipulacion mecanica denumeros. Por otra, introducir algunos conceptos basicos sobre algorıtmia. De entre estosconceptos destacamos los referentes a su comportamiento frente al error (estabilidad yel condicionamiento) y los referentes a su eficacia (complejidad y orden).

Consideraremos los siguientes apartados.

• Error absoluto y error relativo

Analizamos las diferentes fuentes del error. Definimos error de redondeo y error detruncamiento. Repasamos los conceptos de error absoluto y error relativo.

• Representacion de punto flotante de los numeros reales y aritmetica

en el ordenador

Para la comprension y el control del error producido por la manipulacion mecanicade numeros es necesario conocer el modo en el que las maquinas representan, al-macenan y operan con los numeros. En este apartado repasamos la representacionde numeros en diferentes bases; introducimos el formato de representacion flotantey los estandares IEEE simple y doble precision; calculamos los errores absoluto yrelativo (precision de la maquina) de estas representaciones; y calculamos el errorde truncamiento en la aritmetica del ordenador.

• Errores de redondeo. Propagacion del error de redondeo

Estudiamos las formulas de propagacion del error a lo largo de una expresionmatematica con uno o varios datos. Calculamos la propagacion del error de re-dondeo a lo largo de las operaciones algebraicas.

• Metodos estables e inestables. Problemas mal condicionados

Basandonos en su comportamiento ante la propagacion del error, clasificamos losmetodos numericos en estables e inestables. Definimos y damos ejemplos de prob-lemas mal condicionados.

• Orden de convergencia de un metodo y complejidad algorıtmica

Introducimos el concepto de complejidad algorıtmica a traves del numero de op-eraciones (multiplicaciones y divisiones) necesarias para su ejecucion. Para losmetodos que proporcionan una sucesion de valores que convergen a la solucioncorrecta (metodos iterativos) introducimos el concepto de orden de convergenciay constante asintotica del error.

1

Page 2: 1-Análisis Del Error

1.1 Error absoluto y error relativo

Como hemos comentado, en esta asignatura se presentan algoritmos y estrategias parael calculo de soluciones aproximadas z a soluciones exactas z de algunos problemasmatematicos. La no coincidencia de los valores z y z se conoce como error. La me-dida del error se caracteriza por dos valores:

• Error absoluto:E = |z − z|

• Error relativo: Si z 6= 0

ǫ =|z − z||z|

Ejemplo 1

z z E ǫ1 1.1 0.1 0.110 10.1 0.1 0.01100 100.1 0.1 0.001

Ejemplo 2 Los errores absoluto y relativo cometidos al aproximar π por 3.141516 son:

(%i1) E:abs(float(%pi-3.141516));

(%o1) 7.6653589792918808 10−5

(%i2) epsilon:E/abs(float(%pi));

(%o2) 2.4399595442562964 10−5

Una parte esencial en el estudio de los diferentes metodos sera el calculo de una cotadel error que se comete al aplicar el metodo. Este error puede descomponerse en trespartes cada una de ellas originada por una causa diferente.

• Errores en los datos: Provienen del error en la medida de los datos necesarios paraun problema. Pese a que algunas veces su contribucion al error total es la masimportante, su naturaleza es mas fısica que matematica por lo que no se tendran encuenta.

2

Page 3: 1-Análisis Del Error

• Errores de redondeo: Los metodos de resolucion que estudiaremos se basan en lamanipulacion mecanica de numeros, y esta a su vez en el almacenamiento de losnumeros en las maquinas de calculo. La diferencia entre la aritmetica infinita delos calculos teoricos y la aritmetica finita de los calculos mecanicos da lugar a loserrores de redondeo. En el siguiente apartado analizamos la aritmetica finita.

• Errores de truncamiento: Las estrategias desarrolladas para la resolucion numericade problemas suelen contar con un numero infinito de requisitos (nodos en la in-tegracion de Simpson) i/o pasos (calculo de ceros por el metodo de Newton). Laimposibilidad de satisfacer todos los requisitos i/o realizar todos los pasos da origena estos errores. El analisis de este error es especıfico del algoritmo y lo realizaremossiempre tras la presentacion de un algoritmo

1.2 Aritmetica en los ordenadores

La totalidad de los algoritmos que se estudian en esta asignatura estan disenados paraser realizados por maquinas. Veamos, por tanto, el proceso de manipulacion mecanica denumeros. El primero de estos procesos consiste en el almacenamiento del numero en lamaquina.

1.2.1 Representacion de numeros

El problema consiste en representar una cantidad infinita de valores mediante un conjuntofinito de simbolos dıgitos . El sistema de representacion usual es la representaciondecimal de un numero.

• El conjunto de dıgitos: {0, 1, . . . , 9}.

• El valor de un dıgito depende de la posicion que ocupa en la expresion, el sistemaes posicional.

Otros sistemas de representacion utilizan un conjunto mas reducido de dıgitos, por ejemploel binario. En general la representacion en una base b ∈ N, con b ≥ 1, de un numerox ∈ R, consiste en una expresion de la forma (aeae−1 . . . a1a0.a−1 . . . a−d)(b), tal que

x = (e∑

k=0

akbk) + (

d∑

k=1

a−kb−k),

con 0 ≤ ai < b y −d ≤ i ≤ e. Al primero de los sumando se le conoce como parte enteray al segundo como parte fracionaria. La base usual en la representacion de numeros enordenadores es la base 2. Cuando la base es 10, no se suele indicar en la representaciondel numero.

Ejemplo 3 Representar en base 2 los numeros 7, 0.34, 19.03125.

3

Page 4: 1-Análisis Del Error

• Utilizando el algoritmo de la division

7 |21 3 |2

1 1

por tanto, 7 = 1+3 2 = 1+(1+1×2)×2 = 1+1×2+1×22 = (111)(2)

• Sea (aeae−1 . . . a1a0.a−1 . . . a−d)(2) la representacion binaria de x = 0.34.Puesto que la parte entera decimal es 0, entonces la parte entera bina-ria es tambien 0. Por tanto la representacion binaria tiene unicamenteparte fracionaria, x = (0.a−1 . . . a−d)(2). Multiplicando por 2 a ambos la-dos de la igualdad obtenemos 2 xe = (a−1.a−2 . . . a−d)(2). Separando parteentera y parte fraccionaria obtenemos a−1 y (0.a−2 . . . a−d)(2) respectiva-mente. Iterando el proceso podemos conseguir todos los digitos binariosdecimales que deseemos. Ası:

0.34 × 2 = 0.68 0.44 × 2 = 0.880.68 × 2 = 1.36 0.44 × 2 = 0.880.36 × 2 = 0.72 0.88 × 2 = 1.760.72 × 2 = 1.44 0.76 × 2 = 1.52

En consecuencia 0.34 = (0.0101011 . . .)(2).

• En este caso tratamos la parte entera 19 y la parte fraccionaria 0.03125del numero por separado. De este modo:

19 |21 9 |2

1 4 |20 2 |2

0 1

y por tanto 19 = (10011)2. Por otra parte

0.03125 × 2 = 0.06250.0625 × 2 = 0.1250.125 × 2 = 0.250.25 × 2 = 0.500.50 × 2 = 1.0

Lo que implica que 0.03125 = (0.00001)(2). Y en consecuencia 19.03125 =(10011.00001)(2).

1.2.2 Almacenamiento

La representacion binaria es suficiente para almacenar numeros, sin embargo su artimeticaes compleja para una maquina. Ası, se utiliza la representacion en coma flotante para

4

Page 5: 1-Análisis Del Error

almacenar cantidades en una maquina. Esta consiste en aquella representacion en base bde un numero de forma que su parte entera quede nula, junto con el signo; esto es

x = s(0.d−1d−2 . . . d−m)bq,

con b−1 ≤ d−1 < 1 y qmin ≤ q ≤ qmax. A la expresion (0.d−1d−2 . . . d−m) se le denominamantisa y al numero q se le denomina exponente.

Existen dos estandares de almacenamiento denominados IEEE simple y IEEE doble.El la siguiente tambla se recogen los valores de los parametros utilizados en cada uno deellos.

b m qmin qmax n. bitsIEEE simple 2 24 −125 128 32.IEEE doble 2 53 −1021 1024 64.

• Los 32 bits del formato IEEE simple se utilizan segun:

– 1 bit para el signo 0 si x ≥ 0 y 1 si x < 0,

– 8 bits para el exponente. Esto permite almacenar 256 exponentes diferentes.Utilizamos 125 de ellos para exponentes negativos, 128 para exponentes posi-tivos y 1 para el exponente nulo. Quedan dos exponentes que se utilizan paramarcar el Underflow (todos los bits a 0) y el Overflow (todos los bits a 1).Por tanto almacenamos q + 126.

– 23 bits para la mantisa. Notar que el primer exponente no es necesario alma-cenarlo pues siempre sera 1.

• Los 64 bits del formato IEEE doble se utilizan segun:

– 1 bit para el signo 0 si x ≥ 0 y 1 si x < 0,

– 11 bits para el exponente. Esto permite almacenar 2048 exponentes diferentes.Utilizamos 1021 de ellos para exponentes negativos, 1024 para exponentes pos-itivos y 1 para el exponente nulo. Quedan dos exponentes que se utilizan paramarcar el Underflow (todos los bits a 0) y el Overflow (todos los bits a 1).Por tanto almacenamos q + 1022.

– 52 bits para la mantisa. De nuevo el primer exponente no es necesario alma-cenarlo pues siempre sera 1.

Ejemplo 4 Representar los numeros 3.141592654 y −0.1 en formato IEEE, en simple yen doble precision.

En primer lugar expresamos el numero en formato flotante x = m 2q con 1/2 ≤m < 1, esto es x = 0.78539816×22. De donde la mantisa es m = 0.78539816 yel exponente q = 2. Mantisa m y exponentes q+126 o q+1022 se almacenan enbinario, por lo que hemos de encontrar la expresion en esa base de ambos. Con-cluimos que 0.78539816 = (0.1100100100001111110110101001001110001001-11100000000100110010010110100001101001010010101111001001000001101)(2),q + 126 = (10000000)(2) y q + 1022 = (10000000000)(2). Por tanto

0 10000000 100100100001111110110100 10000000000 1001001000011111101101010010011100010011110000000010

5

Page 6: 1-Análisis Del Error

Por su parte, si x = −0.1, entonces x = −0.8 × 2−3 de donde m = 0.8 yq = −3. Expresando la mantisa y los exponentes q + 126 = 123 y q + 1022 =1019 en binario, obtenemos que m = (0.110011001100110011001100110011-0011001100110011001100110011001100110011001100110011001100110011001100-110011)(2), q + 126 = (01111011)(2) y q + 1022 = (01111111011)(2). De donde

1 01111011 100110011001100110011001 01111111011 1001100110011001100110011001100110011001100110011001

Consecuencias del almacenamiento:

• La cantidad de numeros que se pueden almacenar en un ordenador es finita. En elestandar IEEE de simple precision, ¿cuantos?

Contamos unicamente los numeros positivos. Bastara multiplicar por 2para obtener todos. En primer lugar, tenemos 223 mantisas diferentes. Porcada mantisa tenemos 125 + 128 = 253 exponentes posibles. Por tanto,tenemos un total de 223 × 253 = 2.122.317.824 que aun siendo muchosno son tantos, puesto que con ellos no podrıamos numerar a todos loshabitantes de China e India juntos. �

• La distribucion de los numeros no es homogenea. ¿Cuantos numeros reconoce elordenador en el intervalo [bn, bn+1]?

En el caso IEEE simple precision tenemos que estos numeros son los quese expresan en la forma x = mbn. En consecuencia el ordenador reconoce223 = 8.388.608 numeros en cada uno de esos intervalos. Notemos queeso significa que entre [1, 2] el ordenador es capaz de reconocer unos 8millones de numeros. Del mismo modo en [1/4, 1/2] el ordenador reconoce8 millones de numeros. Dado que cada vez la longitud del intervalo es maspequena, la densidad es mayor. Sin embargo, en el intervalo [223, 224] esos 8millones de numeros nos permite unicamente numerar a los enteros. Destemodo, un ordenador que almacen los numeros en formato IEEE de simpleprecision no identificara correctamente ningun numero racional mayor de9 millones. Finalmente la densidad de numeros en el intervalo [2100, 2101]es tal que la distancia entre dos numeros consecutivos que es capaz deidentificar el ordenador en ese intervalo es mayor que 275 ≈ 3.771022. �

• Al almacenar un numero z en un ordenador que utiliza el formato IEEE lo querealmente almacenamos es una aproximacion z. ¿Cual es el error absoluto y relativomaximo que se comete en el ejemplo anterior?

Expresando z en formato flotante tenemos que z = m × 2q con 2−1 ≤m < 1. Sin embargo la representacion de z en el ordenador es z = m×2q,donde m es la matisa m truncada a 24 o 52 dıgitos dependiendo de si laprecision es simple o doble.

6

Page 7: 1-Análisis Del Error

En simple precision el error absoluto es E = |z − z| = |m − m|2q.Como la mantisa guardada m difiere de m a partir del dıgito 25, entonces|m− m| < 2−24. Por tanto el error absoluto en simple o doble precision esrespectivamente

Es ≤ 2q−24 y Ed ≤ 2q−53.

El error relativo en ambos casos se obtiene de dividir el valor abosolutopor |z|, de donde

ǫs ≤2−24

|m| ≤ 2−23 ≤ 1.2e− 7 y ǫd ≤ 2−53

|m| ≤ 2−52 ≤ 2.3e− 16.

Veamos ahora como estudiar el error absoluto y relativo maximo en el caso general deun ordenador de mantisa de m dıgitos, exponente de e dıgitos y base b. Al error relativomaximo se le denomina precision de la maquina y usualmente se denota por δ.

Sea z = p× bq con p = 0.a1a2 . . . amam+1 . . . . Su representacion flotante truncada a mdıgitos de mantisa es z = p× bq con p = 0.a1a2 . . . am. Los errores absoluto y relativopor truncamiento son por tanto

E = |z − z| = |p− p|bq = |0.am+1 . . . |bq−m < bq−m

ǫ =|z − z||z| <

bq−m

|0.a1a2 . . . amam+1 . . . , |bq< b1−m

En el caso de que la mantisa se reduzca por redondeo del dıgito m, la representacion dez es z = ¯pbq con ¯p = p si am+1 < b/2 o con ¯p = p + b−m/2 si am+1 ≥ b/2. Por tanto, loserrores absoluto y relativo por redondeo son

E = |z − z| = |p− ¯p|bq =

{ |0.am+1 . . . |bq−m si am+1 < b/2

|0.am+1 . . .−1

2|bq−m si b/2 ≤ am+1 < b

<1

2bq−m

ǫ =|z − z||z| <

12bq−m

|0.a1a2 . . . amam+1 . . . , |bq<

1

2b1−m

Diremos que una aproximacion z a un valor z tiene t decimales correctos si el errorabsoluto E es menor que 1

210−t. Diremos que la aproximacion tiene t dıgitos significa-

tivos si el error relativo ǫ es menor que 12101−t.

Problema 1 La representacio normalitzada binaria en punt flotant d’un nombre es:

x = (−1)s(1 +m)2e−127, per 0 ≤ m < 1, 0 < e < 255.

Segons l’estandard IEEE-754, en precisio simple, els 32 bits es distribueixen en 1 bit designe, 8 bits per l’exponent i els 23 restants per la mantissa.

(a) Representeu els valors reals 1, 1.2 i 0.8 segons aquesta codificacio.

(b) Doneu els valors reals positius mes gran i mes petit que podem representar.

7

Page 8: 1-Análisis Del Error

(c) Considerant l’arrodoniment en la mantissa, quina es la fita de l’error relatiu δ cor-responent a aquesta representacio?

a) Como 1 = (−1)0(1 + 0) 20, se sigue que m = 0 = (0)(2) y e = 127 =(0111 1111)(2). En consecuencia, el numero 1 se almacena en la maquina segun

0 0111 1111 0000 0000 0000 0000 0000 000

Por su parte 1.2 = (−1)0(1 + 0.2)20. Luego m = 0.2 = (0.0011 0011 0011-0011 0011 001)(2) y e = 127 = (0111 1111)(2). Asi

0 0111 1111 00110011001100110011001

Consideramos ahora 0.8 = (1.6)2−1 = (−1)0(1 + 0.6)2−1. De aquı m =0.6 = (0.1001 1001 1001 1001 1001 100)(2) y e = 127 = (0111 1111)(2) y portanto

0 0111 1111 1001 1001 1001 1001 1001 100

b) Sea X el mayor numero real positivo que puede almacenarse en estamaquina. Entonces X = (−1)0(1 + m)2e−127 donde m es la mayor mantisaque puede almacenarse. Por tanto

m = (1111 1111 1111 1111 1111 111)(2) =

23∑

k=1

2−k = 1 − 2−23.

Ademas, el exponente e tamben es el mayor que podemos almacenar e = 254.Por tanto X = (2 − 2−23)2254−127 ≈ 3.4E38.

Sea Y = (−1)0(1 +m)2e−127 el menor numero positivo que puede almace-narse. Entonces m = 0 y e = 1 son la menor mantisa y el menor exponenteque pueden almacenarse. De donde Y = 2−126 ≈ 1.2E − 38.

c) Dado un numero x = (−1)s(1 +m)2e−127 sea x su representacion en lamaquina. Entonces x = (−1)s(1 + m)2e−127 con 0 ≤ m < 1 i 0 < e < 127.

El error relativo cometido al aproximar x por x es

δ =|x− x||x| =

|m− m||m|

que coincide con el error relativo al aproximar m por m que segun el enunciadose obtiene por redondeo a 23 dıguitos. Por tanto

δ =|m− m|

|m| <1

221−23 = 2−23 ≈ 1.2E − 7.

8

Page 9: 1-Análisis Del Error

1.2.3 Operaciones basicas

Como consecuencia del error en el almacenamiento, al finalizar una operacion en puntoflotante tambien cometemos un error. Por ejemplo, al multiplicar dos numeros z1 y z2 conrepresentaciones en coma flotante de m dıgitos de mantisa, obtenemos un numero z1z2con representacion en coma flotante de 2m dıgitos de mantisa que al ser almacenada setrunca a m dıgitos. Por lo que al error de almacenamiento de z1 y z2 hay que anadir unerror en la operacion. En consecuencia las operaciones elementales en el ordenador sonaproximadas y las denotaremos por ⊕,⊖,⊗,⊘. El error cometido en cada una de ellas esel siguiente:

• Suma: x⊕ y = [x(1 + δ) + y(1 + δ)](1 + δ) = (x+ y)(1 + δ)2 ≈ (x+ y)(1 + 2δ).

• Resta: x⊖ y = [x(1 + δ) − y(1 + δ)](1 + δ) = (x− y)(1 + δ)2 ≈ (x− y)(1 + 2δ).

• Multiplicacion: x⊗ y = [x(1 + δ)y(1 + δ)](1 + δ) = xy(1 + δ)3 ≈ xy(1 + 3δ).

• Division: x⊘ y = [x(1 + δ)/y(1 + δ)](1 + δ) ≈ x/y(1 + 3δ).

donde δ es la precision de la maquina.

Ejemplo 5 Encontrar el error relativo a primer orden, al calcular la potencia n y la raizp-esima.

Desarrolando por taylor en un entorno de δ = 0 y despreciando terminos deorden mayor o igual a 2 en delta, tenemos que

(x(1 + δ))n(1 + δ) ≈ xn(1 + (n+ 1)δ)

(x(1 + δ))1/p(1 + δ) ≈ x1/p(1 + (1/p+ 1)δ)

Problema 2 Un ordinador comet errors relatius ε, ε, 2ε, 4ε, 5ε per l’emmagetzamatge dedades, operacions (+,−, ∗, /), arrel quadrada, logaritme i exponencial (en base e) respec-tivament. Si s’usa aquest ordinador, per a quins valors d’x i y, l’error relatiu en el calculde xy es menor que 12ε (no considereu termes d’ordre ε2 ).

En realidad, el ordenador no calcula xy directamente puesto que no tiene formade hacerlo. Para ello se basa en funciones que sı sabe calcular a partir de suspolinomios de Taylor. Asi por ejemplo para este calculo, utiliza ey ln(x).

Para las especificaciones de la maquina anterior tenemos que fl(x) = x(1+δ) y fl(y) = y(1 + δ). Cuando queremos calcular ln(x) en realidad calculamosfl(ln(fl(x))), equivalentemente

fl(ln(fl(x))) = ln(x(1 + δ))(1 + 4δ)

= (ln(x) + ln(1 + δ))(1 + 4δ).

9

Page 10: 1-Análisis Del Error

Como el desarrollo de Taylor de la funcio ln(1 + δ) entorno a δ = 0 es igual aδ − 1

2δ2 + . . . , obtenemos que

fl(ln(fl(x))) ≈ (ln(x) + δ)(1 + 4δ) ≈ ln(x)(1 + 4δ) + δ.

Por tanto, en lugar de y ln(x) tenemos fl(fl(y)fl(ln(fl(x)))), que satisface

fl(fl(y)fl(ln(fl(x)))) ≈ y(1 + δ)(ln(x)(1 + 4δ) + δ)(1 + δ)

≈ (y ln(x)(1 + 5δ) + yδ)(1 + δ)

≈ y ln(x)(1 + 6δ) + yδ.

Finalmente al calcular ey ln(x) calculamos

fl(efl(fl(y)fl(ln(fl(x))))) ≈ ey ln(x)(1+6δ)+yδ(1 + 5δ)

= ey ln(x)e6δy ln(x)+yδ(1 + 5δ)

≈ ey ln(x)(1 + 6δy ln(x) + yδ)(1 + 5δ)

≈ ey ln(x)(1 + δ(y(1 + 6 ln(x)) + 5)).

Por tanto x e y deben satisfacer que y(1+6 ln(x))+ 5 ≤ 12, equivalentementey ≤ 7/(1 + 6 ln(x)). En la Figura 1 se representa la region determinada.

Figure 1: Grafica de la funcion y = 7/(1 + 6 ln(x)).

1.3 Propagacion de errores

En este apartado estudiamos como se propagan los errores de redondeo debidos al alma-cenamiento a lo largo de las diferentes operaciones a que sometemos a los numeros. Laformula de propagacion del error se basa en el Teorema del Valor Medio que enunciamosa continuacion.

10

Page 11: 1-Análisis Del Error

Teorema 1 (Teorema del Valor Medio) Sea f : S ⊂ Rn → R una funcion difer-

enciable en el abierto S y sean x e y dos puntos de S tales que la envoltura convexaque los contiene < x,y > esta contenida en S. Entonces existe ε ∈< x,y > tal quef(x) − f(y) = ∇f(z)(x − y)

Si la funcion es de una variable, tenemos que el error absoluto Ef = |f(z) − f(z)| enel calculo de f(z) cometido al aproximar el valor z por el valor z satisface que

Ef = |f ′(ε)| |z − z| ,

donde ε es un valor desconocido contenido en el intervalo < z, z > . Por tanto, si f ′ escontinua en el intervalo < z, z >, esto es f ∈ C1(< z, z >), se sigue que

Ef ≤MEz , (1)

donde M = maxx∈<z,z> |f ′(x)| y Ez = |z − z| es el error absoluto cometido al aproximarz por z.

Ejemplo 6 Calcular cotas para el error absoluto y el error relativo cometidos al calcular√π, si utilizamos 3.1416 como aproximacion al valor de π.

Consideremos la funcion f(x) =√x y los valores z = π y z = 3.1416. Con

esta notacion, el enunciado pide que calculemos cotas para Ef = |f(z)− f(z)|y ǫf = Ef/|z|.

Como f ′(x) = 12√

πes una funcion positiva y decreciente, su maximo valor

en el intervalo (π, 3.1416) es menor que f ′(π). Luego M ≤ 12√

π≈ 0.28.. ≤ 0.3.

Aplicando ahora la formula de propagacion del error (1) se sigue que

Ef ≤ 0.3Ez.

Por otra parte Ez es el error absoluto cometido al aproximar π por 3.1416.Dado que esta aproximacion se corresponde con el redondeo de un numero encoma flotante π = 0.314159 . . .101 a una mantisa de 5 dıgitos, concluimos queEz ≤ 1/2 × 101−5 = 1/2 × 10−4. En consecuencia

Ef ≤ 0.15 × 10−4.

Calculamos ahora una cota para el error relativo. Partiendo de la expresionanterior tenemos que

ǫf ≤ 0.15 × 10−4.

|√π| ≤ 0.85 × 10−5.

Destacamos que en el ejemplo anterior, el error en los datos satisface que Ez ≤1/2 × 10−4 mientras que el error cometido tras la operacion satisface Ef ≤ 0.15 × 10−4.Concluimos que existen algoritmos que no aumentan el error inicial en los datos. Estosalgoritmos se denominan algoritmos estables en contraposicion con los algoritmosinestables que amplifican el error en los datos.

11

Page 12: 1-Análisis Del Error

Cuando el algoritmo viene expresado por una funcion de una variable, esta condicionse puede expresar de la siguiente forma: si la cota de la derivada M es menor o igual a 1el algoritmo es estable; si M > 1 el algoritmo es inestable.

Consideramos ahora el caso general con z = (z1, z2, . . . , zn) ∈ Rn. A partir del Teorema

del Valor Medio se sigue que

|f(z) − f(z)| ≤n∑

k=1

∂f(ε)

∂xk

|zk − zk|

donde ε es un valor desconocido contenido en < z, z > . De nuevo, si f ∈ C1(< z, z >),una cota del error absoluto Ef = |f(z)− f(z)| cometido en el calculo de f(z) a causa deaproximar z por z viene dada por

Ef ≤n∑

k=1

MkEzk,

donde Mk = maxx∈<z,z> |∂f(x)

∂xk

| y Ezk= |zk − zk| es el error absoluto cometido en la

k–esima coordenada.

Ejemplo 7 Propagacion de errores en las operaciones algebraicas elementales:

• Suma: Ex+y ≤ Ex + Ey y ex+y ≤ |x||x+ y|ex +

|y||x+ y|ey.

• Resta: Ex−y ≤ Ex + Ey y ex−y ≤ |x||x− y|ex +

|y||x− y|ey.

Notamos que el error relativo de la resta de dos numeros crece si los numeros sonmuy parecidos.

• Multiplicacion: Exy ≤ |y|Ex + |x|Ey y exy ≤ ex + ey.

• Division: Ex/y ≤ |y|Ex + |x|Ey

|y2| y ex/y ≤ ex + ey.

Aunque no tiene influencia en el error relativo, dividir por numero pequenos ampli-fica el error absoluto.

Problema 3 Amb quina exactitud s’ha de mesurar el radi d’una esfera i amb quantsdecimals s’ha de donar el numero π perque el seu volum es conegui amb un error relatiumenor que el 0.01?

a) Considereu ambdos efectes per separat.

b) Considereu els dos efectes tot junts.

a) Consideramos en primer lugar que el error en el calculo del volumen se debeal unicamente error cometido en el radio r. El volumen de la esfera en funciondel radio es V (r) = 4

3πr3. Como V ′(r) = 4πr2, entonces el error absoluto en

el calculo del volumen satisface que

EV = 4πε2Er,

12

Page 13: 1-Análisis Del Error

con ε ∈< r, r >, lo que implica que r −Er < ε < r + Er.El error relativo entonces es

ǫV =4πε2

V (r)Er

=4πε2

43πr3

Er

= 3(ε

r

)2

ǫr.

Aplicando que ε/r ≤ 1 + ǫr obtenemos que

ǫV ≤ 3(1 + ǫr)2ǫr ≈ 3ǫr.

Consideremos ahora el efecto de un error en π en elcalculo del volumen.En tal caso consideramos la funcion V (π) = 4

3πr3, con V ′(π) = 4

3r3. Por tanto

el error absoluto satisface que

EV =4

3r3Eπ,

y el error relativo

ǫV =

4

3r3

4

3πr3

Eπ = ǫπ.

b) Consideramos ahora los posibles efectos del error en ambos datos deforma conjunta. En este caso V (r, π) = 4

3πr3, ∂V

∂r= 4πr2 y ∂V

∂π= 4

3r3 y por

tanto

EV ≤ 4πε2Er +4

3r3Eπ.

Teniendo presente que r −Er < ε < r + Er. llegamos a que

ǫV ≤ 3(1 + ǫr)2ǫr + ǫπ.

Como hemos visto, existen algoritmos que son numericamente estables (que no am-plifican el error en los datos) y otros que son numericamente inestables. Evidentemente,cuando para resolver un problema podemos utilizar algoritmos de uno u otro tipo, uti-lizaremos siempre algoritmos estables.

Problema 4 Volem calcular el valor de(√

2 − 1)6

prenent el valor aproximat de 1.4 com

a valor de√

2. Trieu de les formules (algoritmes) seguents, la mes adequada des del puntde vista numeric:

1(√

2 + 1)6 ;

(

3 − 2√

2)3

;1

(

3 + 2√

2)3 ; 99 − 70

√2 ;

1

99 + 70√

2.

13

Page 14: 1-Análisis Del Error

Sea z =√

2 y z = 1.4, y queremos calcular a = f1(z) donde f1(x) = (x− 1)6 ,pero en su lugar calculamos a = f1(z). El error absoluto cometido es Ef1

=|f1(z) − f1(z)|. Aplicando la formula de propagacion del error tenemos queEf1

≤ M1Ez donde

M1 = maxx∈(1.4,

√2)|f ′

1(x)|

= maxx∈(1.4,

√2)|6(x− 1)5|.

Como la funcion (x − 1)5 es positiva y creciente en el intervalo (1.4,√

2) sesigue que M1 ≤ 6(

√2 − 1)6 ≤ 6(1.5 − 1)6 = 0.09375. Por lo tanto el error en

el calculo de a es aproximadamente 10 veces menor que el error en los datos.Por otra parte

a = (√

2 − 1)6 =(√

2 − 1)6(√

2 + 1)6

(√

2 + 1)6

=((√

2 − 1)(√

2 + 1))6

(√

2 + 1)6

=1

(√

2 + 1)6.

De donde a = f2(z) con f2(x) = 1/(x + 1)6. Aplicando la formula de propa-gacion del error al calculo de amediante la funcion f2 tenemos que Ef2

≤M2Ez

donde

M2 = maxx∈(1.4,

√2)|f ′

2(x)|

= maxx∈(1.4,

√2)

6

(x+ 1)7

En este caso la funcion derivada es positiva y decreciente en el intervalo, portanto M2 ≤ 6(1.4 + 1)−7 ≤ 0.014. En consecuencia, al utilizar la funcion f2. elerror absoluto en el resultado se divide aproximadamente por 100.

Consideremos ahora la funcion f3(x) = (3− 2x)3. Notamos que a = (√

2−1)6 = ((

√2 − 1)2)3 = (3 − 2

√2)3. Al utilizar esta funcion para el calculo de a

obtenemos que Ef3≤M3Ez con

M3 = maxx∈(1.4,

√2)|f ′

3(x)|

= maxx∈(1.4,

√2)|6(3 − 2x)2|.

La funcion 6(3 − 2x)2 es no negativa en R con un cero doble en x = 3/2 quea su vez es un mınimo de la funcion, por lo que la funcion es decreciente en(1.4,

√2). De aquı se sigue que M3 ≤ 6(3 − 2(1.4))2 = 0.24. En este caso el

error en los datos se divide unicamente por 4.Finalmente, es sencillo concluir que a = f4(z) = f5(z) = f6(z) donde

f4(x) =1

(3 + 2x)3 ; f5(x) = 99 − 70x ; f6(x) =1

99 + 70x.

14

Page 15: 1-Análisis Del Error

Definiendo Mk = maxx∈(1.4,√

2) |f ′k(x)| para k = 4, 5, 6 tenemos que

M4 = maxx∈(1.4,

√2)

− 6

(3 + 2x)4

≤ 6

(3 + 2.8)4≤ 0.0054.

M5 = maxx∈(1.4,

√2)| − 70| ≤ 70.

M6 = maxx∈(1.4,

√2)

− 70

(99 + 70x)2

≤ 70

(99 + 70(1.4))2≤ 0.0019.

Concluimos que las anteriores formulas equivalentes desde el punto de vistamatematico, no lo son desde el punto de vista numerico, siendo la ultima lamas adecuada para realizar el calculo. �

Problema 5 Doneu un metode recurrent i bo numericament per a calcular

In =

∫ 1

0

xne(x−1)dx (n ≥ 0) .

Para n = 0 la integral es inmediata, asi I0 =∫ 1

0ex−1dx = ex−1|10 = 1 − e−1.

Consideremos ahora n ≥ 1. Aplicando integracion por partes tenemos que

In =

∫ 1

0

xnex−1dx =

[

u = xn du = nxn−1dxdv = ex−1dx v = ex−1

]

= xnex−1|10 − n

∫ 1

0

xn−1ex−1dx = 1 − n

∫ 1

0

xn−1ex−1dx.

Por tanto podemos calcular las integrales {In}∞n=0 a partir de la recurrencia

I0 = 1 − e−1 (2)

In = 1 − nIn−1, para n ≥ 1.

Mediante el siguiente algoritmo

I:[1-exp(-1)];

for n:2 thru 24 do

I:append(I,[1-(n-1)*I[n-1]]);

for n:1 thru 24 do

print(n,I[n]);

hemos calculado los primeros primeros 24 terminos de la sucesion.

n In n In n In0 0.63212055882856 1 0.36787944117144 2 0.264241117657123 0.20727664702865 4 0.17089341188538 5 0.145532940573086 0.12680235656152 7 0.11238350406936 8 0.100931967445099 0.09161229299417 10 0.083877070058293 11 0.0773522293587812 0.071773247694637 13 0.066947779969723 14 0.06273108042387315 0.059033793641902 16 0.05545930172957 17 0.05719187059730818 -0.029453670751536 19 1.559619744279189 20 -30.1923948855837821 635.0402925972594 22 -13969.88643713971 23 321308.3880542133

15

Page 16: 1-Análisis Del Error

A partir de la expresion In =∫ 1

0xnex−1dx notemos que la sucesion {In}∞n=0

satisface las siguientes propiedades:

a) En primer lugar In ≥ 0 para todo n ≥ 0. Esto se deduce de que In es laintegral de una funcion positiva en el intervalo (0, 1).

b) La sucesion {In}∞n=0 es decreciente. En efecto In+1 < In puesto que en(0, 1) tenemos que xn+1 < xn y la funcion exponencial es siempre positiva.

c) Finalmente In < 1/(n + 1). Esto es consecuencia de la desigualdad 0 <xnex−1 < xn en (0, 1), de forma que al integrar se obtiene la desigualdaddeseada.

Sin embargo, cuando intentamos verificar estas propiedades en la tablaobservamos que apenas se mantienen para unos pocos valores iniciales. Con-cluimos que los valores de la tabla son erroneos. Para entender el porque deeste error es necesario que analicemos la propagacion del error a lo largo de laformula recursiva anterior.

Asi, si En es el error en el calculo de In, provocado por un error En−1 en elcalculo de In−1 se sigue que En = (n)En−1. Por tanto En = n!E0, donde E0 esel error en el calculo de I0 debido al error de almacenamiento del numero e−1.Consideremos que el error absoluto de almacenamiento es 10−15. Mediante elsiguiente algoritmo

E:[1e-15];

for n: 2 thru 23 do

E:append(E,[(n-1)*E[n-1]]);

for n: 1 thru 23 do

print(n-1,E[n]);

generamos la tabla con el error que cabe esperar en los valores de In.

n En n En n En

0 1.0e-15 1 1.0e-15 2 2.0e-153 6.0e-15 4 2.4e-14 5 1.2e-136 7.2e-13 7 5.04e-12 8 4.032e-119 3.6288e-10 10 3.6288e-9 11 3.99168e-812 4.790016e-7 13 6.2270208e-6 14 8.71782912e-515 0.001307674368 16 0.020922789888 17 0.35568742809618 6.402373705728001 19 121.645100408832 20 2432.9020081766421 51090.94217170945 22 1124000.727777608

El error E17 = 0.355687428096 estimado en el calculo de I17 es mayor queel valor obtenido I17 = 0.057191870597308. Por consiguiente ninguno de losdıgitos de I17 es correcto.

Despejando In−1 en la recurrencia (2) obtenemos la recurrencia

In−1 =1 − Inn

. (3)

De esta forma, si para cierto n0 conocemos In0,mediante la recurrencia anterior

podemos calcular {In}n0

n=0.

16

Page 17: 1-Análisis Del Error

Por otra parte, si En es el error cometido al calcular In causado por el erroren In+1, tenemos que:

a) A partir de la formula de propagacion del error se sigue que En−1 = En/n.

b) Como In < 1/(n+ 1), si IN = 0 entonces EN < 1/(N + 1).

Tomando N = 35, equivalentemente I35 = 0 y E35 < 1/36, mediante elsiguiente algoritmo calculamos la sucesion de errores {En}35

n=0 que esperamoscometer al utilizar la recurrencia (3)

E:[float(1/36)];

for n:1 thru 35 do

(

E:append(E,[E[n]/(36.0-n)])

);

for n:35 thru 0 step -1 do

(

print(n,E[36-n])

);

que resulta ser:

n En n En n En n En

35 0.02777 34 7.9365E-4 33 2.3342E-5 32 7.0735E-731 2.2104E-8 30 7.1305E-10 29 2.376E-11 28 8.1960E-1327 2.9271E-14 26 1.0841E-15 25 4.169E-17 24 1.6679E-1823 6.9495E-20 22 3.0215E-21 21 1.373E-22 20 6.5401E-2419 3.2700E-25 18 1.7210E-26 17 9.561E-28 16 5.6245E-2915 3.5153E-30 14 2.3435E-31 13 1.673E-32 12 1.2876E-3311 1.0730E-34 10 9.7550E-36 9 9.755E-37 8 1.0838E-377 1.3548E-38 6 1.9355E-39 5 3.225E-40 4 6.4517E-413 1.6129E-41 2 5.3764E-42 1 2.688E-42 0 2.6882E-42

De donde los valores generado por la recurrencia (3) permiten calcular lasucesion {In}23

n=0 con todos sus dıgitos correctos. El siguiente algoritmo nosgenera esta sucesion para n ≤ 36

I:[0];

for n:1 thru 35 do

(

I:append(I,[(1.0-I[n])/(36.0-n)])

);

for n:35 thru 0 step -1 do

(

print(n,I[36-n])

);

que presentamos en la siguiente tabla.

17

Page 18: 1-Análisis Del Error

n En n En n En

35 0 34 0.028571428571429 33 0.02857142857142932 0.029437229437229 31 0.030330086580087 30 0.03127967462644929 0.032290677512452 28 0.033369286982329 27 0.03452252546491726 0.035758424982781 25 0.037086214423739 24 0.0385165514230523 0.040061810357373 22 0.04173644302794 21 0.04355743440782120 0.045544884075818 19 0.047722755796209 18 0.05011985495809417 0.052771119168995 16 0.055719345931236 15 0.05901754087929814 0.06273216394138 13 0.066947702575616 12 0.0717732536480311 0.077352228862664 10 0.083877070103394 9 0.0916122929896618 0.10093196744559 7 0.1123835040693 6 0.126802356561535 0.14553294057308 4 0.17089341188538 3 0.207276647028652 0.26424111765712 1 0.36787944117144 0 0.63212055882856

Como hemos visto en los ejemplos anteriores existen problemas que se pueden resolverpor algoritmos numericamente inestables o bien por algoritmos numericamente estables,prefiriendose estos ultimos. Existen sin embargo otros problemas que son intrınsecamenteinestables y para los que no existen algoritmos numericamente estables. Estos problemasse conocen como problemas mal condicionados, y son muy frecuentes en el calculo de cerosde funciones lineales.

Ejemplo 8 Consideramos la siguiente funcion lineal f(x) = Ax − b con

A =

( √2 + ǫ1 2

1√

2 + ǫ2

)

y b =

(

10

)

.

Calculad los ceros de f en funcion de ǫ1 y ǫ2, equivalentemente resolved el sistema linealAx = b.

En primer lugar, det(A) = ǫ1ǫ2 +√

2(ǫ2 + ǫ1). Por tanto det(A) = 0 si

ǫ2 = −√

2ǫ1

ǫ1 +√

2

cuya grafica se representa en la Figura 2. Por tanto, para valores de (ǫ1, ǫ2)que no esten sobre la grafica podemos calcular la inversa y por tanto el cerode la funcion, y obtenemos que

x =

ǫ2+√

2

(ǫ1+√

2)(ǫ2+√

2)−2− 2

(ǫ1+√

2)(ǫ2+√

2)−2

− 1

(ǫ1+√

2) (ǫ2+√

2)−2

ǫ1+√

2

(ǫ1+√

2) (ǫ2+√

2)−2

(

10

)

=

ǫ2+√

2

(ǫ1+√

2) (ǫ2+√

2)−2

− 1

(ǫ1+√

2)(ǫ2+√

2)−2

.

Si en la anterior expresion consideramos ǫ1 = 0 y 0 < ǫ2 ≪ 1 entonces

x =

(

ǫ2+√

2ǫ2√

21

ǫ2√

2

)

Por tanto, pequenas variaciones en ǫ2 provocan grandes cambios en la solucionfinal. En consecuencia, dado al trabajar de forma mecanica

√2 tendra siempre

18

Page 19: 1-Análisis Del Error

-4

-2

0

2

4

-4 -2 0 2 4

-sqr

t(2)

*x/(

x+sq

rt(2

))

x

Figure 2: Grafica de la funcion ǫ2 = −√

2ǫ1

ǫ1 +√

2

un error, concluimos que para este problema, pequenos errores en los datosprovocan grandes errores en el resultado, es decir, el problema anterior estamal condicionado. �

1.4 Orden de convergencia y complejidad

En la secciones anteriores hemos clasificado los algoritmos en funcion de su compor-tamiento ante la transmision del error en los datos. En esta seccion trataremos sobre suvelocidad de ejecucion y el numero de operaciones que realizan.

Dada una sucesion {xn}∞n=0 convergente a x∗ diremos que la sucesion converge conorden p y velocidad v si

limnր∞

|x∗ − xn+1||x∗ − xn|p

=1

v.

Ejemplo 9 Consideremos la sucesion {1/nk}∞n=1 con k ≥ 1.

Dado que x∗ = 0 tenemos que

limnր∞

|x∗ − xn+1||x∗ − xn|

= limnր∞

1(n+1)k

1nk

= limnր∞

nk

(n+ 1)k= 1.

Luego el orden de convergencia es p = 1 y su velocidad de convergencia v = 1.�

Como En = |x∗ − xn| es el error cometido en el paso n, se sigue que dado ε > 0 existen0 tal que para todo n ≥ n0

(

1

v− ε

)

Epn < En+1 <

(

1

v+ ε

)

Epn.

19

Page 20: 1-Análisis Del Error

Por tanto, cuanto mayor sea el orden de convergencia, mas rapidamente se acerca a sulımite. Ademas, para un orden fijado, por ejemplo p = 1 el error en el paso n + 1 esaproximadamente el error en el paso n dividido por v. De donde se deriva el nombre devalor v.

Dado un metodo para encontrar una solucion x∗ de un problema generando unasucesion de valores {xn}∞n=0 convergente a x∗, diremos que el metodo tiene orden p yvelocidad v si la sucesion converge con orden p y velocidad v.

A los metodos de orden p = 1 se les denomina lineales y a los metodos de orden p = 2cuadraticos.

Ejemplo 10 Consideremos la sucesion {xn}1n=0 generada segun xn+1 = g(xn) con g(x) =

(x2 + 2)/2x.

Si la sucesion converge a un valor x∗, entonces tomando el lımite a amboslados de la expresion xn+1 = g(xn) tenemos que, por ser g(x) continua fueradel origen x∗ = g(x∗). Por tanto

x∗ =(x∗)2 + 2

x∗.

De donde x∗ =√

2.Desarrollando por Taylor g(x) en un entorno de x∗ hasta orden 2 tenemos

que

g(x) = g(x∗) + g′(x∗)(x− x∗) + g′′(ψ)(x− x∗)2

2

con ψ ∈< x, x∗ >. De donde, teniendo en cuenta que g(x∗) = x∗ y g′(x∗) = 0se sigue que

g(xn) = xn+1 = x∗ + g′′(ψn)(xn − x∗)

2,

con ψn ∈< xn, x∗ > . Reordenando la ecuacion anterior obtenemos que

xn+1 − x∗

(xn − x∗)2=g′′(ψn)

2

Tomando lımites para n tendiendo a infinito llegamos a que

limnր∞

xn+1 − x∗

(xn − x∗)2= lim

nր∞

g′′(ψn)

2.

Como g′′(x) es continua, limnր∞ g′′(ψn) = g′′(limnր∞ ψn) = g′′(x∗) = 1/√

2.Concluimos que el orden de convergencia del metodo es 2 y la velocidad deconvergencia 2/g′′(x∗) = 2

√2.

20