You are on page 1of 21

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

 ,QWURGXFFLyQ D ORV 0pWRGRV 1XPpULFRV

7HRUtD GH (UURUHV \ $ULWPpWLFD GHO &RPSXWDGRU

Mtodos Numricos - MB536 P.A.2009-1

El extendido uso del computador digital ha tenido un profundo efecto en la Ingeniera y Ciencia, esto ha trado muchos beneficios. Con computadoras y software apropiado podemos modelar y analizar complejos sistemas y problemas fsicos. Sin embargo, el eficiente y preciso uso de los resultados numricos obtenidos de programas de computador requiere considerable experiencia y avanzados conocimientos para evitar desatinos. En este curso intentamos proveer de algo de la experiencia y conocimientos necesarios para evitar tales dificultades. Si se desea resolver un problema fsico %, lo primero que se suele hacer es traducirlo al lenguaje matemtico para dar un problema matemtico $. Se estudia la existencia y unicidad de la solucin X de este problema, pero en la mayor parte de los casos y despus de probado esto, no se sabe cmo determinar la solucin de forma efectiva. Por ello, se sustituye el problema matemtico $ por un problema prximo a l, $K, en el que aparecer algn parmetro K que se va a hacer tender hacia un cierto valor (normalmente 0). Se exige que este problema tenga solucin nica, XK, y se espera que al tender K hacia el valor elegido, XK converja hacia X. Esquemticamente este tratamiento tpico (pero no nico), es el siguiente:

De este planteamiento surgen algunos problemas interesantes: a) Cul es la velocidad de convergencia de XK hacia X? b) Problemas de estabilidad; es inevitable cometer errores en el clculo, debido a los redondeos que efectan los computadores. Interesa que pequeos errores cometidos en los clculos que conducen a XK hagan que el resultado no difiera mucho de X;. c) Coste del proceso. Cuntas operaciones deben realizarse? Cunto tiempo se precisar para realizarlas?  7HRUtD GH (UURUHV En este captulo citaremos las diferentes fuentes bsicas de los errores, y las nociones importantes de la teora de errores.  )XHQWHV EiVLFDV GH ORV HUURUHV Casi siempre la medida de las magnitudes al igual que las soluciones numricas a problemas reales, contienen errores que tienen diferentes orgenes, que las podemos resumir en:

Teora de Errores y Aritmtica del Computador

Pag.

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

D (UURU GHO PRGHOR R HUURU GHO SUREOHPD En los fenmenos de la naturaleza muchas veces efectuamos ciertas hiptesis, es decir aceptamos determinadas condiciones que nos dar una situacin aproximada del fenmeno estudiado, de esta manera podemos plantear el comportamiento de dicho fenmeno por medio de un modelo matemtico. Por ejemplo en la cada libre de un cuerpo, si despreciamos la resistencia del aire la distancia h recorrida despus de un tiempo t est modelado por la frmula: 1 K = J W 2 donde J es la gravedad 2 E (UURU GHO PpWRGR Cuando un problema planteado en forma precisa no puede resolverse en forma exacta o es muy difcil de hallar la solucin, se frmula una aproximacin del modelo, que ofrezca prcticamente los mismo resultados (mtodo). La vibracin libre de una membrana elstica circular est modelada por la ecuacin: 1 X 1 2 X 1 2X U = + U 2 2 F 2 W 2 U U U X = X (U , , W ) satisface cierta condicin de contorno. Est ecuacin puede aproximarse de manera adecuada (por ejemplo usando diferencias finitas) y de esta forma conocer una solucin aproximada. F (UURU UHVLGXDO Son los originados por las series infinitas, al considerar solo una parte finita. Por ejemplo: H = 2 + 1 / 2!+1 / 3!+... H = 2 + 1 / 2!+1 / 3!+...1 / Q! para cierto valor Q.

G (UURU LQLFLDO Son los originados por los parmetros cuyos valores son conocidos aproximadamente: Por ejemplo: La constante de Planck K = (6.62377 0.00027 )10 27 HUJ VHJ .

H (UURUHV GH UHGRQGHR Originados por la representacin finita de los nmeros, es el caso de las computadoras (notacin de punto flotante). Por ejemplo: 1 / 6 = 0.1666  se redondea en un nmero finito de dgitos. I (UURU GH RSHUDFLyQ Podemos distinguir dos casos: Operacin (exacta) de nmeros aproximados: Por ejemplo: 1 / 6 3.1416 0.1667 = 3.2083 . Teora de Errores y Aritmtica del Computador Pag. 2

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

Operacin (aproximada) de nmeros exactos:

0.23 [10 8 1.36 [10 8 0.23 [10 8 , el valor verdadero es: 22999999.9999999864

En la medicin de magnitudes, sea directamente en un experimento o indirectamente mediante una relacin (frmula) aplicada a datos experimentales, distinguimos dos tipos de errores: sistemtico y casual. J (UURU VLVWHPiWLFR Son aquellos, que sin variar las condiciones del ensayo entran de igual modo en cada resultado de las mediciones, pueden ser originados por: Defecto del instrumento Las condiciones del ambiente La metodologa de la medicin Precisin limitada del instrumento Las particularidades del experimentador K (UURU &DVXDO R $FFLGHQWDO IRUWXLWR Son los que estn vinculados con los factores que sufren pequeas variaciones (aleatorias) durante el experimento:  /D HVWDELOLGDG GHO SUREOHPD Significa que pequeos cambios en los datos producen pequeos cambios en la solucin exacta del problema inicial. De los problemas que no verifican esta propiedad, se dicen que estn mal condicionados.  (UURU DEVROXWR UHODWLYR \ SUHFLVLyQ Consideremos A el valor exacto de la medida de cierta magnitud (en general desconocida) y sea a un valor conocido que se llamar aproximacin de A. Evidentemente la buena cualidad de la aproximacin es de acuerdo a cuan prximo est a de A. 'HILQLFLRQHV: a) Llamamos error absoluto del nmero aproximado a al valor: D = $ D y todo nmero D D , se denominar cota del error absoluto. b) Llamamos error relativo del nmero aproximado a al valor: D = D , $ 0 $
*

y todo nmero D D , se denominar cota del error relativo.


*

c) Dado un > 0 (pequeo) decimos que el valor a aproxima a A con una precisin si: D = $ D Teora de Errores y Aritmtica del Computador Pag. 3

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

d) Sean A y a dos nmeros reales. Se dice que a es una aproximacin de A con n cifras decimales exactas (o que A y a coinciden en n cifras decimales), si n es el mayor entero no negativo tal que D 0.5 [10 Q Ejemplo: Una aproximacin de A = = 3.141592 con tres cifras decimales exactas es D = 3.1415 , ya que 3.1415 = 0.000092... < 0.5 10 3 = 0.0005

3.1415 = 0.000092... > 0.5 10 4 = 0.00005 Sin embargo, el nmero 3.141 coincide con en slo dos cifras decimales exactas, ya que 0.5 10 3 = 0.0005 < 3.141 = 0.000592... < 0.5 10 2 = 0.005
e) Sean A y a dos nmeros reales, con A0. Se dice que a es una aproximacin de A con n cifras decimales significativas exactas (o que A y a coinciden en n cifras decimales significativas), si n es el mayor entero no negativo tal que D 5 [10 Q . Ejemplo: El nmero 124.45 coincide con 123.45 en dos cifras significativas, ya que 123.45 124.45 1 5 10 3 < = = 0.0081... < 5 10 2 123.45 123.45 El nmero 251.75 coincide con 250.75 en tres cifras significativas, ya que 250.75 251.75 1 5 10 4 < = = 0.0039... < 5 10 3 250.75 250.75 f) Terminacin por redondeo: Representacin decimal  D D D D D Entonces se forma: D D D D
         W

W

D D D D  10
W

VL  D VL D
W

 D  D 
L



W

g) Terminacin por truncamiento: Representacin decimal D D D D D


   N

N

N

Entonces para k dgitos de la mantisa se forma

 D D D
  



N

D 
N

Teora de Errores y Aritmtica del Computador

Pag.

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1



3URSDJDFLyQ GHO HUURU GH ODV IXQFLRQHV Al resolver un problema utilizando mtodos numricos, en general el error ser consecuencia de un cmulo de errores ocurridos en pasos sucesivos, se debe estudiar la mecnica de propagacin de los mismos a lo largo del clculo. Un mito comn es que las computadoras modernas trabajan con tal grado de precisin que los usuarios no necesitan contemplar la posibilidad de resultados inexactos. Esto se ve reforzado cuando vemos en la pantalla los resultados con gran cantidad de cifras. Sin embargo, veremos a lo largo del curso que la falta de cuidado en clculos aparentemente directos y triviales puede conducir a resultados catastrficos.
5(*/$6 '( 3523$*$&,1

Los errores se propagan de acuerdo a las reglas que se presentan a continuacin: a) Suma: Propaga los errores DEVROXWRV [+ \ [ + \

b) Producto y cociente ( si [ y \ son pequeos): propaga los errores UHODWLYRV

[. \ [ + \
c) Funciones de una variable: \ = I ([ ) \ \ [
Q I \ [ L =1 [L L

[/ \ [ + \

d) Funciones de varias variables: \ = I ([1 , [ 2 ,  , [ Q )



(UURUHV GH SXQWR IORWDQWH


$5,70e7,&$ '( 38172 )/27$17(

Las operaciones de suma, resta, multiplicacin y divisin en el sistema de punto flotante (F), se denota por , , \ respectivamente. Estas operaciones estn definidas por: [ \ = IO ( IO ( [) + IO ( \ )) [ \ = IO ( IO ( [) IO ( \ ))
[ \ = IO ( IO ( [) . IO ( \ )) [ \ = IO ( IO ( [) IO ( \ )), IO ( \ ) 0, \ 0

Estas operaciones no son cerradas sobre ), pues en algunos casos se genera underflow u overflow; ms an en otros casos producen una variedad de errores, que se indican ms adelante. Esto nos lleva a situaciones inesperadas, por lo que se recomienda siempre tener presente estas situaciones en el momento que se programa o analizan los resultados numricos de algn software en particular.

Teora de Errores y Aritmtica del Computador

Pag.

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

Los errores cometidos al realizar operaciones aritmticas en el sistema de punto flotante, los podemos tipificar segn los siguientes criterios:  (UURU GH 5HGRQGHR Ya se menciono que ste tipo de error es el obtenido por el proceso de redondeo (exceso o defecto) de los nmeros reales en su representacin por nmeros punto flotante de mquina.  (UURU 6LJQLILFDWLYR Este error ocurre con frecuencia cuando se restan nmeros casi iguales o cuando se suman nmeros "casi iguales" en magnitud, pero de signos contrarios. Tambin se presentan cuando se divide por un divisor relativamente pequeo. Ejemplo 1: Sea un ordenador (hipottico) que trabaje con nmeros expresados en base 10, con cuatro dgitos de precisin, y con aproximacin por redondeo. a) La suma de dos nmeros Sean [ = 4 / 3 e \ = 2 / 9 ; se pide calcular [ + \ . Evidentemente, si se efecta un clculo exacto, se obtiene [ + \ = 14 / 9 = 1.5555... con lo que

IO ( [ + \ ) = 0.1556 101 Sin embargo, los clculos del ordenador se haran todos en la correspondiente aritmtica de punto flotante, es decir, como [ = 1.3333... e \ = 0.2222..., resulta

IO ( IO ( [) + IO ( \ )) = IO (1.3333 + 0.2222) = IO (1.5552) = 0.155 101 Se observa pos consiguiente que IO ( IO ( [ ) + IO ( \ )) IO ( [ + \ ) b) La resta de dos nmeros muy prximos entre s Sean: [ = 0.3721478693

IO ( [) = 0.1333 101 , y

IO ( \ ) = 0.2222 100

\ = 0.3720230572 Se pide calcular [ \ . Evidentemente, si se efecta un clculo exacto, se obtiene [ \ = 0.0001248121 Si los clculos se realizan con precisin de 4 decimales: IO ( [) = 0.3721 IO ( \ ) = 0.3720 IO ( [) IO ( \ ) = 0.0001

[ \ Es decir, del orden del 19.88%, error relativo que es por tanto muy elevado Error relativo =

([ \ ) ( IO ( [) IO ( \ ) ) = 0.1988

Teora de Errores y Aritmtica del Computador

Pag.

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

En consecuencia, hay que evitar que en el ordenador se produzcan operaciones de sustraccin de sumandos casi iguales. Esto puede lograrse de diversas maneras, y a continuacin exponemos un ejemplo Ejemplo 2: Al calcular: \ = [ 2 + 1 1 , cuando [ = 10 10 , se obtiene \ = 0 . Se puede reescribir de otra manera:

\=

[2 +1 1
2

([ +1 +1

+1 +1 =

[ +1 +1
2

[2

5 [10 21

 $ULWPpWLFD GHO FRPSXWDGRU 

5HSUHVHQWDFLyQ GH Q~PHURV HQ HO FRPSXWDGRU Los computadores trabajan con aritmtica real usando un sistema denominado de punto flotante. Suponen un nmero real que tiene la expansin binaria: [ = P [ 2 (H , donde 1 P < 2 y P = (E0 .E1E2 E3 )2 E = 0 R 1 Cuando E0 = 1 , se dice que es un nmero normalizado. Exponente externo (Ee), donde Ee=Ei-bias bias=2k-1-1, con k= # de bits del Exponente interno (Ei) Para almacenar un nmero en representacin de punto flotante, el computador usa 3 campos: Signo (S) Exponente Interno (Ei) Mantisa (M)
L

Signo (S): El signo del numero, 0=positivo, 1=negativo. Exponente (Ei): Potencia de la base 2, mas adelante se explica con ms detalle Mantisa (M): Dgitos de la parte decimal 0 = E1E2 E3  E = 0 R 1 .
L

Dado que un nmero en punto flotante puede expresarse de distintas formas que son equivalentes, es necesario establecer una nica representacin. Es por ello que se trabaja con nmeros normalizados. Decimos que un nmero est normalizado si el dgito a la izquierda del punto o coma est entre 0 y la base (0 < dgito a la izquierda del punto < b). En particular, decimos que un nmero binario est normalizado si el dgito a la izquierda del punto es igual a 1 Ejemplo: 1.00 10-1 normalizado 0.01 102 no normalizado

Teora de Errores y Aritmtica del Computador

Pag.

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1



'LVWULEXFLyQ GH ORV GDWRV HQ OD UHFWD QXPpULFD

Si en los clculos se genera un resultado inferior al menor valor positivo que tenga almacenamiento exacto en el computador se producir un desbordamiento denominado 8QGHUIORZ. El menor valor positivo es un valor no normalizado o subnormal (UHDOPLQVXE). Tambin existe un menor valor normalizado (UHDOPLQ). El nmero positivo mas grande que se puede almacenar se denomina UHDOPD[, si en los clculos se genera un resultado mayor que este valor adoptara el valor LQI, lo que indica un desbordamiento de rango. La precisin de la maquina (HSVLORQ) segn la IEEE se define como la distancia de  al siguiente numero que tenga almacenamiento exacto. Puesto que la cantidad de nmeros a almacenar es una cantidad finita, la mayora de nmeros reales tendrn que ser aproximados a aquellos que tienen una representacin exacta en el sistema de punto flotante empleado. Esto origina las perdidas de precisin por redondeo.



(VWiQGDU ,((( SDUD UHSUHVHQWDFLyQ GH 3XQWR )ORWDQWH Este estndar se desarroll para facilitar la portabilidad de los programas de un procesadora otro y para alentar el desarrollo de programas numricos sofisticados. Este estndar ha sido ampliamente adoptado y se utiliza prcticamente en todos los procesadores y coprocesadores aritmticos actuales. El estndar del IEEE define el formato para precisin simple de 32 bits y para precisin doble de 64 bits. Hasta la dcada de los 90 cada computador utilizaba su propio formato en punto flotante, en 1985 se introduce el estndar IEEE-754 con la finalidad de uniformizarlos.



3UHFLVLyQ VLPSOH  ELWV 6LJQR 6 ([SRQHQWH (  ELW  ELWV 3UHFLVLyQ GREOH  ELWV 6LJQR 6 ([SRQHQWH (  ELW  ELWV

1~PHURV GH VLPSOH \ GREOH SUHFLVLyQ 0DQWLVD 0  ELWV 0DQWLVD 0  ELWV Pag. 8

Teora de Errores y Aritmtica del Computador

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

La doble precisin permite manejar mas cifras significativas y exponentes de mayor rango que en simple precisin. A continuacin se muestra una tabla de conversin muy importante: 3UHFLVLyQ VLPSOH  ELWV  ([SRQHQWH ([FHVR  (L ([SRQHQWH LQWHUQR (L 0DQWLVD 5HSUHVHQWD -127 (combinacin binaria 0) 0 0 -127 (combinacin binaria 0) {1RWDFLyQ 6XEQRUPDO} [-126,127] (combinacin binaria [1, 254]) {1RWDFLyQ 1RUPDO} 128 (combinacin binaria 255) 128 (combinacin binaria 255) 0
0 0

( 1)6 (0.P1P2  P23 )2 .2 126


{1RWDFLyQ 6XEQRUPDO}

----

{1RWDFLyQ 1RUPDO}
inf
1D1

( 1)6 (1.P1P2  P23 )2 .2 (H H H ) 127


1 2 8 2

([SRQHQWH -1023 -1023

3UHFLVLyQ GREOH  ELWV  ([SRQHQWH ([FHVR  (L 0DQWLVD 0


0

5HSUHVHQWD 0

( 1)6 (0.P1P2  P52 )2 .2 1022 ( 1)6 (1.P1P2  P52 )2 .2 (H H H


1 2 11 2 1023

[-1022,1023] 1024 1024 

---0
0

inf
1D1

&RQVLGHUDFLRQHV HVSHFLDOHV

'HILQLFLyQ GHO FHUR puesto que el significando se supone almacenado en forma normalizada, no es posible representar el cero (se supone siempre precedido de un 1). Por esta razn se convino que el cero se representara con valores 0 en el exponente y en la mantisa. Ejemplo:    = +0    = -0

Teora de Errores y Aritmtica del Computador

Pag.

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

Observe que en estas condiciones el bit de signo S an permite distinguir +0 de -0. Sin embargo el Estndar establece que al comparar ambos "ceros" el resultado debe indicar que son iguales.

,QILQLWRV se ha convenido que cuando todos los bits del exponente estn a 1 y todos los de la mantisa a 0, el valor es +/- infinito (segn el valor S). Esta distincin ha permitido al Estndar definir procedimientos para continuar las operaciones despus que se ha alcanzado uno de estos valores (despus de un overflow). Ejemplo:    = -Infinito 9DORUHV QRQRUPDOL]DGRV (denominados tambin "subnormales"). Se identifican porque todos los bits del exponente son 0 pero la mantisa presenta un valor distinto de cero (en caso contrario se tratara de un cero). Ejemplo:       = +Infinito

9DORUHV QRQXPpULFRV: Denominados NaN ("Not-a-number"). Se identifican por un exponente con todos sus valores a 1, y una mantisa distinta de cero.



Ejemplo:       6LVWHPDV GH Q~PHURV \ FRQYHUVLRQHV

+ E1T 1 + E2 T 2 +  + EN T N +  El sistema natural de numeracin digital es el binario (base 2), utilizando slo los dgitos 0 y 1. Ejemplo: Decimal: (123.25)10 = 1 10 2 + 2 101 + 3 10 0 + 2 10 1 + 5 10 2 La conversin de EDVH GHFLPDO a EDVH T es: CRQYHUVLyQ GH OD SDUWH HQWHUD: (DQ DQ1  D1D0 ) T = (DQ DQ1  D1 ) T T + (D0 ) T

Sistema de numeracin decimal utiliza como base de numeracin el 10 (dgitos 09) Un nmero HQ EDVH T se denota como: (DQ DQ1  D1D0 .E1E2  EN ) T donde q toma valores desde 0 hasta q-1 La conversin a decimales es, por definicin: (DQ DQ1  D1D0 .E1E2 EN ) T = DQ T Q + DQ1T Q1 +  + D1T1 + D0 T 0 +

Binario: (1011.01) 2 = 1 23 + 0 2 2 + 1 21 + 1 2 0 + 0 2 1 + 1 2 2 = 11.25

Teora de Errores y Aritmtica del Computador

Pag. 10

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

Al dividir un nmero entero entre q el resto es el dgito menos significativo del nmero en base q. Dividiendo sucesivamente (hasta llegar al cociente 0) obtenemos los sucesivos dgitos del nmero en base q. &RQYHUVLyQ GH OD SDUWH IUDFFLRQDULD: (.E1E2  EN ) T T = (E1 ) T + (.E2  EN ) T La parte entera del resultado de multiplicar nuestro nmero por q es el primer dgito tras el punto decimal. Reteniendo la parte fraccionaria que resulta en cada paso y repitiendo sucesivamente el proceso, vamos obteniendo el resto de cifras tras el punto. Ejemplo: Convertir (15) 10 en base 2 Solucin:

Ejemplo: Escribamos (26.1)10 en base 2 Solucin: Parte entera: Dividiendo sucesivamente, tenemos que: 26 = 2 13 + 0; 13 = 2 6 + 1; 6 = 2 3 + 0; 3 = 2 1 + 1; 1 = 2 0 + 1 Leyendo de izquierda a derecha los nmeros subrayados: (26)10 = (11010)2 Parte fraccionaria: Multiplicando sucesivamente por dos y separando la parte fraccionaria: 0.1 2 = 0.2; 0.2 2 = 0.4; 0.4 2 = 0.8; 0.8 2 = 1.6; 0.6 2 = 1.2; 0 .2 2 =  Leyendo de izquierda a derecha tenemos los dgitos de la parte fraccionaria (subrayados) luego (0.1)10 = (0.00011)2. Donde las cifras subrayadas son las cifras peridicas. Por lo tanto: (26)10 = (11010.00011)2

Teora de Errores y Aritmtica del Computador

Pag. 11

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1



(MHUFLFLRV UHVXHOWRV

1. Representar segn el estndar IEEE de punto flotante precisin simple para los siguiente valores: a) 7 b) 21 6ROXFLyQ (a) Convertimos el nmero a binario: 710= 1112 Normalizamos el nmero: 1.112 10 2 2 Calculamos el exponente con exceso 127 para precisin simple 2+127=12910 = 1000 00012 El nmero 710 en el estndar IEEE es representado como: 0 10000001 11000000000000000000000

(b) 2110 = 101012 = 1.01012 104 2

exponente : 4 + 127 = 13110 = 100000112


0 10000011 01010000000000000000000

2. Convertir 0.510 a binario y hallar su representacin en IEEE precisin simple 6ROXFLyQ Convertimos el nmero a binario: 0.5 2 = 1.0; 0.0 2 = 0.0; 0.510 = 0.12
1 Normalizamos el nmero: 0.510 = 1.0 2 10 2 Calculamos el exponente con exceso 127 para precisin simple -1+127=12610 = 01111110 El nmero 0.510 en el estndar IEEE es representado como:

0 01111110 00000000000000000000000 3. Cual es el valor decimal de: 1 01111100 11000000000000000000000? 6ROXFLyQ El bit de signo es 1: Numero negativo El exponente contiene 01111100 = 124 La mantisa es 0.1100. = 0.75 1 + 0.75)[ 2124127 = 0.21875 El valor es: ( 1)[(

Teora de Errores y Aritmtica del Computador

Pag. 12

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

4. Convertir 3.75 a binario y hallar su representacin en IEEE precisin simple 6ROXFLyQ Convertimos el nmero a binario: 3.7510 = 11.112 Normalizamos el nmero: 3.7510 = 1.1112 21 Calculamos el exponente con exceso 127 para precisin simple 1+127=12810 = 1000 00002 El nmero 3.7510 en el estndar IEEE es representado como: 0 1000 0000 11100000000000000000000 5. Cual es la representacin en simple precisin de 347.625? 6ROXFLyQ Convertir a binario: 347.625 = 101011011.101 Normalizar el numero (mover el punto decimal hasta que haya un solo 1 a la izquierda) : 101011011.101=1.01011011101x28 Mantisa: 01011011101 Calculamos el exponente con exceso 127 para precisin simple 8 + 127 = 13510 = 100001112 El numero es positivo: bit de signo 0 0 10000111 01011011101000000000000

6. Si suponemos una representacin en punto flotante como a continuacin se detalla, donde Y indica el valor del nmero representado, determinar: a) b) c) d) La representacin del 1, El mnimo nmero no nulo normalizado representable en valor absoluto, El mnimo nmero representable en valor absoluto (distinto de 0), y El mximo nmero representable en valor absoluto. Signo(1 bit) Exponente (8 bits) 6 ( 6ROXFLyQ Mantisa (32 bits) I

0 < H < 255 Y = (1) V *1. I * 2 H127 H=0 Y = (1) V * 0. I * 2 126

a) Representacin del 1 0 01111111 00.0 v=1.0*2127-127

Teora de Errores y Aritmtica del Computador

Pag. 13

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

b) Mnimo nmero no nulo normalizado 0 00000001 00.0 v=1.0*21-127 c) Mnimo nmero representable no nulo 0 00000000 0001 v=0.0.1*2-126 d) Mximo nmero representable en valor absoluto 0 11111110 1 1 1.111 v=1.1.1*2254-127 7. Sea un sistema binario de punto flotante de 16 bits: s e1e2e3e4e5 m1m2m3m4m5m6m7m8m9m10

Donde los nmeros normalizados son de la forma: H H H H H 15 V [ = ( 1) 1.P1P2 P3  P10 2 1 2 3 4 5 2 Adems: 000002< (e1e2e3e4e5)2<111112 Muestre la representacin en punto flotante y los 16 bits del: a) b) c) d) e) Numero 1 El numero 1+eps Mayor valor positivo normalizado Menor valor positivo normalizado El numero: 475.65625

6ROXFLyQ a) ( 1)0 1.0000000000 [ 2 011112 15 0 01111 0000000000 b) ( 1)0 1.0000000001[ 2 011112 15 0 01111 0000000001

Teora de Errores y Aritmtica del Computador

Pag. 14

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

c) ( 1)0 1.1111111111[ 2111102 15 0 11110 1111111111 d) ( 1)0 1.0000000000 [ 2 000012 15 0 00001 0000000000 e) 475.65625=111011011.101012=1.1101101110x28 (e1e2e3e4e5)2-15=8 (e1e2e3e4e5)2=23=10111 2 0 10111 1101101110  (MHUFLFLRV SURSXHVWRV 1. Convertir 0.310 a binario y hallar su representacin en IEEE precisin simple. 2. Cual es el nmero siguiente a 143.1 que tiene representacin exacta en simple precisin? 3. Qu nmero decimal representa el siguiente patrn de bits en IEEE precisin simple? 0 00001100 01000000000000000000000 4. Determine para los sistemas de simple y doble precisin: El menor valor positivo normalizado El menor valor positivo no normalizado El mayor valor positivo El epsiln de la maquina

Teora de Errores y Aritmtica del Computador

Pag. 15

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

 3XQWRV IORWDQWHV HQ 0$7/$% A continuacin reproducimos un interesantsimo artculo de Cleve Moler http://www.mathworks.com/company/newsletters/news_notes/pdf/Fall96Cleve.pdf Uno de los creadores del MATLAB ( vs. Traducida Por R.M.G.J.): 3XQWRV )ORWDQWHV
Si vemos cuidadosamente las definiciones de las principales operaciones aritmticas como la suma y la multiplicacin, rpidamente encontraremos la abstraccin matemtica conocida como los Q~PHURV UHDOHV. Pero el cmputo efectivo con nmeros reales no es muy prctico porque ello implica lmites e infinitos. En cambio, MATLAB y muchos otros ambientes de computacin tcnica usan aritmtica de punto flotante, lo cual implica un conjunto finito de nmeros con precisin finita. Esto conduce a fenmenos tales como errores de redondeo, XQGHUIORZ y RYHUIORZ La mayor parte de las veces, MATLAB puede ser usado efectivamente sin preocuparse por estos detalles, pero algunas veces, es conveniente conocer algo acerca de las propiedades y limitaciones de los numero de punto flotante. Hace veinte aos la situacin era ms complicada de lo que es actualmente. Cada computadora tena su propio sistema numrico de punto flotante. Algunos eran binarios; otros eran decimales. Incluso haba una computadora rusa que utilizaba aritmtica ternaria. Entre las computadoras binarias, algunas usaban 2 como base; otras utilizaban 8 o 16. Y cada una tena una precisin diferente. En 1985, el IEEE Standards Board y la American National Standards Institute adoptaron la norma ANSI/IEEE Standard 754-1985 para la aritmtica binaria de punto flotante. Esto fue la culminacin de casi una dcada de trabajo de un grupo de 92 personas, matemticos, cientficos de computadoras e ingenieros provenientes de Universidades y compaas fabricantes de computadoras y microprocesadores. Todas las computadoras diseadas en los ltimos 15 aos usan la aritmtica flotante de la IEEE. Esto no significa que todas obtienen exactamente los mismos resultados, porque hay cierta flexibilidad dentro del estndar. Pero si que tendremos un modelo independiente de la mquina de cmo la aritmtica de punto flotante se comporta. MATLAB utiliza el formato de doble precisin de la IEEE. Tambin hay un formato de simple precisin el cual ahorra espacio pero no es mucho ms rpido en las mquinas modernas. Y, hay un formato de precisin extendida, el cual es opcional y por consiguiente es una de las razones para la ausencia de uniformidad entre diferentes mquinas. Muchos nmeros de punto flotante estn normalizados. Esto significa que ellos pueden ser expresados como: [ = ( 1 + I ) 2e 0I<1

dondeI es la fraccin o mantisa y H es el exponente. La fraccin debe satisfacer: y debe ser representable en binario usando a lo ms 52 bits. En otras palabras 252 I debe ser un entero en el intervalo: 0 252 I < 253

Teora de Errores y Aritmtica del Computador

Pag. 16

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

El que I sea finito es una limitacin sobre la SUHFLVLyQ. El que H sea finito es una limitacin sobre el UDQJR. Los nmeros que no cumplen estas limitaciones deben ser aproximados por otros que s:

El exponente debe ser un entero en el intervalo: -1022 H 1023

Los nmeros de punto flotante de doble precisin pueden se almacenados en una extensin de 64 bits, con 52 bits para I 11 bits para H y 01 bit para el signo del nmero. El signo de H es acomodado almacenando H+1023, el cual esta entre 1 y 211 2. Los dos valores extremos para el campo del exponente, 0 y 211 1, estn reservados para nmeros de punto flotante excepcionales, los cuales describiremos posteriormente:

La figura anterior muestra la distribucin de los nmeros positivos en un sistema ficticio de punto flotante con solo 03 bits para I y para H entre 2e y 2e+1 los nmeros estn igualmente espaciados con un incremento de 2e-3.Cuando H crece, el espaciamiento crece. El espaciamiento de los nmeros entre 1 y 2 en nuestro sistema es 2-3 o 1/8. En el sistema de IEEE, el espaciamiento es 2-52 .MATLAB denota a esta cantidad HSV, el cual es el HSVLOyQ GH OD PiTXLQD. Eps=2^(-52) Antes del estndar de la IEEE, diferentes mquinas tenan diferentes de HSV. El valor decimal aproximado de HSV es: 2.2204 e-16. Tanto HSV/2 o HSV pueden ser llamados el nivel de redondeo. El mximo error relativo incurrido cuando el resultado de una operacin aritmtica simple es redondeado al ms cercano nmero de punto flotante es HSV. (O Pi[LPR HVSDFLDPLHQWR UHODWLYR HQWUH Q~PHURV HV HSV. En cualquier caso, se puede decir que el nivel de redondeo es alrededor de 16 dgitos decimales. Un ejemplo muy importante ocurre con la simple asignacin en MATLAB t=0.1 El valor almacenado en t no es exactamente 0.1 porque expresar la fraccin decimal 1/10 en binario requiere una serie infinita:

1 / 10 = 1 / 2 4 + 1 / 2 5 + 0 / 2 6 + 0 / 2 7 + 1 / 2 8 + 1 / 2 9 + 0 / 210 + 0 / 211 + 1 / 212 + 

Teora de Errores y Aritmtica del Computador

Pag. 17

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

Despus del primer trmino, la secuencia de coeficientes 1,0,0,1 se repite indefinidamente. El nmero de puntos flotantes ms cercano a 0.1 es obtenido redondeando esta serie a 53 trminos incluyendo el redondeo de los cuatro ltimos coeficientes al binario 1010. Agrupando los trminos resultantes de cuatro cada vez se expresa la aproximacin como una serie de base 16 o hexadecimal. Luego el valor resultante para t es:

W = 1 + 9 / 16 + 9 / 16 2 + 9 / 16 3 +  9 / 1612 + 10 / 16 3 .2 4

El comando de MATLAB format hex Ocasiona que t se imprima como

3 IE999999999999D
Los primeros tres caracteres 3fb, proporcionan la representacin hexadecimal del exponente alterado, H, donde H es 4. Los otros 13 caracteres son la representacin hexadecimal de la fraccin I . Luego el valor almacenado en W es muy cercano, pero no exactamente igual, a 0.1. Esta distincin es ocasionalmente importante. Por ejemplo, la cantidad: 0.3/0.1 No es exactamente igual a 3 porque el numerador actual es un poco menor que 0.3 y el denominador actual es un poco mayor que 0.1. Diez pasos de longitud t no son precisamente lo mismo que un paso de longitud 1. MATLAB es cuidadoso para arreglar que el ltimo elemento del vector: 0:0.1:1 es exactamente igual a 1, pero si Ud. forma este vector por si mismo por incrementos adicionales de 0.1, Ud. no llegara a 1 exactamente. Otro ejemplo es previsto por el cdigo MATLAB siguiente: a = 4/3 b=a1 c=b+b+b e=1c Un clculo exacto nos llevara a que debe ser cero. Por el punto flotante el valor de e calculado no es cero. Se desprende que el valor de redondeo ocurre en la primera sentencia. El valor almacenado en a no es exactamente 4/3, excepto en la computadora trinaria rusa. El valor almacenado en b es cercano a 1/3, pero su ltimo bit es cero. El valor almacenado en c no es exactamente igual a 1, porque las sumas son hechas con algn error. Luego el valor almacenado en e no es cero. En realidad, e es igual a eps. Antes del estndar IEEE, este cogido era usado como una forma fcil para estimar los errores de redondeo en varias computadoras. El nivel de redondeo eps es algunas veces llamado SXQWR IORWDQWH FHUR, pero esto es un nombre inapropiado. Existen muchos nmeros de punto flotante ms pequeos que el HSV. El ms pequeo nmero positivo de punto flotante normalizado tiene I=0 y H=-1022. El mayor numero de punto flotante tiene un I es un poco menor que uno y H=1023. MATLAB llama a estos nmeros realmin y realmax respectivamente. Estos nmeros juntos con HSV, caracterizan al sistema estndar.

Teora de Errores y Aritmtica del Computador

Pag. 18

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

Nombre eps realmin realmax

Binario 2 52 2 1022 (2 HSV )* 21023

Decimal 2.2204e-16 2.2251e-308 1.7977e+308

Cundo un clculo trata de producir un valor mayor que realmax, esto se llama RYHUIORZ. El resultado es un valor excepcional de punto flotante llamado Inf, o infinito. Esto es representado tomando I=0 y H=1024 y satisface relaciones como 1/inf=0 e inf+inf=inf. Cuando algn calculo trata de producir un valor menor que mineral, esto se llama underflow. Esto envuelve uno de los aspectos opcionales y controversiales del estndar IEEE. Muchas, pero no todas, las maquinas permiten nmeros excepcionales denormal o subnormal de punto flotante en el intervalo entre realmin y HSV*realmin. El ms pequeo Q~PHUR VXEQRUPDO positivo es el alrededor H. Cualquier resultado menor que este numero es asignado como cero. En mquinas sin subnormales, todo resultado menor que realmin es asignado como cero. /RV Q~PHURV VXEQRUPDOHV caen en el caso que se puede ver en nuestro sistema ficticio entre cero y el ms pequeo numero positivo. Ellos proveen un modelo elegante para manejar el underflow, pero su importancia prctica para el estilo de computacin de MATLAB es muy raro. Cuando un clculo trata de producir un valor que es indefinido en el sistema de nmeros reales, el resultado es un valor excepcional conocido como Not-a-Number, o NaN. Ejemplos incluyen 0/0 y Inf Inf. MATLAB usa el sistema de punto flotante para manejar los enteros. Matemticamente, los nmeros 3 y 3.0 son los mismos, pero en muchos lenguajes de programacin usan diferentes representaciones para los dos. MATLAB no distingue entre ambos. Nos gusta usar el trmino IOLQW para describir un nmero flotante cuyo valor es un entero. Las operaciones del punto flotante sobre IOLQWV no introducen errores de redondeo, desde que los resultados no son tan grandes. La suma, la resta y la multiplicacin de IOLQWV produce el resultado IOLQW exacto, si este no es mayor que 253. La divisin y la raz cuadrada que involucran flints tambin producen un IOLQW cuando el resultado es un entero. Por ejemplo, sqrt(363/3) produce 11, sin error de redondeo. Como un ejemplo de cmo el error de redondeo afecta en el clculo de las matrices, considere el sistema lineal de dos ecuaciones con dos incgnitas:

10 [1 + [ 2 = 11

3[1 + 0.3[ 2 = 3.3

La solucin obvia es x1=1, y x2=1. Pero las sentencias de MATLAB A=[ 10 1 ; 3 0.3 ] b=[11 3.3] x=A\b produce: x=

Teora de Errores y Aritmtica del Computador

Pag. 19

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

-0.5000 16.0000 {6HJ~Q HO DUWtFXOR SHUR HQ OD YV  GHO 0DWODE HVWR SURGXFH [ 1D1 \ [ 1D1} Porque? Bueno, las ecuaciones son singulares. La segunda ecuacin es justamente 0.3 veces que la primera. Pero la representacin en punto flotante de la matriz A no es exactamente singular porque A(2,2) no es exactamente 0.3. La eliminacin Gaussiana transforma las ecuaciones al sistema triangular superior U*x=c

Donde U(2,2) = 0.3-3*(0.1) = -5.5551e-17 y c(2) = 3.3 33*(0.1) = -4.4409e-16 MATLAB detecta el pequeo valor de U(2,2) e imprime un mensaje de advertencia que la matriz es cercana a la singular, Entonces calcula la relacin de los dos errores de redondeo X(2) = c(2)/U(2,2) = 16 Este valor es substituido en la primera ecuacin para dar X(1) = (11 - x(2))/10 = - 0.5 Las ecuaciones singulares son consistentes. Hay un nmero infinito de soluciones. Los detalles del error de redondeo determinan cual solucin particular ser calculada. Nuestro ejemplo final grafica un polinomio de sptimo grado: x=0.988:.0001:1.012; y=x.^7-7*x.^6+21*x.^5-35*x.^4+35*x.^3-21*x.^2+7*x-1; plot(x,y)
5 4 3 2 1 0 -1 -2 -3 -4 -5 0.985 x 10
-14

0.99

0.995

1.005

1.01

1.015

Teora de Errores y Aritmtica del Computador

Pag. 20

Universidad Nacional de Ingeniera Facultad de Ingeniera Mecnica DACIBAHCC

Mtodos Numricos - MB536 P.A.2009-1

Pero el grfico resultante no se parece nada a un polinomio. No es suave. Estamos viendo el error de redondeo en accin. El factor de escala del eje Y es muy pequeo, 10-14. Los pequeos valores de y son calculados tomando sumas y diferencias de nmeros tan grandes como 35x 1.0124. Existe una severa cancelacin por diferencia. El ejemplo fue ideado usando Toolbox Simblic para expandir (x 1)7 y cuidadosamente elegido el rango del eje x para que sea cercano a x=1. Si los valores de y son calculados en cambio por: Y= (x 1).^7; Entonces una grafica suave (pero muy plana) es obtenida.
-14

4 3 2 1 0 -1 -2 -3

x 10

-4 0.985

0.99

0.995

1.005

1.01

1.015

Teora de Errores y Aritmtica del Computador

Pag. 21

You might also like