Vous êtes sur la page 1sur 11

PUNTO FLOTANTE

Los computadores no almacenan los nmeros con precisin infinita sino de forma aproximada empleando un nmero fijo de bits (apcope del trmino in ls Binary Digit! o bytes ( rupos de oc"o bits!# Pr$cticamente todos los computadores permiten al pro ramador ele ir entre %arias representaciones o &tipos de datos&# Los diferentes tipos de datos pueden diferir en el nmero de 'its empleados( pero tam'in (lo )ue es m$s importante! en cmo el nmero representado es almacenado* en formato fijo (tam'in denominado &entero&! o en punto flotante+ (denominado &real&!#

Representacin de los nmeros en punto flotante


En un ordenador t,pico los nmeros en punto flotante se representan de la manera descrita en el apartado anterior( pero con ciertas restricciones so're el nmero de d, itos de q - m impuestas por la lon itud de pala'ra disponi'le (es decir( el nmero de bits )ue se %an a emplear para almacenar un nmero!# Para ilustrar este punto( consideraremos un ordenador "ipottico )ue denominaremos MARC-32 - )ue dispone de una lon itud de pala'ra de .+ bits (mu- similar a la de muc"os ordenadores actuales!# Para representar un nmero en punto flotante en el MARC-32( los bits se acomodan del si uiente modo*
/i no del nmero real x* /i no del exponente m* Exponente (entero 1m1!* 3antisa (nmero real 1q1!* 0 'it 0 'it 2 'its +. 'its

En la ma-or,a de los c$lculos en punto flotante las mantisas se normali4an( es decir( se toman de forma )ue el 'it m$s si nificati%o (el primer 'it! sea siempre &0&# Por lo tanto( la mantisa q cumple siempre la ecuacin (05!# 6ado )ue la mantisa siempre se representa normali4ada( el primer 'it en q es siempre 0( por lo )ue no es necesario almacenarlo proporcionando un 'it si nificati%o adicional# Esta forma de almacenar un nmero en punto flotante se conoce con el nom're de tcnica del 'bit fantasma'# /e dice )ue un nmero real expresado como aparece en la ecuacin (07! - )ue satisface la ecuacin (05! tiene la forma de punto flotante normalizado# /i adem$s puede representarse exactamente con 1 m1 ocupando 2 'its - 1q1 ocupando +8 'its( entonces es un nmero de mquina en el 3A9:;.+. La restriccin de )ue 1m1 no re)uiera m$s de 2 'its si nifica )ue*

<a )ue ( la 3A9:;.+ puede manejar nmeros tan pe)ue=os como ;.7 0> - tan randes como 0>.7#

Este no es un inter%alo de %alores suficientemente eneroso( por lo )ue en muc"os casos de'emos recurrir a pro ramas escritos en aritmtica de doble precisin e incluso de precisin extendida# :omo q de'e representarse empleando no m$s de +8 'its si nifica )ue nuestros nmeros de m$)uina tienen una precisin limitada cercana a las siete cifras decimales( -a )ue el 'it menos si nificati%o de la mantisa representa unidades de # Por tanto( los nmeros expresados mediante m$s de siete d, itos decimales ser$n o'jeto de aproximacin cuando se almacenen en el ordenador# Por ejemplo* >#? representado en punto flotante en el MARC-32 (lon itud de pala'ra de .+ 'its! se almacena en la memoria del si uiente modo*

Ejemplo ?* /upon a un ordenador cu-a notacin de punto fijo consiste en pala'ras de lon itud .+ 'its repartidas del si uiente modo* 0 'it para el si no( 0? 'its para la parte entera - 0@ 'its para la parte fraccionaria# 9epresente los nmeros +@#.+( - 0+?8+#+5.>0 en 'ase + empleando esta notacin de punto fijo - notacin de punto flotante 3A9:;.+ con .+ 'its# :alcule el error de almacenamiento cometido en cada caso# /olucin* El nmero +@#.+ en 'inario se escri'e del si uiente modo*

Empleando las representaciones comentadas( o'tenemos*

/i expresamos el error como la diferencia entre el %alor - el nmero realmente almacenado en el ordenador( o'tenemos*

En cuanto a los otros dos nmeros( o'tenemos*

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 c$lculos numricos - )ue "ace referencia a su densidad en la l,nea real# /upon amos )ue p( el nmero de 'its de la mantisa( sea +8#

En el inter%alo (exponente f A >! es posi'le representar ++8 nmeros i ualmente espaciados - separados por una distancia 0B+ +8# 6e modo an$lo o( en cual)uier inter%alo "a- ++8 nmeros e)uiespaciados( pero su densidad en este caso es +fB++8# Por ejemplo( entre ++> A 0>87?2@ - ++0 A +>520?+ "a- ++8 A 0@222+0@ nmeros( pero el espaciado entre dos nmeros sucesi%os es de slo # 6e este "ec"o se deri%a inmediatamente una re la pr$ctica* cuando es necesario comparar dos nmeros en punto flotante relati%amente randes( es siempre preferi'le comparar la diferencia relati%a a la ma nitud de los nmeros# En la fi ura (0! se representa r$ficamente la separacin entre dos nmeros consecuti%os en funcin del exponente f en el ran o fAC+>(.>D#

A9ET3FTE:A 6E PUNTO FLOTANTE


En este apartado anali4aremos los errores in"erentes a la aritmtica de los nmeros de punto flotante# Primero consideraremos el error )ue sur e como consecuencia de )ue los nmeros reales no se pueden almacenar( en eneral( de forma exacta en un ordenador# 6espus anali4aremos las cuatro operaciones aritmticas '$sicas - finalmente ampliaremos el estudio a un c$lculo m$s complejo#

Nmeros de mquina aproximados


Estamos interesados en estimar el error en )ue se incurre al aproximar un nmero real positi%o x mediante un nmero de m$)uina del MARC-32# /i representamos el nmero mediante*

en donde cada ai es > 0 - el 'it principal es a0 A 0# Un nmero de m$)uina se puede o'tener de dos formas*
Truncamiento* descartando todos los 'its excedentes # El nmero resultante( x& es siempre menor )ue x (se encuentra a la i4)uierda de x en la recta real!# Redondeo por exceso* Aumentamos en una unidad el ltimo 'it remanente a+8 despus eliminamos el exceso de 'its como en el caso anterior#

Todo lo anterior( aplicado al caso del MARC-32( se resume diciendo )ue si x es un nmero real distinto de > dentro del inter%alo de la m$)uina( entonces el nmero de m$)uina xG m$s cercano a x satisface la desi ualdad*

)ue se puede escri'ir de la si uiente forma*

Ejemplo @* H:mo se expresa en 'inario el nmero x A +B.I H:u$les son los nmeros de m$)uina x& - x&& prximos en el MARC-32I El nmero +B. en 'inario se expresa como*

Los dos nmeros de m$)uina prximos( cada uno con +8 'its( son*
x& x&& A A

en donde x& se "a o'tenido por truncamiento - x&& mediante redondeo por exceso# :alculamos a"ora las diferencias x ; x& - x&& ; x para estimar cual es el error cometido*

x ; x&A

x&& ; xA

Por tanto( el nmero m$s prximo es fl(x! A x&& - los errores de redondeo a'soluto - relati%o son*

1fl(x! ; x1A

A+;+? J +;+8

Las operaciones bsicas


Kamos a anali4ar el resultado de operar so're dos nmeros en punto flotante normali4ado de l;d, itos de lon itud( x e y( )ue producen un resultado normali4ado de l;d, itos# Expresaremos esta operacin como*

en donde op es L( ;( # /upondremos )ue en cada caso la mantisa del resultado es primero normali4ada - despus redondeada (operacin )ue puede dar lu ar a un des'ordamiento )ue re)uerir,a renormali4ar el nmero!# El %alor de la mantisa redondeada a p 'its( qr( se define como (de una forma m$s ri urosa )ue en el caso anterior!*

en donde la funcin redondeo por defecto

es el ma-or entero menor o i ual

a x - la funcin redondeo por exceso es el menor entero ma-or o i ual a x# Para nmeros enteros( esta funcin se traduce en la 'ien conocida re la de sumar 0 en la posicin p L 0# Teniendo en cuenta slo la mantisa( redondear de este modo da lu ar a un inter%alo m$ximo del error de*

- un error relati%o m$ximo en el inter%alo*

Anali4aremos a"ora el error '$sicas*

enerado por cada una de las operaciones

Multiplicacin.
La operacin de multiplicar dos nmeros expresados en punto flotante implica sumar los exponentes - multiplicar las mantisas# /i la mantisa resultante no est$ normali4ada( se recurre a renormali4ar el resultado ajustando adecuadamente el exponente# 6espus( es necesario redondear la mantisa a p 'its# Para anali4ar el error de esta operacin supon amos dos nmeros*

Tenemos entonces )ue el producto ser$* xy A qx qy +fx L fy

en donde el %alor de la mantisa se encontrar$ en el ran o*

-a )ue tanto x como y satisfacen la ecuacin (05!# Por tanto( la normali4acin del producto qx qy implica un despla4amiento a la derec"a de( como m$ximo( una posicin# La mantisa redondeada ser$ entonces uno de estos dos posi'les %alores*

en donde

( )ue es el error de redondeo( cumple la ecuacin (+0!#

Tenemos entonces*

en donde( de acuerdo con la ecuacin (++!( tenemos*

Por tanto( la cota del error relati%o en la multiplicacin es la misma )ue la )ue sur e por redondear la mantisa#

Divisin.
Para lle%ar a ca'o la di%isin en punto flotante( se di%ide la mitad de la mantisa del numerador por la mantisa del denominador (para e%itar cocientes ma-ores de la unidad!( mientras )ue los exponentes se restan# Esto es*

Puesto )ue am'as mantisas satisfacen la ecuacin (07!( el %alor del cociente estar$ acotado entre los l,mites*

Aplicando un an$lisis similar al empleado en el caso de la multiplicacin( o'tenemos*

en donde( de acuerdo con la ecuacin (++!( tenemos*

Es decir( la cota m$xima del error relati%o en la di%isin( como en el caso anterior( es la misma )ue la )ue sur e por redondear la mantisa#

Adicin

sustraccin.

La operacin de suma o resta se reali4a del si uiente modo* se toma la mantisa del operando de menor ma nitud (supon amos )ue es y! - se despla4a fx ; fy posiciones a la derec"a# La mantisa resultante es sumada (o restada! - el resultado se normali4a - despus se redondea# Es decir*

El an$lisis del error cometido en esta operacin es m$s complejo )ue los estudiados "asta a"ora( por lo )ue no lo %amos a %er en detalle# /in em'ar o( el resultado final indica )ue la cota m$xima del error cometido en la adicin - la sustraccin %iene dado por*

En conclusin( en todas las operaciones aritmticas elementales en punto flotante( el error a'soluto del resultado es no ma-or de 0 en el 'it menos si nificati%o de la mantisa# /in em'ar o( los errores de redondeo se acumulan a medida )ue aumenta el nmero de c$lculos# /i en el proceso de calcular un %alor se lle%an a ca'o N operaciones aritmticas es posi'le o'tener( en el mejor de los casos( un error
8 de redondeo total del orden de ()ue coincide con el caso en )ue los errores de redondeo est$n aleatoriamente distri'uidos( por lo )ue se produce

una cancelacin parcial!# 6esafortunadamente( este error puede crecer mur$pidamente por dos moti%os*

Es mu- frecuente )ue la re ularidad del c$lculo o las peculiaridades del computador den lu ar a )ue el error se acumule preferentemente en una direccinM en cu-o caso el error de redondeo se puede aproximar a #

En circunstancias especialmente desfa%ora'les pueden existir operaciones )ue incremente espectacularmente el error de redondeo# Neneralmente( este fenmeno se da cuando se calcula la diferencia entre dos nmeros muprximos( dando lu ar a un resultado en el cual los nicos 'its si nificati%os )ue no se cancelan son los de menor orden (en los nicos en )ue difieren!# Puede parecer )ue la pro'a'ilidad de )ue se de dic"a situacin es pe)ue=a( sin em'ar o( al unas expresiones matem$ticas fomentan este fenmeno#

Keamos con un ejemplo los pro'lemas comentados anteriormente# Oa- dos formas de calcular las soluciones de la familiar ecuacin cuadr$tica*
ax+ L bx L c A >

)ue son*

:ual)uiera de estas dos expresiones da pro'lemas cuando a( c o am'os( son pe)ue=os# En estos casos( el %alor del discriminante es mu- prximo al %alor de b*

por lo )ue la diferencia redondeo importante#

%iene afectada de un error de

La solucin del pro'lema pasa por emplear una expresin mejor condicionada# En este caso( es preferi'le calcular pre%iamente*
(+?! - las dos ra,ces a partir de %alor de q como*

(+@!

Ejemplo* :alcular las ra,ces de la si uiente ecuacin cuadr$tica*


ax+ L bx L c A >

siendo*

/olucin* Empleando la ecuacin (+.!( o'tenemos*

/in em'ar o( empleando la expresin (+8!*

Por ltimo( empleando las expresiones (+?! - (+@! se o'tienen am'as soluciones correctas*

Notacin cient!fica normali"ada


En el sistema decimal( cual)uier nmero real puede expresarse mediante la denominada notacin cientfica normalizada# Para expresar un nmero en notacin cient,fica normali4ada multiplicamos o di%idimos por 0> tantas %eces como sea necesario para )ue todos los d, itos apare4can a la derec"a del punto decimal - de modo )ue el primer d, ito despus del punto no sea cero# Por ejemplo*

En eneral( un nmero real x distinto de cero( se representa en notacin cient,fica normali4ada en la forma*
(02!

en donde r es un nmero tal )ue ne ati%o o cero!#

- n es un entero (positi%o(

Exactamente del mismo modo podemos utili4ar la notacin cient,fica en el sistema binario# En este caso( tenemos )ue*
(07!

donde m es un entero# El nmero q se denomina mantisa - el entero m exponente# En un ordenador 'inario tanto q como m estar$n representados como nmeros en 'ase +# Puesto )ue la mantisa q est$ normali4ada( en la representacin 'inaria empleada se cumplir$ )ue*
(05!

Desbordamiento por exceso desbordamiento por defecto


En la discusin anterior( "emos i norado la posi'ilidad de )ue el resultado de una operacin del punto flotante pueda no ser representa'le mediante el es)uema fijo (l;'its! empleado por el ordenador# La ma nitud m$s rande )ue puede representarse mediante la frmula eneral (07! es*
(+2!

en donde F es el ma-or exponente positi%o representa'le ( eneralmente + 2 ; 0! - M es la mantisa )ue tiene todos sus 'its puestos a 0 ( M A 0 ; ++8!# Un des'ordamiento por exceso de punto flotante ( overflow en in ls! se ori ina cuando el resultado de una operacin de punto flotante tiene una ma nitud ma-or )ue la representada por la ecuacin (+2!# Ejemplo* :on q A 7 (- por tanto F A +2 ; 0 A 0+2!( las si uientes operaciones aritmticas dan lu ar a des'ordamiento por exceso*

El des'ordamiento por defecto ( underflow en in ls! se produce cuando el resultado de una operacin en punto flotante es demasiado pe)ue=o( aun)ue no nulo( como para )ue se pueda expresar en la forma dada por la ecuacin (07!# El nmero m$s pe)ue=o representa'le suponiendo )ue siempre tra'ajamos con mantisas normali4adas es ( en donde ;F es el

exponente ne ati%o m$s rande permitido ( eneralmente ;+ ;q;0!# Por ejemplo( con qA7 resulta ;F A ;0+7# Ejemplo* :on q A 7 (- por tanto ;F A ;0+7!( la si uiente operacin aritmtica da lu ar a des'ordamiento por defecto*

El des'ordamiento por exceso es casi siempre resultado de un error en el c$lculo# /in em'ar o( en el caso del deso'ordamiento por defecto( en muc"as ocasiones es posi'le continuar el c$lculo reempla4ando el resultado por cero#

#ondicionamiento

estabilidad

La &inesta'ilidad& en un c$lculo es un fenmeno )ue se produce cuando los errores de redondeo indi%iduales se propa an a tra%s del c$lculo incrementalmente# Keamos 're%emente este fenmeno - el pro'lema relacionado con este* el &condicionamiento& del mtodo o del pro'lema# La mejor forma de %er este fenmeno es a tra%s de un ejemplo# /upon amos el si uiente sistema de ecuaciones diferenciales*

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 solucinexacta.

El pro'lema anterior se dice )ue es in"erentemente inesta'le( o empleando una terminolo ,a m$s comn en c$lculo numrico( se dice )ue est$ &mal condicionado& (ill-conditioned!#

Vous aimerez peut-être aussi