The secant method is an algorithm used to approximate the roots of a given function f. The method is based on approximating f using secant lines.
The secant method algorithm requires the selection of two initial approximations x 0 and x 1, which may or may not bracket the desired root, but which are chosen reasonably close to the exact root.
Secant Method Algorithm
|
Given f(x)=0:
Let x0 and x 1 be initial approximations.
Then
where xn is a better approximation of the exact root, assuming convergence.
Repeat iterative step until either
- The total number of iterations N is met
- A sufficient degree of accuracy, , is achieved.
|
We would like to be able to find the order of convergence, p, for the secant method. Hence, we want to find some p so that where C is a constant.
Given a function f, let x be such that f(x)=0 and let xn-1 and xn be approximations to x. Assume x is a simple root and f is twice continuously differentiable (from the assumptions leading to convergence noted on Wikipedia). Let the error at the nth step be denoted by en: en=xn-x. Then we have:
.
Since f(x)=0 and recalling that en=xn-x, we can rewrite the last line above as:
-
|
|
(1)
|
Next, let's just consider the numerator in (1).
Let where . Thus
-
|
|
(2)
|
According to the Mean Value Theorem, on [xn-1,xn], there exists some between xn-1 and xn such that
-
|
|
(3)
|
Now using a Taylor expansion of around , we have
-
|
|
(4)
|
Next, we can combine equations (2), (3), and (4) to show that .
Returning to (1), we now have:
-
|
|
(5)
|
Again applying the Mean Value Theorem, there exists some in [xn-1,xn] such that . Then (5) becomes:
Next, recall that we have convergence of order p when for some constant . Our goal is to figure out what p is for the secant method.
Let
.
Then we have:
.
We want , again where is some constant. Since and are constants and (assuming convergence) we must have . Thus .[1]
The function has a root between -3 and -4. Let's approximate this root accurate to four decimal places.
Let x0 = -3 and x1 = -4.
Next, using our recurrence formula where
and
,
we have:
In the next iteration, we use f(x1) = .6835 and f(x2) = .0342 and see that
Similarly, we can compute x4 and x5. These calculations have been organized in the table below:
|
0 |
1 |
2 |
3 |
4 |
5
|
|
-3 |
-4 |
-3.2983 |
-3.2613 |
-3.2665 |
-3.2665
|
Hence the iterative method converges to -3.2665 after 4 iterations.
Below is pseudo code that will perform iterations of the secant method on a given function f.
Input: x0 and x1
Set y0=f(x0) and y1=f(x1)
Do
x=x1-y1*(x1-x0)/(y1-y0)
y=f(x)
Set x0=x1 and x1=x
Set y0=y1 and y1=y
Until |y1|<tol
Find an approximation to correct to four decimal places using the secant method on .
We know .
Let x0 = 2 and x1 = 3. Then f(x0) = f(2) = -1 and f(x1) = f(3) = 4.
In our first iteration, we have:
In the second iteration, f(x1) = 4, f(x2) = -0.16 and we thus have
Similarly, x3 and x4 can be calculated, and are shown in the table below:
|
0 |
1 |
2 |
3 |
4 |
5
|
|
2 |
3 |
2.2 |
2.2333 |
2.2361 |
2.2361
|
Thus after 4 iterations, the secant method converges to 2.2361, an approximation to correct to four decimal places.
Find a root of by performing five iterations of the secant method beginning with x0 = -1 and x1 = 0.
1st Iteration:
x0 = -1,
x1 = 0,
f(x0) = -0.63212, and
f(x1) = 1. Then
2nd Iteration:
x1 = 0,
x2 = -.6127,
f(x1) = 1, and
f(x2) = -.07081. Then
3rd Iteration:
x2 = -.6127,
x3 = -.57218,
f(x2) = -.07081, and
f(x3) = -.00789. Then
4th Iteration:
x3 = -.57218,
x4 = -.5671,
f(x3) = -.00789, and
f(x4) = 6.7843*
10-5. Then
5th Iteration:
x4 = -.5671,
x5 = -.56714,
f(x4) = 6.7843*
10-5, and
f(x5) = 5.1565*
10-6. Then
Thus after 5 iterations, the method converges to -.56714 as one of the roots of .
The following is a quiz covering information presented on the associated secant method page on Wikipedia as well as the current page.