Accord.Tests.Math.EigenvalueDecompositionTest.EigenvalueDecompositionConstructorTest2 C# (CSharp) Method

EigenvalueDecompositionConstructorTest2() private method

private EigenvalueDecompositionConstructorTest2 ( ) : void
return void
        public void EigenvalueDecompositionConstructorTest2()
        {
            // Asymmetric test
            double[,] A =
            {
                {  5, 2, 1 },
                {  1, 4, 1 },
                { -1, 2, 3 }
            };

            var target = new EigenvalueDecomposition(A);
            var D = target.DiagonalMatrix;
            var Q = target.Eigenvectors;

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

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

            Assert.IsTrue(Matrix.IsEqual(expectedD, D, 1e-5));
            Assert.IsTrue(Matrix.IsEqual(A, actualA, 1e-5));
            Assert.IsTrue(Matrix.IsEqual(A, target.Reverse(), 1e-5));
        }
    }