Pr´actico 1: Errores

Anuncio
Curso de Métodos Numéricos
Instituto de Matemática
Práctico 1: Errores
Agosto de 2005
1) Encuentre experimentalmente los siguientes valores de su calculadora:
(a) El valor ²mach definido como el minimo número x tal que la representación en punto flotante de
1 + x es mayor a 1.
(b) El mayor número representable.
(c) El menor número positivo cuya represenatción no sea cero.
En todos los casos encuentre los valores con 2 cifras de precisión.
2) Considere el sistema:
(
xn = [2xn−1 + yn−1 ]
yn = [xn−1 + yn−1 ]
donde [u] indica la parte decimal de u.
(a) Muestre que si x0 = y0 =
1
,
2
entonces x3 = y3 =
perı́odo 3 a lo sumo. ¿Qué sucede para x0 = y0 =
1
,
2
o sea que la solución es periódica de
1
?.
3
(b) Implemente en Matlab un programa que calcule y grafique1 los 100 primeros puntos (xn , yn ) de
cada una de las sucesiones anteriores. ¿Qué conclusiones puede sacar del resultado obtenido?.
3) Error relativo, error absoluto:
a) Al determinar una constante C, se obtuvo el valor 92.34, con error relativo estimado en 0.1%.
¿Entre cuáles valores se encuentra C?.
b) ¿Cuántos dı́gitos deben tomarse en el cálculo de
√
22 para que el error relativo no exceda el
0.1%?.
1
Para obtener información sobre los comandos for y plot de Matlab use help for y help plot
1
c) Se obtiene en una medición el valor v = 17261. Se sabe que el error relativo es del 1%. ¿Cómo
deberı́a escribirse v?.
4) R EPRESENTACI ÓN
INTERNA DE N ÚMEROS .
Una computadora tiene un sistema de punto flotante
decimal, con 5 dı́gitos de precisión y dos dı́gitos para el exponente. ¿Cuántos números pueden representarse con dicha arquitectura?. ¿Cuál es la menor separación en dicho sistema?.
5) C ANCELACI ÓN CATASTR ÓFICA , REESCRIBIR F ÓRMULAS .
Z n+1
a) Se desea calcular lim
log(x)dx ¿Cómo puede reescribirse dicha integral para ello?.
n→∞ n
x
e
para valores grandes de x. ¿Cómo reescribirlo para evitar desborde?.
−1
c) Comente los inconvenientes que pueden surgir al implementar un programa para calcular la
cos(x + h) − cos(x)
derivada de cos(x) utilzando el cociente incremental
. ¿Cómo escribirı́a
h
usted dicho cociente?.
b) Se desea calcular
ex
6) E RRORES EN OPERACIONES.
a) El diámetro interior de un tanque de agua esférico es de 1.5 ± 0.05 mts. Asumiendo que π =
3.1416, calcule el volumen.
b) Se quiere medir el área de un campo rectangular. Los lados del campo miden aproximadamente
2.000 por 3.000 metros. ¿Con qué error deberán medirse los lados del campo para que el área
tenga un error inferior a un metro cuadrado?.
7) C ÁLCULO
DE LA DERIVADA CON EL COCIENTE INCREMENTAL .
∞
Dada f : I → R con f ∈ C(I)
, una expresión de la derivada de f en el punto x, es el lı́mite de la
diferencia hacia adelante en el punto, o sea:
f (x + h) − f (x)
h→0
h
f 0 (x) = lim
2
Al aproximar numéricamente la derivada por la diferencia hacia adelante (es decir tomando un valor
de h pequeño pero finito), se cometen dos tipos de errores. En primer lugar está el error de truncamiento, que proviene de tomar el h finito, y en segundo lugar, los errores numéricos de la máquina,
tanto en la representación como en las operaciones.
(a) Calcular la derivada primera de la función f (x) =
√
x en el punto x = 1, con la diferencia hacia
−i
adelante, usando h = 1.5 , con i = 0, 1, 2, ..., 100.
Calcular, y graficar 2 el error absoluto cometido al usar dicha aproximación, y explicar el comportamiento del mismo.
(b) Usando los resultados vistos en clase, sobre los errores de truncamiento y de redondeo, estimar
el valor de h óptimo para el cálculo anterior, es decir, aquel que minimice el error cometido.
Hallar el h para el cual se obtuvo el menor error en la parte anterior 3 , y compararlo con la
estimación obtenida analı́ticamente.
(c) Repetir las partes 0a) y 0b) para la función tan(x) en el punto x = 1.57
√
(d) Repetir las partes 0a) y 0b para el cálculo de la derivada segunda de x en el punto x = 1,
usando la siguiente discretización:
f 00 (x) '
f (x + h) − 2f (x) + f (x − h)
h2
(e) Para el problema planteado en la parte 0a, mejorar la aproximación obtenida usando extrapolación de Richardson.
8) Considere el problema del ejercicio 7, en que se desea aproximar el valor de la derivada por cocientes
incrementales.
(a) A partir del vector de valores aproximados correspondientes a los distintos valores de h, use
la extrapolación de Richardson para hallar un nuevo vector de valores aproximados a partir
del vector ya calculado (el nuevo vector tendrá un valor menos, ya que se obtuvo un valor
extrapolado a partir de cada pareja de valores sucesivos del vector original).
(b) Calcule el error cometido y grafı́quelo, comparándolo con el error en la aproximación original.
(c) Repita el procedimiento, extrapolando el último vector hallado.
2
3
Es conveniente graficar el error en escala logarı́tmica, para ello ver el comando loglog de Matlab
Ver el comando min de Matlab
3
9) Se desea hallar las 4 raı́ces del polinomio
P4 (x) = x4 − 12x3 + 54x2 − 108x + 80.99999999999999
(a) Resuelva el problema con el comando roots del Matlab. Qué sucedió con el vector de coeficientes del polinomio?.
(b) Observando que P4 (x) = (x − 3)4 − 10−14 , resuelva ”a mano” la ecuación P4 (x) = 0.
(c) Considere la ecuación (x − 3)4 = 0 y su solución exacta x = 3, y la correspondiente solución
del problema ”perturbado” de la parte (a). Halle el error relativo en la solución: Rx =
Ex
.
x
(d) Halle la diferencia relativa en los coeficientes de la ecuación de la parte (a) y la de la parte (b):
si d es el vector de los coeficientes, calcule Rd =
||δd||
.
||d||
Saque conclusiones sobre el número de
condición del problema, definido como la razón entre el error relativo en la solución y el error
relativo en los datos de entrada.
10) Considere el problema que calcular los valores de la función exponencial f (x) = ex a partir de su
desarrollo en serie de Taylor:
∞
X xn
x2 x3
xn
e =1+x+
+
+ ... +
+ ... =
2!
3!
n!
n!
n=0
x
(a) Use el siguiente programa Matlab para efectuar la suma anterior hasta n = 100, para un rango
de valores de x:
x=-20:20; sum=ones(size(x)); t=x; n=1; while n<100
sum=sum+t;
n=n+1;
t=t.*x/n;
end
(b) Investigue qué sucede con el error relativo 4 en los resultados numéricos obtenidos. Dónde se
dan los peores resultados? Justifique.
(c) Piense una solución para hacer el calculo en los valores anteriores con mejor precisión.
4
use la función exp de Matlab y grafique con semilogy
4
EJERCICIOS COMPLEMENTARIOS.
11) Se quiere obtener numéricamente la derivada de una función f mediante la expresión:
∆f =
f (x + h) − f (x − h)
2h
(a) Halle el error de truncamiento.
(b) Estime el error de redondeo debido al uso de aritmética de punto flotante.
(c) Estime el error total y el h óptimo.
(d) Para f (x) = ex compare ∆f con f 0 (x) en x = 0 para diferentes valores de h. Finalmente,
obtenga una gráfica experimental que muestre lo obtenido en 3.
(e) Haga lo mismo para f (x) = sin(x) en x = 0 y explique los resultados.
12) En versiones anteriores el Matlab daba error al calcular el asinh(x) para valores negativos grandes.
El objetivo de esta parte es analizar el problema y proponer una solución.
√
Evalue asinh(x) = log(x + x2 + 1) en x = −1e30 utilizando Matlab y usando la función asinh(x)
de Matlab (Asumimos que es una versión nueva con el error corregido). Explique el resultado
obtenido y proponga una forma de solucionarlo.
13) P ROPAGACI ÓN DEL ERROR DE REDONDEO.
(a) Suponga que conoce una cantidad x > 0 con error absoluto δx (pequeño en relación a x). Si
√
y = x, estime el error absoluto δy en base a x y δx. Estime también el error relativo en y en
base al error relativo en x: Rx =
δx
.
x
(b) Si las cantidades x1 , x2 > 0 se conocen con error δx, halle una cota al error absoluto en la
√
√
cantidad z = x1 − x2 .
(c) Si x1 = 9 × 1014 + 1, x2 = 9 × 1014 − 1, calcule en Matlab el valor z, llamando z1 al resultado
obtenido. Estudie el error δz cometido (z = z1 + δz), tomando como verdadero valor de z el
resultado del cálculo z =
√x1 −x
√2 .
x1 + x2
Compare con la cota obtenida en el punto anterior, suponiendo que el error se debe sólo a la
propagación del error cometido al almacenar x1 y x2 en punto flotante. ¿Qué relación hay entre
el error relativo inicial y final?.
5
Descargar