Suppose we are given a polynomial system with real coefficients whose solutions we don’t know but want to find, say . And suppose we have another polynomial system, also with real coefficients, which has the same number of solutions and we know said solutions, say . We assume both polynomials have real solutions. We would like to use homotopy continuation to track the roots of and obtain the roots of . This problem can become very interesting even for a simple case of one equation and one unknown. Let’s consider the following example.

Let and . We pretend that we do not know the roots of , but we know the roots of – namely We use the homotopy to track the roots of for In order to avoid any singularities, the -trick is commonly used. That is, we solve the homotopy for some random What if we don’t want to use the -trick? What happens in this case, generically? If we proceed to solve we run into a problem referred to as a *quadratic turning point*. In the figure below we have the roots of on the left hand side, and the roots of on the right hand side. One of the roots of is easily tracked to a root of ; however, the other two fail. They collide at the red point below. This red point shows that for some value of the parameter we have a double root of the system , this is the quadratic turning point.

The two real roots collide and turn into complex roots, which never reach the real roots of . We can also see this in Macaulay2. Running the code

`needsPackage "NumericalAlgebraicGeometry"`

R = CC[symbol x]

f = (x-1)*(x-2)*(x-3)

g = (x+1)*(x+3)*(x+5)

solsg = {{-1},{-3},{-5}}

solsf = track({g},{f},solsg)

we get as the output of the last line

`o155 = {{1}, [M,t=.0141907], [M,t=.0141907]}`

,

which shows that two of the roots of could not be tracked to the roots of We take a look to see what happens with the ill-behaved roots.

The first root was tracked in 11 steps, while the second and third roots failed the tracking at . We can check that the system has three real solutions for that value of ,namely . However, for , the solutions of are Clearly, we have lost two real solutions to two complex solutions after passing through a double root of .

To avoid this quadratic turning point, we can compute the discriminant of the polynomial and identify when double roots will occur. One question that arises from the observations above is —* *Is there a way to “jump around” the double root? That is, can we locally avoid this quadratic turning point by selecting points close by and continuing past it?

Now suppose we have a system with more equations and more unknowns. How can we determine if there is a double root? A triple root? A root with even higher multiplicity? The discriminant only tells us if there is a repeated root, but it does not tell us the multiplicity. So, is there a way to determine for what coefficients of the system we get multiple roots, the multiplicity of the roots, and how we can use this information to avoid singularities in the homotopy tracking?

As far as software, in addition to https://reaction-networks.net/control/ we should look at http://www.math.ucsd.edu/~toal/chemdeterminant.html

and other tools mentioned on Wikipedia at https://reaction-networks.net/wiki/Mathematics_of_Reaction_Networks#List_of_software_packages

Also my search turned up not directly related, but interesting post

https://johncarlosbaez.wordpress.com/2014/06/10/the-computational-power-of-chemical-reaction-networks/

LikeLike