Computational Project about Homotopy Continuation
 
 
Go to file
Francesco Minnocci 65744ea41f
fix: use spawn+fetch and refactor module loading
plots Update multithreaded solutions
report feat: temptative distributed code
LICENSE Initial commit
README.md Update README.md
adapt-step.jl fix: use spawn+fetch and refactor module loading
euler-newton.jl feat: improve adapt_step function
homogenize.jl Split up main script into local modules
homotopy.jl Split up main script into local modules
plot.jl plot: Fix relative path
random_poly.jl feat: add random systems generation
solve.jl fix: use spawn+fetch and refactor module loading
start-system.jl Split up main script into local modules

README.md

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

  • [~] 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 Multi-threaded Solution 1


\begin{align*}
x^2 + 2y  &= 0 \\
y - 3x^3 &= 0 \\
\end{align*}
Single-threaded Multi-threaded (nproc=6)
Solution 2 Multi-threaded Solution 2

\begin{align*}
x^2 + y^2 - 4 &= 0 \\
xy - 1 &= 0 \\
\end{align*}
Single-threaded Multi-threaded (nproc=6)
Solution 3 Multi-threaded Solution 3


\begin{align*}
x^2 + y^2 - 2 &= 0 \\
xy - 1 &= 0 \\
\end{align*}
Single-threaded Multi-threaded (nproc=6)
Solution 4 Multi-threaded Solution 4