Ruth Sibia Chura
Ruth Sibia Chura
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC
FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICA PROFESIONAL DE INGENIERÍA INFORMÁTICA Y SISTEMAS
La Mecánica se ocupa de las relaciones entre los movimientos de los sistemas materiales y las causas que los producen. Se divide en tres partes: Cinemática que describe el movimiento, Dinámica que estudia el movimiento y sus causas y Estática que estudia las fuerzas y el equilibrio de los cuerpos.
A nivel matemático, la cinemática indica cómo cambian las coordenadas de posición de un cuerpo en función del tiempo. Dicha trayectoria puede ser descripta mediante una función matemática que depende de la aceleración (el cambio de la velocidad en el tiempo) y la velocidad (el tiempo en el cual modifica su posición el cuerpo).
"""
#instalacion
pip install sympy
pip install numpy
pip install matplotlib
"""
from sympy import *
import matplotlib.pyplot as plt
from matplotlib.widgets import Button, TextBox, RadioButtons
import numpy as np
class Cinematica:
def __init__(self):
self.xt = None #funcion posicion
self.vt = None #funcion velocidad
self.at = None #funcion aceleracion
self.t = Symbol('t')
def inicializar_en_posicion(self,xstr):#xstr = str ('2*t**2')
t = self.t
self.xt = eval(xstr)
self.vt = self.xt.diff(self.t)#derivada
self.at = self.vt.diff(self.t)#derivada
def inicializar_en_velocidad(self,vstr):#vstr = str ('2*t**2')
t = self.t
self.vt = eval(vstr)
self.xt = integrate(self.vt,self.t)#integral
self.at = self.vt.diff(self.t)#derivada
def inicializar_en_aceleracion(self,astr):#astr = str ('2*t**2')
t = self.t
self.at = eval(astr)
self.vt = integrate(self.at,self.t)#integral
self.xt = integrate(self.vt,self.t)#integral
def posicion_t(self,ti):
xte = lambdify(self.t, self.xt)
return xte(ti)
def velocidad_t(self,ti):
vte = lambdify(self.t, self.vt)
return vte(ti)
def aceleracion_t(self,ti):
ate = lambdify(self.t, self.at)
return ate(ti)
def resolver_posicion_0(self):
return solve(self.xt,self.t)
def resolver_velocidad_0(self):
return solve(self.vt,self.t)
def resolver_aceleracion_0(self):
return solve(self.at,self.t)
#---------------------------------
#clase
ci =None
#---
texto_xt = None
fxt=None
#lienzos
l1 = None
l2 = None
l3 = None
#legend
le = None
#valor radio
ra ='x'
#valores en instantes de tiempo
texto_x_t=None
texto_v_t=None
texto_a_t=None
#
text_box=None
def evaluar(event):
global fxt
global l1
global l2
global l3
global le
global ci
global ra
ci = Cinematica()
if ra=='v':
ci.inicializar_en_velocidad(fxt)
elif ra=='a':
ci.inicializar_en_aceleracion(fxt)
else:
ci.inicializar_en_posicion(fxt)
#graficar
t = np.array(range(10))
text_xt = str(ci.xt)
text_vt = str(ci.vt)
text_at = str(ci.at)
fx = eval(text_xt)
fv = eval(text_vt)
fa = eval(text_at)
l1.set_ydata(fx)
le.get_texts()[0].set_text('x(t) = '+r'$'+text_xt.replace('**','^')+'$')
l2.set_ydata(fv)
le.get_texts()[1].set_text('v(t) = '+r'$'+text_vt.replace('**','^')+'$')
l3.set_ydata(fa)
le.get_texts()[2].set_text('a(t) = '+r'$'+text_at.replace('**','^')+'$')
plt.draw()
def submit(text):
global texto_xt
global fxt
global ra
fxt = text
if ra=='v':
texto_xt.set_text('v(t) = '+r'$'+text.replace('**','^')+'$')
elif ra=='a':
texto_xt.set_text('a(t) = '+r'$'+text.replace('**','^')+'$')
else:
texto_xt.set_text('x(t) = '+r'$'+text.replace('**','^')+'$')
plt.draw()
def submit_value(text):
global texto_x_t
global texto_v_t
global texto_a_t
global ci
texto_x_t.set_text('x('+text+') = '+ str(ci.posicion_t(eval(text))))
texto_v_t.set_text('v('+text+') = '+ str(ci.velocidad_t(eval(text))))
texto_a_t.set_text('a('+text+') = '+ str(ci.aceleracion_t(eval(text))))
plt.draw()
def radio_click(label):
global ra
global text_box
ra = label[0].lower()
plt.draw()
def main():
"""
eq = input('ingrese la ecuacion en funcion al tiempo (2*t+5)')
t = Symbol('t')
f = eval(eq)
f_prima = f.diff(t)#derivada respecto al tiempo
#analizando valores
f1 = lambdify(t, f)
f_prima1 = lambdify(t, f_prima)
print('f(3) = '+str(f1(3)))
print("f'(3) = "+str(f_prima1(3)))
#igualamos a 0
solucion_0 = solve(f_prima,t)
print("f'= 0 es"+str(solucion_0))
#----------------------------------
integrate(f, x) returns the indefinite integral -> indefinido
integrate(f, (x, a, b)) returns the definite integral ->definido en un rango de "a" a "b"
"""
global ci
#---------
global l1
global l2
global l3
global le
#-----
global text_box
ci = Cinematica()
ci.inicializar_en_posicion('2*t**3 + 3*t -2')
#graficar
t = np.array(range(10))
text_xt = str(ci.xt)
text_vt = str(ci.vt)
text_at = str(ci.at)
fx = eval(text_xt)
fv = eval(text_vt)
fa = eval(text_at)
#-----
plt.subplots_adjust(bottom=0.5)
# Create the plot
l1, = plt.plot(t,fx,label='x(t) = '+r'$'+text_xt.replace('**','^')+'$')
l2, = plt.plot(t,fv,label='v(t) = '+r'$'+text_vt.replace('**','^')+'$')
l3, = plt.plot(t,fa,label='a(t) = '+r'$'+text_at.replace('**','^')+'$')
# Add a title
plt.title('Cinematica')
# Add X and y Label
plt.xlabel('tiempo (t)')
#plt.ylabel('y axis')
# Add a grid
plt.grid(alpha=.4,linestyle='--')
# Add a Legend
le = plt.legend()
#----- add radio butom
rax = plt.axes([0.1, 0.27, 0.23, 0.15])
radio = RadioButtons(rax, ('Posicion', 'Velocidad', 'Aceleracion'))
radio.on_clicked(radio_click)
#------------------------
#----- add textbox
axbox = plt.axes([0.1, 0.21, 0.3, 0.050])
text_box = TextBox(axbox, 'f(t)', initial='2*t**3 + 3*t -2')
text_box.on_submit(submit)
#------add text
global texto_xt
texto_xt = plt.text(1.2,0.21 , '', fontsize=10)
#texto.set_text("cambiado texto")
#----- add button
axbtn = plt.axes([0.1, 0.145, 0.18, 0.055])
bprev = Button(axbtn, 'Evaluar')
bprev.on_clicked(evaluar)
#----- textbox para calcular valores
global texto_x_t
global texto_v_t
global texto_a_t
axbox_x = plt.axes([0.1, 0.08, 0.12, 0.050])
text_box_x = TextBox(axbox_x, 't =', initial='2')
text_box_x.on_submit(submit_value)
texto_x_t = plt.text(1.2,0.2 , '', fontsize=10)
texto_v_t = plt.text(2.4,0.2 , '', fontsize=10)
texto_a_t = plt.text(3.6,0.2 , '', fontsize=10)
# Show the plot
plt.show()
#-------------------------------
if __name__ == '__main__':
main()Presentación del código
Deslizar abajo para ver todo el codigo
Para lo cual demostraremos:
2.Aceleración
Cuando la aceleración
no es contante
3.Velocidad
Sustituyendo
3.Ejercicio
se tiene una escopeta, en la cual tiene un cañón de una longitud promedio. Se realiza un disparo bala sale, llega hasta el final de la escopeta.
v(t) = -5*10⁷ t² + 3*10⁵t
Determinar la velocidad final de la bala
Determinar el tiempo que demora la bala pasar por el cañón de la escopeta
La longitud de el cañon
4.Ejercicio
5.CONTINUANDO
{
"title": "My Deck",
"width": 1024,
"height": 576,
"transition": "slide",
"slides": [
{
"notes": "Top secret speaker notes",
"blocks": [
{
"type": "text",
"value": "Hello world"
},
{
"type": "iframe",
"value": "https://slides.com/news/groups/embed"
}
]
}
]
}Cuánto tiempo le demora a la bala llegar
donde6.Aplicacion
HTML
CSS
JS