Macaulay2 » Documentation
Packages » Bertini :: bertiniTrackHomotopy
next | previous | forward | backward | up | index | toc

# bertiniTrackHomotopy -- a main method to track using a user-defined homotopy

- Usage:
    `S0=bertiniTrackHomotopy(t, H, S1)`
- Inputs:
  - t, a ring element, a path variable
  - H, a list, a list polynomials that define the homotopy with respect to the path variable
  - S1, a list, a list of solutions to the start system
- Optional inputs:
  - BertiniInputConfiguration (missing documentation) => ..., default value {},
  - IsProjective => ..., default value -1, optional argument to specify whether to use homogeneous coordinates
  - Verbose => ..., default value false, Option to silence additional output
- Outputs:
  - S0, a list, a list of solutions to the target system

## Description

This method calls Bertini to track a user-defined homotopy. The user needs to specify the homotopy H, the path variable t, and a list of start solutions S1. Bertini (1) writes the homotopy and start solutions to temporary files, (2) invokes Bertini's solver with configuration keyword UserHomotopy => 1 in the affine case and UserHomotopy => 2 in the projective situation, (3) stores the output of Bertini in a temporary file, and (4) parses a machine readable file to output a list of solutions.

    i1 : R = CC[x,t]; -- include the path variable in the ring

    i2 : H = { (x^2-1)*t + (x^2-2)*(1-t)};

    i3 : sol1 = point {{1}};

    i4 : sol2 = point {{-1}};

    i5 : S1= { sol1, sol2  };--solutions to H when t=1

    i6 : S0 = bertiniTrackHomotopy (t, H, S1) --solutions to H when t=0

    o6 = {{-1.41421}, {1.41421}}

    o6 : List

    i7 : peek S0_0

    o7 = Point{cache => CacheTable{...9...}}
               Coordinates => {-1.41421}

In the previous example, we solved $x^2-2$ by moving from $x^2-1$ with a linear homotopy. Bertini tracks homotopies starting at $t=1$ and ending at $t=0$. Final solutions are of the type Point.

    i8 : R=CC[x,y,t]; -- include the path variable in the ring

    i9 : f1=(x^2-y^2);

    i10 : f2=(2*x^2-3*x*y+5*y^2);

    i11 : H = { f1*t + f2*(1-t)}; --H is a list of polynomials in x,y,t

    i12 : sol1=    point{{1,1}}--{{x,y}} coordinates

    o12 = sol1

    o12 : Point

    i13 : sol2=    point{{ -1,1}}

    o13 = sol2

    o13 : Point

    i14 : S1={sol1,sol2}--solutions to H when t=1

    o14 = {sol1, sol2}

    o14 : List

    i15 : S0=bertiniTrackHomotopy(t, H, S1, IsProjective=>1) --solutions to H when t=0

    o15 = {{-.482114-.646009*ii, .215048-.462233*ii}, {4.1398-4.7253*ii,
          -----------------------------------------------------------------------
          -1.389-3.72253*ii}}

    o15 : List

Variables must begin with a letter (lowercase or capital) and can only contain letters, numbers, underscores, and square brackets.

## Ways to use bertiniTrackHomotopy:

- `bertiniTrackHomotopy(RingElement,List,List)`

## For the programmer

The object bertiniTrackHomotopy is a method function with options.

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