Package mikera.matrixx

Examples of mikera.matrixx.Matrix


     * perform a pivot.  Pivots can change the data structure and can cause solve to fail if not
     * handled correctly.
     */
    @Test
    public void square_pivot() {
        Matrix A = Matrix.create(new double[][] {{0, 1, 2}, {-2, 4, 9}, {0.5, 0, 5}});
        Matrix b = Matrix.create(new double[][] {{8}, {33}, {15.5}});

        QRHouseColSolver solver = new QRHouseColSolver();
        assertTrue(solver.setA(A));
        Matrix x = solver.solve(b).toMatrix();

        Matrix x_expected = Matrix.create(new double[][] {{1}, {2}, {3}});

        assertTrue(x_expected.epsilonEquals(x,1e-6));
    }
View Full Code Here


        double a=1,b=1.5,c=1.7;
        for( int i = 0; i < t.length; i++ ) {
            vals[i][0] = a + b*t[i][0] + c*t[i][0]*t[i][0];
        }

        Matrix B = Matrix.create(vals);
        Matrix A = createPolyA(t,3);

        QRHouseColSolver solver = new QRHouseColSolver();
        assertTrue(solver.setA(A));

        AMatrix x = solver.solve(B);
View Full Code Here

        assertEquals(b,x.get(1,0),tol);
        assertEquals(c,x.get(2,0),tol);
    }

    private Matrix createPolyA( double t[][] , int dof ) {
        Matrix A = Matrix.create(t.length,3);

        for( int j = 0; j < t.length; j++ ) {
            double val = t[j][0];

            for( int i = 0; i < dof; i++ ) {
                A.set(j,i,Math.pow(val,i));
            }
        }

        return A;
    }
View Full Code Here

    public void testSolve( CholeskySolver solver ) {
      double[][] dataA = {{1,2,4},
                {2,13,23},
                {4,23,90}};
        Matrix A = Matrix.create(dataA);
        double[][] dataB = {{17},{97},{320}};
        Matrix b = Matrix.create(dataB);
        Matrix x = Matrix.createRandom(3, 1);
        Matrix A_orig = A.copy().toMatrix();
        Matrix B_orig = b.copy().toMatrix();

        assertTrue(solver.setA(A));
        x = solver.solve(b).toMatrix();

        // see if the input got modified
        assertArrayEquals(A.getElements(),A_orig.getElements(),1e-5);
        assertArrayEquals(b.getElements(),B_orig.getElements(),1e-5);

        double[][] data_x_expected = {{1}, {2}, {3}};
        Matrix x_expected = Matrix.create(data_x_expected);

        assertArrayEquals(x_expected.getElements(),x.getElements(),1e-5);
    }
View Full Code Here

    public void testInvert( CholeskySolver solver ) {
      double[][] dataA = {{1,2,4},
              {2,13,23},
              {4,23,90}};
    Matrix A = Matrix.create(dataA);
   
    Matrix found;

        assertTrue(solver.setA(A));
        found = solver.invert().toMatrix();

        double[][] dataA_inv = {{1.453515, -0.199546, -0.013605},
                    {-0.199546, 0.167800, -0.034014},
                    {-0.013605, -0.034014, 0.020408}};
        Matrix A_inv = Matrix.create(dataA_inv);

        assertArrayEquals(A_inv.getElements(),found.getElements(),1e-5);
    }
View Full Code Here

        assertArrayEquals(A_inv.getElements(),found.getElements(),1e-5);
    }

    public void testQuality( CholeskySolver solver ) {
      Matrix A = DiagonalMatrix.create(3,2,1).toMatrix();
      Matrix B = DiagonalMatrix.create(3,2,0.001).toMatrix();

        assertTrue(solver.setA(A));
        double qualityA = solver.quality();

        assertTrue(solver.setA(B));
View Full Code Here

        assertTrue(qualityB < qualityA);
    }

    public void testQuality_scale( CholeskySolver solver ) {
      Matrix A = DiagonalMatrix.create(3,2,1).toMatrix();
      Matrix B = Matrix.create(A);
      B.multiply(0.001);

        assertTrue(solver.setA(A));
        double qualityA = solver.quality();

        assertTrue(solver.setA(B));
View Full Code Here

        if( !canL ) return;
       
        double[][] dataA = {{1, 2, 4},
             {2, 13, 23},
             {4, 23, 90}};
        Matrix A = Matrix.create(dataA);
       
        double [][] dataL = {{1,0,0},
                  {2,3,0},
                  {4,5,7}};
        Matrix L = Matrix.create(dataL);

        ICholeskyResult ans = Cholesky.decompose(A);
        assertNotNull(ans);

        Matrix foundL = ans.getL().toMatrix();

//        EjmlUnitTests.assertEquals(L,foundL,1e-8);
        assertArrayEquals(L.getElements(),foundL.getElements(), 1e-8);
    }
View Full Code Here

     * Provide a test case where the same eigenvalue is repeated a few times
     */
    @Test
    public void multipleEigenvalues() {
//        DenseMatrix64F A = new DenseMatrix64F(5,5, true, 2.191140, -0.098491, -0.397037, 0.367426, -0.208338, -0.098491, 2.776741, 0.623341, 0.624798, 0.401906, -0.397037, 0.623341, 3.571302, -0.239631, -0.264573, 0.367426, 0.624798, -0.239631, 3.625034, -0.162896, -0.208338, 0.401906, -0.264573, -0.162896, 3.835783);
        Matrix A = Matrix.create(new double[][] {{2.191140, -0.098491, -0.397037, 0.367426, -0.208338},
                {-0.098491, 2.776741, 0.623341, 0.624798, 0.401906},
                {-0.397037, 0.623341, 3.571302, -0.239631, -0.264573},
                {0.367426, 0.624798, -0.239631, 3.625034, -0.162896},
                {-0.208338, 0.401906, -0.264573, -0.162896, 3.835783}});

View Full Code Here

      double[][] data =
        {{1, 2, 4},
         {2, 13, 23},
         {4, 23, 90}};
     
        Matrix A = Matrix.create(data);
        Matrix B=A.clone();
       
        ICholeskyResult ans = Cholesky.decompose(B);
        assertNotNull(ans);
        assertEquals(A,B);
    }
View Full Code Here

TOP

Related Classes of mikera.matrixx.Matrix

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.