当前位置: 首页>>代码示例>>Java>>正文


Java MathUtils.SAFE_MIN属性代码示例

本文整理汇总了Java中org.apache.commons.math.util.MathUtils.SAFE_MIN属性的典型用法代码示例。如果您正苦于以下问题:Java MathUtils.SAFE_MIN属性的具体用法?Java MathUtils.SAFE_MIN怎么用?Java MathUtils.SAFE_MIN使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在org.apache.commons.math.util.MathUtils的用法示例。


在下文中一共展示了MathUtils.SAFE_MIN属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testBigMatrix

/** test eigenvalues for a big matrix. */
public void testBigMatrix() {
    Random r = new Random(17748333525117l);
    double[] bigValues = new double[200];
    for (int i = 0; i < bigValues.length; ++i) {
        bigValues[i] = 2 * r.nextDouble() - 1;
    }
    Arrays.sort(bigValues);
    EigenDecomposition ed =
        new EigenDecompositionImpl(createTestMatrix(r, bigValues), MathUtils.SAFE_MIN);
    double[] eigenValues = ed.getRealEigenvalues();
    assertEquals(bigValues.length, eigenValues.length);
    for (int i = 0; i < bigValues.length; ++i) {
        assertEquals(bigValues[bigValues.length - i - 1], eigenValues[i], 2.0e-14);
    }
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:16,代码来源:EigenDecompositionImplTest.java

示例2: testTridiagonal

/** test a matrix already in tridiagonal form. */
public void testTridiagonal() {
    Random r = new Random(4366663527842l);
    double[] ref = new double[30];
    for (int i = 0; i < ref.length; ++i) {
        if (i < 5) {
            ref[i] = 2 * r.nextDouble() - 1;
        } else {
            ref[i] = 0.0001 * r.nextDouble() + 6;
        }
    }
    Arrays.sort(ref);
    TriDiagonalTransformer t =
        new TriDiagonalTransformer(createTestMatrix(r, ref));
    EigenDecomposition ed =
        new EigenDecompositionImpl(t.getMainDiagonalRef(),
                                   t.getSecondaryDiagonalRef(),
                                   MathUtils.SAFE_MIN);
    double[] eigenValues = ed.getRealEigenvalues();
    assertEquals(ref.length, eigenValues.length);
    for (int i = 0; i < ref.length; ++i) {
        assertEquals(ref[ref.length - i - 1], eigenValues[i], 2.0e-14);
    }

}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:25,代码来源:EigenDecompositionImplTest.java

示例3: testZeroDivide

/**
 * Verifies operation on indefinite matrix
 */
public void testZeroDivide() {
    RealMatrix indefinite = MatrixUtils.createRealMatrix(new double [][] {
            { 0.0, 1.0, -1.0 }, 
            { 1.0, 1.0, 0.0 }, 
            { -1.0,0.0, 1.0 }        
    });
    EigenDecomposition ed = new EigenDecompositionImpl(indefinite, MathUtils.SAFE_MIN);
    checkEigenValues((new double[] {2, 1, -1}), ed, 1E-12);
    double isqrt3 = 1/Math.sqrt(3.0);
    checkEigenVector((new double[] {isqrt3,isqrt3,-isqrt3}), ed, 1E-12);
    double isqrt2 = 1/Math.sqrt(2.0);
    checkEigenVector((new double[] {0.0,-isqrt2,-isqrt2}), ed, 1E-12);
    double isqrt6 = 1/Math.sqrt(6.0);
    checkEigenVector((new double[] {2*isqrt6,-isqrt6,isqrt6}), ed, 1E-12);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:18,代码来源:EigenDecompositionImplTest.java

示例4: testDistinctEigenvalues

/**
 * Matrix with eigenvalues {2, 0, 12}
 */
public void testDistinctEigenvalues() {
    RealMatrix distinct = MatrixUtils.createRealMatrix(new double[][] {
            {3, 1, -4},
            {1, 3, -4},
            {-4, -4, 8}
    });
    EigenDecomposition ed = new EigenDecompositionImpl(distinct, MathUtils.SAFE_MIN);
    checkEigenValues((new double[] {2, 0, 12}), ed, 1E-12);
    checkEigenVector((new double[] {1, -1, 0}), ed, 1E-12);
    checkEigenVector((new double[] {1, 1, 1}), ed, 1E-12);
    checkEigenVector((new double[] {-1, -1, 2}), ed, 1E-12);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:15,代码来源:EigenDecompositionImplTest.java

示例5: testEigenvectors

/** test eigenvectors */
@Test
public void testEigenvectors() {
    EigenDecomposition ed = new EigenDecompositionImpl(matrix, MathUtils.SAFE_MIN);
    for (int i = 0; i < matrix.getRowDimension(); ++i) {
        double lambda = ed.getRealEigenvalue(i);
        RealVector v  = ed.getEigenvector(i);
        RealVector mV = matrix.operate(v);
        Assert.assertEquals(0, mV.subtract(v.mapMultiplyToSelf(lambda)).getNorm(), 1.0e-13);
    }
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:11,代码来源:EigenDecompositionImplTest.java

示例6: testDiagonal

/** test diagonal matrix */
public void testDiagonal() {
    double[] diagonal = new double[] { -3.0, -2.0, 2.0, 5.0 };
    RealMatrix m = createDiagonalMatrix(diagonal, diagonal.length, diagonal.length);
    EigenDecomposition ed = new EigenDecompositionImpl(m, MathUtils.SAFE_MIN);
    assertEquals(diagonal[0], ed.getRealEigenvalue(3), 2.0e-15);
    assertEquals(diagonal[1], ed.getRealEigenvalue(2), 2.0e-15);
    assertEquals(diagonal[2], ed.getRealEigenvalue(1), 2.0e-15);
    assertEquals(diagonal[3], ed.getRealEigenvalue(0), 2.0e-15);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:10,代码来源:EigenDecompositionImplTest.java

示例7: testDimension4WithSplit

public void testDimension4WithSplit() {
    RealMatrix matrix =
        MatrixUtils.createRealMatrix(new double[][] {
                               {  0.784, -0.288,  0.000,  0.000 },
                               { -0.288,  0.616,  0.000,  0.000 },
                               {  0.000,  0.000,  0.164, -0.048 },
                               {  0.000,  0.000, -0.048,  0.136 }
                           });
    EigenDecomposition ed = new EigenDecompositionImpl(matrix, MathUtils.SAFE_MIN);
    assertEquals(1.0, ed.getRealEigenvalue(0), 1.0e-15);
    assertEquals(0.4, ed.getRealEigenvalue(1), 1.0e-15);
    assertEquals(0.2, ed.getRealEigenvalue(2), 1.0e-15);
    assertEquals(0.1, ed.getRealEigenvalue(3), 1.0e-15);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:14,代码来源:EigenDecompositionImplTest.java

示例8: testDimension3

public void testDimension3() {
    RealMatrix matrix =
        MatrixUtils.createRealMatrix(new double[][] {
                               {  39632.0, -4824.0, -16560.0 },
                               {  -4824.0,  8693.0,   7920.0 },
                               { -16560.0,  7920.0,  17300.0 }
                           });
    EigenDecomposition ed = new EigenDecompositionImpl(matrix, MathUtils.SAFE_MIN);
    assertEquals(50000.0, ed.getRealEigenvalue(0), 3.0e-11);
    assertEquals(12500.0, ed.getRealEigenvalue(1), 3.0e-11);
    assertEquals( 3125.0, ed.getRealEigenvalue(2), 3.0e-11);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:12,代码来源:EigenDecompositionImplTest.java

示例9: testDimensions

/** test dimensions */
public void testDimensions() {
    final int m = matrix.getRowDimension();
    EigenDecomposition ed = new EigenDecompositionImpl(matrix, MathUtils.SAFE_MIN);
    assertEquals(m, ed.getV().getRowDimension());
    assertEquals(m, ed.getV().getColumnDimension());
    assertEquals(m, ed.getD().getColumnDimension());
    assertEquals(m, ed.getD().getColumnDimension());
    assertEquals(m, ed.getVT().getRowDimension());
    assertEquals(m, ed.getVT().getColumnDimension());
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:11,代码来源:EigenDecompositionImplTest.java

示例10: testMath308

public void testMath308() {

        double[] mainTridiagonal = {
            22.330154644539597, 46.65485522478641, 17.393672330044705, 54.46687435351116, 80.17800767709437
        };
        double[] secondaryTridiagonal = {
            13.04450406501361, -5.977590941539671, 2.9040909856707517, 7.1570352792841225
        };

        // the reference values have been computed using routine DSTEMR
        // from the fortran library LAPACK version 3.2.1
        double[] refEigenValues = {
            82.044413207204002, 53.456697699894512, 52.536278520113882, 18.847969733754262, 14.138204224043099
        };
        RealVector[] refEigenVectors = {
            new ArrayRealVector(new double[] { -0.000462690386766, -0.002118073109055,  0.011530080757413,  0.252322434584915,  0.967572088232592 }),
            new ArrayRealVector(new double[] {  0.314647769490148,  0.750806415553905, -0.167700312025760, -0.537092972407375,  0.143854968127780 }),
            new ArrayRealVector(new double[] {  0.222368839324646,  0.514921891363332, -0.021377019336614,  0.801196801016305, -0.207446991247740 }),
            new ArrayRealVector(new double[] { -0.713933751051495,  0.190582113553930, -0.671410443368332,  0.056056055955050, -0.006541576993581 }),
            new ArrayRealVector(new double[] { -0.584677060845929,  0.367177264979103,  0.721453187784497, -0.052971054621812,  0.005740715188257 })
        };

        EigenDecomposition decomposition =
            new EigenDecompositionImpl(mainTridiagonal, secondaryTridiagonal, MathUtils.SAFE_MIN);

        double[] eigenValues = decomposition.getRealEigenvalues();
        for (int i = 0; i < refEigenValues.length; ++i) {
            assertEquals(refEigenValues[i], eigenValues[i], 1.0e-5);
            assertEquals(0, refEigenVectors[i].subtract(decomposition.getEigenvector(i)).getNorm(), 2.0e-7);
        }

    }
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:32,代码来源:EigenDecompositionImplTest.java

示例11: testDimension4WithSplit

@Test
public void testDimension4WithSplit() {
    RealMatrix matrix =
        MatrixUtils.createRealMatrix(new double[][] {
                               {  0.784, -0.288,  0.000,  0.000 },
                               { -0.288,  0.616,  0.000,  0.000 },
                               {  0.000,  0.000,  0.164, -0.048 },
                               {  0.000,  0.000, -0.048,  0.136 }
                           });
    EigenDecomposition ed = new EigenDecompositionImpl(matrix, MathUtils.SAFE_MIN);
    Assert.assertEquals(1.0, ed.getRealEigenvalue(0), 1.0e-15);
    Assert.assertEquals(0.4, ed.getRealEigenvalue(1), 1.0e-15);
    Assert.assertEquals(0.2, ed.getRealEigenvalue(2), 1.0e-15);
    Assert.assertEquals(0.1, ed.getRealEigenvalue(3), 1.0e-15);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:15,代码来源:EigenDecompositionImplTest.java

示例12: testRepeatedEigenvalue

/**
 * Matrix with eigenvalues {8, -1, -1}
 */
public void testRepeatedEigenvalue() {
    RealMatrix repeated = MatrixUtils.createRealMatrix(new double[][] {
            {3,  2,  4},
            {2,  0,  2},
            {4,  2,  3}
    }); 
    EigenDecomposition ed = new EigenDecompositionImpl(repeated, MathUtils.SAFE_MIN);
    checkEigenValues((new double[] {8, -1, -1}), ed, 1E-12);
    checkEigenVector((new double[] {2, 1, 2}), ed, 1E-12);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:13,代码来源:EigenDecompositionImplTest.java

示例13: testAEqualVDVt

/** test A = VDVt */
public void testAEqualVDVt() {
    EigenDecomposition ed = new EigenDecompositionImpl(matrix, MathUtils.SAFE_MIN);
    RealMatrix v  = ed.getV();
    RealMatrix d  = ed.getD();
    RealMatrix vT = ed.getVT();
    double norm = v.multiply(d).multiply(vT).subtract(matrix).getNorm();
    assertEquals(0, norm, 6.0e-13);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:9,代码来源:EigenDecompositionImplTest.java

示例14: testRepeatedEigenvalue

/**
 * Matrix with eigenvalues {8, -1, -1}
 */
public void testRepeatedEigenvalue() {
    RealMatrix repeated = MatrixUtils.createRealMatrix(new double[][] {
            {3,  2,  4},
            {2,  0,  2},
            {4,  2,  3}
    });
    EigenDecomposition ed = new EigenDecompositionImpl(repeated, MathUtils.SAFE_MIN);
    checkEigenValues((new double[] {8, -1, -1}), ed, 1E-12);
    checkEigenVector((new double[] {2, 1, 2}), ed, 1E-12);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:13,代码来源:EigenDecompositionImplTest.java

示例15: testDimension1

public void testDimension1() {
    RealMatrix matrix =
        MatrixUtils.createRealMatrix(new double[][] { { 1.5 } });
    EigenDecomposition ed = new EigenDecompositionImpl(matrix, MathUtils.SAFE_MIN);
    assertEquals(1.5, ed.getRealEigenvalue(0), 1.0e-15);
}
 
开发者ID:SpoonLabs,项目名称:astor,代码行数:6,代码来源:EigenDecompositionImplTest.java


注:本文中的org.apache.commons.math.util.MathUtils.SAFE_MIN属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。