Macaulay2 » Documentation
Packages » PHCpack :: trackPaths
next | previous | forward | backward | up | index | toc

# trackPaths -- tracks paths defined by a typical homotopy between start and end systems

- Usage:
    `solsT = trackPaths(T,S,solsS)`
- Inputs:
  - T, a list, of polynomials, called the target system
  - S, a list, of polynomials, called the start system
  - solsS, a list, solutions of S
- Optional inputs:
  - gamma => ..., default value 0, Option to specify the value of the constant in the gamma trick
  - interactive => ..., default value false, Option to run phc -p in interactive mode.
  - intermediateSolutions => ..., default value false, option to get all intermediate solutions on a path
  - loadSettingsPath => ..., default value "", option to load the settings of the path trackers for a reproducible rerun
  - numThreads => ..., default value 0, Option to define the number of threads in the path tracker.
  - saveSettingsPath => ..., default value "", option to save the settings of the path trackers for a reproducible rerun
  - seeProgress => ..., default value false, Option to follow the progress of the multithreaded path tracker.
  - tDegree => ..., default value 2, Option to specify the degree of the continuation parameter
  - Verbose => ..., default value false, option to specify whether additional output is wanted
- Outputs:
  - solsT, a list, containing the solutions of T that are at the ends of the paths starting at solsS
- Consequences:
  - Writes the start system and its solutions to temporary files
  - Invokes the command phc -p
  - After running phc -z, stores output of phc in temporary file
  - Parses and outputs the solutions.

## Description

A linear homotopy between target T and start S has the form (1-Lambda)*S + Lambda*T = 0. The method trackPaths tracks the solution paths defined by the homotopy for Lambda going from 0 to 1. In the example below, we first construct a start system using polyhedral homotopies using mixedVolume.

    i1 : R = CC[x,y];

    i2 : f = { x^3*y^5 + y^2 + x^2*y, x*y + x^2 - 1};

    i3 : (m,q,qsols) = mixedVolume(f,StartSystem=>true);

    i4 : fsols = trackPaths(f,q,qsols)

    o4 = {{-.894935-.624334*ii, .143333+1.14868*ii}, {-1.59272, .964857},
         ------------------------------------------------------------------------
         {.742585-.425943*ii, .270685+1.00715*ii}, {1.33076+.335184*ii,
         ------------------------------------------------------------------------
         -.62414-.513163*ii}, {1.33076-.335184*ii, -.62414+.513163*ii},
         ------------------------------------------------------------------------
         {-.764107, -.544612}, {.742585+.425943*ii, .270685-1.00715*ii},
         ------------------------------------------------------------------------
         {-.894935+.624334*ii, .143333-1.14868*ii}}

    o4 : List

## See also

- gamma -- the constant in the gamma trick, optional input for trackPaths
- interactive -- flag to run phc -p or phc -m in interactive mode
- intermediateSolutions -- option of trackPaths to get all intermediate solutions on a path
- loadSettingsPath -- option of trackPaths to load the settings for a reproducible rerun
- saveSettingsPath -- option of trackPaths to save the settings for a reproducible rerun
- numThreads -- the number of threads in the path tracker
- seeProgress -- flag to monitor the progress of the multithreaded path tracker
- tDegree -- the degree of the continuation parameter

## Ways to use trackPaths:

- `trackPaths(List,List,List)`

## For the programmer

The object trackPaths is a method function with options.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/PHCpack/PHCpackDoc.m2:1361:0.