Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Open In Colab

‘Global’ convergence

 Open In Colab

There are several options to modify the Newton-Raphson method in order to enhance the robustness of root finding, but the improvement in robustness has to be weighed against the computational expense.

We have to assume our initial guess is reasonable, so the goal is to ensure the solution doesn’t wander.

Line search: Assuming the step direction is right

If we trust that Δx⃗\Delta \vec{x} is pointing in the right direction, then we should make sure it doesn’t step too far.

These approaches are called line search algorithms since we are moving along the direction prescribed by Δx⃗\Delta \vec{x}.

Damped Newton-Raphson

The easiest modification is adding a damping term. Calculate Δx⃗\Delta \vec{x} as usual from JΔx⃗=−f⃗J \Delta \vec{x} = - \vec{f} but update the step a scalar factor of the increment:

x⃗i+1=x⃗i+αΔx⃗\vec{x}^{i+1} = \vec{x}^i+\alpha \Delta \vec{x}

For α=1\alpha =1 we recover the method.

For 0<α<10 < \alpha < 1 the method is underdamped, and the solver forced to take small steps, keeping it closer to the guess but at the cost of convergence speed.

For α>1\alpha > 1 the method is overdamped, and solver steps exagerated. This may seem like a good idea to speed things up but if you are not careful you will constantly overshoot your root or produce frenetic behaviour!

Optimal step size

From the damped approach, we can also attempt to find a ‘good’ step size algorithmically. Near the root, we know we want α=1\alpha=1 to get quadratic convergence, so this is often a starting point.

There are several approaches which levarage the information we have:

  • f⃗(x⃗)\vec{f}(\vec{x})

  • J(x⃗)J(\vec{x})

  • f⃗(x⃗+Δx⃗)\vec{f}(\vec{x}+\Delta \vec{x})

Fit a quadratic

With 3 pieces of information, we can fit a quadratic in the search direction and choose the minimum for the update.

Backtracking

The backtracking routine starts with α=1\alpha=1 and then subdivides it until

f⃗(x⃗+αΔx⃗)−f⃗(x⃗)≈J(x⃗)αΔx⃗\vec{f}(\vec{x}+\alpha \Delta \vec{x}) - \vec{f}(\vec{x}) \approx J(\vec{x}) \alpha \Delta \vec{x}

Bounded minimization

Find α\alpha in the range (0,1] that minimizes some measure of residual, e.g. ∥f⃗(x⃗+αΔx⃗)∥\| \vec{f}(\vec{x}+\alpha \Delta \vec{x}) \|.

This is a 1D minimization problem (similar to our 1D root finding) and can use similar tools. The tradeoff here is the efficiency of this minimzation vs just taking another Newton step.

Trust region methods: Assuming the step length is correct

A newer method for root finding adapts the concept of trust regions from optimization. Essentially one defines a region around an interation where the function is trusted to behave like a quadratic. This region is updated (similar to backtracking) as the solution proceeds according to some criteria.