Skip to content

BScheihing/02Tarea

 
 

Repository files navigation

Tarea nro. 2

FI3104B - Metodos Numericos Para la Ciencia y la Ingenieria

Prof. Valentino González

Considere una partícula de masa m que se mueve verticalmente sólo en el eje Y rebotando contra un suelo que oscila sinusoidalmente con amplitud A y frecuencia ω. El choque contra el suelo es inelástico siguiendo la siguiente regla de choque.

rebote inelastico

Latex: v_p'(t^*) = (1+\eta)v_s(t^*) - \eta v_p(t^*)

donde t* es el instante del bote, vp y vp' son las velocidades justo antes y justo despues del bote, y vs es la velocidad del suelo en ese instante y η es un coeficiente de restitución (η entre 0, y 1; η=1 corresponde al caso elástico).

Inicialmente la partícula está en contacto con el suelo y con velocidad hacia arriba mayor que la velocidad del éste.

El sistema descrito tiende a generar soluciones estables (periódicas) luego de un período de relajación. A veces la solución es trivial, con la partícula pegándose al suelo y a veces no hay solución periódica. La solución periódica más sencilla es cuando la partícula rebota contra el suelo con el mismo período que tiene la oscilación de éste.

Los parámetros del problema son (A, ω, η, m, g) y la condición inicial (y(0), v(0)). Adimensinalice el problema con m=1, g=1, y A=1. y(0) ya se escogió (pegado al suelo), asi que solo queda por elegir v(0), η y ω.

  1. Escriba una rutina que le permita calcular (yn+1, v'n+1) dados (yn, v'n): la posición y velocidad luego del n-ésimo choque.

    Su tarea involucra buscar t* en el cual la partícula y el suelo chocan, pero note que puede haber multiples soluciones. Asegúrese de que su programa encuentra la solución correcta.

    Una estrategia posible a seguir es avanzar la partícula en intervalos de tiempo pequeños hasta que se detecte que ha pasado a estar debajo del suelo y buscar un cero entre este instante y el anterior. ¿Cómo define pequeño?

    La sugerencia anterior puede resultar en un programa lento en algunos casos. ¿Qué otra alternativa puede seguir para mejorar la eficiencia del programa y asegurar que la solución encontrada es la correcta?

  2. Usando η=0.15 y para ω = 1.66, estime Nrelax, el número de botes necesarios para relajar el sistema.

    No se pide un cálculo preciso de Nrelax, sólo una estimación. Hay varias formas de hacer esto pero una muy sencilla es simplemente plotear v'n vs. n y chequear para qué valor de n v'n se ha estabilizado.

  3. Pruebe con un par de otros valores para ω entre 1.66 y 1.7. ¿Es Nrelax comparable?

  4. Siga usando η=0.15. Haga un gráfico de v'n versus ω con ω entre 1.66 y 1.79 y n =2×Nrelax,..., 2×Nrelax + 49, es decir, ploteará 50 valores de v'n por cada valor de ω. Si algún valor de ω le parece interesante, haga la grilla más fina en ese sector.

    Al final de un ciclo con un valor de ω, conviene usar el estado final para el estado inicial del ω siguiente.

Otras Notas.

  • Utilice git durante el desarrollo de la tarea para mantener un historial de los cambios realizados. La siguiente cheat sheet le puede ser útil.

  • La tarea se entrega como un pull request en github. El pull request debe incluir todos los códigos usados además de su informe.

  • El informe debe ser entregado en formato pdf, este debe ser claro sin información ni de más ni de menos.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%