Esempio n. 1
0
 def test_matrix_frac(self):
     x = Variable(5)
     M = np.asmatrix(np.random.randn(5, 5))
     P = M.T*M
     s = matrix_frac(x, P)
     self.assertFalse(s.is_constant())
     self.assertFalse(s.is_affine())
     self.assertTrue(s.is_quadratic())
     self.assertTrue(s.is_dcp())
Esempio n. 2
0
 def test_matrix_frac(self):
     x = Variable(5)
     M = np.asmatrix(np.random.randn(5, 5))
     P = M.T*M
     s = matrix_frac(x, P)
     self.assertFalse(s.is_constant())
     self.assertFalse(s.is_affine())
     self.assertTrue(s.is_quadratic())
     self.assertTrue(s.is_dcp())
Esempio n. 3
0
    def equivalent_forms_3(self, solver):
        m = 100
        n = 80
        r = 70
        np.random.seed(1)
        A = np.random.randn(m, n)
        b = np.random.randn(m)
        G = np.random.randn(r, n)
        h = np.random.randn(r)

        # ||Ax-b||^2 = x^T (A^T A) x - 2(A^T b)^T x + ||b||^2
        P = np.dot(A.T, A)
        q = -2 * np.dot(A.T, b)
        r = np.dot(b.T, b)
        Pinv = np.linalg.inv(P)

        obj3 = .1 * (matrix_frac(self.xef, Pinv) + q.T * self.xef + r)
        cons = [G * self.xef == h]

        p3 = Problem(Minimize(obj3), cons)
        self.solve_QP(p3, solver)
        self.assertAlmostEqual(p3.value, 68.1119420108, places=4)
Esempio n. 4
0
    def equivalent_forms_3(self, solver):
        m = 100
        n = 80
        r = 70
        numpy.random.seed(1)
        A = numpy.random.randn(m, n)
        b = numpy.random.randn(m, 1)
        G = numpy.random.randn(r, n)
        h = numpy.random.randn(r, 1)

        # ||Ax-b||^2 = x^T (A^T A) x - 2(A^T b)^T x + ||b||^2
        P = numpy.dot(A.T, A)
        q = -2 * numpy.dot(A.T, b)
        r = numpy.dot(b.T, b)
        Pinv = numpy.linalg.inv(P)

        obj3 = matrix_frac(self.xef, Pinv) + q.T * self.xef + r
        cons = [G * self.xef == h]

        p3 = Problem(Minimize(obj3), cons)
        s = self.solve_QP(p3, solver)
        self.assertAlmostEqual(s.opt_val, 681.119420108)