Beispiel #1
0
        public _nMatrix GetDiagonalizedMatrix(int n)
        {
            var      givens = new GivensRotationMatrix();
            double   a = 0, b = 0;
            _nMatrix res = null;

            for (int i = 0; i < n - 1; i++)
            {
                a = matrix.GetValueAt(i + 1, i + 1);
                b = matrix.GetValueAt(i + 1, i + 2);
                var givensMatrix = givens.ReturnGivensMatrix(a, b, i + 1, n);
                res = matrix.MultiplyByAnotherMatrix(givensMatrix);
            }
            return(res);
        }
Beispiel #2
0
        public void AssertTransposeTest1()
        {
            var transpose = matrix.ReturnTranspose(matrix);

            Assert.AreEqual(transpose.GetValueAt(1, 1), matrix.GetValueAt(1, 1));
            Assert.AreEqual(transpose.GetValueAt(2, 2), matrix.GetValueAt(2, 2));
            Assert.AreEqual(transpose.GetValueAt(3, 3), matrix.GetValueAt(3, 3));
            Assert.AreEqual(transpose.GetValueAt(4, 4), matrix.GetValueAt(4, 4));
            Assert.AreEqual(transpose.GetValueAt(5, 5), matrix.GetValueAt(5, 5));
            Assert.AreEqual(transpose.GetValueAt(6, 6), matrix.GetValueAt(6, 6));

            Assert.AreEqual(transpose.GetValueAt(2, 1), matrix.GetValueAt(1, 2));
            Assert.AreEqual(transpose.GetValueAt(3, 1), matrix.GetValueAt(1, 3));
            Assert.AreEqual(transpose.GetValueAt(4, 1), matrix.GetValueAt(1, 4));
            Assert.AreEqual(transpose.GetValueAt(5, 1), matrix.GetValueAt(1, 5));
            Assert.AreEqual(transpose.GetValueAt(6, 1), matrix.GetValueAt(1, 6));

            //Assert.AreEqual(transpose.GetValueAt(1, 2), 419m);
            //Assert.AreEqual(transpose.GetValueAt(3, 2), 326m);
            //Assert.AreEqual(transpose.GetValueAt(4, 2), 3796m);
            //Assert.AreEqual(transpose.GetValueAt(5, 2), 1976m);
            //Assert.AreEqual(transpose.GetValueAt(6, 2), 2746m);

            //Assert.AreEqual(transpose.GetValueAt(1, 3), 1827m);
            //Assert.AreEqual(transpose.GetValueAt(2, 3), 6400m);
            //Assert.AreEqual(transpose.GetValueAt(4, 3), 13006m);
            //Assert.AreEqual(transpose.GetValueAt(5, 3), 9616m);
            //Assert.AreEqual(transpose.GetValueAt(6, 3), 9416m);

            //Assert.AreEqual(transpose.GetValueAt(1, 4), 279m);
            //Assert.AreEqual(transpose.GetValueAt(2, 4), 886m);
            //Assert.AreEqual(transpose.GetValueAt(3, 4), 407m);
            //Assert.AreEqual(transpose.GetValueAt(5, 4), 2137m);
            //Assert.AreEqual(transpose.GetValueAt(6, 4), 2557m);

            //Assert.AreEqual(transpose.GetValueAt(1, 5), 2636m);
            //Assert.AreEqual(transpose.GetValueAt(2, 5), 9442m);
            //Assert.AreEqual(transpose.GetValueAt(3, 5), 1322m);
            //Assert.AreEqual(transpose.GetValueAt(4, 5), 17082m);
            //Assert.AreEqual(transpose.GetValueAt(6, 5), 13002m);

            //Assert.AreEqual(transpose.GetValueAt(1, 6), 378m);
            //Assert.AreEqual(transpose.GetValueAt(2, 6), 1212m);
            //Assert.AreEqual(transpose.GetValueAt(3, 6), 485m);
            //Assert.AreEqual(transpose.GetValueAt(4, 6), 4925m);
            //Assert.AreEqual(transpose.GetValueAt(5, 6), 2485m);
        }