Fwd: Roots of an equation
- To: mathgroup at smc.vnet.net
- Subject: [mg6655] Fwd: [mg6582] Roots of an equation
- From: BobHanlon at aol.com
- Date: Wed, 9 Apr 1997 00:34:22 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Attempting to directly solve the equation using Solve[1/x^4 + 1/y^2 + 2 == (1/(y^2 - x^2) )^(5/3), y] does not work and results in exceeding the memory allocation. Consequently, a numerical solution is required. Module[{x, y}, Table[{x, y /. NSolve[1/x^4 + 1/y^2 + 2 == (1/(y^2 - x^2) )^(5/3), y]}, {x, -5, 5, 2}]] // Timing {5.56667 Second,{{-5,{-5.06477,5.06477}},{-3,{-3.10448, 3.10448}},{-1,{-1.20712,1.20712}},{1,{-1.20712,1.20712}},{ 3,{-3.10448,3.10448}},{5,{-5.06477,5.06477}}}} As expected, the function is multivalued with even symmetry about both axis. Note that the timing reflects that the use of NSolve is slow (this is on a Power Computing 604e running at 225 Mhz). f1[x_ /; x == 0] := 0; f1[x_] := Module[{y}, y /. NSolve[ 1/x^4 + 1/y^2 + 2 == (1/(y^2 - x^2) )^(5/3), y][[2]]]; (* positive *) For large values of x (and hence large values of y), the roots will approach the roots of Solve[2^(-3/5) == y^2 - x^2, y] // Simplify \!\({{y \[Rule] \(-\ at \(1\/2\^\(3/5\) + x\^2\)\)}, { y \[Rule] \ at \(1\/2\^\(3/5\) + x\^2\)}}\) This estimate can be used with FindRoot to avoid using NSolve for large x (x >= 1). f2[x_ /; x == 0] := 0; f2[x_ /; Abs[x] < 1] := Module[{y}, y /. NSolve[ 1/x^4 +1/y^2 +2 == (1/(y^2 - x^2) )^(5/3), y][[2]]]; (* positive *) f2[x_] := Module[{y}, y /. FindRoot[ 1/x^4 +1/y^2 +2 == (1/(y^2 - x^2) )^(5/3), {y, Sqrt[2^(-3/5) + x^2]}]] (* symmetry *) Red = RGBColor[1, 0, 0]; Blue = RGBColor[0, 0, 1]; Plot[{f[x], Sqrt[2^(-3/5) + x^2]}, {x, 0, 5}, PlotStyle -> {{Red}, {Blue, AbsoluteDashing[{5, 5}]}}] [PostScript deleted] 12.35 Second Note that FindRoot is much faster than Nsolve. (Timing[Do[f1[#], {2}]][[1]] / Timing[Do[f2[#], {2}]][[1]])& /@ {1., 3., 5.} {70.,85.,71.} --------------------- Forwarded message: From: jtt at deltanet.com (Jaimee Tahsiri) To: mathgroup at smc.vnet.net To: mathgroup at smc.vnet.net I appreciate it if someone in your group to write me a short mathematica program to solve the real roots of this equation. 1/x^4 +1/y^2 +2 = ( 1/(y^2 - x^2) )^(5/3) A million thanks to anyone that can help me.