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 ____________________________________________________________________