27 lines
603 B
Python
27 lines
603 B
Python
|
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
|