Beispiel #1
0
for N in nsamples_list:
    g_list_mp_tmp = np.load(direction + 'sus_' + example_name + '_N' +
                            repr(N) + '_Nsim100_cs_g_list.npy')
    g_list_list.append(g_list_mp_tmp)

# ---------------------------------------------------------------------------
# POST-PROCESSING
# ---------------------------------------------------------------------------

# initialization
cov_at_pf_array = np.zeros(len(nsamples_list), float)
pf_mean_array = np.zeros(len(nsamples_list), float)

for i in range(0, len(nsamples_list)):
    pf_mean_array[i], cov_at_pf_array[i] = \
        uutil.get_mean_and_cov_pf_from_SUS(g_list_list[i], nsamples_list[i], p0)

# analytical expression
pf_ref = np.ones(len(nsamples_list), float) * pf_ref
# cov_ref = np.zeros(len(nsamples_list), float)
# for i in range(0, len(nsamples_list)):
#     cov_ref[i] = np.sqrt(pf_ref[i]**(-1/nsamples_list[i])-1)

# ---------------------------------------------------------------------------
# PLOTS
# ---------------------------------------------------------------------------
# plot cov over b
plt.figure()
plt.plot(nsamples_list, cov_at_pf_array, '+-', label=r'SuS', color='C2')

plt.legend()
Beispiel #2
0
g_list_sus3 = np.load(direction + 'sus_liebscher_N' + repr(N_sus[2]) +
                      '_Nsim100_cs_g_list.npy')

g_list_mp1 = np.load(direction + 'mp_liebscher_N' + repr(N_mp[0]) +
                     '_Nsim100_b5_cs_sss2_g_list.npy')
g_list_mp2 = np.load(direction + 'mp_liebscher_N' + repr(N_mp[1]) +
                     '_Nsim100_b5_cs_sss2_g_list.npy')
g_list_mp3 = np.load(direction + 'mp_liebscher_N' + repr(N_mp[2]) +
                     '_Nsim100_b5_cs_sss2_g_list.npy')

# ---------------------------------------------------------------------------
# POST-PROCESSING
# ---------------------------------------------------------------------------

# coefficient of variation
pf_mean_sus1, pf_cov_sus1 = uutil.get_mean_and_cov_pf_from_SUS(
    g_list_sus1, N_sus[0], p0)
pf_mean_sus2, pf_cov_sus2 = uutil.get_mean_and_cov_pf_from_SUS(
    g_list_sus2, N_sus[1], p0)
pf_mean_sus3, pf_cov_sus3 = uutil.get_mean_and_cov_pf_from_SUS(
    g_list_sus3, N_sus[2], p0)

pf_mean_mp1, pf_cov_mp1 = uutil.get_mean_and_cov_pf_from_MP(
    g_list_mp1, N_mp[0])
pf_mean_mp2, pf_cov_mp2 = uutil.get_mean_and_cov_pf_from_MP(
    g_list_mp2, N_mp[1])
pf_mean_mp3, pf_cov_mp3 = uutil.get_mean_and_cov_pf_from_MP(
    g_list_mp3, N_mp[2])
print('-----------------------------------------------------')
print('cov = 0.1 | SUS cov =', round(pf_cov_sus1, 3), '| MP cov =',
      round(pf_cov_mp1, 3))
print('cov = 0.2 | SUS cov =', round(pf_cov_sus2, 3), '| MP cov =',
# initialization
pf_line_list = []
b_line_list = []
cov_line_list = []
legend_list = []
cov_at_pf_array_sus = np.zeros(n_sigma, float)
pf_mean_array_sus = np.zeros(n_sigma, float)

cov_at_pf_array_mp = np.zeros(n_sigma, float)
pf_mean_array_mp = np.zeros(n_sigma, float)

#  subset simulation
for i in range(0, n_sigma):
    pf_mean_array_sus[i], cov_at_pf_array_sus[i] = \
        uutil.get_mean_and_cov_pf_from_SUS(g_list_list_sus[i], n_samples_per_level, p0)

# moving particles
for i in range(0, n_sigma):
    pf_mean_array_mp[i], cov_at_pf_array_mp[i] = \
        uutil.get_mean_and_cov_pf_from_MP(g_list_list_mp[i], n_initial_samples)

# analytical expression
pf_ref = np.ones(n_sigma, float) * pf_ref
cov_ref = np.ones(n_sigma,
                  float) * np.sqrt(pf_ref**(-1 / n_initial_samples) - 1)

# ---------------------------------------------------------------------------
# PLOTS
# ---------------------------------------------------------------------------
Beispiel #4
0
                     '_Nsim100_b5_cs_sss2_g_list.npy')
g_list_mp2 = np.load(direction + 'mp_waarts_N' + repr(N_mp[1]) +
                     '_Nsim100_b10_cs_sss2_g_list.npy')
g_list_mp3 = np.load(direction + 'mp_waarts_N' + repr(N_mp[2]) +
                     '_Nsim100_b20_cs_sss2_g_list.npy')

# ---------------------------------------------------------------------------
# POST-PROCESSING
# ---------------------------------------------------------------------------

print('Ncall,SUS =', uutil.get_mean_ncall_from_SUS(g_list_sus, N_sus[0], 0.1))
print('Ncall,MP1 =', uutil.get_mean_ncall_from_MP(g_list_mp1, N_mp[0], 5))
print('Ncall,MP2 =', uutil.get_mean_ncall_from_MP(g_list_mp2, N_mp[1], 10))
print('Ncall,MP3 =', uutil.get_mean_ncall_from_MP(g_list_mp3, N_mp[2], 20))

pf_mean_sus, pf_cov_sus = uutil.get_mean_and_cov_pf_from_SUS(
    g_list_sus, N_sus[0], 0.1)
pf_mean_mp1, pf_cov_mp1 = uutil.get_mean_and_cov_pf_from_MP(
    g_list_mp1, N_mp[0])
pf_mean_mp2, pf_cov_mp2 = uutil.get_mean_and_cov_pf_from_MP(
    g_list_mp2, N_mp[1])
pf_mean_mp3, pf_cov_mp3 = uutil.get_mean_and_cov_pf_from_MP(
    g_list_mp3, N_mp[2])

print('SUS: pf =', pf_mean_sus, '| cov =', pf_cov_sus)
print('MP1: pf =', pf_mean_mp1, '| cov =', pf_cov_mp1)
print('MP2: pf =', pf_mean_mp2, '| cov =', pf_cov_mp2)
print('MP3: pf =', pf_mean_mp3, '| cov =', pf_cov_mp3)

b_line_mcs, pf_line_mcs = uutil.get_pf_line_and_b_line_from_MCS(g_list_mcs)

b_line_sus, pf_line_list_sus = uutil.get_pf_line_and_b_line_from_SUS(
nsamples_list_sus = [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,\
                     2000, 3000, 4000, 5000]

ncall_points_sus = np.zeros(len(nsamples_list_sus))
cov_points_sus = np.zeros(len(nsamples_list_sus))

for i in range(0, len(nsamples_list_sus)):
    N = nsamples_list_sus[i]
    g_list_list_sus = \
        np.load(direction + 'sus_' + example_name + '_N' + repr(N) + '_Nsim100_cs_g_list.npy')

    ncall_points_sus[i] = \
        uutil.get_mean_ncall_from_SUS(g_list_list_sus, N, p0)

    pf_temp, cov_points_sus[i] = \
        uutil.get_mean_and_cov_pf_from_SUS(g_list_list_sus, N, p0)

# -- load mp data ----------------------------------------------------------
direction = 'python/data/example' + repr(example) + '/nsamples_study_mp/'
nsamples_list_mp = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, \
                30, 40, 50, 60, 70, 80, 90, 100]
if example == 4:
    nsamples_list_mp = [100, 200, 300, 400, 500]

ncall_points_mp = np.zeros(len(nsamples_list_mp))
cov_points_mp = np.zeros(len(nsamples_list_mp))

for i in range(0, len(nsamples_list_mp)):
    N = nsamples_list_mp[i]
    g_list_list_mp = \
        np.load(direction + 'mp_' + example_name + '_N' + repr(N) + '_Nsim100_b5_cs_sss2_g_list.npy')