Пример #1
0
 def montecarlo(self,N):
     ppf = MFnLineArray(xdata=self.hui_cdf, ydata=self.x)
     fragment_lengths = []
     for i in range(N):
         fragment_length = ppf.get_value(np.random.rand(1)) + ppf.get_value(np.random.rand(1))
         fragment_lengths.append(fragment_length / 2.)
     return np.array(fragment_lengths)
Пример #2
0
 def montecarlo(self, N):
     ppf = MFnLineArray(xdata=self.hui_cdf, ydata=self.x)
     fragment_lengths = []
     for i in range(N):
         fragment_length = ppf.get_value(np.random.rand(1)) + ppf.get_value(
             np.random.rand(1))
         fragment_lengths.append(fragment_length / 2.)
     return np.array(fragment_lengths)

    # outer loop:
    for n_steps in range(10):

        # inner loop:
        KMAX = 100
        k = 1
        while k < KMAX:   
            print 'inner loop: IT:', k
            fitter.run_n_trial_steps( 1 )
            fitter.tloop.rtrace_mngr.rtrace_bound_list[1].redraw()
            # get calculated sig_app_xx based on current phi_value:
            sig_app_trial = fitter.tloop.rtrace_mngr.rtrace_bound_list[1].trace.ydata[-1]
            # get sig_app_xx to be fitted:
            sig_app_fit = mfn_line_array_fit.get_value(eps_app_tn1[0])
            
            fitting_ratio = sig_app_trial / sig_app_fit
            if fitting_ratio > 1:
                phi_value_new = phi_value_old * 0.8  
            elif fitting_ratio > 1:
                phi_value_new = phi_value_old * 1.2  
                
            # adjusting phi_value:
            x = hstack([ x[:-1], e_max_value_new ])
            y = hstack([ y[:-1],  phi_value_new  ])
            fitter.mats2D_eval.polar_fn.phi_fn.mfn.set( xdata = x, ydata = y )
            fitter.mats2D_eval.polar_fn.phi_fn.mfn.data_changed = True
            print 'adjusting phi_value to: ', phi_value_new
            if fitting_ratio < 1.01:
                fitter.run_one_step()