DecomposingPolynomialSystems.DeckTransformationGroup
— TypeDeckTransformationGroup
A DeckTransformationGroup
is the result of deck transformations computation.
DecomposingPolynomialSystems.ScalingGroup
— TypeScalingGroup
A ScalingGroup
is the result of the scaling_symmetries
computation.
DecomposingPolynomialSystems.block_partitions
— Methodblock_partitions(F::SampledSystem) -> Vector{Vector{Vector{Int}}}
Returns the vector of all block partitions of the solutions of F
.
DecomposingPolynomialSystems.deck_permutations
— Methoddeck_permutations(F::SampledSystem) -> Vector{Vector{Int}}
Returns the vector of deck permutations of the solutions (actions of deck transformations on the solutions) of F
.
DecomposingPolynomialSystems.monodromy_permutations
— Methodmonodromy_permutations(F::SampledSystem) -> Vector{Vector{Int}}
Returns the vector of monodromy permutations of F
obtained by run_monodromy
.
DecomposingPolynomialSystems.ninstances
— Methodninstances(F::SampledSystem) -> Int
Returns the number of sampled instances of F
.
DecomposingPolynomialSystems.nsamples
— Methodnsamples(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)
.
DecomposingPolynomialSystems.nunknowns
— Methodnunknowns(F::SampledSystem) -> Int
Returns the number of unknowns of F
.
DecomposingPolynomialSystems.nvariables
— Methodnvariables(F::SampledSystem) -> Int
Returns the number of variables of F
.
DecomposingPolynomialSystems.run_monodromy
— Functionrun_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
DecomposingPolynomialSystems.run_monodromy
— Functionrun_monodromy(F::SampledSystem, xp₀=nothing; options...) -> SampledSystem
Reruns monodromy_solve
on a given sampled polynomial system F
.
DecomposingPolynomialSystems.sample!
— Methodsample!(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.
DecomposingPolynomialSystems.samples
— Methodsamples(F::SampledSystem) -> Dict{Vector{Int}, Samples}
Returns the dictionary of samples of a polynomial system F
.
DecomposingPolynomialSystems.scaling_symmetries
— Methodscaling_symmetries(F::System)
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
DecomposingPolynomialSystems.symmetries_fixing_parameters
— Methodsymmetries_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
action:
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₁
DecomposingPolynomialSystems.unknowns
— Methodunknowns(F::SampledSystem) -> Vector{Variable}
Returns the vector of unknowns of F
.
DecomposingPolynomialSystems.variables
— Methodvariables(F::SampledSystem) -> Vector{Variable}
Returns the concatenated vector of unknowns and parameters of F
.
HomotopyContinuation.ModelKit.nparameters
— Methodnparameters(F::SampledSystem) -> Int
Returns the number of parameters of F
.
HomotopyContinuation.ModelKit.parameters
— Methodparameters(F::SampledSystem) -> Vector{Variable}
Returns the vector of parameters of F
.
HomotopyContinuation.nsolutions
— Methodnsolutions(F::SampledSystem) -> Int
Returns the number of solutions of F
obtained by run_monodromy
method.