Material Teórico - Clase 1 - Punto Flotante

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

¿Cómo se representan los números en una computadora?

Debido a las dificultades para trabajar con una representación numérica


que abarque a todos los números reales, es habitual el uso de sistemas en
los que se puede representar, y operar con sus elementos, un subconjunto
finito de R. Entre los más frecuentes son los de aritmética de punto
flotante.

Cualquier computadora trabaja con una cantidad finita de números que


llamaremos números de máquina. Esto se debe a que una computadora
tiene una capacidad finita de guardar información.

Cada vez que de nuestros datos o cálculos surja un número que no es un


número de máquina, deberá ser aproximado por el número de máquina
más cercano a él. De este accionar aparecen errores de redondeo que,
siguiendo con la operatoria, pueden propagarse y brindar resultados
completamente incorrectos.

UNaB Análisis Numérico 23 de agosto de 2024 1 / 13


Números de máquina
Las computadoras operan internamente con números desarrollados en base
2. Para simplificar, supondremos que los números de máquina se escriben
en base 10.
Un número real y positivo cualquiera, x ∈ R>0 , puede escribirse
1
x = 0, a1 a2 ...ak ...10l = r.10l ≤ r < 1,
con
10
es decir que a1 ̸= 0. La finitud de una computadora nos permitirá trabajar
sólo con números de desarrollo finito y longitud dada, con lo cual el
exponente l (el orden del número) se limitará a cierto rango. En
consecuencia, los números de máquina serán de la forma
x = 0, a1 a2 ...am 10l = q.10l − M1 ≤ l ≤ M2 , a1 ̸= 0
más los correspondientes negativos (agregando el signo - adelante) y el
cero. Los números m, M1 y M2 dependen de la máquina (o de la versión
de software con la que se trabaja). Esta representación de los números es
la que se llama de punto flotante. m es la cantidad de dı́gitos que hay en
la mantisa.
UNaB Análisis Numérico 23 de agosto de 2024 2 / 13
¿Cuántos números de máquina hay?

Llamemos Nmaq al conjunto (finito) de los números de máquina y


calculemos el cardinal de algunos de sus subconjuntos.
1
#{x ∈ Nmaq : ≤ x < 1} = 9.10m−1 .
10
En general, la cantidad de números de máquina que hay entre 10l y 10l+1
es también 9.10m−1 , o sea que se distribuyen uniformemente fijado l. Sin
embargo, los números de máquina no están uniformemente distribuı́dos.
En particular, los números de máquina más grandes están más separados.

UNaB Análisis Numérico 23 de agosto de 2024 3 / 13


Empecemos a aproximar
Consideremos x un número que está en el rango de la máquina. Luego x
está entre dos números de máquina:

x′ ≤ x ≤ x′′ .

Se tienen dos formas de aproximar a x.


Por truncamiento: se elige x′ , el mayor de los números de máquina
menores a x.
Por redondeo: se elige el número de máquina más próximo a x entre
x′ y x′′ .
Denotemos por x∗ al número de máquina que obtenemos al truncar o
redondear a x.

El error absoluto de aproximar a x por x∗ es |x − x∗ | y el error relativo es


|x − x∗ |
.
|x|
Habitualmente las computadoras aproximan por redondeo.
UNaB Análisis Numérico 23 de agosto de 2024 4 / 13
Cotas de los errores de redondeo
Sea x = 0, a1 a2 ...am ...10l = q.10l el número a utilizar en la computadora,
y supongamos que la computadora trabaja con m dı́gitos significativos,
que −M1 ≤ l ≤ M2 y que a1 ̸= 0.

Podemos acotar el error absoluto de redondear a x por x∗ ,

1 1 10l−m
|x − x∗ | ≤ 10l
= ,
2 10m 2
y el error relativo por
|x − x∗ |
≤ 5.10−m .
|x|
Por lo tanto el error relativo de redondeo es del orden de 10−m . Notemos
además que es independiente de la magnitud del número x y depende sólo
de la cantidad de dı́gitos significativos con la que trabaja nuestra
computadora.

UNaB Análisis Numérico 23 de agosto de 2024 5 / 13


ε de máquina
Observemos que
x∗ = x(1 + δ)
con
|δ| ≤ ε = 5.10−m .
Este ε es el error de redondeo unitario (l = 1).

Como también es el error de redondeo relativo y depende de la máquina,


se lo llama el ε de la máquina1 .

También ε nos dice cuál es el menor número tal que, en la máquina,

1 + ε ̸= 1 .

O sea, si se le suma a 1 algo menor que ε, ese término desaparece debido


al redondeo.
1
El verdadero ε de máquina es el análogo pero con los cálculos hechos en base 2, ya
que las computadoras trabajan en esa base.
UNaB Análisis Numérico 23 de agosto de 2024 6 / 13
Problemas por redondear

Supongamos m = 5.
Sumar números de distintos órdenes.
x = 61879000 e y = 28. x∗ = 0, 61879.108 e y ∗ = 0, 28.102 .
x + y = 61879028, sin embargo x∗ + y ∗ = 0, 61879.108 = x∗ = x.
Restar dos números cercanos.
x = 0, 82916045 e y = 0, 82901722. x∗ = 0, 82916 e y ∗ = 0, 82902.

x − y = 0, 14323.10−3 x∗ − y ∗ = 0, 14.10−3 .
Notemos que en el primer ejemplo, el sumando relativo a y desapareció; y
en el segundo, se perdieron dı́gitos significativos ya que de tener 5, el
resultado pasó a tener 2. El error relativo aumenta en el segundo caso.

UNaB Análisis Numérico 23 de agosto de 2024 7 / 13


Estrategias para sortear problemas al redondear

Conviene sumar números de manera creciente en módulo (la


aritmética de punto flotante no es asociativa).
Evitar restar números casi iguales.
Para ecuaciones de la forma

ax2 + bx + c = 0 con a ̸= 0 ,

aplicar la fórmula resolvente para la raı́z más alejada de 0 y calcular la


otra raı́z a partir de la primera calculada.
Multiplicar y dividir por el conjugado cuando se tengan raı́ces
cuadradas.
Usar el desarrollo de Taylor de alguna función conveniente.

UNaB Análisis Numérico 23 de agosto de 2024 8 / 13


Propagación de errores

La propagación de errores (de redondeo) puede deberse a que:


el método de resolución del problema es inestable,
el problema está mal condicionado
Es fundamental distinguir entre ambos casos y, además, encontrar las
causas de la propagación indebida de errores con el objetivo de mejorar los
métodos de resolución.

UNaB Análisis Numérico 23 de agosto de 2024 9 / 13


Ejemplo de problema con método de resolución inestable
Al procedimiento de efectuar sucesivas operaciones elementales de filas a
una matriz para obtener otra matriz con 0’s debajo de la diagonal (matriz
equivalente), lo llamamos método de eliminación gaussiana.
Utilizando el método de eliminación gaussiana, resolvamos el siguiente
sistema de ecuaciones lineales
 −6    
10 1 x 1
=
1 1 y 2
siendo m = 5. Multiplicando la primera fila por 106 y restándosela a la
segunda fila, obtenemos
106 106
    
1 x
=
0 1 − 106 y 2 − 106
pero con el redondeo a 5 dı́gitos nos queda
 ∗  
1 106 106
 
x
=
0 −106 y∗ −106
o sea perdimos información de la segunda ecuación.
UNaB Análisis Numérico 23 de agosto de 2024 10 / 13
Ejemplo de problema con método de resolución inestable
Ası́ x∗ = 0 e y ∗ = 1 es la solución. Sin embargo, la solución verdadera es

2 − 106 1
y= , x= .
1 − 106 1 − 10−6
Observemos que x − x∗ = x que es aproximadamente 1. Con lo cual, el
error relativo es 1 (catastrófico).
La amplificación del error provino de que se propagó el error de redondeo a
la solución. Respecto de y no resulta relevante el error pero sı́ respecto de
x. Intercambiando las filas de lugar y aplicando luego el procedimiento de
eliminación gaussiana, se evita la propagación catastrófica del error (de
tarea para el/la lector/a).
El método de eliminación gaussiana con pivoteo parcial es aquel que,
aplicando el método de eliminación gaussiana, en cada paso elije como
pivote al elemento más grande en módulo de esa columna e intercambia
las correspondientes filas.

UNaB Análisis Numérico 23 de agosto de 2024 11 / 13


Ejemplo de problema mal condicionado

Las raı́ces de
(x − 5)2 = 10−4
son
x1 = 5 − 10−2 , x2 = 5 + 10−2 .
En cambio la raı́z doble de

(x − 5)2 = 0

es x1 = x2 = 5.

Este ejemplo muestra que un pequeño cambio en un coeficiente de la


ecuación polinomial puede dar lugar a un cambio de otro orden en las
raı́ces.

UNaB Análisis Numérico 23 de agosto de 2024 12 / 13


Órdenes de Convergencia
Sea {xn }n∈N ⊂ R una sucesión de números reales tal que lim xn = l con
n→∞
l ∈ R.
Decimos que xn converge a l con orden al menos q (q ∈ R>0 ) si
existen
|xn+1 − l|
c ∈ R>0 y n0 ∈ N / ≤ c ∀ n ≥ n0 (1)
|xn − l|q

Decimos que xn converge a l con orden exactamente q (q ∈ R>0 ) si


se cumple (1) pero ∀ δ > 0 no se verifica para q + δ.
Notación: sean {an }n∈N ⊂ R y {bn }n∈N ⊂ R dos sucesiones de números
reales.
an = O(bn ) si ∃ c > 0 y n0 ∈ N / |an | ≤ c|bn | ∀ n ≥ n0 .
|an |
an = o(bn ) si lim = 0.
n→∞ |bn |

UNaB Análisis Numérico 23 de agosto de 2024 13 / 13

También podría gustarte