AngouriMath
GroebnerSystemSolver
Description
Summary
Solves a system of polynomial equations over Q by triangularising it, for the
systems where that can be done and answered exactly.
systems where that can be done and answered exactly.
Remarks
SolveEquation(AngouriMath.Entity.Variable), which applies the closed-form radical
formulas. With numeric coefficients those are cheap; with symbolic ones they are not,
and since each elimination turns the next one's coefficients into nested radicals the
size compounds. Four coupled variables did not finish in three hundred seconds, while
four uncoupled ones with 256 solutions took seventeen milliseconds — the cost was
never the size of the system, it was eliminating in radicals.
leaves the last variable a univariate polynomial with rational coefficients, which
the existing polynomial solver already handles. The basis is computed under
degree-reverse-lexicographic, which is the order that can actually be computed, and
converted by Fglm.
into the original equations and is kept only if they reduce to exactly zero. That
covers rational and radical solutions —
pass is enough to prove a radical identity. Where a root is a decimal the check cannot
be made at all, and rather than accept a tuple on a tolerance, which is how a root
that is merely close becomes a reported solution, the whole system goes back to the
existing solver. So this takes what it can prove and declines the rest without
changing what those did before.
Members
Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 1953 pages online