예제 #1
0
    def setUp(self):
        # Initial Values
        a_0 = 100
        a_1 = 0.5
        rho = 0.9
        sigma_d = 0.05
        beta = 0.95
        c = 2
        gamma = 50.0
        theta = 0.002
        ac = (a_0 - c) / 2.0

        R = np.array([[0, ac, 0], [ac, -a_1, 0.5], [0., 0.5, 0]])

        R = -R
        Q = gamma / 2
        Q_pf = 0.

        A = np.array([[1., 0., 0.], [0., 1., 0.], [0., 0., rho]])
        B = np.array([[0.], [1.], [0.]])
        B_pf = np.zeros((3, 1))

        C = np.array([[0.], [0.], [sigma_d]])

        # the *_pf endings refer to an example with pure forecasting
        # (see p171 in Robustness)
        self.rblq_test = RBLQ(Q, R, A, B, C, beta, theta)
        self.rblq_test_pf = RBLQ(Q_pf, R, A, B_pf, C, beta, theta)
        self.lq_test = LQ(Q, R, A, B, C, beta)
        self.methods = ['doubling', 'qz']
예제 #2
0
    def setUp(self):
        # Initial Values
        a_0     = 100
        a_1     = 0.5
        rho     = 0.9
        sigma_d = 0.05
        beta    = 0.95
        c       = 2
        gamma   = 50.0
        theta = 0.002
        ac    = (a_0 - c) / 2.0

        R = np.array([[0,  ac,    0],
                      [ac, -a_1, 0.5],
                      [0., 0.5,  0]])

        R = -R
        Q = gamma / 2

        A = np.array([[1., 0., 0.],
                      [0., 1., 0.],
                      [0., 0., rho]])
        B = np.array([[0.],
                      [1.],
                      [0.]])
        C = np.array([[0.],
                      [0.],
                      [sigma_d]])


        self.rblq_test = RBLQ(Q, R, A, B, C, beta, theta)
        self.lq_test = LQ(Q, R, A, B, C, beta)

        self.Fr, self.Kr, self.Pr = self.rblq_test.robust_rule()