| www.delorie.com/gnu/docs/calc/calc_100.html | search |
![]() Buy the book! | |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The first step is to compute the derivative f'(x) and thus the formula 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 10.8.4 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 11.7.1 Root Finding.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| webmaster donations bookstore | delorie software privacy |
| Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |