Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Guia 3 Aritmetica de Computadoras

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

NOTAS DE CLASES DE ANÁLISIS NUMÉRICO 2020-2

UNIVERSIDADM DEL MAGDALENA


FACULTAD DE INGENIERÍA
ANÁLISIS NUMÉRICO
UNIDAD I: TEORÍA DE ERRORES

1.10. ARITMETICA DE COMPUTADORAS


INTRODUCCIÓN
La aparición de los computadores ha hecho posible la solución de problemas que por su tamaño antes eran
excluidos. Desafortunadamente los resultados son afectados por el uso de la Aritmética de Precisión Finita, en
la cual para cada número se puede almacenar tantos dígitos como lo permita el diseño del computador. En este
sentido, todo número real se representa en el ordenador con un número finito de dígitos. Así √2 no tiene una
representación exacta, se representa mediante una aproximación.

Casi siempre la representación y la aritmética computacional son satisfactorias y pasan inadvertidas; como
ejemplo, los números reales 𝑅 se representa mediante un conjunto finito de números racionales que se
representan como números en punto flotante o números máquina.

1.11. NÚMEROS EN PUNTO FLOTANTE


Para representar números reales se usan las bases, que especifican el rango de valores que pueden tomar los
dígitos de cada número y en cierta medida los dígitos que hacen falta para representar un número cualquiera

DEFINICIÓN: Todo número real 𝑥 no nulo puede ser escrito en forma única en notación científica normalizada,
si tiene la siguiente forma:

𝑓𝑡(𝑥) = ± 0, 𝑑1 𝑑2 𝑑 3 … 𝑑𝑡 𝑑𝑡+1 … 𝑥 10𝑛 = ± 𝑚 𝑥 10𝑛


Con 1 ≤ 𝑑1 ≤ 9 𝑦 0 ≤ 𝑑𝑖 ≤ 9, 𝑝𝑎𝑟𝑎 𝑖 = 2,3, … , y 𝒏 un entero positivo o negativo, se le llama con
frecuencia notación científica normalizada.

Ejemplo: La forma decimal normalizado se ilustra con los siguientes números fraccionarios:
1
1. − = −0,909090 … 𝑥 10−1
11
15
2. = 0,13636363 … 𝑥 101
11

3. 123,52 = 0,12352 𝑥 103


4. 0,00256 = 0,256 𝑥 10−2

En general, todo número real no nulo puede representarse en forma única, respecto la base 𝛽, en la forma de
punto flotante normalizada:
± 0, 𝑑1 𝑑2 𝑑3 … 𝑑𝑡 𝑑𝑡+1 … 𝑥 𝛽 𝑒

Donde los “dígitos” 𝑑𝑖 respecto de la base 𝛽 son enteros positivos tales que 1 ≤ 𝑑1 ≤ 𝛽 − 1, 0 ≤ 𝑑𝑖 ≤
𝛽 − 1 para i = 2, . . . y constituyen la parte fraccional o mantisa del número, en tanto que 𝑒, el cual es un
número entero llamado el exponente, indica la posición del punto correspondiente a la base 𝛽. Ahora, si 𝑚 es
la fracción decimal correspondiente a (0, 𝑑1 𝑑2 𝑑3 … )𝛽 entonces el número representado corresponde al número
decimal:
(−1)𝑠 𝑚𝑥𝛽 𝑒 , 𝛽 −1 ≤ 𝑚 < 1
________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez
NOTAS DE CLASES DE ANÁLISIS NUMÉRICO 2020-2

El conjunto de los números en punto flotante se le llama, conjunto de números de máquina.

DEFINICIÓN: Un número de máquina es un número real que puede almacenarse de manera exacta en forma
normalizada de punto flotante en una computadora.

Recuérdese que la notación científica expresa de manera compacta, cantidades de gran magnitud o de muy
pequeña magnitud, a través del producto de una cantidad denominada mantisa multiplicada por la base diez,
la cual se eleva a una cierta potencia denominada característica. Este tipo de representación es el que se
emplea tanto en computadoras como en calculadoras.

Ejemplo: Representación de números en una calculadora:

Número real Notación científica Representación en computadora


0.0000747 7.47 x 10-5 0,747 x 10-4
31.4159265 3.141592.65 x 101 0,314159265 x 102
9700000000 9.7 x 109 0,97 x 1010

La gran mayoría de las computadoras actuales (y efectivamente todas las computadoras personales, o PC)
utilizan internamente el sistema binario (𝛽 = 2). Las calculadoras, por su parte, utilizan el sistema decimal
(𝛽 = 10). Ahora bien, cualquiera sea la base 𝛽 escogida, todo dispositivo de cálculo sólo puede almacenar un
número finito de dígitos para representar un número.

En una computadora sólo se puede disponer de un cierto número finito fijo 𝑁 de posiciones de memoria para
la representación de un número. El valor de 𝑁 se conoce como longitud de palabra (en inglés, word length).
Además, aun cuando en el sistema binario cualquier número puede representarse tan sólo con los dígitos 1 y
0, el signo menos (− ) y el punto, la representación interna en la computadora no tiene la posibilidad de disponer
de los símbolos signo y punto. De este modo una de tales posiciones debe ser reservada de algún modo para
indicar el signo y cierta distinción debe hacerse para representar la parte entera y fraccionaria. Esto puede
hacerse de distintas formas, en primer lugar, la representación de punto fijo (utilizada para representar los
números enteros) y, en segundo lugar, la representación de punto flotante (utilizada para representar los
números reales).

Para una computadora dada, el número de bits generalmente se llama palabra. Las palabras van desde ocho
bits hasta 64 bits. Para facilitar su manejo, la palabra se divide en partes más cortas denominadas bytes; por
ejemplo, una palabra de 32 bits puede dividirse en cuatro bytes (ocho bits cada uno).

El épsilon de la máquina (cero de la maquina) es una manera de medir que tan preciso puede ser guardado un
numero en la representación de punto flotante utilizada.

El épsilon de la maquina consiste en la diferencia entre el 1 y el número de coma flotante más grande siguiente
en el equipo. Representa la exactitud relativa de la aritmética del computador. La existencia del épsilon de la
máquina es una consecuencia de la precisión finita de la aritmética en punto flotante.

En el sistema binario, por ejemplo, el épsilon de la máquina es igual a 2−𝑛 , donde 𝑛 es la longitud de la mantisa
sin tomar en cuenta el bit implícito antes del punto flotante. La precisión 𝑛 de un sistema de números de punto
flotante (float point) en una computadora estará limitada por la longitud de palabra N disponible para representar
un número.

Se puede comprobar fácilmente el valor de épsilon, si dado un número 𝑥 cuya aproximación es 𝑥 ∗ , el error
relativo al usar redondeo es:
𝑥 − 𝑥∗
⌈ ⌉ ≤ 0,5𝑥𝛽1−𝑡
𝑥
________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez
NOTAS DE CLASES DE ANÁLISIS NUMÉRICO 2020-2

A la cantidad 𝛽1−𝑡 se la denomina precisión de la máquina o épsilon.

Con frecuencia una operación aritmética con dos números válidos da como resultado un número tan grande o
pequeño que la computadora no puede manejarlo; como consecuencia se produce un overflow o
desbordamiento por exceso y se interrumpen los cálculos o bien, un underflow, o desbordamiento por defecto
y suele dársele el valor cero.

Ejemplos:
0,135 𝑥 10100 produce un Overflow.
0,135 𝑥 10−100 produce un Underflow.

En las computadoras tradicionalmente, se han definido dos formatos de punto flotante con base β = 2:

1. Precisión simple: 𝐹(2, 24, −127, 128) implementado en una longitud de palabra N = 32 bits,
2. Precisión doble: 𝐹(2, 53, −1022, 1023) implementado en una longitud de palabra N = 64 bits

El épsilon de la maquina en precisión doble es 2−52 ≈ 2,22 × 10−16 . Así el formato en doble precisión
puede ser usado para guardar aproximadamente 16 dígitos de un número 𝑥.

En 1985, el IEEE (Institute for Electrical and Electronic Engineers, publicó la Norma de la aritmética binaria de
punto flotante 754 (estándar IEEE 754 de doble precisión). Se representa con 64 bits y consta de:

1. 1 bit de signo (0 positivo, 1 negativo (s)


2. 11 bits de exponente (c) en exceso 1023  𝑐 − 1023 es el exponente
3. 52 bits de mantisa (f) que se utiliza en la forma (1 + f).
4. la base es 2. Se obtiene: (1)𝑠 . 2𝑐−1023 (1 + 𝑓)
5. Tiene entre 15 y 16 dígitos decimales de precisión y un rango aproximado entre 10−308 𝑦 10308

Ejemplo: La representación del siguiente número de maquina:

Veamos:
1. Tiene primer bit es s = 0 ⇒ número positivo.

2. Característica:

3. La parte exponencial es, por tanto: 1027 − 1023 = 4.

4. Mantisa:

5. Por lo tanto, el número de máquina representa al número decimal:

1 1 1 1 1 1
(−1)0 21027−1023 [1 + 1. ( ) + 1. ( ) + 1. ( ) + 1. ( ) + 1. ( ) + 1. ( )]
2 8 16 32 256 4092

= 27,56640625

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez
NOTAS DE CLASES DE ANÁLISIS NUMÉRICO 2020-2

1.12. TRUNCAMIENTO Y REDONDEO


Si nuestra precisión elegida es t, entonces debemos “recortar” el número definido arriba, pues no podemos
representar los 𝑑𝑖 para 𝑖 > 𝑡. En consecuencia, tenemos dos alternativas básicas para efectuar dicho recorte:

1. Corte o truncamiento: Ignorar los dígitos 𝑑𝑖 cuando 𝑖 > 𝑡.


2. Redondeo: Sumar 1 a 𝑑𝑡 si 𝑑𝑡+1 ≥ 5 e ignorar los restantes 𝑑𝑖 para 𝑖 > 𝑡 + 1, o aplicar corte si
𝑑𝑡+1 < 5

Ejemplos:
1. Sea  = 0.3141592654 … 𝑥 102 . Al truncar en 5 dígitos nos queda 𝑓𝑙() = 0.31415 𝑥 102
2. Redondear 𝑦 =  en 5 dígitos nos queda f𝑙() = 0.31416 x 101
3. Redondear 𝑦 = 4275.54 en 4 dígitos nos queda 𝑓𝑙(𝑦) = 0.4276 𝑥 104

La representación redondeada tiene la mitad de error que la truncada, por lo que es un sistema mejor para
representar números, aunque es ligeramente más sofisticado.

Los errores de redondeo pueden ser sutiles, cuando se realizan cálculos individuales, pero estos pueden
perjudicar la precisión computacional si existen situaciones las cuales son:

1. La suma de un número grande con un numero pequeño produce un error absoluto grande pero no un
gran error relativo.
2. La resta entre dos números parecidos da un error absoluto pequeño pero un gran error relativo. Las
cifras significativas se pierden en un solo cálculo.
3. La multiplicación por números grandes amplifica el error absoluto, pero no modifica el error relativo.
4. La división entre números pequeños amplifica el error absoluto pero no modifica el error relativo.

Ejemplo: Calcule en forma exacta y luego usando aritmética de redondeo a tres cifras (o dígitos), la siguiente
operación aritmética:
2 8 9
+ −
3 7 4
Solución:
La solución exacta es:
2 8 9 149
− + = = 1,773809524
3 7 4 84

Si utilizamos la aritmética de redondeo a 3 cifras tenemos:

2
x= = 0,66666 … ⇒ 𝑓𝑡(𝑥) = 0,667
3
8
y = = 0,8888 … ⇒ 𝑓𝑡(y) = 0,889
9
9
z = = 2,25 ⇒ 𝑓𝑡(z) = 2,25
4

𝑓𝑡[𝑓𝑡(𝑥) + 𝑓𝑡(𝑦) + 𝑓𝑡(𝑧)] = 0,667 − 0,889 + 2,25 = 2,028 ≈ 2,03

Calculamos sus errores:


E = |1,773809524 − 2,03| = 0,256
1,773809524 − 2,03
Er = | | = 0,331 = 33,1%
1,773809524

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez
NOTAS DE CLASES DE ANÁLISIS NUMÉRICO 2020-2

1.13. PÉRDIDA DE DÍGITOS SIGNIFICATIVOS


Toda operación de punto flotante en un proceso computacional puede dar lugar a un error, que puede aumentar
o disminuir, una de las maneras más comunes de aumentar la importancia de un error se conoce como pérdida
de dígitos significativos. Esta se puede generar por la longitud de la palabra que almacena los números y en
este caso es inevitable, pero también se puede tener por la programación, en este caso es evitable.
Ejemplos:
1. Suma de números muy distintos en magnitud: Consideremos la siguiente suma usando aritmética
de 4 dígitos:
𝑦 = 0,003 + 500 = 0,3000 𝑥 10−2 + 0,5000 𝑥 103
Estos números la computadora no puede sumarlos directamente, esta debe desnormalizarlo antes de
efectuar la suma:
0,000003 𝑥 103
+ 0,500000 𝑥 103
0,500003 𝑥 103
Como la computadora solo puede manejar cuatro dígitos la respuesta es: 0,5000 𝑥 103 o bien 500,
al parecer no se realizó la suma.
2. Resta de números casi iguales: Sea p = 0.54618 y q = 0.54602 Además: 𝑟 = 𝑝 − 𝑞 = 0.00016
Utilicemos la aritmética de 4 dígitos por truncamiento y redondeo para hallar 𝑟 ∗ = 𝑝 ∗ − 𝑞 ∗
Por truncamiento:
𝑓𝑙(𝑝) = 0.5461
𝑓𝑙(𝑞) = 0.5460
𝑓𝑙(𝑟) = 𝑓𝑙(𝑝) − 𝑓𝑙(𝑞) = 0.5461 − 0.5460
𝑓𝑙(𝑟) = 0.0001
0.00016 − 0.0001
Er = ( p − q ) − ( fl( p ) − fl(q )) = = 0.375
(p − q 0.00016
El resultado tiene un solo digito significativo correcto.
Por redondeo:
𝑓𝑙(𝑝) = 0.5462
𝑓𝑙(𝑞) = 0.5460
𝑓𝑙(𝑟) = 𝑓𝑙(𝑝) − 𝑓𝑙(𝑞) = 0.5462 − 0.5460
𝑓𝑙(𝑟) = 0.0002
0.00016 − 0.0002
Er = ( p − q ) − ( fl( p ) − fl(q )) = = 0.25
(p − q 0.00016
3. La propagación de estos errores al resto de cálculos. Podemos evitar estos problemas:
a. Minimizando el número de operaciones,
b. Ordenando adecuadamente las operaciones,
c. Replanteando el problema, en otros términos.

Ejemplo: Consideremos la siguiente ecuación: 𝑥 2 + 62.10𝑥 + 1 = 0,. Use aritmética de


redondeo de 4 cifras y determine las aproximaciones más precisas de sus raíces:
Vamos a utilizar la ecuación cuadrática para hallar su solución:

−𝑏 ± √𝑏2 − 4𝑎𝑐
𝑥=
2𝑎
−(62,10) ± √(62,10)2 − 4,000(1,000)(1,000)
𝑥=
2(1,000)
−62,10 ± √3856 − 4,000 −62,10 ± √3852
𝑥= =
2,000 2,000

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez
NOTAS DE CLASES DE ANÁLISIS NUMÉRICO 2020-2

−62,10 + 62,06
−0,04000
𝑓(𝑥1 ) = = − 0,02000
2,000 2,000
−62,10 − 62,06 −124,2
𝑓(𝑥2 ) = = = −62,10
2,000 2,000

Consideremos ahora las raíces reales de la ecuación:

𝑥1 = −0.01610723 y 𝑥2 = −62.08390.
Calculemos los errores:
−0.01610723 − (−0,02000)
𝐸𝑟 (𝑥1 ) = | | = 2,4 𝑥 10−1
−0.01610723
−62.08390 − (−62,10)
𝐸𝑟 (𝑥2 ) = | | = 3,2 𝑥 10−4
−62.08390

Una aproximación deficiente a x1 = − 0.01611, con un error relativo grande.

Se restaron dos números "casi iguales" (números iguales en aritmética de cuatro dígitos) y sufrieron
pérdida de exactitud. ¿Cómo evitar esto? Una forma sería reescribir la expresión para la solución de
una ecuación cuadrática a fin de evitar la resta de números "casi iguales". El problema, en este caso,
se da en el signo negativo asignado a la raíz cuadrada; esto es:

−𝑏 + √𝑏2 − 4𝑎𝑐 −𝑏 − √𝑏2 − 4𝑎𝑐 2𝑐 2(1,000) 2,000


𝑓(𝑥2 ) = ( )= = = −0,01610
2𝑎 −𝑏 − √𝑏2 − 4𝑎𝑐 −𝑏 − √𝑏2 − 4𝑎𝑐 −62,10 − 62,06 −124,2

Esta forma alternativa para calcular una raíz pequeña de una ecuación cuadrática, casi siempre
produce una respuesta más exacta que la de la fórmula usual. Calculamos ahora el error relativo:

−0.01610723 − (−0,01610)
𝐸𝑟 (𝑓(𝑥2 )) = | | = 4,48 𝑥 10−4
−0.01610723

4. La pérdida de precisión debido a un error de redondeo también se puede reducir al reacomodar los
cálculos, como se muestra en el siguiente ejemplo: Sea 𝑓(𝑥) = 𝑥 3 − 6.2𝑥 2 + 3.5𝑥 + 1.2,
halle 𝑓(4.25) y utilice aritmética de 3 dígitos por truncamiento y Redondeo
Nos apoyaremos en la siguiente tabla para ilustrar la solución:

x3 x2 6.2 x2 3.5 x 1.2 TOTAL


Exacto 76.765625 18.0625 111.9875 14.875 1.2 -19.146875
Truncar 76.7 18.0 111 14.8 1.20 -18.3
Redondear 76.8 18.1 112 14.9 1.20 -19.1

Hallemos los errores para cada caso:


− 19.146875 − (− 19.1)
Er = = 2,44 x10 − 3
− 19.146875

− 19.146875 − (− 18.3)
Er = = 4,42 x10 − 2
− 19.146875

Se puede mejorar la solución si se usa multiplicación anidada para evaluar un polinomio


eficientemente:
𝑃(𝑥) = 𝑎0 + 𝑎1 𝑥 + 𝑎2 𝑥 2 + · · · + 𝑎𝑛−1 𝑥 𝑛−1 + 𝑎𝑛 𝑥 𝑛
= 𝑎0 + 𝑥(𝑎1 + 𝑥(𝑎2 + · · · + 𝑥(𝑎𝑛−1 + 𝑥(𝑎𝑛 )) · · ·))
________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez
NOTAS DE CLASES DE ANÁLISIS NUMÉRICO 2020-2

Entonces:
𝑓(𝑥) = 𝑥 3 − 6.2𝑥 2 + 3.5𝑥 + 1.2
= [(𝑥 – 6.2) 𝑥 + 3.5] 𝑥 + 1.2
= [(4.25 – 6.2)4.25 + 3.5] 4.25 + 1.2
= [(−1.95)4.25 + 3.5]4.25 + 1.2
= (−8.29 + 3.5)4.25 + 1.2
= (−4.79)4.25 + 1.2
= −20.4 + 1,2 = −19.2
−19,146875−(−19,2)
Al hallar el error: 𝐸𝑟 = | | = 2,77 𝑥 10−3
−19,146875

Es usual usar algunos trucos para minimizar este fenómeno de cancelación:


𝑎−𝑏
a. Cambiar √𝑎 − √𝑏 por
√𝑎+√𝑏
𝑎+𝑏 𝑎−𝑏
b. Cambiar 𝑠𝑒𝑛(𝑎) – 𝑠𝑒𝑛 (𝑏) por 2𝑐𝑜𝑠 ( ) 𝑠𝑒𝑛 ( )
2 2
𝑎
c. Cambiar 𝑙𝑜𝑔 (𝑎) – 𝑙𝑜𝑔 (𝑏) por 𝑙𝑜𝑔 ( )
𝑏
d. Los polinomios siempre deberían expresarse en forma anidada antes de realizar una evaluación
porque esta forma minimiza el número de cálculos aritméticos. La disminución del error en la ilustración
se debe a la reducción de los cálculos de cuatro multiplicaciones y tres sumas a dos multiplicaciones
y tres sumas. Una forma de disminuir el error de redondeo es reducir el número de cálculos.

EJERCICIOS EN CLASES:
1. Efectúe los siguientes cálculos (i) exactamente, (ii) usando aritmética de truncamiento a tres dígitos,
(iii) usando aritmética de redondeo a tres dígitos. Calcule los errores absoluto y relativo para cada
caso.
22
a. 14,1 + 0,0981 𝜋− 5
3 c. 1
b. −12𝜋 + 7𝑒 − 12
62
2. Sea la función 𝑓(𝑥) = √𝑥 2 + 1 − 1 presenta cancelación catastrófica para 𝑥 ≈ 0. Evalúela en
𝑥 = 0.01 con aritmética exacta, truncamiento y redondeo con tres cifras. Calcule sus errores absoluto
y relativo.
3. Sea 𝑓(𝑥) = 1.01𝑒 4𝑥 − 4.6𝑒 3𝑥 − 3.11𝑒 2𝑥 + 12.2𝑒 𝑥 − 1.99. Use la aritmética de redondeo a
tres dígitos para evaluar 𝑓(1.53). Calcule el error relativo.
𝑥𝑖
4. El polinomio de Taylor de grado 𝑛 para 𝑒 𝑥 es ∑𝑛𝑖=0 . Use el polinomio de Taylor de grado siete y
𝑖!
utilice aritmética de truncamiento a 3 dígitos para determinar una aproximación de e-5 usando:
(−5)𝑖
a. 𝑒 −5 = ∑7𝑖=0
𝑖!
1 1
b. 𝑒 −5 = = 5𝑖
𝑒5 ∑7𝑖=0
𝑖!
c. El valor aproximado de e-5 con tres cifras correctas es 6,74 x 10-3. ¿Cuál fórmula es más precisa?
¿Porque?
5. Complete el siguiente cálculo:
1/4 1/4
2 𝑥4 𝑥6
∫ 𝑒 𝑥 𝑑𝑥 ≈ ∫ (1 + 𝑥 2 + + ) 𝑑𝑥 = 𝑝 ∗
0 0 2! 3!
Determine qué tipo de error se presenta en esta situación y compare el resultado con el valor exacto
𝑝 = 0,2553074606.

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez

También podría gustarte