Parameter Homotopies
Consider the situation in which one has to solve a specific instance of a parametrized family of polynomial systems
$$ P = \{F(x,p) = (f_1(x,p), \ldots, f_n(x,p)) \mid p \in \mathbb{C}^m\}. $$
To not destroy the solution structure it is desirable to not leave $P$ during the homotopy. This can be accomplished by using the homotopy $$H(x,t) := F(x, (1-t)p + tq)$$ where $p$ and $q$ are parameters in $\mathbb{C}^m$. Note that you have to provide the start solutions for this kind of homotopy.
The syntax in HomotopyContinuation.jl to construct such a homotopy is as follows.
solve(F, start_solutions; start_parameters=q, target_parameters=p)
where p
and q
are vectors of parameter values for F
.
Necessarily, the number of parameters of F
, length(p)
and length(q)
must all be equal.
A simple example
$$F(x,y,a,b) = \begin{bmatrix} x^2-a \\ xy-a+b \end{bmatrix}.$$
For tracking the solution $(x,y) = (1,1)$ from $(a,b) = (1,0)$ to $(a,b) = (2,5)$ we do the following.
@var x y a b
F = System([x^2 - a, x * y - a + b]; variables=[x,y], parameters =[a,b])
start_solutions = [[1, 1]]
solve(F, start_solutions; start_parameters=[1, 0], target_parameters=[2, 5])
Result with 1 solution
======================
• 1 path tracked
• 1 non-singular solution (1 real)
• random seed: 0xa45b2f02