# mu-trajectories Visualize the KKT trajectory of the Euclidean projection of a point `x0` onto an ellipse `x'Ax + b'x + c = 0`: x(mu) = (I + mu A)^{-1} (x0 - mu b / 2) The figure shows the trajectory in the plane, `f(mu) = psi(x(mu))`, the distance `||x0 - x(mu)||` and `f'(mu)`, together with the nearest/farthest KKT points `x(mu*)`, `x(mu**)` and, when `x0` has a zero standardized coordinate, the degenerate point `x^d`. ## Usage pip install -r requirements.txt python plot_mu_trajectories.py # every case, into figures/ python plot_mu_trajectories.py x_trajectories_mu_2 # a single case pytest Cases (`A`, `x0`, and optionally `b` and `c`) are listed in `CASES` at the top of `plot_mu_trajectories.py`; each one produces `.png` and `.pdf`. Text is typeset with LaTeX (`text.usetex`) when `latex` is on the `PATH`, with the `cm-super` and `type1cm` packages; otherwise matplotlib's Computer Modern math font is used. ## Files - `quadric.py`: the `Ellipsoid` class (standardization, trajectory, extreme roots, degenerate points). - `plot_mu_trajectories.py`: the figure. - `test_quadric.py`: checks against brute-force sampling of the ellipse.