public override ContextHandler Handle(ContextHandler request) { if (!request.Errors) { for (int currentRow = request.AugmentedMatrix.NumberOfRows - 1; currentRow >= 0; currentRow--) { double temp = request.AugmentedMatrix.Array[currentRow, request.AugmentedMatrix.NumberOfColums]; for (int nextRow = currentRow + 1; nextRow < request.AugmentedMatrix.NumberOfRows; nextRow++) { temp -= request.AugmentedMatrix.Array[currentRow, nextRow] * request.AugmentedMatrix.Array[nextRow, request.AugmentedMatrix.NumberOfColums + 1]; } request.AugmentedMatrix.Array[currentRow, request.AugmentedMatrix.NumberOfColums + 1] = temp / request.AugmentedMatrix.Array[currentRow, currentRow]; } } return(base.Handle(request)); }
public override ContextHandler Handle(ContextHandler request) { if (!request.Errors) { request.Result += Environment.NewLine; request.Result += Environment.NewLine; request.Result += "RESULT"; for (int currentRow = 0; currentRow < request.AugmentedMatrix.NumberOfRows; currentRow++) { request.Result += Environment.NewLine + "x" + (currentRow + 1) + " = " + request.AugmentedMatrix.Array[currentRow, request.AugmentedMatrix.NumberOfColums + 1].ToString(); } } Console.WriteLine(request.Result); return(base.Handle(request)); }
public override ContextHandler Handle(ContextHandler request) { for (int currentRow = 0; currentRow < request.AugmentedMatrix.NumberOfRows - 1; currentRow++) { if (Math.Abs(request.AugmentedMatrix.Array[currentRow, currentRow]) <= 0) { for (int nextRow = currentRow + 1; nextRow < request.AugmentedMatrix.NumberOfRows; nextRow++) { if (Math.Abs(request.AugmentedMatrix.Array[nextRow, currentRow]) > 0) { for (int curentColumn = 0; curentColumn <= request.AugmentedMatrix.NumberOfColums; curentColumn++) { var temp = request.AugmentedMatrix.Array[currentRow, curentColumn]; request.AugmentedMatrix.Array[currentRow, curentColumn] = request.AugmentedMatrix.Array[nextRow, curentColumn]; request.AugmentedMatrix.Array[nextRow, curentColumn] = temp; } break; } } } if (Math.Abs(request.AugmentedMatrix.Array[currentRow, currentRow]) > 0) { for (int nextRow = currentRow + 1; nextRow < request.AugmentedMatrix.NumberOfRows; nextRow++) { double factor = -request.AugmentedMatrix.Array[nextRow, currentRow] / request.AugmentedMatrix.Array[currentRow, currentRow]; for (int currentColumn = currentRow; currentColumn <= request.AugmentedMatrix.NumberOfColums; currentColumn++) { request.AugmentedMatrix.Array[nextRow, currentColumn] = request.AugmentedMatrix.Array[nextRow, currentColumn] + factor * request.AugmentedMatrix.Array[currentRow, currentColumn]; } } } } return(base.Handle(request)); }