Add files from test project

This commit is contained in:
2025-02-26 00:21:05 +01:00
parent d10c955c61
commit 9880cf6655
19 changed files with 3876 additions and 3 deletions

99
docs/general_idea.md Normal file
View File

@@ -0,0 +1,99 @@
# Homotopy Continuation
### Introduction
The aim of a homotopy method consists in solving a system of N nonlinear
equations in N variables \[1, p.1\]:
$$
F(\bm{x}) = 0, \hspace{5mm} F: \mathbb{R}^N \rightarrow \mathbb{R}^N
$$
This is achieved by defining a homotopy, or deformation,
$H : \mathbb{R}^N \rightarrow \mathbb{R}^N$ such that
$$
H(\bm{x}, 0) = G(\bm{x}), \hspace{5mm} H(\bm{x},1) = F(\bm{x}),
$$
where $G: \mathbb{R}^N \rightarrow \mathbb{R}^N$ is trivial, having known zero
points. One can then trace an implicitly defined curve
$\bm{c}(s) \in H^{-1}(0)$ from $(\bm{x}_1,0)$ to $(\bm{x}_2, 1)$ [2, p.122].
Typically, a convex homotopy such as
$$
H(\bm{x}, t) := tG(\bm{x}) + (1-t)F(\bm{x})
$$
is chosen [1, p.2].
### Implicit Definition of Solution Curve
"In the construction of the homotopy H(x, t) = 0, it may seem natural to use t
as the designated parameter for the solution curve [...]. However, this
parametrization has a severe limitation, as t cannot be used as a smooth
parameter in certain situations. For example, [...] at points where ∂H/∂x is
singular the solution curve of H(x, t) = 0 cannot be parametrized by t
directly. Actually, one may avoid such difficulties by considering both x and t
as independent variables and parametrize the smooth curve γ by the arc-length."
[2, p. 125-126].
We can show that the solution curve can be implicitly defined as
$$
\begin{align}
DH(\bm{y}(s))\cdot \dot{\bm{y}}(s) = 0 \\[.5em]
\text{det}\left(\begin{array}{c} DH(\bm{y}(s)) \\ \dot{\bm{y}}(s)\end{array}\right) = \sigma_0 \\[.5em]
\lVert \dot{\bm{y}}(s) \rVert = 1 \\[.5em]
\bm{y}(0) = (\bm{x}_0, 0)
.
\end{align}
$$
where $DH(y)$ is the Jacobian of $H(y)$ [2, p.127] [1, p.9]. Equation (1)
corresponds to $\dot{y}(s)$ being tangent to the solution curve, the purpose of
(2) is to fix the direction in which the curve is traced.
### Tracing solution curves
"In principle, any of the available ODE solvers capable of integrating the
above system can be used to trace the curve [...]. However, due to numerical
stability concerns, a more preferable method to trace the curve is the
'prediction-correction scheme'. [...] Among many different choices for the
'predictors' as well as 'correctors', we shall present here a commonly used
combination of the (generalized) Eulers method for the predictor and Newtons
method for the corrector." [2, p.127]
#### Euler's Predictor
$$
\hat{\bm{y}} = \bm{y}_0 + \Delta s \cdot \sigma \cdot \Delta \bm{y},
$$
with $\Delta s$ denoting the step size and $\Delta y$ the numerical
approximation of $\dot{y}(s)$ [2, p.128].
#### Newton's corrector
$$
\bm{y} = \mathcal{N}^k(\hat{\bm{y}}), \hspace{5mm} \mathcal{N}(\hat{\bm{y}}) := \hat{\bm{y}} - (DH(\hat{\bm{y}}))^{+} H(\hat{\bm{y}}).
$$
" [...] the shrinking distance
$\lVert \mathcal{N}^j(\hat{\bm{y}}) - \mathcal{N}^{j-1} (\hat{\bm{y}})\rVert$
between successive points produced by the iterations can be used as a criterion
for convergence. Of course, if the iterations fail to converge, one must go
back to adjust the step size for the Eulers predictor." [2, p.130]
______________________________________________________________________
## References
\[1\]: E. L. Allgower and K. Georg, Introduction to numerical continuation
methods. in Classics in applied mathematics, no. 45. Philadelphia, Pa: Society
for Industrial and Applied Mathematics (SIAM, 3600 Market Street, Floor 6,
Philadelphia, PA 19104), 2003. doi: 10.1137/1.9780898719154.
\[2\]: T. Chen and T.-Y. Li, “Homotopy continuation method for solving systems
of nonlinear and polynomial equations,” Communications in Information and
Systems, vol. 15, no. 2, pp. 119307, 2015, doi: 10.4310/CIS.2015.v15.n2.a1.