def matrix(): result = None if request.method == 'POST': try: op = request.form.get('submit', None) acalc = request.form.get('a-submit', None) bcalc = request.form.get('b-submit', None) if acalc: letter = 'A' calc = acalc elif bcalc: letter = 'B' calc = bcalc else: mata = [] for x in range(3): #TODO make a function def to get a matrix mata.append([]) #def get_mat(letter,x,y): for y in range(3): string = 'A' + str(x) + str(y) mata[x].append(Fraction(request.form[string])) matb = [] for x in range(3): matb.append([]) for y in range(3): string = 'B' + str(x) + str(y) matb[x].append(Fraction(request.form[string])) a = Matrix(mata) b = Matrix(matb) if op == 'X': matresult = a * b if op == '-': matresult = a - b if op == '+': matresult = a + b result = matresult.tostr().rows return render_template('matrix.html', matrix_result=result, det_result=None, Error=None) mat = [] for x in range(3): mat.append([]) for y in range(3): string = letter + str(x) + str(y) mat[x].append(Fraction(request.form[string])) m = Matrix(mat) if 'Determinant' in calc: result = str(m.determinant()) return render_template('matrix.html', matrix_result=None, det_result=result, Error=None) elif 'Inverse' in calc: result = m.inverse().tostr().rows return render_template('matrix.html', matrix_result=result, det_result=None, Error=None) elif 'Transpose' in calc: result = m.transpose().tostr().rows return render_template('matrix.html', matrix_result=result, det_result=None, Error=None) elif 'Triangle' in calc: result = m.triangle().tostr().rows return render_template('matrix.html', matrix_result=result, det_result=None, Error=None) else: return render_template('matrix.html', matrix_result=None, det_result=None, Error=None) except Exception as e: print(e) error = 'Invalid Matrix, Try again' return render_template('matrix.html', matrix_result=None, det_result=None, Error=error) return render_template('matrix.html', matrix_result=result)
from __future__ import division from csv_saver import save_rows_to_csv from linear_networks import solve_linear_network, csv_to_network_branch_matrices from choleski import choleski_solve from matrices import Matrix NETWORK_DIRECTORY = 'network_data' L_2 = Matrix([[5, 0], [1, 3]]) L_3 = Matrix([[3, 0, 0], [1, 2, 0], [8, 5, 1]]) L_4 = Matrix([[1, 0, 0, 0], [2, 8, 0, 0], [5, 5, 4, 0], [7, 2, 8, 7]]) matrix_2 = L_2 * L_2.transpose() matrix_3 = L_3 * L_3.transpose() matrix_4 = L_4 * L_4.transpose() positive_definite_matrices = [matrix_2, matrix_3, matrix_4] x_2 = Matrix.column_vector([8, 3]) x_3 = Matrix.column_vector([9, 4, 3]) x_4 = Matrix.column_vector([5, 4, 1, 9]) xs = [x_2, x_3, x_4] def q1(): """ Question 1 """ q1b() q1c() q1d()