dyna3/engine-proto/gram-test/gram-test.jl

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