def solve(A, b): n = len(A) L, U = lu(A) y = [] Lb = append_column(L, b) for row in xrange(n): y.append(gk.backward_left(Lb, row)) Uy = append_column(U, [[e] for e in y]) x = [] for row in xrange(n - 1, -1, -1): x.append(gk.backward_right(Uy, row)) x.reverse() return x
def main(): from constants import A2, b2 n = len(A2) L, U = lu(A2) y = [] Lb = gk.append_column(L, b2) for row in xrange(n): y.append(gk.backward_left(Lb, row)) Uy = gk.append_column(U, [[e] for e in y]) x = [] for row in xrange(n - 1, -1, -1): x.append(gk.backward_right(Uy, row)) x.reverse() check(A2, x, b2)
def solve(A, b): n = len(A) U = getU(A) gk.print_matrix(U) Ut = transpose(U) y = [] Utb = gk.append_column(Ut, b) for row in xrange(n): y.append(gk.backward_left(Utb, row)) print(y) Uy = gk.append_column(U, [[e] for e in y]) x = [] for row in xrange(n - 1, -1, -1): x.append(gk.backward_right(Uy, row)) x.reverse() return x, U
for i in xrange(n - 1): col = transpose([get_row(L, i)[i:]]) H = get_householder_reflection_matrix(col) if (i != 0): for j in xrange(i): H = extend_householder_matrix(H) L = multiply(L, H) Q = multiply(H, Q) householders_reflections.append(H) params_matrix_list.append(L) C = [] for i in xrange(len(L)): C.append(L[i] + [B[i][0]]) print_matrix(C, round_elem=True) y = transpose([[backward_left(C, i) for i in xrange(len(C))]]) x = multiply(transpose(Q), y) print_matrix(x) check_roots(A, [xi[0] for xi in x], B) print "\ndetA = detQ * detL = " + str( get_determinant(len(householders_reflections), L)) print "\ninv(A) = inv(L) * inv(Q) = inv(L) * Q' (транспонированая) = " inversed = get_invariant(L, Q) print_matrix(inversed) print("Check inverse matrix:") print_matrix(multiply(inversed, A))