forked from glen/dyna3
30 lines
No EOL
654 B
Julia
30 lines
No EOL
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 |