Beruflich Dokumente
Kultur Dokumente
Binario {0,1}
Decimal {0,1,2,3,4,5,6,7,8,9}
Octal {0,1,2,3,4,5,6,7}
Hexadecimal {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
https://metodosnumericosuip.wordpress.com/1-1arit-y-punto-fijo-flot/
https://metodosnumericosuip.wordpress.com/2016/10/06/178/amp/
Saltar al contenido
TEMAS
Metódos Numéricos
septiembre 2016
CATEGORÍAS
Matemáticas
Senza categoria
I. Aritmética de la computadora
El usuario se comunica con la computadora en sistema decimal, es decir,
introduce en ella y extrae de ella números en base decimal.
Al recibir los datos, para poder trabajar con ellos, la computadora los convierte
al sistema binario, su lenguaje natural de operación.
Todas las operaciones se efectúan en binario y los resultados obtenidos, antes
de ser entregados al usuario, la máquina los convierte al sistema decimal. Claro
está que la computadora realiza estos procesos a enormes velocidades, de
manera que el usuario ni se entera de lo que sucede ahí dentro.
Sin embargo, al efectuar las conversiones y realizar los cálculos se suscitan
pequeños errores que, si no se prevén, pueden propagarse y arrojar resultados
muy inexactos o totalmente absurdos. Por eso es tan importante el entender la
aritmética de las computadoras e identificar las situaciones en que pueden ocurrir
errores severos.
La operación interna de una computadora se basa en la aritmética binaria, en la que la
base es el 2 y sólo hay dos símbolos: 0 y 1, pues la memoria de la máquina consiste en
un vasto número de dispositivos de registro magnético y electrónico, cada uno de los
cuales sólo puede presentar uno de dos posibles estados: magnetizado en un sentido,
representando al cero, o magnetizado en el otro sentido, representando al uno.
1. La solución no esté fuera del rango del número entero más grande o más pequeño
que se puede representar (generalmente con signo). En estos casos se dice que se
comete un error de desbordamiento por exceso o por defecto (en
inglés: Overflow y Underflow) y es necesario recurrir a técnicas de escalado para
llevar a cabo las operaciones.
1. El complemento radical, y
2. El complemento radical disminuido
El primero se conoce como el complemento a r’s y el segundo como el
complemento a (r-1)’s. Cuando el valor de la base se sustituye en el nombre,
los dos tipos se conocen como complemento a 2’s y a 1’spara números binarios
y a 10’s y a 9’s para números decimales.
REPRESENTACIÓN EN COMPLEMENTO 1
Complemento 1 es una forma particular de representar números positivos y
negativos. Su forma es simple y bastante directa de entender. Todo número
positivo posee su bit más significativo igual a 0. Los números negativos se
obtienen con sólo negar (o complementar) el número positivo correspondiente.
Un ejemplo para el caso de tres bits es mostrado en la tabla 1.
REPRESENTACIÓN EN COMPLEMENTO 2
La representación en complemento 2 es una forma eficiente de
representar números con signo en microprocesadores de punto fijo. La
propiedad fundamental de este formato es que permite representar
números negativos, por lo cual se utiliza el bit más significativo de la
palabra binaria que se está manejando. Esto lleva a que en un formato
de palabra de n bits, la capacidad de representación sea de
hasta para números positivos y 2 negativos . El bit de signo
será siempre el más significativo. La figura 1 muestra un esquema
para n bits.
REPORT THIS AD
CONDIVIDI:
Twitter
Facebook
Buscar:
ENTRADAS RECIENTES
Metódos Numéricos
septiembre 2016
CATEGORÍAS
Matemáticas
Senza categoria
Anuncios
REPORT THIS AD
Blog de WordPress.com.
La precisión en
loscálculos científicospor
computadora
Edscott Wilson García y Guillermo Morales-Luna
Introducción
¿Cuánta gente confía ciegamente en los resultados que arroja una computadora? ¿Qué peligro
plantean para la precisión de los cálculos científicos realizados por computadora las velocidades de
procesamiento cada vez mayores? En casi todas las ramas de la ciencia, si no es que en todas, se utiliza
alguna expresión numérica que involucra cálculos. Aún la más rebuscada ecuación científica, si dispone
de solución numérica, se resuelve con operaciones aritméticas fundamentales. Pero como todas las
herramientas construidas por el ser humano, la computadora tiene sus limitaciones.
Durante la Guerra del Golfo, el 25 de febrero de 1991, un projectil Scudiraquí hizo blanco en la
base militar de Dahrahn en la Arabia Saudita, matando a veintiocho soldados: falló el intento de
intercepción del cohetePatriot. Posteriormente se condujo un estudio para determinar las causas de
la falla: el sistema de control tenía un contador en incrementos de una décima de segundo.
Mediante punto flotante, en la base binaria utilizada por la computadora, 0.1 tiene un patrón
fraccionario que se trunca. Consecuentemente, la precisión de 24 bits del sistema Patriot, tenía un
error de diez millonésimas de segundo en su contador de tiempo. Al cabo de cuatro días el error se
acumuló hasta llegar a un tercio de segundo, lo cual implicó una desviación de 700 metros. Para
efecto de intercepción delprojectil Scud, un error de 700 kilómetros hubiera producido el mismo
resultado final.
Aunque existen paquetes numéricos como Matemática (Wolfram) y Maple(Maplesoft) con los que
se pueden resolver algoritmos con precisión arbitraria o números racionales exactos, su
funcionamiento de "caja negra" no permite verificar que las operaciones se hagan de manera
correcta, óptima o adecuada al problema en particular. Para el investigador es fundamentaltener la
capacidad de verificación de los resultados. Por ende, el cómputo científico hoy en día se hace
en su mayor parte con los lenguajes FORTRAN y C. El propósito de este artículo es describir cómo
puede trabajar un programador científico para lograr mejor precisión utilizando cualquiera de estos
lenguajes.
¿Cuál es la precisión?
La precisión computacional está determinada primariamente por la cantidad de dígitos con los
que se efectúan las operaciones aritméticas, conocida a partir de la longitud de palabra del
procesador. La palabra establece el número entero más grande que se puede representar con
exactitud. En el procesador Intel modelo 8088, por ejemplo, se tenía una longitud de ocho bits, que
proporcionan un entero máximo de 256. Concatenando dos palabras de este procesador
(precisión doble) se pueden obtener cuatro cifras decimales significativas. Como se puede observar
en el Cuadro 1, el tamaño de la palabra, y por ende la precisión, ha ido en constante aumento.
Cuadro 1. Dígitos de precisión decimal para operaciones con números enteros con respecto
de la velocidad y tamaño de palabra.
Para un procesador con una longitud de palabra de 32 bits se obtienen 19 dígitos decimales en
precisión doble, mientras que para los procesadores de 64 bits -de última generación- se obtienen
38. Generalmente una decena de dígitos decimales es suficiente para la mayoría de los propósitos
de cálculo. El advenimiento de la tecnología láser implica que se pueden realizar mediciones sobre
objetos del mundo físico con un creciente grado de exactitud. Esta información requiere de mayor
precisión en los cálculos computacionales.
Por un lado se puede adquirir un procesador con tamaño de palabra superior para trabajar con
representaciones numéricas de mayor longitud, pero un vistazo al Cuadro 1 es suficiente para
constatar que esto es insuficiente. Nótese que la velocidad del reloj de los procesadores ha ido en
constante aumento, pero la razón de crecimiento en tamaño de palabra no ha sido equiparable. En
menos de veinte años, el hardware de los procesadores multiplicó la velocidad de procesamiento
por 600, mientras que la precisión de las operaciones -determinada por el tamaño de palabra-
aumentó tan sólo cuatro veces. La parte faltante del aumento de precisión en el hardware debe
ser suplida por métodos de software cada vez más complejos. Al aumentar la velocidad de
procesamiento también seabrió la posibilidad de aplicar métodos numéricos más sofisticados, con
un creciente número de operaciones aritméticas. Ello también aumenta los errores por redondeo.
El error relativo se refiere al error de redondeo que se presenta en cada resultado parcial al efectuar
una operación aritmética, y afecta todas las operaciones subsecuentes que utilizan el resultado
parcial como operando. Los errores relativos se acumulan, y cada resultado parcial tiene asociado
unerror relativo total. Algunos métodos para estimar los errores inducidos seencuentran descritos en
el trabajo de Miller y Spooner (1975), donde se verifica que el análisis de error eleva al cuadrado
la complejidad del algoritmo numérico. Por dicho motivo, en la práctica el análisis de error nunca
se lleva a cabo.
Entonces, ¿qué se puede hacer en cualquier rama científica donde hay necesidad de exactitud
en los cálculos para garantizar que los resultados tengan la precisión requerida y no son
simplemente iteraciones sobre errores de redondeo?
Las metodologías para acotar el error incluyen la precisión arbitraria (donde se extiende hasta el
límite de la máquina la memoria utilizada para almacenar los dígitos), los números racionales
(donde en lugar de utilizar un punto flotante se almacenan dos números enteros para representar
el cociente, p/q), la aritmética de intervalos (donde se va modificando un intervalo de confianza), y
la aritmética de rangos (donde el intervalo de confianza determina de manera dinámica a la
precisión arbitraria).
El lenguaje
Cuando el investigador busca precisión en los cálculos, deberá cambiar la aritmética con la
que se efectúan las operaciones escogiendo el método que más convenga. La utilización de
cualquier método para incrementar la precisión implica un aumento en la cantidad de
operaciones que se efectúan en el procesador. Por tanto, es imperativo escoger el lenguaje de
programación idóneo. Una de las desventajas del FORTRAN es que permite la programación no
estructurada, la cual tiende a producir código ejecutable menos eficiente. Por ello, el programador
que utilice este lenguaje deberá poner especial cuidado en utilizar la sintaxis estructurada. Para el
programador en C este detalle no es tan importante, ya que el lenguaje mismo es estructurado. Sin
embargo es importante que se considere el uso de FORTRAN cuando se cumplen lasdos siguientes
condiciones:
Lo arbitrario
La precisión arbitraria es una extensión del formato IEEE de punto flotante que permite
almacenar una cantidad variable de dígitos. Esta modalidad selimita únicamente por la capacidad
de memoria de la computadora. Los números de precisión arbitraria se expresan mediante un
vector de palabras, donde cada elemento representa una porción de dígitos de la mantisa,
expresado en términos de una base numérica. La base utilizada es la que más convenga de
acuerdo a la arquitectura del procesador; comúnmente, el máximo entero mostrado en el Cuadro
1. Por ejemplo, en una computadora de 32 bits la base sería B=2 32. Algunas computadoras son
capaces de efectuar operaciones aritméticas de punto flotante con más velocidad, y hay quien
prefiere utilizar una base expresada en términos de un número de tipo punto flotante.
En la aritmética se aplican los métodos clásicos. Pero cuando los números de precisión múltiple
rebasan varios miles de dígitos, se puede lograr una aceleración en la multiplicación aplicando el
método de Karatsuba,o bien haciendo una conversión a aritmética modular y aplicando
transformadas rápidas de Fourier. Estas dos técnicas están descritas en el texto clásico de
Knuth (1981).
Al efectuar una multiplicación de dos números de n dígitos, el producto que se obtiene consta
de 2n dígitos, de los cuales se desecharán n. Es posible acelerar el proceso de multiplicación si
los dígitos sobrantes no se incluyen dentro del algoritmo de multiplicación desde un principio. Sin
embargo, no es conveniente desecharlos todos, ya que esto implicaría un mayor error en el redondeo
final. Los dígitos a partir del n+1, conservados para el proceso de multiplicación -y que
se desecharán después del redondeo final-, se llaman dígitos de guardia.
https://www.revistaciencia.amc.edu.mx/index.php/82-vol-58-num-4-octubre-diciembre-
2007/comunicaciones-libres/130-la-precision-en-los-calculos-cientificos-por-computadora
Métodos numéricos
. Aritmética de la computadora
Pablo Turmero
2 Los números reales en computadora En virtud de que la mantisa siempre empieza con
1, no hay necesidad de almacenar éste 1, de manera que los 23 bits reservados para la
mantisa son para guardar desde el segundo hasta el veinticuatroavo caracter del número
binario en punto flotante. Los 7 bits destinados al exponente se usan para registrar
números enteros binarios en el rango de 0000000 a 1111111. Su signo se controla por
separado (distinguido en rojo). Conforme a esto, el mayor exponente positivo posible serÃ-
a el 127 y el menor exponente negativo posible serÃa el -127; pero usando el
complemento a dos, su rango se incrementa en 1, para que sea -128. Los exponentes
positivos se registran asÃ: 000000012 = 110 ... 011111112 = 12710 Para los números
negativos, la polaridad se invierte: los ceros se cambian por unos y los unos por ceros y se
le añade un 1 al resultado, de manera que su registro se hace asÃ: 111111112 = -110 ...
100000012 = -12710
2.1 Los números reales en computadora Ejemplo: Identificar el número real decimal que
está representado en la siguiente palabra de 32 bits: Recordando que el primer uno no
está representado, el número en binario es: 0.100001112 x 2101 = 10000.1112 24 + 2-1
+ 2-2 + 2-3 = 16 + 0.5 + 0.25 + 0.125 = 16.87510 Ejemplo: Identificar el número real
decimal que está representado en la siguiente palabra de 32 bits: (+) (+) (+) (-) Dado que
el exponente es negativo, le aplicamos el inverso del complemento a dos: primero
restándole 1 y luego cambiando la polaridad: 11101112 - 12 = 11101102 ~ 00010012 ,
con lo que el exponente es: -10012 Recordando que el primer 1 no está representado, la
mantisa es: 0.12 El número en binario es: 0.12 x 2-1001 = 0.00000000012 y en decimal:
2-10 = 0.000976562510
2 Los números reales en computadora Ejemplo: Representar en sistema binario, en una
palabra de 32 bits, el número -0.00072161910 Requerimos de 25 cifras, a partir del
primer 1 (24 a conservar y 1 para redondear) 0.000721619 0.168091136 1 0.001443238 0
0.336182272 0 0.002886476 0 0.672364544 0 0.005772952 0 0.344729088 1
0.011545904 0 0.689458176 0 0.023091808 0 0.378916352 1 0.046183616 0
0.757832704 0 0.092367232 0 0.515665408 1 0.184734464 0 0.031330816 1
0.369468928 0 0.062661632 0 0.738937856 0 0.125323264 0 0.477875712 1
0.250646528 0 0.955751424 0 0.501293056 0 0.911502848 1 0.002586112 1
0.823005696 1 0.005172224 0 0.646011392 1 0.010344448 0 0.292022784 1
0.020688896 0 0.584045568 0 0.041377792 0
2 Los números reales en computadora La última cifra nos sirve para redondear la
penúltima. - 0.00072161910 = - 0.00000000001011110100101011000010002 = -
0.1011110100101011000010002 x 2-1011 Por ser un exponente negativo, le aplicamos el
complemento a dos: primero complementándolo a 7 cifras, luego invirtiendo la polaridad y
finalmente sumándole un 1: 00010112 11101002 + 12 = 11101012 Recordando que el
primer 1 de la mantisa no se almacena, la representación queda: (-) (-) Ejemplo: Suponga
que una computadora maneja palabras de 16 bits; ¿cuál serÃa el resultado de sumar mil
veces el número fraccionario 1/100? ¿cuál serÃa el error absoluto? Y ¿cuál el
relativo?. Considere que la computadora recibe las cifras en sistema decimal, las convierte
a binario, hace las operaciones en binario y el resultado lo traduce a decimal. Considere
los dos bits para los signos, cinco bits para el exponente y nueve espacios para la
mantisa.
2 Los números reales en computadora 0.01 0.02 0 0.04 0 0.08 0 0.16 0 0.32 0 0.64 0 0.28
1 0.56 0 0.12 1 0.24 0 0.48 0 0.96 0 0.92 1 0.84 1 0.68 1 0.36 1 1/100 = 0.0110 =
0.00000010100011112 = 0.10100011112 x 2-110 0 500 0 250 0 125 1 62 0 31 1 15 1 7 1 3
1 1 1 0 100010 = 11111010002 1000 x 1/100 = 11111010002 x 0.10100011112 x 2-110
2 Los números reales en computadora El resultado exacto del producto anterior es, en
binario: 1001111100.10111000 x 2-110 Cifra que redondeada a 10 bits, en formato de
punto flotante, queda expresada: 1001.111101 = 0.1001111101 x 2100 Este resultado en
binario, traducido a decimal da:
=(0.50+0.0625+0.03125+0.015625+0.0078125+0.00390625+0.0009765625) x 2100 =
0.6220703125 x 16 = 9.95312510 El verdadero valor de la operación es: 1/100 x 1000 =
10 El error absoluto cometido es: E = ? 10 – 9.953125 ? = 0.046875 El error relativo es:
e = 0.046875/10 = 0.0046875 ; e = 0.47%
2 Los números reales en computadora No obstante el rango tan amplio de manejo, los
números reales no corresponden a un continuo en la computadora, sino que hay un
conjunto finito de valores discretizados, que pueden ser representados de manera
perfecta, mientras que el resto no pueden ser expresados con exactitud y precisión y
sólo es posible representarlos en forma aproximada. Por ejemplo, si el número real más
pequeño que puede representarse en una computadora como la descrita anteriormente
es: 0.5 x 2-128 ? 1.47 x 10-39, significa que no se pueden representar números reales en
el intervalo que está entre 0 y 1.47 x 10-39. Si el número real más grande que puede
representarse es: 1.70141173319 x 1038, y el número positivo inmediato menor a éste,
que se puede representar es: 23 ( ? 2-j ) x 2127 = (1 - 2-23) x 2127 ? 1.70141163178 x
1038 ; j=1 Entre estos dos últimos valores, tampoco se puede representar ningún
número real con notación de punto flotante en este tipo de computadora; el tamaño de
este intervalo es 1.0141 x 1031, que es 6.9 x 1069 veces más grande que el
correspondiente a valores más pequeños: 1.47 x 10-39. Esto significa que la
distribución de números reales que pueden ser representados en una computadora no
es uniforme, sino que hay mucho mayor densidad en los valores más pequeños que en
los más grandes.
Épsilon de una computadora Ejemplo: Considere una computadora que utiliza palabras
de memoria de 16 bits para almacenar números reales en formato de punto flotante,
guarda hasta 8 cifras de la mantisa, excluido el primer 1, y aplica el complemento a dos a
los exponentes negativos. Si los 16 bits están distribuidos como sigue: 1 bit para el signo
de la mantisa, 1 bit para el signo del exponente, 6 bits para el exponente entero,
expresado en binario 8 bits para la mantisa, expresada en binario a) determinar el rango
de valores que podrÃa representar y almacenar esta computadora hipotética. b) calcular
el épsilon correspondiente a esta máquina.
Épsilon de una computadora Los 6 bits destinados al exponente se usan para registrar
números enteros binarios en el rango de 000000 a 111111. Su signo se controla por
separado. El mayor exponente positivo posible serÃa: 26 - 1 = 63 y el menor exponente
negativo posible serÃa el -64, por la aplicación del complemento a dos. Los 8 bits
reservados para la mantisa se usan para registrar números fraccionarios en el rango de
0.100000000 a 0.111111111. El valor fraccionario más pequeño equivale a 0.5 en
decimal y el valor fraccionario más grande equivale a 0.998134375 en decimal: 9 ? 2-j = 1
- 2-9 = 0.998046875 j=1 Entonces, el número real más pequeño que puede
representarse es: 0.5 x 2-64 ? 2.71 x 10-20 y el número real más grande, que puede
representarse es: 0.998046875 x 263 ? 9.21 x 1018 El número más pequeño mayor
que uno, que podrÃa almacenarse es: 0.100000001 x 21 = (2-1 + 2-9) x 21 =
1.0039312510 por lo que el épsilon de esta máquina serÃa: 1.00393125 - 1 =
0.00393125 = 3.93 x 10-3
https://m.monografias.com/trabajos105/metodos-numericos-aritmetica-
computadora/metodos-numericos-aritmetica-computadora.shtml
PUNTO FLOTANTE
Matematicas Discretas
3.1 Introducción
Se denominan Números en Punto Flotante a las representaciones
internas del procesador que modelan a los números reales. En forma
externa, se representan números con punto decimal tal como 3.1415926
o en notación científica 9.512x10–5, con un solo dígito a la izquierda del
punto decimal; es decir, 9.512x10–4.
3.2 Normalización de números
Se dice que el número está normalizado si el dígito a la izquierda del
punto no es cero. En el ejemplo anterior, 95.12x10–5. De manera
normalizada quedaría: 9.512x10–4. En el caso de computadores, se
emplea números en sistema binario, y con un número finito de dígitos.
En la siguiente tabla se resumen los cálculos que hay que realizar para
deducir el valor en base 10 de un número escrito en el estándar IEEE
754 con precisión simple:
Figura 3: representación de un número real con precisión simple en el estándar IEEE 754.
Solución
Pasando la mantisa a base 2 y normalizando, se tiene: 45=1011012 y
0.25=0.012
Ejemplo 3.4: Dado el número 3E400000H del estándar IEEE 754 con
precisión simple, exponente en Exceso a 2n-1–1 y mantisa m con 1 bit
implícito, signo s, averigüe a qué número representa en base 10. En
efecto, pueden realizarse los siguientes pasos:
3.8 Precisión Doble en el Estándar IEEE
754
Para escribir un número real en precisión doble, se emplean 64 bits (8
bytes): 1 bit para el signo (s) del número, 52 bits para la mantisa (m) y
11 bits para el exponente (E).
En la siguiente tabla se resumen los cálculos que hay que realizar para
deducir el valor en base 10 de un número escrito en el estándar IEEE
754 con precisión doble:
Figura 3.4: representación de un número real con precisión doble en el estándar IEEE 754.
Figura 3.8: Números no representables en el estándar IEEE 754 con precisión simple.
Solución:
Observe que hay tres dígitos a la derecha de cada factor, de manera que
deberá haber 6 dígitos a la derecha del punto decimal del producto:
10.212000.
Suponiendo que sólo se pueden mantener 3 dígitos a la derecha del
punto decimal, el producto resultante sería: 10.212x105
P3: Este resultado no está normalizado, de manera que tenemos que
normalizarlo para obtener: 1.0212 x106
P5: El signo del producto depende de los signos de los factores, si son
iguales el producto es positivo y si son diferentes, el producto será
negativo
8 claps
https://medium.com/@matematicasdiscretaslibro/capítulo-3-punto-flotante-c689043db98b