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.