Vector Bundle Newton Method

Manopt.vectorbundle_newtonFunction
vectorbundle_newton(M, E, NE, p; kwargs...)
vectorbundle_newton!(M, E, NE, p; kwargs...)

Perform Newton's method for finding a zero of a mapping $F:\mathcal{M}) → \mathcal{E}$ where $\mathcal{M})$ is a manifold and $\mathcal{E}$ is a vector bundle. In each iteration the Newton equation

\[Q_{F(p)} ∘ F'(p) X + F(p) = 0\]

is solved to compute a Newton direction $X$. The next iterate is then computed by applying a retraction.

For more details see [WS24, WBS25].

Arguments

  • M::AbstractManifold: a Riemannian manifold $\mathcal{M}$
  • E: range vector bundle
  • p::P: a point on the manifold $\mathcal{M}$
  • NE: functor representing the Newton equation. It has at least fields $A$ and $b$ to store a representation of the Newton matrix $Q_{F(p)}∘ F'(p)$ (covariant derivative of $F$ at $p$) and the right hand side $F(p)$ at a point $p ∈ \mathcal{M})$. The point $p$ denotes the starting point. The algorithm can be run in-place of $p$.

Keyword arguments

source
Manopt.vectorbundle_newton!Function
vectorbundle_newton(M, E, NE, p; kwargs...)
vectorbundle_newton!(M, E, NE, p; kwargs...)

Perform Newton's method for finding a zero of a mapping $F:\mathcal{M}) → \mathcal{E}$ where $\mathcal{M})$ is a manifold and $\mathcal{E}$ is a vector bundle. In each iteration the Newton equation

\[Q_{F(p)} ∘ F'(p) X + F(p) = 0\]

is solved to compute a Newton direction $X$. The next iterate is then computed by applying a retraction.

For more details see [WS24, WBS25].

Arguments

  • M::AbstractManifold: a Riemannian manifold $\mathcal{M}$
  • E: range vector bundle
  • p::P: a point on the manifold $\mathcal{M}$
  • NE: functor representing the Newton equation. It has at least fields $A$ and $b$ to store a representation of the Newton matrix $Q_{F(p)}∘ F'(p)$ (covariant derivative of $F$ at $p$) and the right hand side $F(p)$ at a point $p ∈ \mathcal{M})$. The point $p$ denotes the starting point. The algorithm can be run in-place of $p$.

Keyword arguments

source

Problem

Manopt.VectorBundleManoptProblemType
VectorBundleManoptProblem{M<:AbstractManifold,TV<:AbstractManifold,O} <: AbstractManoptProblem{M}

Model a vector bundle problem, that consists of the domain manifold $\mathcal{M})$ that is a AbstractManifold, the range vector bundle $\mathcal{E}$ and the Newton equation $Q_{F(x)}∘ F'(x) δ x + F(x) = 0_{p(F(x))}$. The Newton equation should be implemented as a functor that computes a representation of the Newton matrix and the right hand side. It needs to have a field $A$ to store a representation of the Newton matrix $Q_{F(x)}∘ F'(x)$ and a field $b$ to store a representation of the right hand side $F(x)$.

source

State

Manopt.VectorBundleNewtonStateType
VectorBundleNewtonState{P,T} <: AbstractManoptSolverState

Is state for the vector bundle Newton method

Fields

  • p::P: a point on the manifold $\mathcal{M}$ storing the current iterate
  • p_trial::P: a point on the manifold $\mathcal{M}$ next iterate needed for simplified Newton
  • X::T: a tangent vector at the point $p$ on the manifold $\mathcal{M}$ as current Newton direction
  • sub_problem::Union{AbstractManoptProblem, F}: specify a problem for a solver or a closed form solution function, which can be allocating or in-place. currently only the closed form solution is implemented, that is, this is a functor that maps either (problem::VectorBundleManoptProblem, state::VectorBundleNewtonState) -> X or (problem, X, state) -> X to compute the Newton direction.
  • sub_state::Union{AbstractManoptProblem, F}: a state to specify the sub solver to use. For a closed form solution, this indicates the type of function. specify how the sub_problem is evaluated, e.g. AllocatingEvaluation or InplaceEvaluation
  • stop::StoppingCriterion: a functor indicating that the stopping criterion is fulfilled
  • stepsize::Stepsize: a functor inheriting from Stepsize to determine a step size
  • retraction_method::AbstractRetractionMethod: a retraction $\operatorname{retr}$ to use, see the section on retractions

Constructor

VectorBundleNewtonState(M, E, p, sub_problem, sub_state; kwargs...)

Input

  • M::AbstractManifold: a Riemannian manifold $\mathcal{M}$
  • E: range vector bundle
  • p::P: a point on the manifold $\mathcal{M}$
  • sub_state::Union{AbstractManoptProblem, F}: a state to specify the sub solver to use. For a closed form solution, this indicates the type of function.
  • sub_problem::Union{AbstractManoptProblem, F}: specify a problem for a solver or a closed form solution function, which can be allocating or in-place.

Keyword arguments

source

Stepsize

Manopt.AffineCovariantStepsizeType

AffineCovariantStepsize <: Stepsize

A functor to provide an affine covariant stepsize generalizing the idea of following Newton paths introduced by [WBS25, Section 4]. It can be used to derive a damped Newton method. The stepsizes (damping factors) are computed by a predictor-corrector-loop using an affine covariant quantity $θ$ to measure local convergence.

Fields

  • α: stepsize (damping factor)
  • θ: quantity that measures local convergence of Newton's method
  • θ_des: desired θ
  • θ_acc: acceptable θ
  • last_stepsize: last computed stepsize (this is an auxiliary variable used within the algorithm)
  • outer_norm: if M is a manifold with components, this is used to specify the norm, that is used to compute the overall distance based on the element-wise distance.

Example

On an AbstractPowerManifold like $\mathcal{M}nifold))nifold))) = \mathcal{N}^n$ any point $p = (p_1,…,p_n) ∈ \mathcal{M}nifold)))$ is a vector of length $n$ with of points $p_i ∈ \mathcal{N}$. Then, denoting the outer_norm by $r$, the distance of two points $p,q ∈ \mathcal{M})$ is given by

\[\mathrm{d}(p,q) = \Bigl( \sum_{k=1}^n \mathrm{d}(p_k,q_k)^r \Bigr)^{\frac{1}{r}},\]

where the sum turns into a maximum for the case $r=∞$. The outer_norm has no effect on manifolds that do not consist of components.

If the manifold does not have components, the outer norm is ignored.

Constructor

AffineCovariantStepsize(
    M::AbstractManifold=DefaultManifold(2);
    α=1.0, θ=1.3, θ_des=0.5, θ_acc=1.1*θ_des, outer_norm::Real=missing
)

Initializes all fields, where none of them is mandatory. The length is set to $1.0$.

Since the computation of the convergence monitor $θ$ requires simplified Newton directions a method for computing them has to be provided. This should be implemented as a method of the newton_equation(M, VB, p, p_trial) as parameters and returning a representation of the (transported) $F(p_{\mathrm{trial}})$.

source

Internal Functions

Literature

[WBS25]
L. Weigl, R. Bergmann and A. Schiela. Newton's method for nonlinear mappings into vector bundles Part II: Application to variational problems, preprint (2025), arXiv:2507.13836.
[WS24]
L. Weigl and A. Schiela. Newton's method for nonlinear mappings into vector bundles, preprint (2024), arXiv:2404.04073.