public void ZeroOutRight(_nMatrix matrix)
        {
            int cntr = 0;

            foreach (var vctor in matrix.rows)
            {
                for (int i = 0; i < n; i++)
                {
                    if (i >= cntr + 2)
                    {
                        vctor.Value.vector[i] = 0;
                    }
                }
                cntr++;
            }
        }
        public _nMatrix QRByHouseholderReflection(_nMatrix matrix, int dim)
        {
            var finalMatrix = matrix;
            var temp        = matrix;

            for (int i = (n - 1); i >= 1; i--)
            {
                var result = HouseholderResult(temp, i + 1, dim);
                temp.InsertSubMatrix(result, i + 1);
                temp = temp.GetSubMatrix(i);
                finalMatrix.InsertSubMatrix(result, i + 1);
            }

            ZeroOutLeft(finalMatrix);
            return(finalMatrix);
        }
        public void ZeroOutLeft(_nMatrix matrix)
        {
            int row  = 0;
            int cntr = 0;

            foreach (var vctor in matrix.rows)
            {
                if (row != 0)
                {
                    for (int i = 0; i <= cntr; i++)
                    {
                        vctor.Value.vector[i] = 0;
                    }
                    cntr++;
                }
                row++;
            }
        }
        public _nMatrix BiDiagonalizationByHouseholderReflection(_nMatrix matrix, int dim)
        {
            var finalMatrix = matrix;
            var temp        = matrix;

            for (int i = (n - 1); i >= 1; i--)
            {
                var result = HouseholderResult(temp, i, dim);

                temp.InsertSubMatrix(result, i + 1);
                temp = temp.GetSubMatrix(i);
                finalMatrix.InsertSubMatrix(result, i + 1);
                if (i > 1)
                {
                    HouseholderRight(finalMatrix, i, dim);
                }
            }
            ZeroOutLeft(finalMatrix);
            ZeroOutRight(finalMatrix);
            return(finalMatrix);
        }
Example #5
0
        public void BeforeEachTest()
        {
            var lista = new List <double>()
            {
                1, 2, 6
            };
            var lista2 = new List <double>()
            {
                3, 4, 43
            };
            var lista3 = new List <double>()
            {
                5, 6, 21
            };
            var veca1    = new _nVector(lista);
            var veca2    = new _nVector(lista2);
            var veca3    = new _nVector(lista3);
            var VecLista = new List <_nVector>();

            VecLista.Add(veca1);
            VecLista.Add(veca2);
            VecLista.Add(veca3);
            subMatrix = new _nMatrix(VecLista, 3);


            var idendityClass = new nIdentityMatrix();

            identity = idendityClass.ReturnNIdentityMatrix(6);

            var list = new List <double>()
            {
                1, 2, 6, 7, 8, 3
            };
            var list2 = new List <double>()
            {
                3, 4, 43, 23, 1, 22
            };
            var list3 = new List <double>()
            {
                5, 6, 21, 1, 34, 2
            };
            var list4 = new List <double>()
            {
                15, 46, 221, 21, 334, 32
            };
            var list5 = new List <double>()
            {
                15, 46, 21, 31, 34, 12
            };
            var list6 = new List <double>()
            {
                45, 26, 221, 11, 234, 2
            };

            var vec1    = new _nVector(list);
            var vec2    = new _nVector(list2);
            var vec3    = new _nVector(list3);
            var vec4    = new _nVector(list4);
            var vec5    = new _nVector(list5);
            var vec6    = new _nVector(list6);
            var VecList = new List <_nVector>();

            VecList.Add(vec1);
            VecList.Add(vec2);
            VecList.Add(vec3);
            VecList.Add(vec4);
            VecList.Add(vec5);
            VecList.Add(vec6);

            matrix = new _nMatrix(VecList, 6);

            var list1 = new List <double>()
            {
                1, 2, 6, 7, 8, 3
            };
            var list12 = new List <double>()
            {
                3, 4, 43, 23, 1, 22
            };
            var list13 = new List <double>()
            {
                5, 6, 21, 1, 34, 2
            };
            var list14 = new List <double>()
            {
                15, 46, 221, 21, 334, 32
            };
            var list15 = new List <double>()
            {
                2, 3, 4, 5, 6, 7
            };
            var list16 = new List <double>()
            {
                8, 9, 10, 11, 12, 13
            };

            var vec11    = new _nVector(list1);
            var vec12    = new _nVector(list12);
            var vec13    = new _nVector(list13);
            var vec14    = new _nVector(list14);
            var vec15    = new _nVector(list15);
            var vec16    = new _nVector(list16);
            var VecList1 = new List <_nVector>();

            VecList1.Add(vec11);
            VecList1.Add(vec12);
            VecList1.Add(vec13);
            VecList1.Add(vec14);
            VecList1.Add(vec15);
            VecList1.Add(vec16);

            matrix2 = new _nMatrix(VecList1, 6);
        }
Example #6
0
 public DiagonalizeByGivens(_nMatrix matrix)
 {
     this.matrix = matrix;
 }