In [18]:
import ipywidgets as widgets
from ipywidgets import HBox, VBox
import numpy as np
import matplotlib.pyplot as plt
from IPython.display import display
%matplotlib inline
w = widgets.IntSlider()
#fig, ax = plt.subplots(1, 1, figsize=(8, 6))
#display(w)
In [41]:
#from scipy import stats
gaus=lambda x,m,s:np.exp(-(x-m)**2/2/s**2)
expo=lambda x,m,s:np.exp(-abs(x-m)/s)
x=np.r_[-2:12:0.1]
fun=gaus(x,3,1)+0.7*gaus(x,5,2.5)
fun/=fun.sum()/0.1
@widgets.interact(a=(-2., 10.),b=(-20, 20.))
def slide(a=4., b=2, grid=True):
plt.plot(x,fun)
plt.plot((x+b)*a,fun/a)
plt.grid(grid)
plt.xlim(-20,50)
In [24]:
fun2=0.7*expo(x,5,2.5)
fun2/=sum(fun2)*0.1
plt.plot(x,fun2)
fcom=np.convolve(fun,fun2,"full")
#fcom/=sum(fcom)*0.1
fcom/=100
xcom=np.arange(0,len(fcom)*0.1,0.1)
plt.plot(xcom,fcom)
plt.grid()
In [21]:
sum(fcom)
Out[21]:
In [42]:
xf=np.r_[:100:0.1]
yf=np.zeros_like(xf)
#pricist
for i in range(len(x)):
yf+=fun[i]*expo(xf/x[i],5,2.5)
yf/=yf.sum()/10.
plt.plot(xf,yf)
Out[42]:
In [35]:
(yf*xf).sum()*0.1
Out[35]:
In [43]:
(x*fun).sum()*0.1,(x*fun2).sum()*0.1
Out[43]:
In [39]:
fun2.sum()
Out[39]:
In [ ]: