PRACTICA

Páginas: 5 (1090 palabras) Publicado: 9 de abril de 2014
Pr´ctica voluntaria (1er. parcial)
a
Profesor Francisco R. Villatoro

T´cnicas Num´ricas
e
e
7 de Octubre de 1999

PRIMER TEMA: Operaciones en coma flotante en Matlab
e
1. La aritm´tica que utiliza Matlab es compatible con el sistema IEEE a
doble precisi´n, es decir, 53 bits binarios en la mantisa (el primero de
o
los cuales se aprovecha para el signo) y un exponente entre −1022 ≤
e≤ 1023.
Los n´meros flotantes en Matlab (IEEE) tienen la forma
u
f l(x) = σ · (1.a1 a2 · · · a53 )2 · 2e ,
donde σ es el signo, ai ∈ {0, 1}, y −1022 ≤ e ≤ 1023. ¿Cu´ntos d´
a
ıgitos
binarios o bits requiere el exponente? ¿Cu´ntos bytes (grupo de 8 bits)
a
se consumen en representar un n´mero flotante?
u
¿Cu´ntos n´meros con exponente e = 0 puede representar Matlab?
a
u
¿Cu´l es eln´mero positivo m´s peque˜o representable (para e = 0 y
a
u
a
n
para e = 0)? ¿y cu´l es el m´s grande?
a
a
En el sistema IEEE de doble precisi´n adem´s del 0, se incluyen los
o
a
n´meros ±Inf (infinito positivo y negativo) y NaN (el resultado no es un
u
n´mero). Prueba a calcular en Matlab 1/0, log(1/0) y 1/0-log(1/0),
u
¿qu´ resultados obtienes? Justifica tu respuesta y pon otro ejemplode
e
tu invenci´n de similares resultados.
o
2. Calcule el epsilon de la m´quina para Matlab (comando eps).
a
El siguiente programa
e = 1;

while (1+e > 1), e=e/2; end,

¿calcula el epsilon de la m´quina? Si no lo hace, c´mo lo arreglar´ y
a
o
ıas
por qu´.
e
Escribe en representaci´n flotante en binario en el sistema IEEE de
o
Matlab el n´mero epsilon de la m´quina (ε) y eln´mero 1 + ε.
u
a
u
3. ¿Escribe una cota superior del error de normalizaci´n de un n´mero
o
u
flotante cuando se utiliza redondeo y otra cuando se utiliza truncado?
Justifica tu respuesta. Calcula estas cotas para Matlab.
1

El error relativo de normalizaci´n de un n´mero δ, donde f l(x) =
o
u
x (1 + δ), se puede acotar por
−2−n ≤ δ ≤ 2−n ,

por redondeo,

−2−n+1 ≤ δ ≤ 0,

portruncado.

Justifica las expresiones anteriores.
e
4. Un ejemplo sencillo de los efectos de los errores en aritm´tica flotante.
¿Qu´ tiene que dar y que es lo que da realmente el programa siguiente?
e
x = ones(1,6)*987654321^2, mean(x), std(x),
¿y este otro?
x = ones(1,7)*987654321^2, mean(x), std(x),
Justifica y razona las respuestas que has obtenido en Matlab.
5. ¿Qu´ hace el siguienteprograma?
e
x = 10.^(0:20); x.*(sqrt(x+1)-sqrt(x))
¿Cu´l es el efecto de la diferencia cancelativa en el resultado? ¿C´mo
a
o
calcular´ el resultado evitando la diferencia cancelativa? Escribe un
ıas
c´digo en Maltab para ello. Compara los resultados de tu c´digo con
o
o
los del original y calcula los errores cometidos debido a la diferencia
cancelativa.
6. Para el programa

x =10.^(-(0:20)); (1 - cos(x) )./(x.^2),

indica el efecto de la diferencia cancelativa e indica c´mo lo evitar´
o
ıas
(escribe un c´digo Matlab). Calcula los errores cometidos debido a ella.
o
Compara los resultados de tu c´digo con los obtenidos utilizando la
o
expresi´n
o
sin2 (x/2)
2
.
x2
Razona el resultado que obtienes.
7. Escribe un programa Matlab que eval´e un polinomio utilizando lau
regla de Horner a partir de un vector con sus coeficientes que utilice el
mismo formato que la funci´n polyval, es decir, un fichero horner.m
o
que contenga
2

function y = horner(p,x)
%%% donde p es un vector de coeficientes
%%% x el punto donde se evaluar´ el polinomio
a
%%%
AQUI VA EL ALG. HORNER
%%%
EL RESULTADO SERA CALCULADO EN y
Compara el n´mero de operaciones (usandoflops) de los c´digos
u
o
polyval y horner. ¿Qu´ conclusiones sacas?
e
8. Ejecuta el siguiente c´digo para calcular una suma de n´meros:
o
u
format long e;
a = 1./(200000:210000); b = 1./(210000:-1:200000);
sum(a), sum(b), sum(a)-sum(b),
¿son iguales los dos resultados? ¿Cu´l es el m´s preciso? ¿Puedes estia
a
mar el tama˜o de los errores cometidos en ambos casos?. Justifica tus
n...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Practicas
  • Practicas
  • Practicas
  • Practica
  • Practica
  • Practica
  • Practica
  • Practicas

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS