forked from glen/dyna3
30 lines
654 B
Julia
30 lines
654 B
Julia
![]() |
using LinearAlgebra
|
||
|
using AbstractAlgebra
|
||
|
|
||
|
F, (a, b, c) = rational_function_field(Generic.Rationals{BigInt}(), ["a", "b", "c"])
|
||
|
M = matrix_space(F, 5, 5)
|
||
|
|
||
|
# three mutually tangent spheres which are all perpendicular to the x, y plane
|
||
|
gram = M(F.([
|
||
|
-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;
|
||
|
]))
|
||
|
|
||
|
r, p, L, U = lu(gram)
|
||
|
solution = transpose(p * L)
|
||
|
mform = U * inv(transpose(L))
|
||
|
|
||
|
concrete = [evaluate(entry, [0, 1, -3//4]) for entry in solution]
|
||
|
|
||
|
std_basis = [
|
||
|
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 = M(F.(std_basis)) * solution
|
||
|
std_concrete = std_basis * concrete
|