Macaulay2 » Documentation
Packages » MonodromySolver :: sparseMonodromySolve
next | previous | forward | backward | up | index | toc

# sparseMonodromySolve -- an "out of the box" polynomial system solver

- Usage:
    `sols = sparseMonodromySolve PS`
- Inputs:
  - PS, an instance of the type System, whose coefficients are complex numbers
- Optional inputs:
  - AugmentEdgeCount => ..., default value 0,
  - AugmentGraphFunction => ..., default value null,
  - AugmentNodeCount => ..., default value 0,
  - AugmentNumberOfRepeats => ..., default value null,
  - BatchSize => ..., default value infinity,
  - EdgesSaturated => ..., default value false,
  - Equivalencer => ..., default value null,
  - FilterCondition => ..., default value null,
  - GraphInitFunction => ..., default value completeGraphInit,
  - new tracking routine
  - NumberOfEdges => ..., default value null,
  - NumberOfNodes => ..., default value null,
  - NumberOfRepeats => ..., default value 10,
  - PointArrayTol (missing documentation) => ..., default value .0001,
  - Potential => ..., default value null,
  - Randomizer => ..., default value null,
  - SelectEdgeAndDirection => ..., default value selectFirstEdgeAndDirection,
  - StoppingCriterion => ..., default value null,
  - TargetSolutionCount => ..., default value null,
  - Verbose => ..., default value false,
- Outputs:
  - sols, a list, containing solutions to sys, each represented as a Point.

## Description

Blackbox monodromy solver for a square polynomial system without parameters. The example below finds all six intersection of a generic cubic F with its quadratic polar curve P.

    i1 : setRandomSeed 2021;
     -- setting random seed to 2021

    i2 : R=CC[x,y,z];

    i3 : F=random(3,R);
    -- warning: experimental computation over inexact field begun
    --          results not reliable (one warning given per session)

    i4 : P=sum apply(gens R,g->diff(g,F)*random CC);

    i5 : PS = polySystem {F,P,random(1,R)-1};

    i6 : sols = sparseMonodromySolve PS;

    i7 : length points sols

    o7 = 6

    i8 : for i from 0 to 5 list norm evaluate(PS, sols#i)

    o8 = {3.87307e-15, 1.06167e-14, 2.22045e-16, 9.15513e-16, 2.78384e-13,
         ------------------------------------------------------------------------
         2.83052e-16}

    o8 : List

For systems with dense support such as the above, the total number of paths tracked is generally not optimal, though timings may be comparable.

## Ways to use sparseMonodromySolve:

- `sparseMonodromySolve(PolySystem)`

## For the programmer

The object sparseMonodromySolve is a method function with options.

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