try: from numpy import * from matplotlib.pyplot import * except ImportError: "Need numpy and matplotlib to test PyUQTk" try: import PyUQTk.array as uqtkarray import PyUQTk.quad as uqtkquad import PyUQTk.pce as uqtkpce except ImportError: print "PyUQTk array and quad module not found" # get quad points and weights x = uqtkarray.dblArray2D() w = uqtkarray.dblArray1D() print 'Create an instance of Quad class' ndim = 1 level = 8 q = uqtkquad.Quad('LU', 'full', ndim, level) print 'Now set and get the quadrature rule...' q.SetRule() q.GetRule(x, w) # print out x and w print 'Displaying the quadrature points and weights:\n' # print x # print w n = len(x) print 'Number of quad points is ', n, '\n'
''' sample from exp(-.5*(x**2/.1**2 - y**2/.8**2)) ''' y1 = x[0] y2 = x[1] return -.5 * (y1**2 / .1**2 + y2**2 / .8**2) start = time.time() # testing MCMC library print('\n*****************\nTesting MCMC\n*****************\n') print('Setting LogPosterior function, L') print('L is defined in uqtk.cpp (Rosenbrock function)') L = pyLikelihood() print('Testing logposterior function') xstart = uqtkarray.dblArray1D(2, 0) print(xstart) print('L.eval(x) = ', L.eval(xstart)) print('Setting up the sampler') mchain = uqtkmcmc.MCMC(L) print('Setting chain dim, type (ss), initial proposal covariance') dim = 2 mchain.setChainDim(dim) mchain.initMethod("am") g = uqtkarray.dblArray1D(dim, .5) mchain.initChainPropCovDiag(g) print('Running chain to chain.dat ...') nCalls = 100000
try: from numpy import * from matplotlib.pyplot import * except ImportError: print("Need numpy and matplotlib to test PyUQTk") try: import PyUQTk.array as uqtkarray import PyUQTk.quad as uqtkquad import PyUQTk.pce as uqtkpce except ImportError: print("PyUQTk array and quad module not found") # get quad points and weights x = uqtkarray.dblArray2D() w = uqtkarray.dblArray1D() print('Create an instance of Quad class') ndim = 2 level = 8 q = uqtkquad.Quad('LU', 'full', ndim, level) print('Now set and get the quadrature rule...') q.SetRule() q.GetRule(x, w) # print out x and w print('Displaying the quadrature points and weights:\n') print(x) print(w) n = len(x) print('Number of quad points is ', n, '\n')
''' Use AMCMC for banana shaped function ''' class pyLikelihood(uqtkmcmc.LikelihoodBase): def eval(self, x): x0 = x[0] x1 = x[1] return -(1 - x0) * (1 - x0) - 100 * (x1 - x0 * x0) * (x1 - x0 * x0) # testing MCMC library print '\n*****************\nTesting AMCMC\n*****************\n' Like = pyLikelihood() xstart = uqtkarray.dblArray1D(2, 1.0) mchain = uqtkmcmc.MCMC(Like) dim = 2 mchain.setChainDim(dim) mchain.initMethod("am") g = uqtkarray.dblArray1D(dim, .1) mchain.initChainPropCovDiag(g) nCalls = L * M thin2 = thin1 * L mchain.setWriteFlag(0) mchain.setOutputInfo("txt", "chain.dat", M, nCalls) mchain.runChain(nCalls, xstart) mchain.getSamples() samples = mchain.samples samples2 = zeros((dim, nCalls)) samples.getnpdblArray(samples2)