Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
restrepo
GitHub Repository: restrepo/ComputationalMethods
Path: blob/master/exams/tmp.ipynb
934 views
Kernel: Python 3

PARCIAL 2

c.c. 1.035.441.007

Péndulo simple http://www.aoengr.com/Dynamics/LagrangianMechanicsPendulum.pdf

import numpy as np from scipy import optimize %pylab inline
Populating the interactive namespace from numpy and matplotlib
#DEFINO VARIABLES t1=0 #tiempo inicial t2=np.pi/2 #tiempo final xi=0.5 #Posición inicial xf=0.5 #posición final m= 0.2 # masa [Kg] k=0.8 #Constantes elástica [N/m] N=30 #Número de puntos
def S(x,t1,t2,m,k,xi,xf): x=np.asarray(x) t=np.linspace(t1,t2,x.shape[0]) dt=t[1]-t[0] x[0]=xi x[-1]=xf return (( 0.5*m*(x[1:]-x[:-1])**2/(dt**2))-(0.5*k*(0.5*(x[1:]+x[:-1]))**2)*dt).sum()
xpuntos=np.zeros(N) opt=optimize.fmin_powell(S,xpuntos,args=(t1,t2,m,k,xi,xf),ftol=1e-8, full_output=1) #Minimizamos la función x=opt[0] x[0]=xi;x[-1]=xf xmax=np.sort(x)[-1] Smin=opt[1]
Optimization terminated successfully. Current function value: -0.164463 Iterations: 33 Function evaluations: 9615
t=linspace(t1,t2,N) #Creamos un nuevo intervalo de tiempo para graficar dt=t[1]-t[0] #Creamos un nuevo delta de tiempo plt.plot(t,x,'--r') plt.title('POSICIÓN VS. TIEMPO') plt.xlabel('POSICIÓN [m]') plt.ylabel('TIEMPO [s]') plt.grid()
Image in a Jupyter notebook
v=(x[1:]-x[:-1])/dt #Definimos velocidad como un delta de posición sobre el delta de tiempo plt.plot(t[0:-1],v,'--b') plt.title('VELOCIDAD VS. TIEMPO') plt.xlabel('VELOCIDAD [m/s]') plt.ylabel('TIEMPO [s]') plt.grid()
Image in a Jupyter notebook
T=0.5*k*x**2 #Energía potencial plt.plot(t,T,'--y') plt.title('ENERGÍA POTENCIAL VS. TIEMPO') plt.xlabel('ENERGÍA POTENCIAL [J]') plt.ylabel('TIEMPO [s]') plt.grid()
Image in a Jupyter notebook
V=0.5*m*v**2 #Energía cinética plt.plot(t[0:-1],V,'--g') plt.title('ENERGÍA CINÉTICA VS. TIEMPO') plt.xlabel('ENERGÍA CINÉTICA [J]') plt.ylabel('TIEMPO [s]') plt.grid()
Image in a Jupyter notebook