11
Informe Gu´ ıa de trabajo 1 - Errores de redondeo Universidad T´ ecnica Federico Santa Mar´ ıa Departamento de Ingenier´ ıa El´ ectrica Simulaci´onenIngenier´ ıa El´ ectrica Integrantes: ıa Reyes Gonz´ alez 2704197-3 Mario Guerra Murua 2823034-6 Profesor: Esteban Gil Sag´ as Valpara´ ıso, 2 de abril de 2015

informe 1

Embed Size (px)

DESCRIPTION

matlab

Citation preview

  • 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