EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE...

26
Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid 1 EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE REDONDEO Curso 2001-02 (Examen de control) Se quiere calcular una sucesión cuyos valores exactos responden a las expresiones siguientes: x 1 = 0, x 2 = 2 , x i = 4.x i-1 – 3.x i-2 (i=3, 4, ......) Si los elementos de la sucesión se evalúan en una máquina de calcular en coma flotante, el número 2 que da valor al segundo término de la sucesión será redondeado con un número finito de dígitos por lo que en esta aproximación se cometerá un error que denotaremos por δ . Ello implicará que en tal máquina se calculen los valores aproximados: a 1 = 0, a 2 = 2 + δ , a i = 4.a i-1 – 3.a i-2 (i=3, 4, ......) Denotando por E n a los errores absolutos cometidos (E n = x n – a n ), se pide que señales, entre las siguientes opciones, aquella que es correcta en su totalidad. a) Los errores absolutos que se van cometiendo en el cálculo de los valores de la sucesión responden a la expresión: E n = 4.E n-1 –3. δ b) Los errores absolutos que se van cometiendo en el cálculo de los valores de la sucesión responden a la expresión: E n = 2 3 16 2 3 n 3n n 3 3 + ⋅δ c) Los errores absolutos que se van cometiendo en el cálculo de los valores de la sucesión responden a la expresión: E n = (n 1) 1 3 2 δ d) Los errores absolutos que se van cometiendo en el cálculo de los valores de la sucesión responden a la expresión: E n = - n!. δ

Transcript of EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE...

Page 1: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

1

EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE REDONDEO

Curso 2001-02 (Examen de control) Se quiere calcular una sucesión cuyos valores exactos responden a las expresiones siguientes:

x1 = 0, x2 = 2 , xi = 4.xi-1 – 3.xi-2 (i=3, 4, ......)

Si los elementos de la sucesión se evalúan en una máquina de calcular en coma flotante, el número 2 que da valor al segundo término de la sucesión será redondeado con un número finito de dígitos por lo que en esta aproximación se cometerá un error que denotaremos por δ . Ello implicará que en tal máquina se calculen los valores aproximados:

a1 = 0, a2 = 2 + δ , ai = 4.ai-1 – 3.ai-2 (i=3, 4, ......) Denotando por En a los errores absolutos cometidos (En = xn – an), se pide que señales, entre las siguientes opciones, aquella que es correcta en su totalidad.

a) Los errores absolutos que se van cometiendo en el cálculo de los valores de la sucesión responden a la expresión:

En = 4.En-1 –3. δ

b) Los errores absolutos que se van cometiendo en el cálculo de los valores de la sucesión responden a la expresión:

En = 2 316 23 n 3 n n3 3

⎛ ⎞− ⋅ + ⋅ − ⋅ ⋅ δ⎜ ⎟⎝ ⎠

c) Los errores absolutos que se van cometiendo en el cálculo de los

valores de la sucesión responden a la expresión:

En = (n 1)1 3

2

−−⋅ δ

d) Los errores absolutos que se van cometiendo en el cálculo de los

valores de la sucesión responden a la expresión: En = - n!. δ

Page 2: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

2

Solución: si se denota por En-2, En-1 y En a los errores absolutos cometidos en la evaluación de los términos (n-2), (n-1) y n de la sucesión, se verificará que: an-2 = xn-2 + En-2 , an-1 = xn-1 + En-1 , an = xn + En y como: an = 4.an-1 – 3.an-2 = 4.(xn-1 + En-1) – 3.( xn-2 + En-2) = xn + (4.En-1 – 3.En-2) se debe verificar que:

En = 4.En-1 – 3.En-2 Esta relación nos indica que la opción a) es falsa pues en general En-2 no coincidirá con δ (salvo para el elemento a2). En cuanto a la opción b) si se supone que es cierta para En-2 y En-1, es decir que:

En-2 = 2 316 23 .(n 2) 3.(n 2) .(n 2) .3 3

⎛ ⎞− − + − − − δ⎜ ⎟⎝ ⎠

En-1 = 2 316 23 .(n 1) 3.(n 1) .(n 1) .3 3

⎛ ⎞− − + − − − δ⎜ ⎟⎝ ⎠

Se tendría que:

En = 4.En-1 – 3.En-2 = 2 368 245 .n n .n .3 3

⎛ ⎞− + − − δ⎜ ⎟⎝ ⎠

En otros términos la expresión dada en la opción b) no satisface la relación que debe existir entre los tres últimos errores absolutos. Por ello también debe concluirse que es falsa. Para la opción c), realizando el mismo proceso se tendría que:

En-2 = (n 3)1 3 .

2

−−δ

En-2 = (n 2)1 3 .

2

−−δ

En = 4.En-1 – 3.En-2 = (n 1)1 3 .

2

−−δ

Por lo que debe concluirse que esta opción es correcta. Por último, la opción d) nos conduciría a que si se supone que: En-2 = -(n-2)!. δ y En-1 = -(n-1)!. δ se obtendría que:

En = (3.(n-2)! – 4.(n-1)!).δ = (7.(n-2)! – 4.n!). δ ≠ -n!. δ . Por loq ue también esta última opción es falsa. La veracidad del resultado anterior puede ratificarse hallando los valores de los errores absolutos de los primeros elementos de las sucesiones:

Page 3: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

3

x1 = 0 a1 = 0 = I1

x2 = 2 a2 = 2 + δ = x2 + δ x3 = 4. 2 a3 = 4.( 2 + δ ) = x2 + 4. δ x4 = 4.(4. 2 ) – 3. 2 = 13. 2 a4 = 4.( 4. 2 + 4. δ ) – 3.( 2 + δ ) = x4 + 13. δ x5 = 4.(13. 2 ) – 3. (4. 2 ) = 40. 2 a4 = 4.(13. 2 + 13. δ ) – 3.(4. 2 + δ ) = x5 + 40. δ …… ……… Por tanto los primeros errores absolutos (Ei = xi – ai ) responden a las expresiones: E1 = 0, E2 = - δ , E3 = -4. δ , E4 = -13. δ , E5 = -40. δ , ...... Esto muestra que la opción a) es falsa ya que según ella, partiendo de E1 = 0 se debería obtener que E2 = 4.E1 –3. δ = -3. δ que no se corresponde con el valor obtenido. La opción b) también es falsa pues aunque conduce al valor de los cuatro primeros errores absolutos no obtiene el valor del quinto. Asimismo la opción d) también es falsa pues conduciría a que E1 = - δ , E2 = -2 δ , … que no coinciden con las expresiones obtenidas. Finalmente, la opción c) conduce a los valores correctos de los errores absolutos que acaban de ser determinados. En resumen, la única opción correcta es la opción c). (Examen final – Convocatoria de septiembre de 2002) Razona la veracidad o falsedad de las siguientes afirmaciones:

a) Todos los números reales que expresados en base 10 tengan un número finito de decimales significativos, al expresarlos en base 2 o bien tienen un número finito de decimales significativos o bien sus cifras decimales son periódicas a partir de algún decimal.

Page 4: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

4

b) El error de pérdida de significado tiene menos importancia cuando se opera con números de gran valor absoluto, aunque tengan órdenes de magnitud muy diferente, que cuando se trabaja con números pequeños.

c) La unidad de redondeo de un sistema de números

máquina F(s, m, M, 2) determina el mayor error relativo que se comete al codificar cualquier número en dicho sistema. Por ello, el error relativo en el resultado una operación aritmética elemental (suma, resta , producto o división) entre dos números máquina de dicho sistema siempre será inferior o igual al doble de la unidad de redondeo.

No se considerarán correctas aquellas respuestas que no estén debidamente justificadas. Solución: a) Sea (a)10 un número expresado en base 10 que tenga un número finito de decimales. Su expresión en base 2, que representaremos por (a)2, tendrá como parte entera la expresión en base 2 de la parte entera de (a)10 y la parte decimal de (a)2 se obtendrá expresando en binario la parte decimal de (a)10. La parte entera de (a)10 se expresa en binario dividiéndola sucesivamente por 2 y atendiendo al resto de cada una de dichas divisiones (véanse los apuntes de la asignatura para mayor detalle). En todo caso el número de dígitos significativos de la parte entera será “n”siendo 2n la menor potencia positiva que es estrictamente mayor que (a)10. Por tanto para analizar si la parte decimal de (a)2 tiene un número finito de decimales o si hay alguna periodicidad en estos bastará con analizar cómo se expresa en binario la parte decimal de (a)10. Para ello denotemos por 0.d1d2d3...dm a la expresión de la parte decimal de (a)10 en la que suponemos que sólo hay m decimales significativos (por ir ilustrando cuanto se diga con un ejemplo imaginemos que esta parte decimal fuese 0.627 habiendo 3 decimales significativos). La expresión binaria de esta parte decimal será 0.b1b2b3.....bs...... El valor del dígito binario b1 se corresponderá con la parte entera de 2.( 0.d1d2d3...dm) y la parte decimal del número obtenido se guardará para el cálculo de b2. (En el caso del número tomado como ejemplo se tendrá que 2.(0.627) = 1.254 por lo que b1 el primer dígito binario de la parte decimal de (a)2 será 1 y utilizaremos el número 0.254 para determinar posteriormente b2). En todo caso el número resultante para poder calcular a partir de él el dígito b2 tendrá a lo sumo m decimales significativos. Denotemos este número como ' ' ' '

1 2 3 m0.d d .d ....d (en el ejemplo 0.254). Si fuesen nulos todos los dígitos de este nuevo número decimal ya no habría más decimales significativos en la parte decimal de (a)2. Si no fuesen todos nulos, el dígito b2 se determinará como la parte entera del número que se obtiene realizando la operación 2.( ' ' ' '

1 2 3 m0.d d .d ....d ) mientras que la parte decimal del número así obtenido se

Page 5: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

5

reservará para el cálculo de b3. (En el ejemplo, 2.(0.254) = 0.508 siendo b2 = 0 y reservando el número 0.508 para el cálculo posterior de b3). Observemos que la parte decimal así obtenida tendrá, a lo sumo, m dígitos decimales significativos. Denotemos por (2) (2) (2) (2)

1 2 3 m0.d d .d ....d (en el ejemplo 0.508). Si fuesen nulos todos los dígitos de este nuevo número decimal (2) (2) (2) (2)

1 2 3 m0.d d .d ....d ya no habría más decimales significativos en la expresión de (a)2. Si no lo fuesen se volvería a repetir el proceso para determinar b3. Un paso genérico de este proceso, el que conduce a la determinación de bi+1, partirá de un número decimal de la forma (i) (i) (i) (i)

1 2 3 m0.d d .d ....d y consistirá en denotar por bi+1 a la parte entera del número 2.( (i) (i) (i) (i)

1 2 3 m0.d d .d ....d ), reservando la parte decimal del valor así obtenido, (i 1) (i 1) (i 1) (i 1)

1 2 3 m0.d d .d ....d+ + + + para el cálculo de posteriores dígitos binarios. Si (i 1) (i 1) (i 1) (i 1)1 2 3 m0.d d .d ....d+ + + + tuviera sus m decimales iguales a 0 ya no habría más decimales

significativos en la parte decimal de (a)2. Y si no fuesen nulos se continuaría el proceso. Pero m dígitos decimales se pueden combinar sólo de 10m formas distintas (en el ejemplo, con 3 decimales sólo podemos formar 1000 números diferentes – 0.000, 0.001, 0.002, ...., 0.998, 0.999- ). Por tanto, antes o después uno de los números

(k) (k) (k) (k)1 2 3 m0.d d .d ....d que se obtengan o bien será nulo o bien coincidirá con otro número (i) (i) (i) (i)1 2 3 m0.d d .d ....d previamente calculado. En el primer caso (a)2 tendrá un número finito

(k) decimales. En el segundo caso la expresión de la parte decimal de (a)2 tendrá una periodicidad a partir del i-ésimo dígito (repitiéndose periódicamente los dígitos bibi+1...bk). En resumen, la afirmación realizada es verdadera. b) Al sumar dos números en un ordenador los exponentes de ambos deben igualarse. Así si, trabajando en base 10, el exponente del sumando con mayor valor absoluto es 10A y el del sumando de menor valor absoluto fuese 10a, este último verá su mantisa multiplicada por 10a-A para que su exponente sea también 10A. Ello equivale a introducir (a – A) decimales nulos antes del primer dígito significativo de la mantisa del sumando con menor valor absoluto. Y como en el valor de la suma resultante sólo se conservarán un número finito de dígitos de la mantisa, eso es lo mismo que decir que se pierden los (A-a) últimos dígitos de la mantisa del sumando de menor valor absoluto. Este error, la pérdida de significado de los (A-a) últimos decimales del sumando de menor valor absoluto, es el que se conoce con el nombre de error de pérdida de significado, y es mayor cuanto mayor sea la diferencia entre los exponentes A y a, siendo el valor (A-a) lo único que le influye. Por tanto la afirmación que se realiza en el enunciado no es correcta. c) La primera parte de la afirmación es correcta pues la unidad de redondeo, por definición, representa el mayor error relativo que se comete al aproximar un número por un número máquina. La segunda parte de la afirmación también es correcta (siempre que el número resultante de la operación realizada pueda ser aproximado por alguno de los números

Page 6: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

6

que forman parte del sistema de números máquina que se considere). En ese caso, la multiplicación o división de números máquina (que por ser números máquina se codifican sin error) sería igual a un número real que al ser aproximado por un número máquina se vería afectado por un error relativo acotado por la unidad de redondeo. Y en la suma o resta de dos números máquina el valor resultante sólo se vería afectado por el error de pérdida de significado del menor de ellos que también será inferior a la unidad de redondeo. Luego en ese caso la afirmación es cierta (y aun podría rebajarse la cota del error relativo en el resultado de la operación pues esta podría ser sólo la unidad de redondeo en lugar del doble de esta como se dice en el enunciado). NOTA: La única situación en la que la afirmación podría ser considerada como incorrecta es

aquella en la que el resultado de la operación es un número máquina que supere, en

valor absoluto, el número de overflow. Si por ejemplo denotamos por “A” al mayor de

los números máquina y por “a” al número máquina de menor valor absoluto, el cociente

entre ambos nos conduciría a un número que no puede ser aproximado por ninguno de

los números máquina del sistema. Como en dicho caso no tiene mayor sentido hablar de

error de redondeo en la operación pues la operación no puede ser realizada, puede

considerarse que la afirmación es correcta.

Page 7: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

7

Curso 2002-03 (Examen final – convocatoria de diciembre de 2002) Razona la veracidad o falsedad de las siguientes afirmaciones:

a) En un sistema de números máquina binario que tenga 5 bits para representar la mantisa (el primero de ellos para el signo) y 4 bits para almacenar el exponente (el primero de ellos para el signo) no puede codificarse el número real que en base 10 se expresa por 250.52

b) En un sistema de números máquina binario que tenga 5 bits

para representar la mantisa (el primero de ellos para el signo) y 4 bits para almacenar el exponente (el primero de ellos para el signo) sí que puede codificarse el número real que en base 10 se expresa por –0.00757.

c) Denotemos por N al número de overflow de un sistema de

números máquina F(s, m, M, 2) y por n al número de underflow de dicho sistema. Sea α un número real tal que

n < α < N y

α puede expresarse de forma exacta como suma de potencias de 2 .

En estas condiciones el número α siempre puede aproximarse por un número máquina del sistema F(s, m, M, 2) sin cometerse error de redondeo.

No se considerarán correctas aquellas respuestas que no estén debidamente justificadas. Solución: a) El número 250.52 puede expresarse en base 2 mediante:

(250.52)10 = 1·27 + 1·26 + 1·25 + 1·24 + 1·23 + 0·22 + 1·21 + 0·20 + 1·2-1 + ... =

Page 8: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

8

= (1·20 + 1·2-1 + 1·2-2 + 1·2-3 + 1·2-4 + 0·2-5 + 1·2-6 + 0·2-7 + 1·2-8 + ...)·27 =

=((1.11110101...)·27)2 El exponente de este número, 7, en binario se expresa como:

(7)10 = 1·22 +1·21 +1·20 = (111)2 Por tanto el exponente del número puede representarse en el sistema de números máquina considerado (en los cuatro bits) como +111. La mantisa, al tener sólo 5 bits y ser uno de ellos para el signo, deberá redondearse a sólo cuatro dígitos decimales binarios. Procediendo por redondeo (obsérvese que el quinto decimal es un 1):

1.11110101.... +1.1111 Por tanto la mantisa del número se codifica como +1111. En resumen el número máquina que aproxima al número dado (250.52) es el número +1.1111·2+111 y sí es codificable en el sistema considerado. Por tanto la afirmación es falsa. b) Procedamos a encontrar la expresión binaria del número (–0.00757)10. Potencia 0.00757 · 2 = 0.01514 2-1

0.01514 ·2 = 0.03028 2-2 0.03028 ·2 = 0.06056 2-3 0.06056 ·2 = 0.12112 2-4 0.12112 ·2 = 0.24224 2-5 0.24224 ·2 = 0.48448 2-6 0.48448 ·2 = 0.96896 2-7 0.96896 ·2 = 1.93792 2-8 0.93792 ·2 = 1.87584 2-9 0.87584 ·2 = 1.75168 2-10 0.75168 ·2 = 1.50336 2-11 0.50336 ·2 = 1.00672 2-12 0.00672 ·2 = 0.01344 2-13 ...... Luego:

(–0.00757)10 =1·2-8 + 1·2-9 + 1·2-10 + 1·2-11 + 1·2-12 + 0·2-13 + ....

Page 9: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

9

Puesto que el menor exponente codificable es (–7)10 = (-111)2, expresaremos el número anterior en la forma:

(–0.00757)10 =(1·2-1 + 1·2-2 + 1·2-3 + 1·2-4 + 1·2-5 + 0·2-6 + ....)·2-7

que, incluyendo el signo, se correspondería al binario:

((-0.111110...)·2-111)2 Si se redondea a una mantisa que sólo posea 4 dígitos binarios decimales (obsérvese que el quinto decimal es un 1) se tiene el número

((-1.0000)·2-111)2 que es el número estrictamente negativo de menor valor absoluto de los números que constituyen el sistema máquina considerado. Por tanto la afirmación es falsa ya que sí que se puede aproximar (–0.00757)10 por un número máquina. c) La expresión es falsa pues dependerá del número de bits que se dispongan para la mantisa. En efecto, siendo M y m el mayor y menor exponenentes del sistema, puede considerarse el número a = 2M + 2m . La expresión binaria de este número será: a = (1·20 + 0·2-1 + ........ + 0·2m-M+1 + 0·2m-M) · 2M La mantisa exacta del número es en ese caso 1.00.....01 estando el primer dígito decimal no nulo en la posición |M-m|. Si el número de bits asignados para la mantisa es inferior a |M-m| se cometerá error al codificar el número. Por tanto no siempre se puede asegurar lo que se dice en la afirmación de este apartado. Examen final – convocatoria de junio de 2003, Considérense los números a = 12.32, b = 1/3 y c = 2.21. El resultado de combinar estos tres números en la forma (a + b) · c es:

d = + = + =2.21(a b)·c 27.2272 27.9638666....

3

La operación anterior se quiere realizar sobre una máquina que trabaja en base binaria aproximando los números reales mediante la técnica de redondeo. Además se sabe que la máquina en cuestión utiliza 7 bits para

Page 10: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

10

almacenar las mantisas de los números (el primero de ellos para el signo) y 4 bits para almacenar los exponentes (el primero de ellos para el signo). De esta forma a, b y c se representarán mediante los números máquina a, b y c . Una vez obtenidos estos números máquina la máquina calculará,

según las reglas de la suma de números máquina, el número ( )= ⊕z a b

para a continuación obtener el número =d z c . Se pide que obtengas, detallando los pasos que realizas, el valor en base 10 del número máquina d así obtenido (detallando, al menos su parte entera y sus 5 primeros decimales). Solución: Obtengamos, mediante redondeo, los números máquina â, b y c :

a = 12.32 = 1·23 + 1·22 + 0·21 + 0·20 + 0·2-1 + 1·2-2 + 0·2-3 + 1·2-4 + ....

a = 1.1000101....·23 â = 1.100011·23 b = 1/3 = 0.33333…= 1·2-2 + 0·2-3 + 1·2-4 + 0·2-5 + 1·2-6 + 0·2-7 + 1·2-8 + 0·2-9 + ....

b = 1.0101010....·2-2 b = 1.010101·2-2

c = 2.21 = 1·21 + 0·20 + 0·2-1 + 0·2-2 + 1·2-3 + 1·2-4 + 0·2-5 + 1·2-6 + ....

c = 1.0001101....·21 c = 1.000111·21 Calculemos ahora el número máquina = ⊕z a b . Para ello: â + b = 1.100011·23 + 1.010101·2-2 = 1.100011·23 + 0.00001010101·23 = = (1.100011 + 0.00001010101) ·23 = (1.10010110101)·23 que se aproximará, mediante redondeo, por el número con 6 decimales de mantisa:

= ⊕ =z a b 1.100110·23 Calculemos ahora el número =d z c .

=z·c (1.100110·23)· (1.000111·21) = (1.100110·1.000111)·24 donde:

Page 11: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

11

1.100110 x 1.000111 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0

1.1 1 0 0 0 1 0 0 1 0 1 0 por lo que:

=z·c (1.110001001010)·24 que se aproxima redondeando por el número máquina: = =d z c 1.110001·24 La expresión en base 10 del número d es entonces: (d )10 = 1·24 + 1·23 + 1·22 + 0·21 + 0·20 + 0·2-1 + 1·2-2 = = 16 + 8 + 4 + 0.25 = 28.25000 NOTA: Otra forma de calcular el número z·c consiste en expresar cada factor en base 10 y posteriormente pasar a base 2 el resultado. Más concretamente: c = 1.000111·21 (c )10 = 21 + 2-3 + 2-4 + 2-5 = 2.21875

=z 1.100110·23 (z )10 = 23 + 22 + 2-1 + 2-2 = 12.75 ((c )10 · (z )10)10 =28.2890625 = 24 + 23 + 22 +2-2 + 2-5 + 2-7 ((c )10 · (z )10)2 = 1.11000100101·24 = z·c de donde redondeando se tiene que:

= =d z c 1.110001·24 Examen final – convocatoria de septiembre de 2003.

Page 12: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

12

Considérese un sistema de codificación con 9 bits para la mantisa y con 5 bits para el exponente (en ambos casos, el primero de ellos codifica el signo) y que utiliza la técnica de redondeo para aproximar los números reales binarios por números máquina. Sean 2y y 2z los dos números

máquina de ese sistema dados por los siguientes códigos: Código de Mantisa Código de Exponente

2y : 0 0 0 0 1 0 0 0 0 0 0 0 1 0

2z : 0 1 0 0 0 0 1 0 0 0 0 1 0 0 Suponiendo que 2z es el resultado de sumar, en el sistema de números máquina binarios considerado, el número máquina 2y a un número

máquina 2x , se pide que expreses en base 10, el intervalo [xmin , xmax[ de la recta real al que debe pertenecer el número x10 para que sea aproximado por el número máquina 2x . Solución: El código dado para 2y muestra que este número máquina binario es:

2y = +1.00010000·2+0010 = 1.00010000·22

Como el resultado de sumar el número máquina 2x es el número máquina 2z que tiene exponente 4, expresaremos 2y con tal exponente, es decir:

2y = 0.0100010000·24

Luego 2x = 2z - 2y = (1.10000100 - 0.0100010000)·24 . Realicemos la resta de

mantisas: 1. 1 0 0 0 0 1 0 0 - 0. 0 1 0 0 0 1 0 0 0 0 1. 0 1 0 0 0 0 0 0 0 0 por lo que: 2x = 1.01000000·24 . Este número máquina es el que aproximará a todos aquellos números binarios x2 tales que:

x2,mín = 1.00111111 1·24 < x2 < 1.01000000 0111....·24 < 1.01000000 1·24 0 x2,máx

que en base 10 nos conduce a que:

x10,mín = 1·24 + 1·21 + 1·20 + 1·2-1 + 1·2-2 + 1·2-3 + 1·2-4 + 1·2-5 =

Page 13: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

13

= 16 + 2 + 1 + 0.5 + 0.25 + 0.125 + 0.0625 + 0.03125 = 19.96875

x10,máx = 1·24 + 1·22 + 1·2-5 = 16 + 4 + 0.03125 = 20.03125

En resumen, en base 10, cualquier número x10 tal que [ [10x 19.96875 , 20.03125∈ es

aproximado por un número máquina 2x tal que 2x + 2y = 2z .

Page 14: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

14

Curso 2003-2004 Examen final – convocatoria de diciembre de 2003. Siendo α un número positivo, se quieren calcular los valores de las

integrales In = 1

0 α +∫nx dxx

para distintos valores de n. Para el caso en que n

= 0 se tiene que:

I0 = 1

0

1 1ln( 1) ln( ) ln αα αα α

+⎛ ⎞= + − = ⎜ ⎟+ ⎝ ⎠∫ dxx

Para el resto de las integrales se quiere seguir el proceso siguiente:

− −−

−+ α − α

= = = − α = − αα + α + +∫ ∫ ∫ ∫

1 1 1 1n n 1 n 1n 1

n n 10 0 0 0

x x (x ) x 1I dx dx x dx dx ·Ix x a x n

por lo que las integrales se calcularán mediante el proceso recursivo siguiente:

+ α⎛ ⎞= ⎜ ⎟α⎝ ⎠0

1I ln

−= − αn n 11I ·In

(n = 1, 2, 3, 4, ....)

El proceso anterior se va a desarrollar sobre una máquina de cálculo en el que se aproxima el valor de I0 por un cierto valor A0 cometiéndose un error ε, es decir que I0 – A0 = ε. Con este valor se calculan las aproximaciones de los valores siguientes mediante el proceso recursivo:

−= − αn n 11A ·An

(n = 1, 2, 3, ...)

Suponiendo que todas las operaciones se realizan de forma exacta (salvo la estimación de A0 en la que se introduce el error ε) se pide que

a) Analices la evolución del error absoluto (In – An) en función de n b) Determines para qué valores de α el valor absoluto del error

absoluto no crece al incrementarse el índice n. c) Determines para el caso en que α = + 10 y ε = 10-10 el error

absoluto (I30 – A30) Solución: a) I0 = A0 + ε I1 = 1 – αI0 = 1 – αA0 – αε = A1 – αε

Page 15: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

15

I2 = ½ – αI1 = 12

– αA1 + α2ε = A2 + α2ε

I3 = 13

– αI2 = 13

– αA2 - α3ε = A3 - α3ε

…… In = An + (-1)n αnε ….. En resumen: (In – An) = (-1)n αnε . b) Al ser α positivo, la expresión del error permite afirmar que el error absoluto permanecerá acotado si 0 < α < 1. Además si 0 < α < 1 el error absoluto tenderá a anularse cuando n tienda hacia infinito (el valor absoluto del error absoluto decrece con el valor del índice n). c) Para α = 10+ y ε = 10-10, la expresión del error nos conduce a que:

Page 16: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

16

Curso 2004-05 Examen final – convocatoria de diciembre de 2004. Se desea construir un ordenador para realizar cálculos con números reales cuyo valor absoluto, expresado en base 10, no excederá en ningún caso de 3500 por lo que el error de overflow debe producirse para números de mayor valor absoluto que éste. Además y, salvo para el número 0, no es previsible que los números a manejar tengan valor absoluto, en base 10, inferior a 5.10-3, no importando que si se produjera algún número de menor valor absoluto este se sustituyera por el 0.

La máquina que se está diseñando trabajará en binario y utilizará el

redondeo como técnica de aproximación de números reales binarios por números máquina. Se van a utilizar un total de 12 bits para almacenar las mantisas y los exponentes de los números.

Se pide que analices el tema y presentes una propuesta para

distribuir los 12 bits disponibles entre la mantisa y el exponente. En dicha propuesta, con las consideraciones sobre las magnitudes de los números a manejar, debe disminuirse todo lo posible los errores relativos de redondeo. Indica, de forma razonada, cuantos bits debes proponer que se dediquen para almacenar exponentes y cuantos para almacenar la mantisa, señalando además la expresión en base 10 de los números a partir de los cuales se producirían errores de overflow y de underflow (o asimilación a 0) . Nota: No es necesario que escribas la expresión decimal de los números de overflow o de underflow y basta con que los expreses en función de potencias del número 2. Solución:

Los errores de redondeo relativos en un sistema de números máquina se minimizarán asignando el máximo número posible de bits a la mantisa. Por ello se deben asignar al exponente el número de bits imprescindible para poder almacenar los exponentes de los números que se deban manipular. Obtengamos los códigos binarios de los números 5.10-3 y 3500 que son los valores absolutos menor y mayor de los números que, salvo el 0, se utilizarán en la máquina a diseñar. Para la cota inferior se tiene que:

0.005 2-1 = 0.5 0.005 0 2-2 = 0.25 0.005 0 2-3 = 0.125 0.005 0 2-4 = 0.0625 0.005 0 2-5 = 0.03125 0.005 0 2-6 = 0.015625 0.005 0 2-7 = 0.0078125 0.005 0 2-8 = 0.00390625 0.005 - 0.00390625=0.00109375 1

Page 17: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

17

2-9 = 0.001953125 0.00109375 0 2-10 = 0.0009765625 0.00109375 - 0.0009765625 = 0.0001171875 1 2-11 = 0.00048828125 0.0001171875 0 2-12 = 0.000244140625 0.0001171875 0 2-13 = 0.0001220703125 0.0001171875 0 2-14 = 0.00006103515625 0.0001171875 - 0.00006103515625 =

0.00005615234375 1

2-15 = 0.000030517578125

0.00005615234375 - 0.000030517578125 = 0.000025634765625

1

2-16 = 0.0000152587890625

0.000025634765625 - 0.0000152587890625 =

0.0000103759765625

1

Por tanto:

(0.005)10 = (0.0000000101000111...)2 por lo que en coma flotante el número binario se expresará como:

1.01000111… 2-8

En cuanto al número 3500 su expresión en binario quedará como:

3500 / 2 = 1750 + 0 1750 / 2 = 875 + 0 875/ 2 = 437 + 1 437 / 2 = 218 + 1 218 / 2 = 109 + 0 109 / 2 = 54 + 1 54 / 2 = 27 + 0 27 / 2 = 13 + 1 13 / 2 = 6 + 1 6 / 2 = 3 + 0 3 / 2 = 1 + 1

Por tanto:

(3500)10 = (110110101100)2 por lo que su notación en coma flotante binaria es:

1.10110101100. 211

Las expresiones binarias de las cotas anteriores nos indican que nuestro sistema de números máquina debe ser capaz de almacenar en binario los exponentes comprendidos entre expmin = –8 y expmax =11. Puesto que:

(-8)10 = (-1000)2 y (11)10 = (+1011)2

Page 18: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

18

deberán asignarse al exponente 5 bits (uno de ellos para el signo) y a la mantisa los 7 restantes (siendo uno de ellos también para el signo) Con este reparto de bits entre la mantisa y el exponente, el mayor exponente que podrá codificarse es:

(+1111)2 = (23 + 22 + 21 + 20 )10 = (15)10

Obviamente, el menor exponente será (-15)10. Por ello el menor y mayor número que podrán codificarse tienen un valor absoluto que responde al valor:

nmenor = (1.000000).2-15 = (0.00003051757812)10

nmayor = (1.111111).215 = (65024)10

Al estar trabajando con la técnica de redondeo el menor de los números positivos que ya no se aproximen por nmayor será:

Noverflow = (1.111111).215 + (0.0000001).215 =

=(215 + 214 + … + 29) + 28 = 65280 Análogamente, el menor de los números positivos que se aproxime por

nmenor mediante la técnica de redondeo está dado por: Nunderflow = (0.1111111).2-15= (2-16 + 2-17 + 2-18 + ... + 2-21 + 2-22) =

0.00003027915955

El sistema de números máquina considerado podrá trabajar con las aproximaciones de todos los números reales, x, no nulos tales que:

Nunderflow ≤ | x | < Noverflow

Examen final – convocatoria de junio de 2005. Se desea construir un ordenador para realizar cálculos con números reales cuyo valor absoluto, expresado en base 10, no excederá en ningún caso de 5000 por lo que el error de overflow debe producirse para números de mayor valor absoluto que éste. Además y, salvo para el número 0, no es previsible que los números a manejar tengan valor absoluto, en base 10, inferior a 10-3, no importando que si se produjera algún número de menor valor absoluto este se sustituyera por el 0.

La máquina que se está diseñando trabajará en binario y utilizará el

redondeo como técnica de aproximación de números reales binarios por números máquina. Se van a utilizar un total de 15 bits para almacenar las mantisas y los exponentes de los números.

Se pide que analices el tema y presentes una propuesta para distribuir los 15 bits disponibles entre la mantisa y el exponente. En dicha propuesta, con las consideraciones sobre las magnitudes de los números a manejar,

Page 19: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

19

debe disminuirse todo lo posible los errores relativos de redondeo. Indica, de forma razonada, cuantos bits debes proponer que se dediquen para almacenar exponentes y cuantos para almacenar la mantisa, señalando además la expresión en base 10 de los números a partir de los cuales se producirían errores de overflow y de underflow (o asimilación a 0) . Nota: No es necesario que escribas la expresión decimal de los números de overflow o de underflow y basta con que los expreses en función de potencias del número 2. Solución:

Los errores de redondeo relativos en un sistema de números máquina se minimizarán asignando el máximo número posible de bits a la mantisa. Por ello se deben asignar al exponente el número de bits imprescindible para poder almacenar los exponentes de los números que se deban manipular. Obtengamos los códigos binarios de los números 10-3 y 5000 que son los valores absolutos menor y mayor de los números que, salvo el 0, se utilizarán en la máquina a diseñar. Para la cota inferior se tiene que:

0.001 2-1 = 0.5 0.001 0 2-2 = 0.25 0.001 0 2-3 = 0.125 0.001 0 2-4 = 0.0625 0.001 0 2-5 = 0.03125 0.001 0 2-6 = 0.015625 0.001 0 2-7 = 0.0078125 0.001 0 2-8 = 0.00390625 0.001 0 2-9 = 0.001953125 0.001 0 2-10 = 0.0009765625 0.001-0.0009765625 = 0.0000234375 1 2-11 = 0.00048828125 0.0000234375 0 2-12 = 0.000244140625 0.0000234375 0 2-13 = 0.0001220703125 0.0000234375 0 2-14 = 0.00006103515625 0.0000234375 0 2-15 = 0.000030517578125

0.0000234375 0

2-16 = 0.0000152587890625

0.0000234375 - 0.0000152587890625 =

0.00000817871094…

1

Por tanto:

(0.001)10 = (0.0000000001000001...)2 por lo que en coma flotante el número binario se expresará como:

1.000001… 2-10

Page 20: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

20

En cuanto al número 5000 su expresión en binario quedará como:

5000 / 2 = 2500 + 0 2500 / 2 = 1250 + 0 1250 / 2 = 625 + 0 625 / 2 = 312 + 1 312 / 2 = 156 + 0 156 / 2 = 78 + 0 78 / 2 = 39 + 0 39 / 2 = 19 + 1 19 / 2 = 9 + 1 9 / 2 = 4 + 1 4 / 2 = 2 + 0 2 / 2 = 1 + 0

Por tanto:

(5000)10 = (1001110001000)2 por lo que su notación en coma flotante binaria es:

1.001110001000 . 212

Las expresiones binarias de las cotas anteriores nos indican que nuestro sistema de números máquina debe ser capaz de almacenar en binario los exponentes comprendidos entre expmin = –10 y expmax =12. Puesto que:

(-10)10 = (-1010)2 y (12)10 = (+1100)2

deberán asignarse al exponente 5 bits (uno de ellos para el signo) y a la mantisa los 10 restantes (siendo uno de ellos también para el signo) Con este reparto de bits entre la mantisa y el exponente, el mayor exponente que podrá codificarse es:

(+1111)2 = (23 + 22 + 21 + 20 )10 = (15)10

Obviamente, el menor exponente será (-15)10. Por ello el menor y mayor número que podrán codificarse tienen un valor absoluto que responde al valor:

nmenor = (1.000000000).2-15 = (0.00003051757812)10

nmayor = (1.111111111).215 = (65472)10

Al estar trabajando con la técnica de redondeo el menor de los números positivos que ya no se aproximen por nmayor será:

Noverflow = (1.111111111).215 + (0.0000000001).215 =

=(215 + 214 + … + 26) + 25 = 65504

Page 21: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

21

Análogamente, el menor de los números positivos que se aproxime por nmenor mediante la técnica de redondeo está dado por:

Nunderflow = (0.1111111111).2-15= (2-16 + 2-17 + 2-18 + ... + 2-24 + 2-25) =

0.00003048777580

El sistema de números máquina considerado podrá trabajar con las aproximaciones de todos los números reales, x, no nulos tales que:

Nunderflow ≤ | x | < Noverflow

Examen final – convocatoria de septiembre de 2005. Un sistema de codificación en binario de números reales que utiliza el sistema de “coma flotante”, consta de un total de 10 bits para almacenar la mantisa y el exponente (incluyendo los correspondientes bits de signo). Sabiendo que el menor número positivo que se puede codificar sin error en dicho sistema es el 0.0078125, se pide:

a) Determinar el número de bits (incluyendo el bit de signo) de la mantisa y el número de bits (incluyendo el bit de signo) del exponente.

b) Determinar el mayor número decimal que se puede codificar

mediante este sistema.

c) Determinar los números de overflow y de underflow si se trabaja con la técnica de redondeo para la aproximación de números reales binarios por números máquina.

Solución:

a) El número positivo más pequeño que se puede codificar mediante este sistema será de la forma:

1 bits

11 1

1 bits

1.000 0 2e

m

⋅ ……

siendo m el número de bits asignados a la mantisa (incluyendo bit de signo) y e el número de bits asignado al exponente (incluyendo bit de signo). Es trivial comprobar que:

( ) ( ) 7 11110 2

0.0078125 0.0000001 1.00 2 1.00 2− −= = ⋅ = ⋅… …

Page 22: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

22

En definitiva, serán precisos 4 bits para el exponente y, en consecuencia, 6 para la mantisa.

b) El mayor número positivo que se puede codificar mediante este

sistema es:

( )111 0 1 2 3 4 5 7

7 6 5 4 3 2

1.11111 2 2 2 2 2 2 2 2

2 2 2 2 2 2 128 64 32 16 8 4 252

mayorn + − − − − −= ⋅ = + + + + + ⋅ =

+ + + + + = + + + + + =

c) Al estar trabajando con la técnica de redondeo, el menor de los

números positivos que ya no se aproximen por nmayor será:

( ) ( )7 7

7 6 5 4 3 2 1

1.11111 2 0.000001 2

2 2 2 2 2 2 2 254overflowN = ⋅ + ⋅ =

+ + + + + + =

En cuanto al número de underflow, éste será:

( ) 7

8 9 10 11 12 13

0.11111 2

2 2 2 2 2 2 0.007690429688underflowN −

− − − − − −

= ⋅ =

+ + + + + =

Page 23: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

23

Curso 2005-06 Examen final – convocatoria de diciembre de 2005. Se desea construir un ordenador para realizar cálculos con números reales cuyo valor absoluto, expresado en base 10, no excederá en ningún caso de 1500 por lo que el error de overflow debe producirse para números de mayor valor absoluto que éste. Además y, salvo para el número 0, no es previsible que los números a manejar tengan valor absoluto, en base 10, inferior a 0.03, no importando que si se produjera algún número de menor valor absoluto este se sustituyera por el 0.

La máquina que se está diseñando trabajará en binario y utilizará el

redondeo como técnica de aproximación de números reales binarios por números máquina. Se van a utilizar un total de 15 bits para almacenar las mantisas y los exponentes de los números.

Se pide:

a) Distribuir los 15 bits disponibles entre la mantisa y el exponente de forma que se disminuya en todo lo posible los errores relativos de redondeo, teniendo en cuenta que ha de reservarse un bit para el signo tanto en la mantisa como en el exponente.

b) Expresar en base 10 los números a partir de los cuales se

producirían errores de overflow y de underflow (o asimilación a 0) . Solución: Codifiquemos los números 1500 y 0.03: 1500:2 = 750 + 0 750:2 = 375 + 0 375:2 = 187 + 1 187:2 = 93 + 1 93:2 = 46 + 1 46:2 = 23 + 0 23:2 = 11 + 1 11:2 = 5 + 1 5:2 = 2 + 1 2:2 = 1 + 0

(1500)10 = (10111011100)2 = 1.0111011100 210 = 1.0111011100 21010

0.03 2-1 = 0.5 0.03 0 2-2 = 0.25 0.03 0 2-3 = 0.125 0.03 0 2-4 = 0.0625 0.03 0 2-5 = 0.03125 0.03 0 2-6 = 0.015625 0.03 - 0.015625 = 0.014375 1

Page 24: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

24

2-7 = 0.0078125 0.014375 - 0.0078125 = 0.0065625 1 2-8 = 0.00390625 0.0065625 - 0.00390625 = 0.00265625 1 2-9 = 0.001953125 0.00265625 - 0.001953125 = 0.000703125 1 2-10 = 0.0009765625 0.000703125 0 … … …

(0.03)10 = (0.0000011110…)2 = 1.1110… 2-6 = 1.1110… 2100

Por tanto, serán necesarios 5 bits (4 más 1 para el signo) para codificar

los exponentes, pudiéndose destinar el resto (10 bits) para codificar las mantisas.

El mayor número positivo que se puede codificar mediante este sistema

es: N = 1.111111111 21111 = 215 + 214 + 213 + 212 + 211 + 210 + 29 + 28 + 27 + 26 =

65472

y el menor: n = 1.000000000 2-1111 = 2-15 = 0.000030517578125

En cuanto a los número de overflow y de underflow, estos son:

Noverflow = 1.111111111 215 + 0.0000000001 215 = 65504

Nunderflow = 0.111111111 2-15 = 2-16 + 2-17 + 2-18 + ... + 2-24 + 2-25 = 0.00003048777580

Examen final – convocatoria de junio de 2006. Se desea construir un código binario que trabaje con la técnica de “coma flotante” y use el redondeo como forma de aproximación de números. Se sabe que este código debe ser capaz de almacenar al menos números comprendidos entre 235 y 0.008. Se pide:

a) Determinar el mínimo número de bits que han de tener la mantisa y el exponente (incluidos los correspondientes bits de signo).

b) Determinar los números mayor y menor que se pueden codificar

de forma exacta con el código obtenido en el apartado a)

c) Determinar los números de overflow y de underflow. Solución: Codifiquemos en primer lugar el número 235:

( ) 7 11110

235 11101011 1.1101011 2 1.1101011 2= = ⋅ = ⋅

por tanto, el número 235 se codificará sin error mediante un código que utilice una mantisa de 7 bits y un exponente de 3 bits. No obstante, el número

Page 25: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

25

binario 1111.111 2⋅ representa el número decimal 240, lo cual quiere decir que, si bien es cierto que son necesarios 7 bits de mantisa para almacenar sin error el número 235, bastaría una mantisa de 3 bits para almacenar dicho número, si bien este se codificaría con el error correspondiente. Por otra parte,

72 0.0078125 0.008− = < . En definitiva, una mantisa de 8 bits (7 bits más uno para el signo) y un exponente de 4 bits (3 más uno para el signo) nos asegura satisfacer las condiciones del enunciado. Con este código, el mayor número codificable es:

1111.1111111 2 255M += ⋅ =

y el menor número positivo el:

1111.0000000 2 0.0078125m −= ⋅ =

En cuanto a los números de overflow y de underflow, estos son:

111

8

111

7

0.00000001 2 255.5

0.1111111 2 0.007751464844

overflowbits

underflowbits

N M

N

+

= + ⋅ =

= ⋅ =

Nota 1: Si hubiésemos optado por una mantisa de 4 bits (3 más uno para el signo), los resultados habrían sido:

111 111

111 111

1.111 2 240 1.000 2 0.00781250.0001 2 248 0.111 2 0.0068359375overflow underflow

M mN M N

+ −

+ −

= ⋅ = = ⋅ == + ⋅ = = ⋅ =

Examen final – convocatoria de septiembre de 2006. Un cierto código ternario utiliza los dígitos 0, 1, 2 y la siguiente técnica de coma flotante para el almacenamiento de números reales:

1 21 2 3 10. 3 con 0e en d d d d= ⋅ >……

Se dispone de un total de 10 dígitos para la mantisa y el exponente y solamente se desean almacenar números positivos. Se pide:

a) Repartir los diez dígitos disponibles entre mantisa y exponente de tal forma que en la mantisa haya el mínimo número de bits precisos para que se puedan codificar de forma exacta todos los números enteros iguales o menores que 1234, teniendo en cuenta que deberemos reservar el primer bit del exponente para el signo.

b) Determinar los números mayor y menor que se pueden codificar

con este sistema.

Page 26: EJERCICIOS PROPUESTOS EN EXÁMENES SPBRE ERRORES DE ...ocw.upm.es/matematica-aplicada/programacion-y-metodos-numericos/... · La opción b) también es falsa pues aunque conduce al

Programación y Métodos Numéricos Carlos Conde, Arturo Hidalgo y Alfredo López Errores de redondeo. ETSI Minas de la Universidad Politécnica de Madrid

26

Solución: Codifiquemos 1234: 1234 : 3 = 411 + 1 411 : 3 = 137 + 0 137 : 3 = 45 + 2 45 : 3 = 15 + 0 15 : 3 = 5 + 0 5 : 3 = 1 + 2 Es decir:

(1234)10 = (1200201)3 = 0.1200201 37 = 0.1200201 3+21

Por tanto, hacen falta 7 bits en la mantisa y 3 en el exponente. El mayor número que se puede codificar es:

( )22 1 2 3 4 5 6 7 80.2222222 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 3 6558N + − − − − − − −= ⋅ = ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ + ⋅ ⋅ = y el menor:

22 1 80.1000000 3 1 3 3 0.00005080526342n − − −= ⋅ = ⋅ ⋅ =