• Start here. An excellent overview paper is “What is numerical algebraic geometry?”
• Silviana’s favorite book on the topic of numerical algebraic geometry is the book “Numerically solving polynomial systems with Bertini” by Bates,
Hauenstein, Sommese, Wampler. Great discussion of algorithms together with an implementation in the software Bertini. Book website.
Much of this book’s discussion is aimed at a specific piece of software, but the narrative is still very good for learning NAG. We will use content that’s covered in significant portions of the book.
• The website and documentation for HomotopyContinuation.jl
• An outstanding introduction to symbolic algorithms, particularly Groebner bases, is the book “Ideals, varieties, and algorithms” by Cox, Little, O’Shea
[31]. We will touch on things from Chapters 1-4. A pdf might be found online by searching for the name of the book.
• Macaulay2 website and online no-install portal for trying out Macaulay2.
If you have Windows, consider installing a virtual machine running Ubuntu 24.04 LTS or 25.04, so that you can use all the software in a Unix environment.
2.1 Basic terminal skills: Know how to use command line software in a terminal. The following commands are a must:
• mkdir, cd, ls, touch
I think there is a decent tutorial here. Know that Windows cmd and the Power-shell are not the same at all, and there are big differences between
Windows command line and Mac/Unix.
2.2 Software: Install on your computer or a cluster to which you have access. There will be in-person help to install and run things if you need it. Since this content is in Week 2, there’s less pressure to install things before arriving.
OS software installation suggestions:
• MacOS, Homebrew makes installing stuff much easier. First install Home-brew, then install the other things you need, then finally compile the soft-
ware.
• Ubuntu or other Linux distros, use the provided package manager
• Windows, Cygwin is a way to install things for Bertini 1. Julia can be installed via an installer.
• Bertini 1. Available at bertini.nd.edu. Build from source (most reliable), or download pre-compiled executables.
• Julia, and inside it HomotopyContinuation.jl. Easy to install from a package manager.
• Macaulay 2. There is a decent free online way of using it that requires no install from you. Also pretty easy to install from a package manager.
Optionally consider installing:
• Paramotopy, install from source from github. Requires Bertini 1 installed from source, and requires MPI for parallelism.
Generic math/computing software:
• Python. Just in case we end up using Bertini real for anything and you don’t have Matlab.
• Matlab. Used in other course in this summer school, has some existing software for interacting with Bertini 1 and friends.
Lecture 1 - Foundations of Computational and Numerical Algebraic Geometry
The language of algebraic varieties. The computational framework of numerical algebraic geometry.
Positive dimensional components.
Some things that can go wrong when using numerical software. A bit of history.
Lecture 2 - Software in Computational Algebraic Geometry
Bertini 1 and friends in the command line, and HomotopyContinuation.jn in Julia, for numerical algebraic geometry.
Macaulay2 for symbolic computational algebraic geometry.
Lecture 3 - Special Methods
Treating some non-algebraic systems. Case studies of a few systems coming from pattern formation.
Methods for studying connected components and positive dimensional sets.
Parameterized systems.
Coral growth. Real sets.
Lecture 4 - Advances and Open Problems
Advanced methods in numerical algebraic geometry. Monodromy methods. Strategically sampling varieties. Certification.