In [55]:
import numpy as np
import math
from matplotlib import mlab
from matplotlib import pylab as plt
from theano import *
import theano.tensor as T
%matplotlib inline

x = T.fvector('o')
x0 = T.fvector('x0i')
s = T.fvector('si')

gaussList, updates = scan(
        fn = lambda s, x0, prior_result, x: prior_result + (1/s)*T.exp(-(0.5*s**(-2))*(x - x0)**2),
        outputs_info = T.zeros_like(x),
        non_sequences = x,
        sequences = [s, x0]
    )

gaussCompExp = gaussList[-1]

gaussComp = theano.function(
    inputs = [x, s, x0],
    outputs = gaussCompExp,
    allow_input_downcast = True
)

xMin = -15
xMax = 15
s_Original = np.array([1, 0.5, 1])
x0_Original = np.array([-5, 0, 5])

xOriginal = np.linspace(xMin, xMax, 100, endpoint = False)
yOriginal = gaussComp(xOriginal, s_Original, x0_Original)
plt.plot (xOriginal, yOriginal,'x')
print(yOriginal)


[  1.92874989e-22   3.70353883e-21   6.49937068e-20   1.04240350e-18
   1.52797812e-17   2.04697172e-16   2.50622459e-15   2.80441564e-14
   2.86796655e-13   2.68054632e-12   2.28973489e-11   1.78756288e-10
   1.27541067e-09   8.31669045e-09   4.95639725e-08   2.69957837e-07
   1.34381423e-06   6.11357882e-06   2.54193001e-05   9.65933359e-05
   3.35462624e-04   1.06476701e-03   3.08871921e-03   8.18869099e-03
   1.98410843e-02   4.39369343e-02   8.89216512e-02   1.64474428e-01
   2.78037339e-01   4.29557234e-01   6.06530666e-01   7.82704651e-01
   9.23116326e-01   9.95012462e-01   9.80198681e-01   8.82496893e-01
   7.26148963e-01   5.46074510e-01   3.75311047e-01   2.35746071e-01
   1.35335311e-01   7.10062832e-02   3.40673253e-02   1.52162779e-02
   9.04364325e-03   2.44054832e-02   1.13001324e-01   3.96021217e-01
   9.73567188e-01   1.67055726e+00   2.00000763e+00   1.67055726e+00
   9.73567188e-01   3.96021217e-01   1.13001324e-01   2.44054832e-02
   9.04364325e-03   1.52162779e-02   3.40673253e-02   7.10062832e-02
   1.35335311e-01   2.35746071e-01   3.75311047e-01   5.46074510e-01
   7.26148963e-01   8.82496893e-01   9.80198681e-01   9.95012462e-01
   9.23116326e-01   7.82704651e-01   6.06530666e-01   4.29557234e-01
   2.78037339e-01   1.64474428e-01   8.89216512e-02   4.39369343e-02
   1.98410843e-02   8.18869099e-03   3.08871921e-03   1.06476701e-03
   3.35462624e-04   9.65933359e-05   2.54193001e-05   6.11357882e-06
   1.34381423e-06   2.69957837e-07   4.95639725e-08   8.31669045e-09
   1.27541067e-09   1.78756288e-10   2.28973489e-11   2.68054632e-12
   2.86796655e-13   2.80441564e-14   2.50622459e-15   2.04697172e-16
   1.52797812e-17   1.04240350e-18   6.49937068e-20   3.70353883e-21]

In [ ]:


In [ ]: