Tarea 0

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

Universidad de Chile

Departamento de Fı́sica
FI3104-1 - Métodos Numéricos

Tarea 0 (sin nota)


Profesor: Andrés Meza
Auxiliar: Victoria Bollo
Fecha entrega: 30 marzo 2019 (antes de las 23:59 horas)

• Para cada tarea se corregirán solo 1 problema. El mismo para todos los alumnos. Será elegido
después de la entrega de las tareas.

• La tarea debe ser subida a u-cursos como un solo archivo en formato .ipynb o .pdf antes de
la fecha y hora indicada. En algunos casos, se verificará que los códigos corran sin errores.

• No se aceptarán atrasos ni se recibirán archivos en los correos del profesor o la auxiliar.

• La solución de los problemas debe contener breves comentarios y explicaciones que faciliten
su comprensión. Puede servirles de guı́a los notebooks de las clases que están en u-cursos.

P1. Lı́mites para los números de punto flotante

i) Escriba un programa para probar los lı́mites de underflow y overflow para el sistema
operativo de su computador. Un ejemplo de pseudocódigo es
under = 1.0
over = 1.0
for i in range (1,N):
under = under/2.0
over = 2.0*over
print (under, over)
El número de iteraciones N dependerá de su sistema operativo. Con este esquema, los
lı́mites serán obtenidos dentro de un factor 2. ¿Cómo podrı́a mejorar la estimación de
estos lı́mites?
Recuerde que python usa por defecto números de punto flotante en precisión doble. ¿Qué
ocurre si se utilizan números enteros? Comente.
ii) Ahora, escriba un programa para determinar la precisión de su máquina m dentro de
un factor 2 con un esquema parecido a la pregunta anterior. ¿Cómo podrı́a mejorar la
estimación de estos lı́mites?

P2. Suma de series


Un problema numérico clásico es usar la suma de una serie para evaluar una función. Por
ejemplo, la serie infinita para la función sin x dada por

x3 x5 x7
sin x = x − + − + ···
3! 5! 7!

1
Universidad de Chile
Departamento de Fı́sica
FI3104-1 - Métodos Numéricos

Supongamos que queremos evaluar esta serie con un error absoluto menor a 1 parte en 108 .
En este caso, la serie exacta debe ser truncada a algún valor N
N
X (−1)n−1 x2n−1
sin x ' (1)
(2n − 1)!
n=1

Dado que numéricamente es costoso y muchas veces inexacto calcular factoriales y potencias
grandes directamente con las funciones internas de python, podemos usar el hecho de que dos
términos consecutivos de la serie cumplen

−x2
sn = sn−1 (n ≥ 3).
(2n − 1)(2n − 2)

donde
(−1)n−1 x2n−1
sn =
(2n − 1)!
Por lo tanto, para obtener el error requerido usamos la condición
s
n
< 10−8
suma

donde suma es la sumatoria dada por (1).


Implemente un código con este algoritmo que imprima x, el número de términos empleados
N , el valor de la sumatoria y el valor absoluto del error relativo comparado con la función
interna de pyhton sin(x) (suponga que esta función es exacta).
Sin uso de la identidad sin(x + 2nπ) = sin(x), examine los términos en la serie para x ' 3π
y observe que las cancelaciones substractivas son significativas cuando se suman grandes
términos para dar respuestas pequeñas. ¿Qué pasa para x ' π/2?
Aumentando progresivamente x entre 1 y 10, y luego entre 100 y 100, determine cuando el
algoritmo converge y cuando la serie pierde exactitud y ya no converge. Haga un gráfico del
error en función de N para diferentes valores de x.

P3. Derivadas por diferencias finitas

i) Usando series de Taylor demuestre que la primera derivada de una función f (x) puede
ser calculada usando la aproximación

−f (x + 2h) + 4f (x + h) − 3f (x)
f 0 (x) = + O h2

2h
Encuentre una expresión para el error de la aproximación O(h2 ).

2
Universidad de Chile
Departamento de Fı́sica
FI3104-1 - Métodos Numéricos

ii) Se busca estudiar la dependencia del error para la expresión aproximada de la primera
derivada con el paso ∆x, donde el error absoluto se define por
 
f (x + ∆x) − f (x) 0

error =
− f (x)
∆x

Para eso, considere la función f (x) = sin(x), para la cual se conoce la derivada exacta
f 0 (x) = cos(x). Evalúe el error en x = 2.RRR donde RRR son los tres últimos dı́gitos
de su RUT, usando ∆x = 10−n , con n = 0, 1, 2, 3, . . . .
Grafique el error en función de ∆x en una escala log-log. Interprete el resultado.

También podría gustarte