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]:
10.000000000000004

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]:
[<matplotlib.lines.Line2D at 0x7f10daec3400>]

In [35]:
(yf*xf).sum()*0.1


Out[35]:
29.055551504752941

In [43]:
(x*fun).sum()*0.1,(x*fun2).sum()*0.1


Out[43]:
(0.042689372466162091, 4.9909365789717226)

In [39]:
fun2.sum()


Out[39]:
10.0

In [ ]: