informe 1
DESCRIPTION
matlabTRANSCRIPT
-
Informe
Gua de trabajo 1 - Errores de redondeo
Universidad Tecnica Federico Santa MaraDepartamento de Ingeniera Electrica
Simulacion en Ingeniera Electrica
Integrantes:
Pa Reyes Gonzalez 2704197-3
Mario Guerra Murua 2823034-6
Profesor: Esteban Gil Sagas
Valparaso, 2 de abril de 2015
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
1. Desarrollo
1.1. Pregunta A
Con precision doble, sume n veces pi y compare su resultado con el valor real de la suma. Analice
como se acumula el error en la medida que n crece. Repita el experimento anterior, pero sumando
pi aproximado con precision simple. Compare ambos, indicando a que se debe el error.
Codigo:
1 % Pregunta A
2 %%
3 %##############################################
4 % sumatoria de 1000 veces p i con p r e s i c i on dob l e
5
6 clear a l l
7 clc
8 format long
9 x=0;
10
11 n=1000;
12 % x=sumatoria de p i
13
14 for i =1:n
15 x=x+pi
16 end
17 % y=va l o r r e a l de l a suma
18 y=npi ;19
20 % error r e l a t i v o
21 error=(abs (yx ) /y ) 100 ;22 %################################################
23 % sumatoria de 1000 veces p i con p r e s i c i on s imple
24
25 clear a l l
26 clc
27 format long
28 x=0;
29 n=1000;
30 % x=sumatoria de p i
31 for i =1:n ;
32 x=x+s i n g l e (pi ) ;
33 end
34 % y=va l o r r e a l de l a suma
35 y=npi ;36
37 % error r e l a t i v o
38 error=(abs (yx ) /y ) 100 ;39
40 % Comportamiento d e l e r ror r e l a t i v o a medida que n crece
41 %######################## ERROR PRESICION SIMPLE #############
42 % A)
43 clear a l l
44 clc
45 format long
46
47 sum a=0;
PRG MGM pagina 2
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
48 x a = [ ] ;
49 y a = [ ] ;
50 for n a =1:10000
51 sum a=s i n g l e ( sum a )+s i n g l e (pi ) ;
52 y a =[ y a sum a ] ;
53 end
54 for i a =1:10000
55 x a =[ x a double ( i a pi ) ] ;56 end
57 %####################### ERROR PRESICION DOBLE ############
58 sum b=0;
59 x b = [ ] ;
60 y b = [ ] ;
61 for n b =1:10000
62 sum b=sum b+(pi ) ;
63 y b=[y b sum b ] ;
64 end
65 for i b =1:10000
66 x b=[x b double ( i b pi ) ] ;67 end
68 e r r o r b =(abs ( y bx b ) . / x b ) 100 ;69 e r r o r a =(abs ( y ax a ) . / x a ) 100 ;70
71 subplot ( 2 , 1 , 1 ) ,plot ( e r r o r b )
72 xlabel ( N ) ; % pone t ? t u l o s a l e j e x
73 ylabel ( ERROR RELATIVO [ % ] ) ; % pone t ? t u l o s a l e j e y
74 grid on ; % agregamos una g r i l l a
75 t i t l e ( ERROR RELATIVO A MEDIDA QUE AUMENTA LA SUMA DE N VECES PI (PRESICION DOBLE)
) ; % t ? t u l o d e l gr ? f i c o
76
77 subplot ( 2 , 1 , 2 ) ,plot ( e r r o r a )
78 xlabel ( N ) ; % pone t ? t u l o s a l e j e x
79 ylabel ( ERROR RELATIVO [ % ] ) ; % pone t ? t u l o s a l e j e y
80 grid on ; % agregamos una g r i l l a
81 t i t l e ( ERROR RELATIVO A MEDIDA QUE AUMENTA LA SUMA DE N VECES PI (PRESICION SIMPLE
) ) ; % t ? t u l o d e l gr ? f i c o
Resultado
Para presicion doble:
Valor de la sumatoria : 3,141592653589781e+ 03
Valor Real(n*pi) : 3,141592653589793e+ 03
Error : 3,908265592582370e 13
Existe una diferencia en las 2 ultimas cifras significativas en el valor de la sumatoria de n veces pi
con el valor real de n*pi.El error relativo que este arroja es muy pequeno ;de orden de 1013. Esteerror se debe a un error de redondeo en la sumatoria,ya que en la representacion de numeros en
precision doble se almacenan 16 decimales y luego se procede a redondear. Para presicion simple:
Valor de la sumatoria : 3,1416006e+ 03
Valor Real(n*pi) : 3,141592653589793e+ 03
Error : 2,5249447e 04
PRG MGM pagina 3
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
El error que arroja esta precision es considerablemente mayor que en la precision doble, esto se
debe a errorres de redondeo ,ya que al usar single() el computador almacena aproximadamente 7
decimales, contrario a los 16 que almacena en double().
Para analizar como se acumula el error relativo en la medida que n crece se procedio a graficar,
este muestra que el error crece en forma exponencial luego de 6000 veces pi en el caso de precision
doble, y un poco mas de 5000 en el de precision simple:
Figura 1.1: Error relativo.
1.2. Pregunta B
Disene un programa que permita graficar la evolucion del error relativo para la suma n veces de p
en la medida que se redondea p con distinto numero de cifras significativas (use la funcion chop()
y considere desde p=1 a 20 cifras significativas). Como crece el error en la medida que crecen n
y p? Comente y justifique lo que sucede con el error relativo para valores grandes de p.
Codigo:
1 %PREGUNTA B)
2
3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 %%
5 clear a l l
6 clc
7 format long
8
9 x=0;
10 y b = [ ] ;
11 n=10000;
12
13 for k=1:20
14 x=0;
15 for n b =1:n
16 x=x+chop ( ( pi ) , k ) ;
17 end
18 y b=[y b x ] ;
19 end
20
PRG MGM pagina 4
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
21 error=abs (npiy b ) /(npi ) ;22 plot ( error )
23 xlabel ( P ) ; % pone t ? t u l o s a l e j e x
24 ylabel ( ERROR RELATIVO [ %] ) ; % pone t i t u l o s a l e j e y
25 grid on ; % agregamos una g r i l l a
26 t i t l e ( ERROR RELATIVO A MEDIDA QUE AUMENTA EL NUMERO CIFRAS SIGNIFICATIVAS(PARA
LA SUMA DE 10000 VECES PI ) ) ;
Grafico
Figura 1.2: Evolucion del Error relativo.
Se puede observar que el error disminuye exponencialmente a medida que aumentan las cifras
significativas en la sumatoria de n veces p.Cuando se considera una cifra significativa se tiene un
error relativo de 4,5 porciento respecto al valor real.El error se estabiliza desde la cuarta cifra
significativa, que se produce cuando el error es cercano al cero por ciento.
La forma decreciente del error relativo a medida que aumenta las cifras significativas, es producto
de que al aumentar la cantidad de cifras utilizados el redondeo se produce mas exacto y el error
es de menor valor.
1.3. Pregunta C
El sistema de defensa antimisiles Patriot usado por USA en la primera Guerra del Golfo Persico
usaba un registro de tiempo que se incrementaba a intervalos de 0.1 [s], usando una representa-
cion binaria de 0.1000110011001100110011002=209715
2097152.Como resultado, despues de 100 horas de
operacion de los sistemas se haba acumulado un error de 0.3433 segundos (suficiente tiempo para
que un misil Scud iraqu recorriera 600 metros, matando a 28 soldados).
Codigo:
1
2 %PREGUNTA C)
3
4 %############################################################
5 %%
6
PRG MGM pagina 5
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
7 clear a l l
8 clc
9 format long
10 %###################### INCREMENTO DE 0 ,1 #############
11 x=0;
12 z = [ ] ;
13 k=1000;
14 h = [ ] ;
15 for i =1:k
16 x=x +0.1 ;
17 z=[z x ] ;
18 h=[h i ] ;
19 end
20 f t=h /10 ;
21 error=ftz ;22
23 %###################### INCREMENTO DE 0 ,0625 #############
24 x1=0;
25 z1 = [ ] ;
26 k1=1000;
27 h1 = [ ] ;
28 for i 1 =1:k1
29 x1=x1 +0.0625;
30 z1=[z1 x1 ] ;
31 h1=[h1 i 1 ] ;
32 end
33
34 f t 1=h1 /16 ;
35 e r r o r 1 =( f t1z1 ) ;36 %####################### GRAFICOS #####################
37
38 plot (h , abs ( error ) , r , h1 , abs ( e r r o r 1 ) )
39 xlabel ( K ) ; % pone t ? t u l o s a l e j e x
40 ylabel ( ERROR ) ; % pone t ? t u l o s a l e j e y
41 grid on ; % agregamos una g r i l l a
42 t i t l e ( F( k ) ) ;
43 legend ( INTERVALOS DE 0 ,1 , INTERVALSO DE 0 ,0625 ) ;
Grafico
Figura 1.3: Error acumulado en la medida que k crece.
PRG MGM pagina 6
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
Se observa que para intervalos de 0.1 [s] la grafica se comporta de manera lneal a medida que
k crece, hay una relacion proporcionalmente lneal, y otra inversamente lneal dependiendo del
aumento de k, en cambio para intervalos de 0.625[s] la grafica es constante en cero.Esto se debe
que para intervalos mas pequenos , producto del redondeo; no existe error acumulado.
1.4. Pregunta D
Evalue en MATLAB las siguientes expresiones:
(0,1 + 0,3) == 0,4
(0,1 + 0,2) == 0,3
Comente y justifique sus resultados. Que le dice esto acerca de usar igualdades en condicionales
al momento de programar?
Codigo:
1 %PREGUNTA D)
2 %############################################################
3 %%
4 %% data
5 close a l l ;
6 clear a l l ;
7 clc
8
9
10
11 (0 .1+0 .3 ) ==0.4
12 (0 .1+0 .2 ) ==0.3
Resultado
(0,1 + 0,3) == 0,4
ans = 1
(0.1+0.2)==0.3
ans = 0
El resultado depende de la aproximacion del programa, y de las cifras significativas con las cuales
se trabaja. Se tiene que tratar de evitar utilizar las igualdades por que puede incurrir en errores o
resultados erroneos producto de la aproximacion del programa.
1.5. Pregunta E
Disene un programa que permita evaluar la precision de su computador m, donde m es el numero
mas pequeno para el cual 1 + m 6= 1. Compare su resultado con lo obtenido usando la funcioneps() de MATLAB. A continuacion, evalue en MATLAB las siguientes expresiones y explique por
que se llega a distintos resultados:
exp1 = (1 1) eps()/2exp2 = 1 (1 + eps()/2)
PRG MGM pagina 7
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
Codigo:
1 %% Pregunta E)
2 %###################################################
3 %%
4
5 %% data
6 close a l l ;
7 clear a l l ;
8 format long
9 clc
10
11 j =100000;
12
13 for i =1: j
14 x=2( i ) ;15 y=1+x ;
16 i f y>1
17 E=x ;
18 else
19 break ;
20 end
21 end
22 i
23 Ere=Eeps ;24 Ere
25 exp1=(11)eps/226 exp2=1(1+eps/2)
Resultado
i = 53
Ere = 0
exp1 = -1.110223024625157e-016
exp2 = 0
Al restar cantidades muy proximas se pueden producir errores de cancelacion. Por ejemplo en la
primera operacion, Matlab considera exacta la operacion (11) y queda el valor eps()/2. Por otrolado, en exp2, desprecia el valor eps()/2 es despreciado al ser sumada al valor de 1.
1.6. Pregunta F
Escriba una funcion en MATLAB para calcular f(x) =1 cos(x)
x2Demuestre que utilizando
identidades trigonometricas se puede tambien escribir f(x) =2 sen(x/2)2
x2. Luego, utilice ambas
formulas para graficar f(x)con 4 108 x 4 108. Compare, comente y justifique lasdiferencias.
Codigo:
1 %% Pregunta F)
2 %###################################################
3 %%
PRG MGM pagina 8
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
4
5 clear a l l
6 clc
7 format long
8
9 t =4108:1013:4108;10 x1=(1cos ( t ) ) . / t . 2 ;11 x2= 2( sin ( t /2) ) . 2 . / t . 2 ;12 plot ( t , x1 , r , t , x2 )
13 xlabel ( x ) ; % pone t ? t u l o s a l e j e x
14 ylabel ( f ( x ) ) ; % pone t ? t u l o s a l e j e y
15 grid on ; % agregamos una g r i l l a
16 t i t l e ( COMPARACION DE DOS FUNCIONES EQUIVALENTES ) ;
17 legend ( f ( x ) con cos ( x ) , f ( x ) con s i n ( x ) ) ;
Resultado
x1 = (1 cos(t))./t.2
x2 = 2 (sin(t/2)).2./t. 2Grafico
Para la funcion x1 = (1 cos(t))./t.2 obtenemos la grafica:
Figura 1.4: Error acumulado en la medida que k crece.
En esta curva se observa que para valores comprendidos entre -1 y 1 la funcion es cero.
PRG MGM pagina 9
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
Para la funcion x2 = 2 (sin(t/2)).2./t. 2 obtenemos la grafica:
Figura 1.5: Error acumulado en la medida que k crece.
En el grafico de esta funcion se observa que la curva se comporta linealmente entre el intervalo
expuesto.
PRG MGM pagina 10
-
Departamento de Ingeniera Electrica U.T.F.S.M. ELI-213 Simulacion en Ingeniera Electrica
2. Conclusiones
a. Un numero entero al ser representado en un ordenador es de manera exacta, esto se produce
si el valor esta comprendido dentro de los lmites admisibles por esta.
b. Cuando un numero excede con los dgitos de precision de una maquina, esta procede a truncar
o redondear el numero.Si el numero en cuestion es entero, tendra una representacion exacta.
c. El hardware de cada equipo es el responsable de la precision de un numero.
PRG MGM pagina 11
1 Desarrollo1.1 Pregunta A1.2 Pregunta B1.3 Pregunta C1.4 Pregunta D1.5 Pregunta E1.6 Pregunta F
2 Conclusiones