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); }
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); }
public DiagonalizeByGivens(_nMatrix matrix) { this.matrix = matrix; }