import ipywidgets as widgets
from IPython.display import display
import matplotlib.pyplot as p
import numpy as np
from scipy.integrate import odeint
import math
%matplotlib nbagg
def F(z,x,f=1/260.0,k=5.0):
value = [0,0]
value[0] = z[0]/f*math.exp(-k*x)-1
value[1] = -1/2*1/math.sqrt(z[0])
return value
xp = 1; xk = 0; dx =-0.0005
xh = np.arange(xp, xk+dx,dx)
ics = (1e-15,0)
p.figure(figsize=(8, 5),dpi=100)
ax = p.subplot(111)
p.title("Energy vs. height ",fontsize=15)
def graf(f,k):
ax.clear()
z = odeint(F,ics,xh,args=(f/10,k))
Kh = z[:,0]
th = z[:,1]
p.plot(th,Kh)
ax.set_ylim(0, 0.5)
ax.set_xlim(0, 3)
p.grid(c='0.7', lw = 0.5)
p.axhline(0, color='black',lw=0.75)
p.axvline(0, color='black',lw=0.75)
p.show()
f = widgets.FloatSlider(min=0.01, max=0.1, step=0.01, value=0.004, description='f(10^(-1):')
k = widgets.FloatSlider(min=0, max=5, step=0.05, value=5, description='k:')
widgets.interactive(graf, f=f, k=k)