# Homotopy Continuation in Julia This is a project for the "Laboratorio Computazionale" exam at the University of Pisa ## Implemented - Total-degree Homotopy with "Roots of unity" start system - Euler-Newton predictor-corrector method with adaptive step size - Homotopy Continuation for all roots of the target system ## TODO - [x] Parallelization - ~~Homogenization~~ ## Example systems Here's some tests on 2x2 systems, with the plotted real approximate solutions $$ \begin{align*} x^3 + 5x^2 - y - 10 &= 0 \\ 2x^2 - y - 10 &= 0 \\ \end{align*} $$ | Single-threaded | Multi-threaded (nproc=6) | |-------------------|---------------------------------| | ![Solution 1](plots/solutions1.png) | ![Multi-threaded Solution 1](plots/solutions1_6.png) | --- $$ \begin{align*} x^2 + 2y &= 0 \\ y - 3x^3 &= 0 \\ \end{align*} $$ | Single-threaded | Multi-threaded (nproc=6) | |-------------------|---------------------------------| | ![Solution 2](plots/solutions2.png) | ![Multi-threaded Solution 2](plots/solutions2_6.png) | $$ \begin{align*} x^2 + y^2 - 4 &= 0 \\ xy - 1 &= 0 \\ \end{align*} $$ | Single-threaded | Multi-threaded (nproc=6) | |-------------------|---------------------------------| | ![Solution 3](plots/solutions3.png) | ![Multi-threaded Solution 3](plots/solutions3_6.png) | --- $$ \begin{align*} x^2 + y^2 - 2 &= 0 \\ xy - 1 &= 0 \\ \end{align*} $$ | Single-threaded | Multi-threaded (nproc=6) | |-------------------|---------------------------------| | ![Solution 4](plots/solutions4.png) | ![Multi-threaded Solution 4](plots/solutions4_6.png) |