F = QQ['a', 'b', 'c'].fraction_field() a, b, c = F.gens() # three mutually tangent spheres which are all perpendicular to the x, y plane gram = matrix([ [-1, 0, 0, 0, 0], [0, -1, a, b, c], [0, a, -1, 1, 1], [0, b, 1, -1, 1], [0, c, 1, 1, -1] ]) P, L, U = gram.LU() solution = (P * L).transpose() mform = U * L.transpose().inverse() concrete = solution.subs({a: 0, b: 1, c: -3/4}) std_basis = matrix([ [0, 0, 0, 1, 1], [0, 0, 0, 1, -1], [1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0] ]) std_solution = std_basis * solution std_concrete = std_basis * concrete