Sie sind auf Seite 1von 7

Numeros tipo punto flotante

Cualquier numero real x 6= 0 se escribe como

Calculo Cientfico I 1
x = 0.a1a2 . . . ak . . . 10l = r 10l, r<1 (es decir, a1 6= 0).
10
N. Heuer Los numeros de maquina seran

Captulo 1 Conceptos Basicos M = x = 0.a1a2 . . . am 10l = q 10l, M1 l M2, a1 6= 0 {0}.
Aritmetica de punto flotante, estabilidad, convergencia
Esta representacion se llama punto flotante (normalizado), con mantisa
a1a2 . . . am y exponente l.

Los numeros m, M1, M2 dependen de la maquina.

Los numeros de maquina forman un conjunto finito de numeros racionales. La


cantidad de estos numeros que hay entre 0.1 y 1 es
#{x M; 0.1 x < 1} = 9 10m1 = #{x M; 10l x < 10l+1}

Ejercicio. recta, m = M1 = M2 = 1
Nota. Norma IEEE documents/IEEE-754-208.pdf

c Norbert Heuer
UC Chile, 2017 c Norbert Heuer
1 UC Chile, 2017

Numeros tipo punto flotante (cont.) Redondeo


Numeros de maquina M:
Aproximando x por x, se llaman
(0.99 . . . 9 10M2 ) ... (0.1 10M1 ) 0 (0.1 10M1 ) ... (0.99 . . . 9 10M2 )
|x x| error absoluto,

R M
aplicacion |x x|
x 7 fl(x)
error relativo.
|x|
x < 0.99 . . . 9 10M2 7 INF En el caso de redondeo x = round(x):
excepciones (IEEE): x > 0.99 . . . 9 10M2 7 INF

0.1 10M1 < x < 0.1 10M1 7 0 1 1
|x x| 10l
Situacion: 0 < x x x con x0, x00 M
0 00
2 10m

x0 = 0.a1a2 . . . am 10l |x x| 1 10lm


x = 0.a1a2 . . . am . . . 10l : 00 5 10m
x = 0.a1a2 . . . (am + 1) 10l (am 6= 9) |x| 2 0.a1a2 . . . am . . . 10l
1
ya que 0.a1a2 . . . am . . . 10 .
1. fl por truncamiento: fl(x) = x0
El error relativo por redondeo es del orden 10m si la maquina utiliza m
2. fl por redondeo: fl(x) = round(x): mas proximo a x entre x0 y x00. dgitos. distribucion no uniforme de los numeros de maquina

c Norbert Heuer
2 UC Chile, 2017 c Norbert Heuer
3 UC Chile, 2017
Redondeo (cont.) Redondeo (cont.)
Ejemplos.
Si
round(x) = 0.a1a2 . . . am 10l (a1 6= 0) 1 + 4 10m = 0. |10 {z . . . 0} 10m+1
. . . 0} 101 + 0. |40 {z
m m
se dice que conocemos a x con m cifras/dgitos significativos. 1
. . . 0} 4 101
= 0.10 . . . 0 10 + 0. |00 {z
m

round(x) = x(1 + ), || = 5 10m = 0.10 . . . 0 10 + 0.00 . . . 0 101 = 0.10 . . . 0 101 = 1


1

se llama precision o el de la maquina.


Nota. Este es un modelo. El verdadero se calcula con la base 2.
1 + 6 10m = 0. 10 . . . 0} 101 + 0. 60
| {z . . . 0} 10m+1
| {z
m m
Error absoluto: 1
. . . 0} 6 101
= 0.10 . . . 0 10 + 0. |00 {z
|x round(x)| |x| m

= 0.10 . . . 0 10 + 0.00 . . . 1 101 = 0.10 . . . 1 101 6= 1


1

= mn{ > 0; round(1 + ) 6= 1}


1+ depende de como redondea la maquina (ver definicion anterior)
Nota. no es el menor numero que se puede representar en la maquina.

c Norbert Heuer
4 UC Chile, 2017 c Norbert Heuer
5 UC Chile, 2017

Operaciones aritmeticas Operaciones aritmeticas (cont.)


Ejemplo. (5 dgitos)
Igual como los numeros, hay que aproximar las operaciones aritmeticas.
x = 57 , fl(x) = 0.71428
Modelo: operaciones aritmeticas de maquina u = 0.714251, fl(u) = 0.71425
 v = 98765.9, fl(v) = 0.98765 105
RR M w = 0.111111 104, fl(w) = 0.11111 104
~:
(x, y) 7 x ~ y := fl(fl(x) fl(y))
op. maq. resultado exacto err. abs. err. rel.
donde {+, , , }. xu 0.30000 104 0.34714 104 0.471 105 0.136
Ejemplo. x = 75 , y = 13 , truncamiento, 5 dgitos (x u) w 0.29629 101 0.34285 101 0.465 0.136
(x u) v 0.29629 101 0.34285 101 0.465 0.136
fl(x) = fl(0.7142857 . . .) = 0.71428 100, fl(y) = fl(0.3333333 . . .) = 0.33333 100 u+v 0.98765 105 0.98766 105 0.161 101 0.163 104

x~y xy err. abs. err. rel. Restar numeros semejantes: error relativo grande, cancelacion de cifras
22
+ 0.10476 101 21 = 0.1047619 . . . 101 0.190 104 0.182 104 significativas. Siguiente div. por numero pequeno o mult. por num. grande
0.38095 100 8
= 0.3809523 . . . 100 0.238 105 0.625 105 aumenta error absoluto pero no error relativo.
21
5
0.23809 100 21 = 0.2380952 . . . 100 0.524 105 0.220 104 Sumando numeros grandes y pequenos puede producir error absoluto grande, pero
0.21428 101 15
= 0.2142857 . . . 101 0.571 104 0.267 104 no tanto error relativo.
7

c Norbert Heuer
6 UC Chile, 2017 c Norbert Heuer
7 UC Chile, 2017
Operaciones aritmeticas (cont.) Operaciones aritmeticas (cont.)
2
Ejemplo. Calcular las races de ax + bx + c = 0, a 6= 0. Ejemplo. (cont.)

b + b2 4ac b b2 4ac Racionalizacion del numerador:
x1 = , x2 = .
2a 2a
b + b2 4ac b . . . b2 (b2 4ac) 2c
x1 = = =
Caso a = 1, b = 62.10, c = 1 con solucion exacta 2a b . . . 2a(b b 4ac) (b + b2 4ac)
2

x1 = 0.01610723 . . . , x2 = 62.08390 . . . . 2.000 2.000


x1 = = = 0.01610
62.10 + 62.06 124.2
Aritmetica con 4 cifras: |x1 x1 |
error rel. 0.62 103 = 0.062 %
62.10 + 62.06 0.04000 |x1|
x1 = = = 0.02000
2.000 2.000

|x1 x1 | |0.01611 + 0.02000|


error rel. = 0.24 = 24 %
|x1| |0.01611|
y
|x2 x2 |
x2 = 62.10, 0.32 103 = 0.032 %
|x2|

c Norbert Heuer
8 UC Chile, 2017 c Norbert Heuer
9 UC Chile, 2017

Algoritmos y estabilidad Algoritmos y estabilidad (cont.)


Definicion. Un algoritmo es un procedimiento que describe, sin ambiguedades, una Definicion. Un algoritmo se llama estable si pequenos cambios en los datos producen
serie finita de instrucciones en un orden especfico. pequenos cambios en los resultados. En otro caso el algoritmo se llama inestable.
A veces se utiliza el termino condicionalmente estable para algoritmos que son estables
El objetivo es poner en practica un procedimiento para resolver un problema, por bajo condiciones especficas.
ejemplo aproximar la solucion de un problema1.
Nota. No hay lenguaje estandar para formular algoritmos, generalmente se usan estilos Definicion. Sea E0 > 0 el error inicial (en alguna sucesion o algoritmo) y En la
semejantes a lenguajes de programacion. magnitud del error despues de n operaciones sucesivas.
PN Si En CnE0 con constante C independiente de N entonces se dice que el
Ejemplo. Calcular S = i=1 xi. crecimiento del error es lineal.
Algoritmo: Si En C nE0 para alguna constante C > 1 entonces el crecimiento se llama
input: N, x1, . . . , xN (datos) exponencial.
(1) suma = 0 Observacion. Un crecimiento lineal del error es generalmente inevitable y es aceptable.
(2) para i = 1, 2, . . . , N En este caso se trata de un algoritmo estable.
suma = suma + xi Un crecimiento exponencial del error es inaceptable. En este caso se trata de un
output: suma algoritmo inestable.
Nota. Para cada problema hay varios algoritmos que, por redondeo, generalmente
producen diferentes resultados.
1
Precisamente se trata de dos problemas distintos.

c Norbert Heuer
10 UC Chile, 2017 c Norbert Heuer
11 UC Chile, 2017
Algoritmos y estabilidad (cont.) Algoritmos y estabilidad (cont.)
Ejemplo. Dados p0, p1, considerar la recursion
Ejemplo. (cont.)
10
pn = pn1 pn2, n = 2, 3, . . . n pn fl(pn) err. rel.
3
0 0.10000 10+1 0.10000 10+1 0
con solucion exacta 2 0.11110 10+0 0.11111 10+0 0.9 104
 n 5 0.37660 102 0.41152 102 0.8 101
1
pn = c1 + c23n, c1(p0, p1), c2(p0, p1) 8 0.92872 102 0.15242 103 0.6 102
3

1 n
Se trata de un algoritmo inestable.
Caso p0 = 1, p1 = 13 c1 = 1, c2 = 0, pn = 3 expl: sequence1
(aritmetica con 5 cifras):

p0 = fl(p0) = 1,
p1 = fl(p1) = 0.33333
 n
1
c1 = 1, c2 = 0.12500 105, pn = 0.12500 105 3n
3
El error de redondeo crece de forma exponencial:

pn pn = 0.12500 105 3n

c Norbert Heuer
12 UC Chile, 2017 c Norbert Heuer
13 UC Chile, 2017

Algoritmos y estabilidad (cont.) Algoritmos y estabilidad (cont.)


Ejemplo. Ejemplo. (cont.)
pn = 2pn1 pn2, n = 2, 3, . . .
n pn fl(pn) err. rel.
con solucion exacta
0 0.10000 101 0.10000 101 0
pn = c1 + c2n, c1(p0, p1), c2(p0, p1)
2 0.33330 100 0.33333 100 0.9 104
1
Caso p0 = 1, p1 = 3 c1 = 1, c2 = 23 , pn = 1 23 n expl: sequence2 5 0.23334 101 0.23333 101 0.4 104
(aritmetica con 5 cifras): 8 0.43334 101 0.43333 101 0.2 104

p0 = fl(p0) = 1, p1 = fl(p1) = 0.33333 Se trata de un algoritmo estable.

c1 = 1, c2 = 0.66667
pn = 1 0.66667 n
El error de redondeo crece de forma lineal:

2
pn pn = (0.66667 ) n
3

c Norbert Heuer
14 UC Chile, 2017 c Norbert Heuer
15 UC Chile, 2017
Condicionamiento de problemas Condicionamiento de problemas (cont.)
Ejemplo. Sea f una funcion derivable y x R. Problema: Calcular f (x).
En vez de estabilidad de problemas se habla de su condicionamiento:
Perturbamos x por h (pequeno) y nos da la solucion perturbada f (x + h).
Definicion. Un problema es bien condicionado si pequenos cambios en los datos
producen pequenos cambios en la solucion. En otro caso el problema se llama mal |f (x + h) f (x)| = |f 0() h| |h f 0(x)|
condicionado. A veces se define un numero de condicion que es grande para
problemas mal condicionados.
|f 0(x)| pequeno perturbacion |f (x + h) f (x)| pequena (bien condicionado)
Nota. Hay que distinguir entre el condicionamiento de problemas y la estabilidad de
algoritmos. Normalmente hay algoritmos estables e inestables para la solucion de Generalmente mas importante es el error (o perturbacion) relativo:
problemas bien condicionados, pero disenar algoritmos estables para problemas mal
f (x + h) f (x) h f 0(x) xf 0(x) h
condicionados es no trivial. = (f (x) 6= 0)
f (x) f (x) f (x) x
0
xf (x)
numero de condicion: (f (x) 6= 0)
f (x)
xf 0(x) x
ejemplo: f (x) = arcsin(x), = (x 1).
f (x) 2
1 x arcsin(x)
La evaluacion de arcsin(x) es mal condicionada en x = 1, en sentido absoluto y
relativo.

c Norbert Heuer
16 UC Chile, 2017 c Norbert Heuer
17 UC Chile, 2017

Convergencia Convergencia (cont.)


Definicion. Sean (n) una sucesion convergente a , y (n) una sucesion positiva
(n > 0) que converge a cero. Ejemplos.
 
(i) Si existe una constante K > 0 y n0 N t.q. n+1 n+1 n+n 2 1
n := 0, |n 0| = |n| = = = O , n
n2 n2 n2 n n
|n | K n n n0
 
n+3 n + 3n 4 1
entonces n converge a con rapidez (o razon) de convergencia O(n): n := 3
0, |n| 3
= 2=O , n
n n n n2
n = + O(n), n . Tambien se verifican todas las afirmaciones
 
(ii) 1
n = o(1), n = o , n = O(1) (n )
|n | n
n = + o(n), n : 0, n
n      
(iii) n converge a con orden l si ex. K > 0 y n0 N t.q. 1 1 1
n = o, n = o , n = O (n )
n n3/2 n
l
|n | K |n1 | n n0. pero las expresiones anteriores son mas precisas. Ademas, hemos utilizado las
expresiones O() y o() para sucesiones que no convergen a 0.
En el caso l = 1 se requiere que K < 1 y se habla de convergencia lineal. Los casos
l = 2 y l = 3 se llaman convergencia cuadratica y cubica, resp. Se establece que ambas sucesiones no convergen linealmente a 0.

c Norbert Heuer
18 UC Chile, 2017 c Norbert Heuer
19 UC Chile, 2017
Convergencia (cont.) Convergencia (cont.)
Ejercicio. Encontrar una sucesion con convergencia cuadratica. Ejercicios. Mostrar las siguientes afirmaciones:
Definicion. Sean F, G funciones con lmxx0 G(x) = 0 y lmxx0 F (x) = L. (i) cos(x) + 12 x2 = 1 + O(x4), x 0.
(ii) Sean F1, F2 dos funciones con
(i) Si existe K > 0 t.q.

|F (x) L| K |G(x)| x con |x x0| suf. peq. F1(x) = L1 + O(x1 ), F2(x) = L2 + O(x2 ) (x 0), 1, 2 > 0.

entonces se escribe Entonces


F (x) = L + O(G(x)), x x0.
(ii) Sea G(x) 6= 0 en una vecindad de x0 para x 6= x0. Si F (x) := c1F1(x) + c2F2(x) = c1L1 + c2L2 + O(xmn{1,2}), x0
|F (x) L|
0, x x0 y
|G(x)|
G(x) := F1(c1x) + F2(c2x) = L1 + L2 + O(xmn{1,2}), x 0.
entonces se escribe Observacion. Se utilizan las notaciones O() y o() tambien en . Por ejemplo
F (x) = L + o(G(x)), x x0 .
Ejemplo. F (x) = O(G(x)), x : x0, K > 0 : |F (x)| K |G(x)| x x0.

sin(x) = O(x), x 0, sin(x) = o( x), cos(x) = 1 + O(x2), x0
Aqu, F y G pueden o no diverger.

c Norbert Heuer
20 UC Chile, 2017 c Norbert Heuer
21 UC Chile, 2017

Convergencia (cont.) Ejemplo final: eliminacion de Gauss


Ejemplo. Resolvamos el siguiente sistema de ecuaciones lineales por la eliminacion de
Ejemplo. Gauss, utilizando cinco cifras,
     
O(x) x 0  1 x 1
f (x) = c1x + c2x = (0 < < , c1, c2 6= 0) = ,  = 106.
O(x ) x 1 1 y 2

106 1 1
1 1 2 (2) 106(1)
106 1 1
0 106 106 (se perdio la informacion de la segunda ecuacion)
Nos da la solucion (aproximacion)

y = 1, x = 0.

Solucion exacta:
2 106
y= = 0.9999989 . . . 1 = y
1 106
1 1 |x x|
x = 106(1 y) = 106 = 6= 0 = x, = 1 = 100 %
1 10 6 1 106 |x|

c Norbert Heuer
22 UC Chile, 2017 c Norbert Heuer
23 UC Chile, 2017
Ejemplo final: eliminacion de Gauss (cont.) Ejemplo final: eliminacion de Gauss (cont.)
Ejemplo. (cont.) Ejemplo. (cont.)
Que paso? Evitamos este problema por el intercambio de filas (elegir un elemento pivote):
         
 1 x 1  1 x 1
= = ,  = 106.
1 1 y 2 1 1 y 2

 1 1 1 1 2
1 1 2 (2) 1(1) 106 1 1 (2) 106(1)
 1 1 1 1 2
1
0 1 2 1 0 1 1 (redondeo)
Nos da la solucion
y = 1 y, x = 1 x.
1 1 1
y = (1  ) (2  )1
1 Observacion. La primera version (sin eleccion de elemento pivote) es un algoritmo
x = 1 y 0, x= (1 y) 6 1
inestable. Con eleccion de elemento pivote resulta estable. La inestabilidad se debio al
algoritmo y no el problema.
El error en el calculo 1 y se amplifica por la division por .

c Norbert Heuer
24 UC Chile, 2017 c Norbert Heuer
25 UC Chile, 2017

Ejemplo final: eliminacion de Gauss (cont.)


Ejemplo. Eliminacion de Gauss con pivoteo, de nuevo (tres dgitos).
    
0.778 0.563 x 0.215
=
0.913 0.659 y 0.254

con solucion exacta x = 1, y = 1.

Pivote: 0.913
0.913 0.659 0.254
0.778 0.563 0.215 (2) 0.778
0.913 (2)
0.913 0.659 0.254
0 0.002 0.001 (redondeo)
con solucion

1
y = 0.5, x = (0.254 0.659y ) = 0.640,
0.913

que no tiene mucho que ver con la solucion exacta.

Se trata de un problema mal condicionado (la matriz es mal condicionada).

c Norbert Heuer
26 UC Chile, 2017

Das könnte Ihnen auch gefallen