Accord.Tests.Math.JaggedEigenvalueDecompositionTest.EigenvalueDecompositionConstructorTest C# (CSharp) Method

EigenvalueDecompositionConstructorTest() private method

private EigenvalueDecompositionConstructorTest ( ) : void
return void
        public void EigenvalueDecompositionConstructorTest()
        {
            // Symmetric test
            double[][] A =
            {
                new double[] { 4, 2 },
                new double[] { 2, 4 }
            };

            var target = new JaggedEigenvalueDecomposition(A);

            var D = target.DiagonalMatrix;
            var Q = target.Eigenvectors;

            double[][] expectedD =
            { 
                new double[] { 2, 0 },
                new double[] { 0, 6 }
            };

            double[][] expectedQ = 
            {
               new double[] {  0.7071, 0.7071 },
               new double[] { -0.7071, 0.7071 }
            };


            Assert.IsTrue(Matrix.IsEqual(expectedD, D, 0.00001));
            Assert.IsTrue(Matrix.IsEqual(expectedQ, Q, 0.0001));


            // Decomposition identity
            var actualA = Matrix.Multiply(Matrix.Multiply(Q, D), Q.Inverse());

            Assert.IsTrue(Matrix.IsEqual(expectedD, D, 0.00001));
            Assert.IsTrue(Matrix.IsEqual(A, actualA, 0.0001));
            Assert.IsTrue(Matrix.IsEqual(A, target.Reverse(), 0.0001));
        }