Accord.Tests.Math.GeneralizedEigenvalueDecompositionTest.GeneralizedEigenvalueDecompositionConstructorTest3 C# (CSharp) Method

GeneralizedEigenvalueDecompositionConstructorTest3() private method

        public void GeneralizedEigenvalueDecompositionConstructorTest3()
        {
            for (int i = 0; i < 10000; i++)
            {
                for (int j = 1; j < 6; j++)
                {
                    var A = Matrix.Random(j, j, -1.0, 1.0);
                    var B = Matrix.Random(j, j, -1.0, 1.0);

                    var gevd = new GeneralizedEigenvalueDecomposition(A, B);

                    var V = gevd.Eigenvectors;
                    var D = gevd.DiagonalMatrix;

                    // A*V = B*V*D
                    var AV = Matrix.Multiply(A, V);
                    var BVD = Matrix.Multiply(Matrix.Multiply(B, V), D);

                    Assert.IsTrue(Matrix.IsEqual(AV, BVD, 0.0000001));
                }
            }

            for (int i = 0; i < 100; i++)
            {
                int j = 50;
                var A = Matrix.Random(j, j, -1.0, 1.0);
                var B = Matrix.Random(j, j, -1.0, 1.0);

                var gevd = new GeneralizedEigenvalueDecomposition(A, B);

                var V = gevd.Eigenvectors;
                var D = gevd.DiagonalMatrix;

                // A*V = B*V*D
                var AV = Matrix.Multiply(A, V);
                var BVD = Matrix.Multiply(Matrix.Multiply(B, V), D);

                Assert.IsTrue(Matrix.IsEqual(AV, BVD, 0.0000001));
            }
        }