Métodos Numéricos. Grado en Ingeniería en Informática Tema ... · Tema 1 : Aritméticas de...

Post on 25-Aug-2020

3 views 0 download

Transcript of Métodos Numéricos. Grado en Ingeniería en Informática Tema ... · Tema 1 : Aritméticas de...

ULPGCLogo

Métodos Numéricos.Grado en Ingeniería en Informática

Tema 1 : Aritméticas de Precisión Finita

Luis Alvarez León

Univ. de Las Palmas de G.C.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 1 / 31

ULPGCLogo

Contenido

1 Los diferentes tipos de números y como se escriben en base 2

2 Las aritméticas standard de 32 y 64 bits

3 El tratamiento de las excepciones en una aritmética

4 La unidad de redondeo de una aritmética

5 Acotaciones del error de redondeo

6 Comparación de variables

7 Fuentes de errores númericos

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 2 / 31

ULPGCLogo

Contenido

1 Los diferentes tipos de números y como se escriben en base 2

2 Las aritméticas standard de 32 y 64 bits

3 El tratamiento de las excepciones en una aritmética

4 La unidad de redondeo de una aritmética

5 Acotaciones del error de redondeo

6 Comparación de variables

7 Fuentes de errores númericos

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 3 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = ?

1Ejemplo de números enteros = −1Ejemplo de números racionales = 1

3

Ejemplo de números irracionales = π,√

2Ejemplo de números complejos = 2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : Falso 1

3 = 0,3333333.....¿Los números irracionales tiene un número infinito de cifrasdecimales ? :Verdadero, en caso contrario serían racionales0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = 1Ejemplo de números enteros = ?

−1Ejemplo de números racionales = 1

3

Ejemplo de números irracionales = π,√

2Ejemplo de números complejos = 2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : Falso 1

3 = 0,3333333.....¿Los números irracionales tiene un número infinito de cifrasdecimales ? :Verdadero, en caso contrario serían racionales0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = 1Ejemplo de números enteros = −1Ejemplo de números racionales = ?

13

Ejemplo de números irracionales = π,√

2Ejemplo de números complejos = 2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : Falso 1

3 = 0,3333333.....¿Los números irracionales tiene un número infinito de cifrasdecimales ? :Verdadero, en caso contrario serían racionales0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = 1Ejemplo de números enteros = −1Ejemplo de números racionales = 1

3

Ejemplo de números irracionales = ?

π,√

2Ejemplo de números complejos = 2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : Falso 1

3 = 0,3333333.....¿Los números irracionales tiene un número infinito de cifrasdecimales ? :Verdadero, en caso contrario serían racionales0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = 1Ejemplo de números enteros = −1Ejemplo de números racionales = 1

3

Ejemplo de números irracionales = π,√

2Ejemplo de números complejos = ?

2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : Falso 1

3 = 0,3333333.....¿Los números irracionales tiene un número infinito de cifrasdecimales ? :Verdadero, en caso contrario serían racionales0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = 1Ejemplo de números enteros = −1Ejemplo de números racionales = 1

3

Ejemplo de números irracionales = π,√

2Ejemplo de números complejos = 2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : Falso 1

3 = 0,3333333.....¿Los números irracionales tiene un número infinito de cifrasdecimales ? :Verdadero, en caso contrario serían racionales0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = 1Ejemplo de números enteros = −1Ejemplo de números racionales = 1

3

Ejemplo de números irracionales = π,√

2Ejemplo de números complejos = 2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : verdadero o falso?

Falso 13 = 0,3333333.....

¿Los números irracionales tiene un número infinito de cifrasdecimales ? :Verdadero, en caso contrario serían racionales0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = 1Ejemplo de números enteros = −1Ejemplo de números racionales = 1

3

Ejemplo de números irracionales = π,√

2Ejemplo de números complejos = 2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : Falso 1

3 = 0,3333333.....

¿Los números irracionales tiene un número infinito de cifrasdecimales ? :Verdadero, en caso contrario serían racionales0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = 1Ejemplo de números enteros = −1Ejemplo de números racionales = 1

3

Ejemplo de números irracionales = π,√

2Ejemplo de números complejos = 2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : Falso 1

3 = 0,3333333.....¿Los números irracionales tiene un número infinito de cifrasdecimales ? :verdadero o falso?

Verdadero, en caso contrarioserían racionales 0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

Tipos de NúmerosEjemplo de números naturales = 1Ejemplo de números enteros = −1Ejemplo de números racionales = 1

3

Ejemplo de números irracionales = π,√

2Ejemplo de números complejos = 2 + 3i

Verdadero o Falso ?¿Los números racionales tienen siempre un número finito decifras decimales? : Falso 1

3 = 0,3333333.....¿Los números irracionales tiene un número infinito de cifrasdecimales ? :Verdadero, en caso contrario serían racionales0,789 = 789

1000

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 4 / 31

ULPGCLogo

Aritméticas de precisión finita

TeoremaUn número real positivo y se puede expresar como

y = 2e∞∑

n=0

an

2n = 2e(

a0 +a1

2+

a2

22 + · · · + · · ·)

donde e es un número entero, a0 = 1, y para n > 0, an = 0 ó an = 1.

Ejemplo (Expresion de números sencillos)

5 = 22(

1 +02+

122 +

023 +

024 + ....

)

11 = 23(

1 +02+

122 +

123 +

024 + ....

)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 5 / 31

ULPGCLogo

Aritméticas de precisión finita

TeoremaUn número real positivo y se puede expresar como

y = 2e∞∑

n=0

an

2n = 2e(

a0 +a1

2+

a2

22 + · · · + · · ·)

donde e es un número entero, a0 = 1, y para n > 0, an = 0 ó an = 1.

Ejemplo (Expresion de números sencillos)

5 = 2?(

1 +?2

+?22 +

?23 +

?24 + ....

)

5 = 22(

1 +02+

122 +

023 +

024 + ....

)

11 = 23(

1 +02+

122 +

123 +

024 + ....

)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 5 / 31

ULPGCLogo

Aritméticas de precisión finita

TeoremaUn número real positivo y se puede expresar como

y = 2e∞∑

n=0

an

2n = 2e(

a0 +a1

2+

a2

22 + · · · + · · ·)

donde e es un número entero, a0 = 1, y para n > 0, an = 0 ó an = 1.

Ejemplo (Expresion de números sencillos)

5 = 22(

1 +02+

122 +

023 +

024 + ....

)

11 = 23(

1 +02+

122 +

123 +

024 + ....

)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 5 / 31

ULPGCLogo

Aritméticas de precisión finita

TeoremaUn número real positivo y se puede expresar como

y = 2e∞∑

n=0

an

2n = 2e(

a0 +a1

2+

a2

22 + · · · + · · ·)

donde e es un número entero, a0 = 1, y para n > 0, an = 0 ó an = 1.

Ejemplo (Expresion de números sencillos)

5 = 22(

1 +02+

122 +

023 +

024 + ....

)

11 = 2?(

1 +?2

+?22 +

?23 +

?24 + ....

)

11 = 23(

1 +02+

122 +

123 +

024 + ....

)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 5 / 31

ULPGCLogo

Aritméticas de precisión finita

TeoremaUn número real positivo y se puede expresar como

y = 2e∞∑

n=0

an

2n = 2e(

a0 +a1

2+

a2

22 + · · · + · · ·)

donde e es un número entero, a0 = 1, y para n > 0, an = 0 ó an = 1.

Ejemplo (Expresion de números sencillos)

5 = 22(

1 +02+

122 +

023 +

024 + ....

)

11 = 23

(1 +

?2

+?22 +

?23 +

?24 + ....

)

11 = 23(

1 +02+

122 +

123 +

024 + ....

)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 5 / 31

ULPGCLogo

Aritméticas de precisión finita

TeoremaUn número real positivo y se puede expresar como

y = 2e∞∑

n=0

an

2n = 2e(

a0 +a1

2+

a2

22 + · · · + · · ·)

donde e es un número entero, a0 = 1, y para n > 0, an = 0 ó an = 1.

Ejemplo (Expresion de números sencillos)

5 = 22(

1 +02+

122 +

023 +

024 + ....

)

11 = 23

(1 +

02+

?22 +

?23 +

?24 + ....

)

11 = 23(

1 +02+

122 +

123 +

024 + ....

)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 5 / 31

ULPGCLogo

Aritméticas de precisión finita

TeoremaUn número real positivo y se puede expresar como

y = 2e∞∑

n=0

an

2n = 2e(

a0 +a1

2+

a2

22 + · · · + · · ·)

donde e es un número entero, a0 = 1, y para n > 0, an = 0 ó an = 1.

Ejemplo (Expresion de números sencillos)

5 = 22(

1 +02+

122 +

023 +

024 + ....

)

11 = 23

(1 +

02+

122 +

?23 +

?24 + ....

)

11 = 23(

1 +02+

122 +

123 +

024 + ....

)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 5 / 31

ULPGCLogo

Aritméticas de precisión finita

TeoremaUn número real positivo y se puede expresar como

y = 2e∞∑

n=0

an

2n = 2e(

a0 +a1

2+

a2

22 + · · · + · · ·)

donde e es un número entero, a0 = 1, y para n > 0, an = 0 ó an = 1.

Ejemplo (Expresion de números sencillos)

5 = 22(

1 +02+

122 +

023 +

024 + ....

)

11 = 23

(1 +

02+

122 +

123 +

?24 + ....

)

11 = 23(

1 +02+

122 +

123 +

024 + ....

)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 5 / 31

ULPGCLogo

Aritméticas de precisión finita

TeoremaUn número real positivo y se puede expresar como

y = 2e∞∑

n=0

an

2n = 2e(

a0 +a1

2+

a2

22 + · · · + · · ·)

donde e es un número entero, a0 = 1, y para n > 0, an = 0 ó an = 1.

Ejemplo (Expresion de números sencillos)

5 = 22(

1 +02+

122 +

023 +

024 + ....

)

11 = 23(

1 +02+

122 +

123 +

024 + ....

)Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 5 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaDemostrar que al representar el número real 0,1 como

0,1 = 2e∞∑

n=0

an

2n

el número de elementos no nulos an es infinito.

ProblemaRepresentar el número 0,703125 como

0,703125 = 2e∞∑

n=0

an

2n

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 6 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaDemostrar que al representar el número real 0,1 como

0,1 = 2e∞∑

n=0

an

2n

el número de elementos no nulos an es infinito.

ProblemaRepresentar el número 0,703125 como

0,703125 = 2e∞∑

n=0

an

2n

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 6 / 31

ULPGCLogo

Aritméticas de precisión finita

Por tanto, en una aritmética de precisión finita, los números realesdistintos de cero se representan como

Definición

y = ±2et∑

n=0

an

2n

donde e varía entre dos valores limites emin ≤ e ≤ emax . Al valor t sele llama precisión de la aritmética.

A la secuencia a0a1a2a3......at ,(donde ai ∈ {0,1}) se le denomina mantisa. Hay que hacer notar aquíque, dado que hemos impuesto siempre que a0 = 1, el número 0debemos añadirlo a la aritmética, ya que 0 no se puede representarde la forma anterior.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 7 / 31

ULPGCLogo

Aritméticas de precisión finita

Por tanto, en una aritmética de precisión finita, los números realesdistintos de cero se representan como

Definición

y = ±2et∑

n=0

an

2n

donde e varía entre dos valores limites emin ≤ e ≤ emax . Al valor t sele llama precisión de la aritmética. A la secuencia a0a1a2a3......at ,(donde ai ∈ {0,1}) se le denomina mantisa.

Hay que hacer notar aquíque, dado que hemos impuesto siempre que a0 = 1, el número 0debemos añadirlo a la aritmética, ya que 0 no se puede representarde la forma anterior.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 7 / 31

ULPGCLogo

Aritméticas de precisión finita

Por tanto, en una aritmética de precisión finita, los números realesdistintos de cero se representan como

Definición

y = ±2et∑

n=0

an

2n

donde e varía entre dos valores limites emin ≤ e ≤ emax . Al valor t sele llama precisión de la aritmética. A la secuencia a0a1a2a3......at ,(donde ai ∈ {0,1}) se le denomina mantisa. Hay que hacer notar aquíque, dado que hemos impuesto siempre que a0 = 1,

el número 0debemos añadirlo a la aritmética, ya que 0 no se puede representarde la forma anterior.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 7 / 31

ULPGCLogo

Aritméticas de precisión finita

Por tanto, en una aritmética de precisión finita, los números realesdistintos de cero se representan como

Definición

y = ±2et∑

n=0

an

2n

donde e varía entre dos valores limites emin ≤ e ≤ emax . Al valor t sele llama precisión de la aritmética. A la secuencia a0a1a2a3......at ,(donde ai ∈ {0,1}) se le denomina mantisa. Hay que hacer notar aquíque, dado que hemos impuesto siempre que a0 = 1, el número 0debemos añadirlo a la aritmética, ya que 0 no se puede representarde la forma anterior.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 7 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaCalcular los valores positivos mínimo y máximo que puede tomar unnúmero real en una aritmética de precisión finita en función de t , eminy emax .

Solución :Número real mínimo de la aritméticaymin =2?

∑tn=0

?2n

2emin

(1 +

∑tn=1

02n

)Número real máximo de la aritméticaymax = 2emax

(∑tn=0

12n

)∑t

n=012n =

1− 12t+1

1− 12

=2− 12t

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 8 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaCalcular los valores positivos mínimo y máximo que puede tomar unnúmero real en una aritmética de precisión finita en función de t , eminy emax .

Solución :Número real mínimo de la aritméticaymin = 2emin

(1 +

∑tn=1

02n

)

Número real máximo de la aritméticaymax = 2emax

(∑tn=0

12n

)∑t

n=012n =

1− 12t+1

1− 12

=2− 12t

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 8 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaCalcular los valores positivos mínimo y máximo que puede tomar unnúmero real en una aritmética de precisión finita en función de t , eminy emax .

Solución :Número real mínimo de la aritméticaymin = 2emin

(1 +

∑tn=1

02n

)Número real máximo de la aritméticaymax =2?

∑tn=0

?2n

2emax(∑t

n=012n

)∑t

n=012n =

1− 12t+1

1− 12

=2− 12t

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 8 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaCalcular los valores positivos mínimo y máximo que puede tomar unnúmero real en una aritmética de precisión finita en función de t , eminy emax .

Solución :Número real mínimo de la aritméticaymin = 2emin

(1 +

∑tn=1

02n

)Número real máximo de la aritméticaymax = 2emax

(∑tn=0

12n

)

∑tn=0

12n =

1− 12t+1

1− 12

=2− 12t

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 8 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaCalcular los valores positivos mínimo y máximo que puede tomar unnúmero real en una aritmética de precisión finita en función de t , eminy emax .

Solución :Número real mínimo de la aritméticaymin = 2emin

(1 +

∑tn=1

02n

)Número real máximo de la aritméticaymax = 2emax

(∑tn=0

12n

)∑t

n=012n = ?

1− 12t+1

1− 12

=2− 12t

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 8 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaCalcular los valores positivos mínimo y máximo que puede tomar unnúmero real en una aritmética de precisión finita en función de t , eminy emax .

Solución :Número real mínimo de la aritméticaymin = 2emin

(1 +

∑tn=1

02n

)Número real máximo de la aritméticaymax = 2emax

(∑tn=0

12n

)∑t

n=012n =

1− 12t+1

1− 12

=2− 12t

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 8 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaCalcular los valores positivos mínimo y máximo que puede tomar unnúmero real en una aritmética de precisión finita en función de t , eminy emax .

Solución :Número real mínimo de la aritméticaymin = 2emin

(1 +

∑tn=1

02n

)Número real máximo de la aritméticaymax = 2emax

(∑tn=0

12n

)∑t

n=012n =

1− 12t+1

1− 12

=2− 12t

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 8 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaCalcular todos los números reales que se pueden construir tomando 5bits de la forma siguiente: 1 bit para el signo, 2 bits para la mantisa (esdecir t = 3, puesto que a0 = 1 y sólo se almacenan a1 y a2) y 2 bitspara el exponente e, tomando como rango de e = −2,−1,0,1.Representar dichos números sobre una recta.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 9 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 ?

12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12 ?

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

23 ?

12 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

22 ?

12 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 ?1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0

1 ?1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1

1 + 122 ?1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122

1 + 12 ?1 + 1

2 + 122

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2

1 + 12 + 1

22

e = 1 ?2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 ?2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1

2 2 + 12 ?2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2

2 + 12 2 + 1 ?2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12

2 + 1 2 + 1 + 12

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1

2 + 1 + 12

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Solución: Los valores posibles positivos se representan en lasiguiente tabla

e a1 = a2 = 0 a1 = 0,a2 = 1 a1 = 1,a2 = 0 a1 = a2 = 1e = −2 1

22122 + 1

24122 + 1

23122 + 1

23 + 124

e = −1 12

12 + 1

2312 + 1

2212 + 1

22 + 123

e = 0 1 1 + 122 1 + 1

2 1 + 12 + 1

22

e = 1 2 2 + 12 2 + 1 2 + 1 + 1

2

los valores negativos son los mismos cambiados de signo.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 10 / 31

ULPGCLogo

Aritméticas de precisión finita

Si representamos los números positivos sobre una recta obtenemos

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 11 / 31

ULPGCLogo

Contenido

1 Los diferentes tipos de números y como se escriben en base 2

2 Las aritméticas standard de 32 y 64 bits

3 El tratamiento de las excepciones en una aritmética

4 La unidad de redondeo de una aritmética

5 Acotaciones del error de redondeo

6 Comparación de variables

7 Fuentes de errores númericos

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 12 / 31

ULPGCLogo

Aritméticas de precisión finita

En 1985, la sociedad I.E.E.E. presentó una serie de especificacionesestándares para la definición de una aritmética de precisión finita paralos números reales. En este trabajo, se codifica un número real ensimple precisión utilizando 32 bits de memoria, de los cuales 23 bitsse utilizan para la mantisa (es decir t = 23 puesto que a0 = 1 no sealmacena), 1 bit se utiliza para el signo y 8 bits se utilizan para elexponente e, lo cual da un rango de 28 = 256 valores posibles para elexponente e. En este caso, por ejemplo, se toma emin = −126 yemax = 127.

Como puede observarse, el número total de exponentesposibles es 254, dos menos que los 256 posibles, ello se hace así,porque se reservan dos casos para tratar las denominadasexcepciones, como se verá más adelante.El valor máximo que puede tomar un número en esta aritmética es

ymax = 212723∑

n=0

12n = 3.4× 1038

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 13 / 31

ULPGCLogo

Aritméticas de precisión finita

En 1985, la sociedad I.E.E.E. presentó una serie de especificacionesestándares para la definición de una aritmética de precisión finita paralos números reales. En este trabajo, se codifica un número real ensimple precisión utilizando 32 bits de memoria, de los cuales 23 bitsse utilizan para la mantisa (es decir t = 23 puesto que a0 = 1 no sealmacena), 1 bit se utiliza para el signo y 8 bits se utilizan para elexponente e, lo cual da un rango de 28 = 256 valores posibles para elexponente e. En este caso, por ejemplo, se toma emin = −126 yemax = 127. Como puede observarse, el número total de exponentesposibles es 254, dos menos que los 256 posibles, ello se hace así,porque se reservan dos casos para tratar las denominadasexcepciones, como se verá más adelante.

El valor máximo que puede tomar un número en esta aritmética es

ymax = 212723∑

n=0

12n = 3.4× 1038

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 13 / 31

ULPGCLogo

Aritméticas de precisión finita

En 1985, la sociedad I.E.E.E. presentó una serie de especificacionesestándares para la definición de una aritmética de precisión finita paralos números reales. En este trabajo, se codifica un número real ensimple precisión utilizando 32 bits de memoria, de los cuales 23 bitsse utilizan para la mantisa (es decir t = 23 puesto que a0 = 1 no sealmacena), 1 bit se utiliza para el signo y 8 bits se utilizan para elexponente e, lo cual da un rango de 28 = 256 valores posibles para elexponente e. En este caso, por ejemplo, se toma emin = −126 yemax = 127. Como puede observarse, el número total de exponentesposibles es 254, dos menos que los 256 posibles, ello se hace así,porque se reservan dos casos para tratar las denominadasexcepciones, como se verá más adelante.El valor máximo que puede tomar un número en esta aritmética es

ymax = 212723∑

n=0

12n = 3.4× 1038

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 13 / 31

ULPGCLogo

Aritméticas de precisión finita

y el valor mínimo positivo es

ymin = 2−126 × 1 = 1.18× 10−38

Además, el número de combinaciones posibles que puede tener lamantisa es 223 ≈ 1.68× 107. Es decir, la aritmética tiene unaprecisión de 7 dígitos decimales.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 14 / 31

ULPGCLogo

Aritméticas de precisión finita

y el valor mínimo positivo es

ymin = 2−126 × 1 = 1.18× 10−38

Además, el número de combinaciones posibles que puede tener lamantisa es 223 ≈ 1.68× 107. Es decir, la aritmética tiene unaprecisión de 7 dígitos decimales.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 14 / 31

ULPGCLogo

Aritméticas de precisión finita

También se define en este trabajo de I.E.E.E. un estándar para una aritmética endoble precisión. En este caso, se utilizan 64 bits para almacenar un número real,de los cuales 52 bits se utilizan para la mantisa (t = 52), 1 bit para el signo y 11bits para el exponente, lo que da lugar a 211 = 2048 posibilidades de elección deexponente e. En este caso, se toma emin = −1022 y emax = 1023.

Por tanto, el valor máximo que puede tomar un número real en esta aritmética es

ymax = 2102352∑

n=0

12n = 1.78× 10308

y el valor mínimo positivo es

ymin = 2−1022 × 1 = 2.23× 10−308

Además, el número de combinaciones posibles que puede tener la mantisa es252 ≈ 9.0×1015. Es decir, la aritmética tiene una precisión de 15 dígitos decimales.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 15 / 31

ULPGCLogo

Aritméticas de precisión finita

También se define en este trabajo de I.E.E.E. un estándar para una aritmética endoble precisión. En este caso, se utilizan 64 bits para almacenar un número real,de los cuales 52 bits se utilizan para la mantisa (t = 52), 1 bit para el signo y 11bits para el exponente, lo que da lugar a 211 = 2048 posibilidades de elección deexponente e. En este caso, se toma emin = −1022 y emax = 1023.Por tanto, el valor máximo que puede tomar un número real en esta aritmética es

ymax = 2102352∑

n=0

12n = 1.78× 10308

y el valor mínimo positivo es

ymin = 2−1022 × 1 = 2.23× 10−308

Además, el número de combinaciones posibles que puede tener la mantisa es252 ≈ 9.0×1015. Es decir, la aritmética tiene una precisión de 15 dígitos decimales.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 15 / 31

ULPGCLogo

Aritméticas de precisión finita

También se define en este trabajo de I.E.E.E. un estándar para una aritmética endoble precisión. En este caso, se utilizan 64 bits para almacenar un número real,de los cuales 52 bits se utilizan para la mantisa (t = 52), 1 bit para el signo y 11bits para el exponente, lo que da lugar a 211 = 2048 posibilidades de elección deexponente e. En este caso, se toma emin = −1022 y emax = 1023.Por tanto, el valor máximo que puede tomar un número real en esta aritmética es

ymax = 2102352∑

n=0

12n = 1.78× 10308

y el valor mínimo positivo es

ymin = 2−1022 × 1 = 2.23× 10−308

Además, el número de combinaciones posibles que puede tener la mantisa es252 ≈ 9.0×1015. Es decir, la aritmética tiene una precisión de 15 dígitos decimales.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 15 / 31

ULPGCLogo

Contenido

1 Los diferentes tipos de números y como se escriben en base 2

2 Las aritméticas standard de 32 y 64 bits

3 El tratamiento de las excepciones en una aritmética

4 La unidad de redondeo de una aritmética

5 Acotaciones del error de redondeo

6 Comparación de variables

7 Fuentes de errores númericos

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 16 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ =?

10 = 2emax+1 (1 + 0

2 + 022 + 0

23 + 024 + .......

)(ai = 0)

Operación no validaNaN =

√−1 = 2emax+1 (1 + 0

2 + 022 + 1

23 + 024 + .......

)(algún

ai 6= 0)El cero0 = 2emin−1 (1 + 0

2 + 022 + 0

23 + 024 + .......

)(ai = 0)

Números más pequeñosy = 2emin−1 (0

2 + 022 + 1

23 + 024 + .......

)(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ = 1

0

= 2emax+1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)

Operación no validaNaN =

√−1 = 2emax+1 (1 + 0

2 + 022 + 1

23 + 024 + .......

)(algún

ai 6= 0)El cero0 = 2emin−1 (1 + 0

2 + 022 + 0

23 + 024 + .......

)(ai = 0)

Números más pequeñosy = 2emin−1 (0

2 + 022 + 1

23 + 024 + .......

)(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ = 1

0 = 2emax+1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)

Operación no validaNaN =

√−1 = 2emax+1 (1 + 0

2 + 022 + 1

23 + 024 + .......

)(algún

ai 6= 0)El cero0 = 2emin−1 (1 + 0

2 + 022 + 0

23 + 024 + .......

)(ai = 0)

Números más pequeñosy = 2emin−1 (0

2 + 022 + 1

23 + 024 + .......

)(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ = 1

0 = 2emax+1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)Operación no validaNaN =?

√−1 = 2emax+1 (1 + 0

2 + 022 + 1

23 + 024 + .......

)(algún

ai 6= 0)

El cero0 = 2emin−1 (1 + 0

2 + 022 + 0

23 + 024 + .......

)(ai = 0)

Números más pequeñosy = 2emin−1 (0

2 + 022 + 1

23 + 024 + .......

)(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ = 1

0 = 2emax+1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)Operación no validaNaN =

√−1

= 2emax+1 (1 + 02 + 0

22 + 123 + 0

24 + .......)

(algúnai 6= 0)

El cero0 = 2emin−1 (1 + 0

2 + 022 + 0

23 + 024 + .......

)(ai = 0)

Números más pequeñosy = 2emin−1 (0

2 + 022 + 1

23 + 024 + .......

)(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ = 1

0 = 2emax+1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)Operación no validaNaN =

√−1 = 2emax+1 (1 + 0

2 + 022 + 1

23 + 024 + .......

)(algún

ai 6= 0)

El cero0 =

2emin−1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)Números más pequeñosy = 2emin−1 (0

2 + 022 + 1

23 + 024 + .......

)(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ = 1

0 = 2emax+1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)Operación no validaNaN =

√−1 = 2emax+1 (1 + 0

2 + 022 + 1

23 + 024 + .......

)(algún

ai 6= 0)El cero0 = ?

2emin−1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)

Números más pequeñosy = 2emin−1 (0

2 + 022 + 1

23 + 024 + .......

)(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ = 1

0 = 2emax+1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)Operación no validaNaN =

√−1 = 2emax+1 (1 + 0

2 + 022 + 1

23 + 024 + .......

)(algún

ai 6= 0)El cero0 = 2emin−1 (1 + 0

2 + 022 + 0

23 + 024 + .......

)(ai = 0)

Números más pequeñosy =

2emin−1 (02 + 0

22 + 123 + 0

24 + .......)

(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ = 1

0 = 2emax+1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)Operación no validaNaN =

√−1 = 2emax+1 (1 + 0

2 + 022 + 1

23 + 024 + .......

)(algún

ai 6= 0)El cero0 = 2emin−1 (1 + 0

2 + 022 + 0

23 + 024 + .......

)(ai = 0)

Números más pequeñosy = ?

2emin−1 (02 + 0

22 + 123 + 0

24 + .......)

(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

Tratamiento de las excepciones en el estándar de I.E.E.E.

Infinito∞ = 1

0 = 2emax+1 (1 + 02 + 0

22 + 023 + 0

24 + .......)

(ai = 0)Operación no validaNaN =

√−1 = 2emax+1 (1 + 0

2 + 022 + 1

23 + 024 + .......

)(algún

ai 6= 0)El cero0 = 2emin−1 (1 + 0

2 + 022 + 0

23 + 024 + .......

)(ai = 0)

Números más pequeñosy = 2emin−1 (0

2 + 022 + 1

23 + 024 + .......

)(a0 = 0 y algún ai 6= 0)

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 17 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el número positivo (mayor que cero) máspequeño

Algoritmo Menor_Numero_Positivovariable real A←1.variable entera M←0mientras A>0 hacer

A←A/2M←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 18 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el número positivo (mayor que cero) máspequeño

Algoritmo Menor_Numero_Positivovariable real A←1.variable entera M←0mientras A>0 hacer

A←A/2M←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 18 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el número positivo (mayor que cero) máspequeño

Algoritmo Menor_Numero_Positivovariable real A←1.variable entera M←0mientras A>0 hacer

A←A/2M←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 18 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el número positivo (mayor que cero) máspequeño

Algoritmo Menor_Numero_Positivovariable real A←1.variable entera M←0mientras A>0 hacer

A←A/2M←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 18 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el número positivo (mayor que cero) máspequeño

Algoritmo Menor_Numero_Positivovariable real A←1.variable entera M←0mientras A>0 hacer

A←A/2M←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 18 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el número positivo (mayor que cero) máspequeño

Algoritmo Menor_Numero_Positivovariable real A←1.variable entera M←0mientras A>0 hacer

A←A/2M←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 18 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el mayor número positivo de unaaritmética. El programa devuelve un entero M tal que 2M es el númeropositivo mayor posible.

Algoritmo Mayor_Numero_Positivovariable real A←1.variable real B←2.variable entera M←0mientras B>A hacer

A←2*AB←2*AM←M+1

fin mientrasescribir(M-1)

finalgoritmoLuis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 19 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el mayor número positivo de unaaritmética. El programa devuelve un entero M tal que 2M es el númeropositivo mayor posible.

Algoritmo Mayor_Numero_Positivovariable real A←1.variable real B←2.variable entera M←0mientras B>A hacer

A←2*AB←2*AM←M+1

fin mientrasescribir(M-1)

finalgoritmoLuis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 19 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el mayor número positivo de unaaritmética. El programa devuelve un entero M tal que 2M es el númeropositivo mayor posible.

Algoritmo Mayor_Numero_Positivovariable real A←1.variable real B←2.variable entera M←0mientras B>A hacer

A←2*AB←2*AM←M+1

fin mientrasescribir(M-1)

finalgoritmoLuis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 19 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el mayor número positivo de unaaritmética. El programa devuelve un entero M tal que 2M es el númeropositivo mayor posible.

Algoritmo Mayor_Numero_Positivovariable real A←1.variable real B←2.variable entera M←0mientras B>A hacer

A←2*AB←2*AM←M+1

fin mientrasescribir(M-1)

finalgoritmoLuis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 19 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el mayor número positivo de unaaritmética. El programa devuelve un entero M tal que 2M es el númeropositivo mayor posible.

Algoritmo Mayor_Numero_Positivovariable real A←1.variable real B←2.variable entera M←0mientras B>A hacer

A←2*AB←2*AM←M+1

fin mientrasescribir(M-1)

finalgoritmoLuis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 19 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el mayor número positivo de unaaritmética. El programa devuelve un entero M tal que 2M es el númeropositivo mayor posible.

Algoritmo Mayor_Numero_Positivovariable real A←1.variable real B←2.variable entera M←0mientras B>A hacer

A←2*AB←2*AM←M+1

fin mientrasescribir(M-1)

finalgoritmoLuis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 19 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular el mayor número positivo de unaaritmética. El programa devuelve un entero M tal que 2M es el númeropositivo mayor posible.

Algoritmo Mayor_Numero_Positivovariable real A←1.variable real B←2.variable entera M←0mientras B>A hacer

A←2*AB←2*AM←M+1

fin mientrasescribir(M-1)

finalgoritmoLuis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 19 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaDada una aritmética de precisión finita cualquiera, calcular la distancia que hay entre elnúmero 1 y su inmediato superior, es decir, el número que va después de 1, y ladistancia entre el número 1 y su inmediato inferior.

Solución:el número inmediato superior a 1 en la aritmética es

1 +12t

y el número inmediato inferior a 1 viene dado por

2−1(

1 +12+ ..+

12t

)=

12 −

12t+2

1− 12

= 1− 12t+1

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 20 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaDada una aritmética de precisión finita cualquiera, calcular la distancia que hay entre elnúmero 1 y su inmediato superior, es decir, el número que va después de 1, y ladistancia entre el número 1 y su inmediato inferior.

Solución:el número inmediato superior a 1 en la aritmética es

?

1 +12t

y el número inmediato inferior a 1 viene dado por

2−1(

1 +12+ ..+

12t

)=

12 −

12t+2

1− 12

= 1− 12t+1

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 20 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaDada una aritmética de precisión finita cualquiera, calcular la distancia que hay entre elnúmero 1 y su inmediato superior, es decir, el número que va después de 1, y ladistancia entre el número 1 y su inmediato inferior.

Solución:el número inmediato superior a 1 en la aritmética es

1 +12t

y el número inmediato inferior a 1 viene dado por

?

2−1(

1 +12+ ..+

12t

)=

12 −

12t+2

1− 12

= 1− 12t+1

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 20 / 31

ULPGCLogo

Aritméticas de precisión finita

ProblemaDada una aritmética de precisión finita cualquiera, calcular la distancia que hay entre elnúmero 1 y su inmediato superior, es decir, el número que va después de 1, y ladistancia entre el número 1 y su inmediato inferior.

Solución:el número inmediato superior a 1 en la aritmética es

1 +12t

y el número inmediato inferior a 1 viene dado por

2−1(

1 +12+ ..+

12t

)=

12 −

12t+2

1− 12

= 1− 12t+1

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 20 / 31

ULPGCLogo

Contenido

1 Los diferentes tipos de números y como se escriben en base 2

2 Las aritméticas standard de 32 y 64 bits

3 El tratamiento de las excepciones en una aritmética

4 La unidad de redondeo de una aritmética

5 Acotaciones del error de redondeo

6 Comparación de variables

7 Fuentes de errores númericos

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 21 / 31

ULPGCLogo

Aritméticas de precisión finita

Dado un número real cualquiera y , al representarlo en una aritméticade precisión finita se produce un error de redondeo, llamaremos y ∈ Aal número real que mejor aproxima a y dentro de A.

DefiniciónDada una aritmética de precisión finita, se define la unidad deredondeo u como

u = ?

12t

Por ejemplo, si t = 23 (reales en simple precisión) u = 2−23 ≈ 10−8, yen doble precisión (t = 52), u ≈ 10−16.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 22 / 31

ULPGCLogo

Aritméticas de precisión finita

Dado un número real cualquiera y , al representarlo en una aritméticade precisión finita se produce un error de redondeo, llamaremos y ∈ Aal número real que mejor aproxima a y dentro de A.

DefiniciónDada una aritmética de precisión finita, se define la unidad deredondeo u como

u =12t

Por ejemplo, si t = 23 (reales en simple precisión) u = 2−23 ≈ 10−8, yen doble precisión (t = 52), u ≈ 10−16.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 22 / 31

ULPGCLogo

Aritméticas de precisión finita

Dado un número real cualquiera y , al representarlo en una aritméticade precisión finita se produce un error de redondeo, llamaremos y ∈ Aal número real que mejor aproxima a y dentro de A.

DefiniciónDada una aritmética de precisión finita, se define la unidad deredondeo u como

u =12t

Por ejemplo, si t = 23 (reales en simple precisión) u = 2−23 ≈ 10−8, yen doble precisión (t = 52), u ≈ 10−16.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 22 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular la unidad de redondeo (precisión de laaritmética) de una aritmética. El programa devuelve un entero M talque u = 2−M

Algoritmo Unidad_Redondeovariable real A←1.variable real B←2variable entera M←1mientras B>1 hacer

A←A/2B←1+AM←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 23 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular la unidad de redondeo (precisión de laaritmética) de una aritmética. El programa devuelve un entero M talque u = 2−M

Algoritmo Unidad_Redondeovariable real A←1.variable real B←2variable entera M←1mientras B>1 hacer

A←A/2B←1+AM←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 23 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular la unidad de redondeo (precisión de laaritmética) de una aritmética. El programa devuelve un entero M talque u = 2−M

Algoritmo Unidad_Redondeovariable real A←1.variable real B←2variable entera M←1mientras B>1 hacer

A←A/2B←1+AM←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 23 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular la unidad de redondeo (precisión de laaritmética) de una aritmética. El programa devuelve un entero M talque u = 2−M

Algoritmo Unidad_Redondeovariable real A←1.variable real B←2variable entera M←1mientras B>1 hacer

A←A/2B←1+AM←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 23 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular la unidad de redondeo (precisión de laaritmética) de una aritmética. El programa devuelve un entero M talque u = 2−M

Algoritmo Unidad_Redondeovariable real A←1.variable real B←2variable entera M←1mientras B>1 hacer

A←A/2B←1+AM←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 23 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular la unidad de redondeo (precisión de laaritmética) de una aritmética. El programa devuelve un entero M talque u = 2−M

Algoritmo Unidad_Redondeovariable real A←1.variable real B←2variable entera M←1mientras B>1 hacer

A←A/2B←1+AM←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 23 / 31

ULPGCLogo

Aritméticas de precisión finita

ProgramaPseudocódigo para calcular la unidad de redondeo (precisión de laaritmética) de una aritmética. El programa devuelve un entero M talque u = 2−M

Algoritmo Unidad_Redondeovariable real A←1.variable real B←2variable entera M←1mientras B>1 hacer

A←A/2B←1+AM←M+1

fin mientrasescribir(M-1)

fin algoritmo

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 23 / 31

ULPGCLogo

Contenido

1 Los diferentes tipos de números y como se escriben en base 2

2 Las aritméticas standard de 32 y 64 bits

3 El tratamiento de las excepciones en una aritmética

4 La unidad de redondeo de una aritmética

5 Acotaciones del error de redondeo

6 Comparación de variables

7 Fuentes de errores númericos

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 24 / 31

ULPGCLogo

Aritméticas de precisión finita

A continuación, mostraremos un resultado que indica el error deredondeo máximo que se produce al aproximar un número realcualquiera en una aritmética de precisión finita.

TeoremaSean ymin , ymax los valores positivos menor y mayor de una aritméticade precisión finita. Sea u la unidad de redondeo de dicha aritmética. Siun número real z verifica queymin <| z |< ymax , entonces

| z − z |≤| z | u

donde z es el número más cercano a z en la aritmética.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 25 / 31

ULPGCLogo

Aritméticas de precisión finita

A continuación, mostraremos un resultado que indica el error deredondeo máximo que se produce al aproximar un número realcualquiera en una aritmética de precisión finita.

TeoremaSean ymin , ymax los valores positivos menor y mayor de una aritméticade precisión finita. Sea u la unidad de redondeo de dicha aritmética. Siun número real z verifica queymin <| z |< ymax , entonces

| z − z |≤| z | u

donde z es el número más cercano a z en la aritmética.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 25 / 31

ULPGCLogo

Contenido

1 Los diferentes tipos de números y como se escriben en base 2

2 Las aritméticas standard de 32 y 64 bits

3 El tratamiento de las excepciones en una aritmética

4 La unidad de redondeo de una aritmética

5 Acotaciones del error de redondeo

6 Comparación de variables

7 Fuentes de errores númericos

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 26 / 31

ULPGCLogo

Aritméticas de precisión finita

En muchos algoritmos, el test de parada se basa en el hecho de quedos variables estén próximas entre sí. Por ejemplo si queremosdetener un algoritmo cuando las variables A y B coincidanapróximadamente en sus primeras N cifras significativas podremosutilizar como criterio de parada cualquiera de los siguientes :

| A− B |<| A | ·TOL

| A− B |<| B | ·TOL

| A− B |< max {| A |, | B |} · TOL

donde TOL = 10−N . Si queremos que A y B coincidan en todas suscifras significativas menos las N últimas tomaremos TOL = 10N · udonde u es la unidad de redondeo de la aritmética u = 2−t

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 27 / 31

ULPGCLogo

Aritméticas de precisión finita

En número 0 también es un caso especial cuando comparamosnúmeros. Si A ó B valen 0, los criterios de comparación anteriores nofuncionan bien. Para evitar este problema se le suele sumar unnúmero pequeño positivo al módulo al hacer la comparación, es decirharemos :

| A− B |< (| A | + ε) · TOL

| A− B |< (| B | + ε) · TOL

| A− B |< (max {| A |, | B |}+ ε) · TOL

donde ε es un número pequeño que depende de la aplicaciónnumérica en concreto que estemos implementando. A lo largo delcurso siempre utilizaremos, por sencillez, ε = 1

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 28 / 31

ULPGCLogo

Contenido

1 Los diferentes tipos de números y como se escriben en base 2

2 Las aritméticas standard de 32 y 64 bits

3 El tratamiento de las excepciones en una aritmética

4 La unidad de redondeo de una aritmética

5 Acotaciones del error de redondeo

6 Comparación de variables

7 Fuentes de errores númericos

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 29 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Dentro de las posibles fuentes de errores numéricos, destacaremos 3tipos:

Errores de redondeo. Son los que se producen al ”redondear” unnúmero real para poder expresarlo en una aritmética de precisiónfinita:

| z − z |≤ | z | u

La mayor parte de los errores de redondeo se producen al realizar enlos algoritmos operaciones con números.

Errores de cambio de base. Es un tipo especial de error de redondeoque se produce al realizar un cambio de base para representar unnúmero real. Por ejemplo al hacer la asignación

A = 0,1

estamos generando un error de cambio de base al pasar el número0.1 en base 10 a una variable donde los números se representan enbase 2.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 30 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Dentro de las posibles fuentes de errores numéricos, destacaremos 3tipos:

Errores de redondeo. Son los que se producen al ”redondear” unnúmero real para poder expresarlo en una aritmética de precisiónfinita:

| z − z |≤ ?

| z | u

La mayor parte de los errores de redondeo se producen al realizar enlos algoritmos operaciones con números.

Errores de cambio de base. Es un tipo especial de error de redondeoque se produce al realizar un cambio de base para representar unnúmero real. Por ejemplo al hacer la asignación

A = 0,1

estamos generando un error de cambio de base al pasar el número0.1 en base 10 a una variable donde los números se representan enbase 2.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 30 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Dentro de las posibles fuentes de errores numéricos, destacaremos 3tipos:

Errores de redondeo. Son los que se producen al ”redondear” unnúmero real para poder expresarlo en una aritmética de precisiónfinita:

| z − z |≤ | z | u

La mayor parte de los errores de redondeo se producen al realizar enlos algoritmos operaciones con números.

Errores de cambio de base. Es un tipo especial de error de redondeoque se produce al realizar un cambio de base para representar unnúmero real. Por ejemplo al hacer la asignación

A = 0,1

estamos generando un error de cambio de base al pasar el número0.1 en base 10 a una variable donde los números se representan enbase 2.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 30 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Dentro de las posibles fuentes de errores numéricos, destacaremos 3tipos:

Errores de redondeo. Son los que se producen al ”redondear” unnúmero real para poder expresarlo en una aritmética de precisiónfinita:

| z − z |≤ | z | u

La mayor parte de los errores de redondeo se producen al realizar enlos algoritmos operaciones con números.

Errores de cambio de base. Es un tipo especial de error de redondeoque se produce al realizar un cambio de base para representar unnúmero real. Por ejemplo al hacer la asignación

A = 0,1

estamos generando un error de cambio de base al pasar el número0.1 en base 10 a una variable donde los números se representan enbase 2.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 30 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Errores por Cancelación. Estos errores se producen al restarnúmeros de aproximadamente la misma magnitud.

Por ejemplo, en laconocida fórmula del cálculo de raíces de un polinomio de grado 2,ax2 + bx + c = 0 (con a 6= 0)

x =−b ±

√b2 − 4ac

2a

una forma de evitar la cancelación que se produce cuandob ≈√

b2 − 4ac consiste en calcular primero la raíz de mayor valorabsoluto, es decir

x1 =−(

b + sign(b)√

b2 − 4ac)

2a

y después la segunda raíz x2 utilizando la relación x1x2 = c/a.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 31 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Errores por Cancelación. Estos errores se producen al restarnúmeros de aproximadamente la misma magnitud. Por ejemplo, en laconocida fórmula del cálculo de raíces de un polinomio de grado 2,ax2 + bx + c = 0 (con a 6= 0)

x = ?

−b ±√

b2 − 4ac2a

una forma de evitar la cancelación que se produce cuandob ≈√

b2 − 4ac consiste en calcular primero la raíz de mayor valorabsoluto, es decir

x1 =−(

b + sign(b)√

b2 − 4ac)

2a

y después la segunda raíz x2 utilizando la relación x1x2 = c/a.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 31 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Errores por Cancelación. Estos errores se producen al restarnúmeros de aproximadamente la misma magnitud. Por ejemplo, en laconocida fórmula del cálculo de raíces de un polinomio de grado 2,ax2 + bx + c = 0 (con a 6= 0)

x =−b ±

√b2 − 4ac

2a

una forma de evitar la cancelación que se produce cuandob ≈√

b2 − 4ac consiste en calcular primero la raíz de mayor valorabsoluto, es decir

x1 =−(

b + sign(b)√

b2 − 4ac)

2a

y después la segunda raíz x2 utilizando la relación x1x2 = c/a.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 31 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Errores por Cancelación. Estos errores se producen al restarnúmeros de aproximadamente la misma magnitud. Por ejemplo, en laconocida fórmula del cálculo de raíces de un polinomio de grado 2,ax2 + bx + c = 0 (con a 6= 0)

x =−b ±

√b2 − 4ac

2a

una forma de evitar la cancelación que se produce cuandob ≈√

b2 − 4ac consiste en calcular primero la raíz de mayor valorabsoluto, es decir

x1 =−(

b + sign(b)√

b2 − 4ac)

2a

y después la segunda raíz x2 utilizando la relación x1x2 = c/a.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 31 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Errores por Cancelación. Estos errores se producen al restarnúmeros de aproximadamente la misma magnitud. Por ejemplo, en laconocida fórmula del cálculo de raíces de un polinomio de grado 2,ax2 + bx + c = 0 (con a 6= 0)

x =−b ±

√b2 − 4ac

2a

una forma de evitar la cancelación que se produce cuandob ≈√

b2 − 4ac consiste en calcular primero la raíz de mayor valorabsoluto, es decir

x1 =−(

b + sign(b)√

b2 − 4ac)

2a

y después la segunda raíz x2 utilizando la relación x1x2 = ?

c/a.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 31 / 31

ULPGCLogo

Aritméticas de precisión finitaFuentes de errores numéricos.

Errores por Cancelación. Estos errores se producen al restarnúmeros de aproximadamente la misma magnitud. Por ejemplo, en laconocida fórmula del cálculo de raíces de un polinomio de grado 2,ax2 + bx + c = 0 (con a 6= 0)

x =−b ±

√b2 − 4ac

2a

una forma de evitar la cancelación que se produce cuandob ≈√

b2 − 4ac consiste en calcular primero la raíz de mayor valorabsoluto, es decir

x1 =−(

b + sign(b)√

b2 − 4ac)

2a

y después la segunda raíz x2 utilizando la relación x1x2 = c/a.

Luis Alvarez León () Análisis Numérico Univ. de Las Palmas de G.C. 31 / 31