Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def getGaussian(xvect, mewk, sigmak):
- xi = np.zeros((l,1))
- for i in range(len(xi)):
- xi[i][0] = xvect[i]
- #print(xi)
- det_sigmak = np.linalg.det(sigmak)
- det_sigmak = np.absolute(det_sigmak)
- # print("sigmak",sigmak)
- # print("det_sigmak",det_sigmak)
- if(det_sigmak == 0):
- print("determinant zero")
- det_sigmak = 0.0000001
- inv_sigmak = np.linalg.inv(sigmak)
- constant = 1.0 / (np.sqrt((np.power(2*np.pi,l)) * det_sigmak))
- #print("deno const",np.sqrt((np.power(2*np.pi,dim)) * det_sigmak))
- #print("constant:", constant)
- #print("xi", xi)
- #print("mewk", mewk)
- xi_min_mewk = np.subtract(xi,mewk)
- # print(xi_min_mewk,"\nhh",inv_sigmak)
- #print("trans",np.transpose(xi_min_mewk))
- #print("inve sigmak", inv_sigmak)
- temp = np.dot(np.transpose(xi_min_mewk),inv_sigmak)
- #print("temp",temp)
- #print("ximinmewk", xi_min_mewk)
- exp_val = np.dot(temp,xi_min_mewk)
- exp_val = -0.5 * exp_val
- #print("exp val:",exp_val)
- #print("sigmak",sigmak)
- #print(np.multiply(5,mewk))
- if(exp_val < -500):
- exp_val = -500
- elif (exp_val > 500):
- exp_val = 500
- ans = constant*np.exp(exp_val)
- #print("gaussian",ans)
- return ans
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement