nsamples(F::SampledSystem) -> Int

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

run_monodromy(F::Union{System, AbstractSystem}, xp₀=nothing; options...) -> SampledSystem

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

julia> @var x a b;

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

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

 number of solutions: 3
 sampled instances: 1
sample!(F::SampledSystem; path_ids=Vector(1:nsolutions(F)), n_instances=1) -> SampledSystem

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


Given a polynomial system F returns the group of scaling symmetries of F. The scalings that change the parameters are considered as well.

julia> @var x y a b c;

julia> F = System([x^4+a^2+1, y^2+b+c]; variables=[x, y], parameters=[a,b,c]);

julia> scaling_symmetries(F)
ScalingGroup isomorphic to ℤ × ℤ₄ × ℤ₂
 1 free scaling:
  y ↦ y*λ, b ↦ b*λ^2, c ↦ c*λ^2

 modular scalings:
  1 of order 4:
   x ↦ -im*x, y ↦ im*y, b ↦ -b, c ↦ -c
  1 of order 2:
   x ↦ -x, y ↦ -y, a ↦ -a
symmetries_fixing_parameters(F::System; degree_bound=1, param_dep=true, kwargs...)

Given a polynomial system F returns the group of symmetries of F that fix the parameters. The keyword argument degree_bound is used to set the upper bound for the degrees of numerator and denominator polynomials in expressions for the symmetries. The param_dep keyword argument specifies whether to consider functions of the symmetries to be dependent on the parameters of F.

julia> @var x[1:2] p[1:2];

julia> F = System([x[1]^2 - x[2]^2 - p[1], 2*x[1]*x[2] - p[2]]; variables=x, parameters=p);

julia> symmetries_fixing_parameters(F; degree_bound=1, param_dep=false)
DeckTransformationGroup of order 4
 structure: C2 x C2
  1st map:
   x₁ ↦ x₁
   x₂ ↦ x₂
  2nd map:
   x₁ ↦ -x₁
   x₂ ↦ -x₂
  3rd map:
   x₁ ↦ im*x₂
   x₂ ↦ -im*x₁
  4th map:
   x₁ ↦ -im*x₂
   x₂ ↦ im*x₁