Go to the first, previous, next, last section, table of contents.

### Programming Tutorial Exercise 8

The first step is to compute the derivative f'(x) and thus the formula @c{$\displaystyle{x - {f(x) \over f'(x)}}$} x - f(x)/f'(x).

(Because this definition is long, it will be repeated in concise form below. You can use M-# m to load it from there. While you are entering a Z  Z ' body in a macro, Calc simply collects keystrokes without executing them. In the following diagrams we'll pretend Calc actually executed the keystrokes as you typed them, just for purposes of illustration.)

2:  sin(cos(x)) - 0.5            3:  4.5
1:  4.5                          2:  sin(cos(x)) - 0.5
.                            1:  -(sin(x) cos(cos(x)))
.

' sin(cos(x))-0.5 RET 4.5  m r  C-x ( Z   TAB RET a d x RET



2:  4.5
1:  x + (sin(cos(x)) - 0.5) / sin(x) cos(cos(x))
.

/  ' x RET TAB -   t 1


Now, we enter the loop. We'll use a repeat loop with a 20-repetition limit just in case the method fails to converge for some reason. (Normally, the Z / command will stop the loop before all 20 repetitions are done.)

1:  4.5         3:  4.5                     2:  4.5
.           2:  x + (sin(cos(x)) ...    1:  5.24196456928
1:  4.5                         .
.

20 Z <          RET r 1 TAB                 s l x RET


This is the new guess for x. Now we compare it with the old one to see if we've converged.

3:  5.24196     2:  5.24196     1:  5.24196     1:  5.26345856348
2:  5.24196     1:  0               .               .
1:  4.5             .
.

RET M-TAB         a =             Z /             Z > Z ' C-x )


The loop converges in just a few steps to this value. To check the result, we can simply substitute it back into the equation.

2:  5.26345856348
1:  0.499999999997
.

RET ' sin(cos(\$)) RET


Let's test the new definition again:

2:  x^2 - 9           1:  3.
1:  1                     .
.

' x^2-9 RET 1           X


Once again, here's the full Newton's Method definition:

C-x ( Z   TAB RET a d x RET  /  ' x RET TAB -  t 1
20 Z <  RET r 1 TAB  s l x RET
RET M-TAB  a =  Z /
Z >
Z '
C-x )
`

It turns out that Calc has a built-in command for applying a formula repeatedly until it converges to a number. See section Nesting and Fixed Points, to see how to use it.

Also, of course, a R is a built-in command that uses Newton's method (among others) to look for numerical solutions to any equation. See section Root Finding.

Go to the first, previous, next, last section, table of contents.