Пример #1
0
    def setUp(self):
        self.logger = dcs.Logger(10)
        time        = np.arange(251)
        sim_params  = SimParams(time, magnitude=3.5, frequency=12, phase=180)
        truth_time  = np.arange(-10, 201)
        truth_data  = 5 * np.sin(2*np.pi*10*time/1000 + 90*np.pi/180)

        self.opti_opts = dcs.OptiOpts()
        self.opti_opts.model_func     = sim_model
        self.opti_opts.model_args     = {'sim_params': sim_params}
        self.opti_opts.cost_func      = cost_wrapper
        self.opti_opts.cost_args      = {'results_time': time, 'truth_time': truth_time, 'truth_data': truth_data}
        self.opti_opts.get_param_func = get_parameter
        self.opti_opts.set_param_func = set_parameter
        self.opti_opts.output_folder  = ''
        self.opti_opts.output_results = ''
        self.opti_opts.params         = []

        # Parameters to estimate
        self.opti_opts.params.append(dcs.OptiParam('magnitude', best=2.5, min_=-10, max_=10, typical=5, minstep=0.01))
        self.opti_opts.params.append(dcs.OptiParam('frequency', best=20, min_=1, max_=1000, typical=60, minstep=0.01))
        self.opti_opts.params.append(dcs.OptiParam('phase', best=180, min_=0, max_=360, typical=100, minstep=0.1))
Пример #2
0
 def test_get_array5(self):
     opti_param = dcs.OptiParam('test')
     params = [opti_param, opti_param]
     with self.assertRaises(ValueError):
         dcs.OptiParam.get_array(params, type_='bad_name')
Пример #3
0
 def test_get_names(self):
     opti_param1 = dcs.OptiParam('test1')
     opti_param2 = dcs.OptiParam('test2')
     params = [opti_param1, opti_param2]
     names = dcs.OptiParam.get_names(params)
     self.assertEqual(names, ['test1', 'test2'])
Пример #4
0
 def test_get_array(self):
     opti_param = dcs.OptiParam('test')
     params = [opti_param, opti_param]
     best = dcs.OptiParam.get_array(params)
     np.testing.assert_array_equal(best, np.array([np.nan, np.nan]))
Пример #5
0
 def test_get_array3(self):
     opti_param = dcs.OptiParam('test')
     params = [opti_param, opti_param]
     values = dcs.OptiParam.get_array(params, type_='max')
     np.testing.assert_array_equal(values, np.array([np.inf, np.inf]))
Пример #6
0
 def test_inequality2(self):
     opti_param = dcs.OptiParam('test')
     self.assertNotEqual(opti_param, 2)
Пример #7
0
 def test_inequality(self):
     opti_param1 = dcs.OptiParam('test')
     opti_param2 = dcs.OptiParam('test')
     opti_param2.min_ = 5.5
     self.assertNotEqual(opti_param1, opti_param2)
Пример #8
0
 def test_equality(self):
     opti_param1 = dcs.OptiParam('test')
     opti_param2 = dcs.OptiParam('test')
     self.assertEqual(opti_param1, opti_param2)
Пример #9
0
 def test_init(self):
     opti_param = dcs.OptiParam('test')
     self.assertTrue(isinstance(opti_param, dcs.OptiParam))
Пример #10
0
    opti_opts.is_max_like = False
    opti_opts.max_iters = 10
    opti_opts.tol_cosmax_grad = 1e-4
    opti_opts.tol_delta_step = 1e-7
    opti_opts.tol_delta_cost = 1e-8
    opti_opts.step_limit = 5
    opti_opts.x_bias = 0.8
    opti_opts.grow_radius = 2
    opti_opts.shrink_radius = 0.5
    opti_opts.trust_radius = 1.0

    # Parameters to estimate
    opti_opts.params.append(
        dcs.OptiParam('magnitude',
                      best=2.5,
                      min_=-10,
                      max_=10,
                      typical=5,
                      minstep=0.01))
    opti_opts.params.append(
        dcs.OptiParam('frequency',
                      best=20,
                      min_=1,
                      max_=1000,
                      typical=60,
                      minstep=0.01))
    opti_opts.params.append(
        dcs.OptiParam('phase',
                      best=180,
                      min_=0,
                      max_=360,
                      typical=100,