Consider the function . Suppose we want to find its root, i.e. such that . Then we can easily do this using the quadratic formula!

What if we had ? Now our example is too complicated to find roots for! So, given a non-linear function, how can we find the roots of these functions?

Here, we discuss root-finding algorithms that can do this for us! Note that:

  • These algorithms are iterative, giving us a sequence of approximations that converge to a root .
  • The roots we find are NOT guaranteed to be unique, and the we converge to will depend on our initial guess !

Bisection Algorithm

Assume is continuous. Pick and such that . Then, by the intermediate value theorem, we can guarantee the existence of a root between and .

For each step , do the following:

  1. Define the midpoint, .
  2. Then, we check the following cases.
    • If , we have found our root and stop!
    • If , then pick the next interval and repeat (1).
    • If , then pick the next interval and repeat (1).

As we have our interval’s size (about the root) every iteration, we should intuitively have convergence! The following theorem guarantees this.

Theorem: Convergence of the Bisection Algorithm

Let be a continuous function on and . Then,

Where .

How fast (efficient) is this algorithm? Well, we say that any given method is said to converge with order if for some constant ,

In this case, note that because , and , for every iteration ,

and furthermore,

Define . So for our bisection, we converge with order (linearly) and .

Higher orders of convergence are better, as it means our error term drops faster!

Newton’s Method

Assume has at least one real root. Additionally, assume is differentiable.

  1. Start with an initial “guess” , and let be the tangent to at . Let be the x-intercept of ,
  2. Start with , and let be the new tangent line to at . Similarly, pick to be the x-intercept of this line.
  3. Continuing this, given any , we can find as

Note that at each step, we’re essentially making a linear approximation of , and using its root!

We can find the convergence rate of this method to be quadratic, which is faster than our previous method!

However, there’s a major trade-off - there’s no guarantee that Newton’s Method converges, depending on our choice of ! Only if the following properties hold, can we guarantee convergence.

Theorem: Global Convergence of Newton's Method

Let have the following properties:

  • has 2 continuous derivatives
  • is strictly monotone increasing, i.e.
  • is convex, i.e.
  • has to have a root

Then, is unique, and Newton’s method will converge to for any initial (known as global convergence).

Otherwise, for localized convergence, we need that

  1. has 2 continuous derivatives.
  2. at the root .
  3. Our initial guess is close enough to .

Secant Method

We can also modify Newton’s method to be the formula

Known as the secant method, which, instead of using the tangent line, essentially finds the -intercept of the line passing through .

This method doesn’t require us to know ‘s derivatives! However, this method also has an order

which is between 1 and 2 (known as being super-linear). This makes the secant method more efficient than bisection, but less than Newton’s!

Hybrid Methods

Newton’s is fast, but does not guarantee convergence, whereas Bisection guarantees convergence, but is slow. Could we reap the benefits of both?

This is the point behind a hybrid approach, where we alternative between using bisection with a secant-type method together! We will use the secant-type method until it stops working, then switch to bisection!

This is in fact, what MatLab does when we call the function fzero()!


Non-Linear Systems of Equations

Problem Defined

Suppose we have variables

And we have functions on these variables

Similar to before, suppose we want to find such that . We may be able to do this using a process similar to Newton’s Method!

This is a generalization of our previous problem, onto multiple variables!

Problem Solution

First, let’s define the Jacobian Matrix as such that

Case

Now, let’s look at the case where . Then, we have the following Taylor expansion of about

Where is a remainder based on the Taylor Remainder Theorem. Say we want to solve to obtain 0.

This is a system of linear equations! So, given an initial guess , for

  1. Evaluate .
  2. Evaluate .
  3. Solve for satisfying
  4. Set .

In MATLAB, we can actually do this process through the function fsolve()!

Theorem: Convergence

Assume there is a root . Then suppose the following properties hold:

  • is continuous on two derivatives, on some neighborhood around .
  • The Jacobian at , , is invertible.

Then, such that for all guesses sufficiently close, , we have

  • Convergence is guaranteed;
  • Our convergence is quadratic;

Case

Let’s now look at the case where .

As we now have more equations than unknowns, we may no longer have a solution! So, we instead want to find an that minimizes our problem.

This is known as the Gauss-Newton Algorithm.

So, writing our Taylor Remainder theorem from before, for any step , we have approximation

But this may not have a solution! So, applying our iterative method, we get the following. Take . Then, for ,

  1. Evaluate

  2. Evaluate

  3. Solve .

    This is equivalent to solving our minimization problem (see above)

  4. Add .

Our error estimate on this algorithm is

This is comparing our new error every to our old error! We get quadratic convergence if , which is not usually true!

Thus, if is small, then you initially have quadratic decay, but once , then decay becomes linear, as we can no longer ignore the term.