Úloha 7

Na hmotný bod o hmotnosti $m=1$ kg působí síla, která ho přitahuje do počátku soustavy souřadnic, a současně síla, která ho odpuzuje. Přitažlivá síla $F_{+}$ závisí na vzdálenosti od počátku jako $F_{+}(r)=h/r^2$, odpudivá síla $F_{-}$ klesá se vzdáleností jako $F_{-}(r)=k/r^6$. Při pohybu je hmotný bod zpomalován tlumící silou $F_o$ úměrnou rychlosti $lv$ jako $F_o(v)=lv$. Najděte rovnovážnou polohu $r_0$ hmotného bodu (tj. vzdálenost od středu ve které je výslednice sil působících na hmotný bod nulová) pokud je $h = 1$ Nm${^2}$, $k = 10$ ${\rm Nm^6}$ a $l = 0.1$ Ns/m. Nakreslete trajektorii hmotného bodu, který se v čase $t=0$ nachází v klidu ve vzdálenosti $r = 1$ m od počátku.

In [71]:
import numpy as np
import matplotlib.pyplot as plt

síla $F_+$

In [72]:
def Fp(r):
    return -1/r**2

síla $F_-$

In [73]:
def Fm(r):
    return 10/r**6

síla $F_o$

In [74]:
def Fo(v):
    return -0.1*v
In [75]:
r_plot=np.arange(-5,5,0.001)

Nakresleme si nejdříve jak vypadá průběh síly $F_+$ a $F_-$

In [76]:
plt.plot(r_plot,Fp(r_plot),c='blue',label="$F_{+}$")
plt.plot(r_plot,Fm(r_plot),c='red',label="$F_{-}$")
plt.ylim(-2,2)
plt.xlim(-5,5)
plt.plot([-5,5],[0,0],ls='dashed',c='grey')
plt.plot([0,0],[-5,5],ls='dashed',c='grey')
plt.legend()
plt.show()
No description has been provided for this image

počáteční podmínky

In [77]:
m=1 #hmotnost
dt=0.001 #krok v čase
tmax=400 #max. čas
t=np.arange(0,tmax,dt) #pole časů
n=np.size(t)
x=np.empty(n) #pole souřadnic
vx=np.empty(n) #pole rychlostí
x[0]=1 #v čase t = 0 je x = 0
r=np.abs(x[0]) #vzdálenost od počátku
vx[0]=(Fp(r)+Fm(r))/m*dt/2 #v čase t = 0 je vx = 0, jako první prvek pole je rychlost v čase dt/2

numerické řešení pohybové rovnice
$\ddot{x}=-\frac{h}{x^2}+\frac{k}{x^6}-l\dot{x}\frac{\dot{x}}{|\dot{x}|}$

In [78]:
for i in range(n-1):
    x[i+1]=x[i]+vx[i]*dt
    r=np.abs(x[i])
    v=np.abs(vx[i])         
    vx[i+1]=vx[i]+(Fp(r)+Fm(r)+Fo(v)*vx[i]/np.abs(vx[i]))/m*dt

nakreslíme is časový průběh souřadnice

In [79]:
plt.plot(t,x,c='red')
r_equilibrium=(10)**(1/4)
plt.xlim(0,tmax)
plt.plot([0,400],[r_equilibrium,r_equilibrium],ls='dashed',c='grey')
plt.xlabel('čas (s)')
plt.ylabel('poloha (m)')
plt.show()
No description has been provided for this image

a časový průběh rychlosti

In [80]:
plt.plot(t,vx,c='blue')
plt.xlim(0,tmax)
plt.plot([0,400],[0,0],ls='dashed',c='grey')
plt.xlabel('čas (s)')
plt.ylabel('rychlost (m/s)')
plt.show()
No description has been provided for this image
In [ ]: