예제 #1
0
if cone == 0:
	geometry = SphereTorusGeometry(NH = nh, verbose=args.verbose)
else:
	geometry = BNTorusGeometry(Theta_tor = cone, NH = nh, verbose=args.verbose)
geometry.viz()
plt.savefig(prefix + "geometry.pdf")
plt.savefig(prefix + "geometry.png")
plt.close()

binmapfunction = lambda beta, alpha: (numpy.round(0.5 + nmu * numpy.abs(cos(beta))) - 1).astype(int)
def binmapfunction(beta, alpha): 
	mu = ((0.5 + nmu * numpy.abs(cos(beta))) - 1).astype(int)
	mu[mu >= nmu] = nmu - 1
	return mu

rdata, nphot = montecarlo.run(prefix, nphot = args.nevents, nmu = nmu, geometry=geometry, 
	binmapfunction = binmapfunction,
	plot_paths=args.plot_paths, plot_interactions=args.plot_interactions, verbose=args.verbose)

rdata_transmit, rdata_reflect = rdata
header = dict(NH=nh, OPENING=cone)
montecarlo.store(prefix + 'transmit', nphot, rdata_transmit, nmu, extra_fits_header = header, plot=False)
montecarlo.store(prefix + 'reflect', nphot, rdata_reflect, nmu, extra_fits_header = header, plot=False)
rdata_transmit += rdata_reflect
del rdata_reflect
montecarlo.store(prefix, nphot, rdata_transmit, nmu, extra_fits_header = header, plot=True)




예제 #2
0
# ==== Covariance Frobenius Norm =====
# ====================================
norm_exact = np.linalg.norm(mcov, 'fro')

# ====================================
# ===== Portfolio Hedging Inits ======
# ====================================
# Used for estimating hedged portfolio variance, involing inverse of covariance matrix.
p = putils.Portfolio(np.array([1, 0, 0, 0]))
p_var = putils.portfolio_var(p, mcov)
hdg = putils.mvp_hedge(p, mcov)
mvp = p + hdg
mvp_var = putils.portfolio_var(mvp, mcov)
truevals = {'mvp.var': mvp_var, 'cov.relnorm': norm_exact, 'p.var': p_var}

# ====================================
# =========== Monte Carlo ============
# ====================================
obs_gen = stats.multivariate_normal(cov=mcov)
T_grid = pmc.init_sparse_grid(lbound=p_dim, max_sample_size=64)
mc = mc.MonteCarlo(rndgen=lambda: obs_gen.rvs(T_grid[-1]),
                   nsim=1000,
                   evalfunc=lambda welfords, path: pmc.mc_path_eval(
                       T_grid, p, mcov, welfords, path),
                   welfords=pmc.estimations(len(T_grid)))
est = mc.run()

# =====================
# ===== Plotting ======
# =====================
present.result(T_grid, est, truevals, alpha_conf=0.01)