Sampling Polynomial Systems

In this Julia package we deal with parametric polynomial systems with finitely many solutions for generic parameters. We use HomotopyContinuation.jl to sample such polynomial systems.

Run monodromy

DecomposingPolynomialSystems.run_monodromyFunction
run_monodromy(F::ParametricSystem, start_points=nothing; options...) -> SampledParametricSystem

Runs monodromy_solve on a given polynomial system F with starting solutions start_points[1] and parameters start_points[2] (if given).

julia> @var x a b;

julia> F = ParametricSystem([x^3+a*x+b]; unknowns=[x], parameters=[a,b]);

julia> F = run_monodromy(F, ([[1]], [1,-2]); max_loops_no_progress = 10)
SampledParametricSystem with 3 samples
 1 unknown: x
 2 parameters: a, b

 number of solutions: 3
 sampled instances: 1
source
run_monodromy(F::SampledParametricSystem, start_points=nothing; options...) -> SampledParametricSystem

Reruns monodromy_solve on a given sampled polynomial system F.

source

SampledParametricSystem

SampledParametricSystem is a struct type that initially contains a polynomial system, the result of monodromy computations, and the solutions-parameters samples obtained with run_monodromy or sample!.

DecomposingPolynomialSystems.nsamplesFunction
nsamples(F::SampledParametricSystem) -> Int

Returns the number of samples of F. Notice that ninstances(F)*nsolutions(F) doesn't have to be equal to nsamples(F).

source

Sample system

DecomposingPolynomialSystems.sample!Function
sample!(F::SampledParametricSystem; path_ids=Vector(1:nsolutions(F)), n_instances=1) -> SampledParametricSystem

Uses solve method to track the solutions of a poynomial system F with ids defined by path_ids to n_instances random parameters.

source