Re: Transc. Eqn - Symb. Iterative Sol'n.?
- To: mathgroup at smc.vnet.net
- Subject: [mg15721] Re: Transc. Eqn - Symb. Iterative Sol'n.?
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Fri, 5 Feb 1999 03:42:18 -0500 (EST)
- Organization: University of Western Australia
- References: <78ul25$911@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Eric Strobel wrote:
> Problem: I *think* it should be relatively straightforward to write a
> Block/ Module to do a symbolic Newton-Raphson (or similar such thing)
> solution of a transcendental equation.
For a pure function (e.g, Sin instead of Sin[x] or #^2 & instead of
x^2), here is a function which uses Nest to implement the
Newton-Raphson recursion directly:
In[1]:= NewtonRoot[f_Function, x0_, n_:3] :=
Nest[# - f[#]/f'[#] & , x0, n]
Now, we simply extend this syntax to work for any function f_ of
argument x_, starting at x0 and, by default, iterating 3 times:
In[2]:= NewtonRoot[f_, x_, x0_, n_:3] :=
NewtonRoot[Function[y, Evaluate[f /. x -> y]], x0, n]
This simply involves turning the argument f into a Fuction and then
calling the first definition.
For example, to solve x^2==2 starting at y,
In[3]:= NewtonRoot[x^2 - 2, x, y,2]
Out[3]=
2
-2 + y 2
2 -2 + (y - -------)
-2 + y 2 y
y - ------- - -------------------
2 y 2
-2 + y
2 (y - -------)
2 y
or for the transcendental equation Tan[x]==x,
In[4]:= NewtonRoot[Tan[x] - x, x, y, 2]
Out[4]=
-y + Tan[y] -y + Tan[y]
-y + ------------ + Tan[y - ------------]
2 2
-y + Tan[y] -1 + Sec[y] -1 + Sec[y] y -
------------ - -----------------------------------------
2 -y + Tan[y] 2
-1 + Sec[y] -1 + Sec[y - ------------]
2
-1 + Sec[y]
The code also works with numerical values:
In[5]:= NewtonRoot[Tan[x] - x, x, 4.5, 10] Out[5]= 4.49341
> Example: The prototypical example would be Kepler's problem, M = E - e
> Sin[E], where M = mean anomaly, e = eccentricity and E = eccentric
> anomaly. One will sometimes run across approximate solutions in
> powers of e, for e small
You can certainly use this approach. See
ftp://ftp.physics.uwa.edu.au/pub/Mathematica/MathGroup/Kepler.nb
Cheers,
Paul
____________________________________________________________________
Paul Abbott Phone: +61-8-9380-2734
Department of Physics Fax: +61-8-9380-1014
The University of Western Australia Nedlands WA 6907
mailto:paul at physics.uwa.edu.au AUSTRALIA
http://www.physics.uwa.edu.au/~paul
God IS a weakly left-handed dice player
____________________________________________________________________