Accord.Tests.Math.JaggedSingularValueDecompositionTest.JaggedSingularValueDecompositionConstructorTest7 C# (CSharp) Method

JaggedSingularValueDecompositionConstructorTest7() private method

private JaggedSingularValueDecompositionConstructorTest7 ( ) : void
return void
        public void JaggedSingularValueDecompositionConstructorTest7()
        {
            int count = 100;
            double[][] value = new double[count][];
            double[] output = new double[count];

            for (int i = 0; i < count; i++)
            {
                value[i] = new double[3];

                double x = i + 1;
                double y = 2 * (i + 1) - 1;
                value[i][0] = x;
                value[i][1] = y;
                value[i][2] = 1;
                output[i] = 4 * x - y + 3;
            }



            var target = new JaggedSingularValueDecomposition(value,
                computeLeftSingularVectors: true,
                computeRightSingularVectors: true);

            {
                double[][] expected = value;
                double[][] actual = Matrix.Multiply(Matrix.Multiply(target.LeftSingularVectors, 
                    target.DiagonalMatrix),
                    target.RightSingularVectors.Transpose());

                // Checking the decomposition
                Assert.IsTrue(Matrix.IsEqual(actual, expected, 1e-8));
            }

            {
                double[] solution = target.Solve(output);

                double[] expected = output;
                double[] actual = value.Multiply(solution);

                Assert.IsTrue(Matrix.IsEqual(actual, expected, 1e-8));
            }
        }
    }