RE: SetPrecision & Plot bug?
- To: mathgroup at smc.vnet.net
- Subject: [mg39931] RE: [mg39909] SetPrecision & Plot bug?
- From: "David Park" <djmp at earthlink.net>
- Date: Wed, 12 Mar 2003 02:28:58 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Enrique,
Ted Ersek has a package, PrecisionPlot, that is available from MathSource.
When that package is loaded then..
hw[rom_][ro_] = (1/7245)*
(2*(Sqrt[(-ro^2)*(ro^2 + 4830*(Sqrt[5832225 - ro^2] - 2415))] -
Sqrt[((rom^2*(112678587000*Sqrt[5832225 - rom^2] -
(17496675 - 4*rom^2)^2) - 164291718016518750*
(Sqrt[5832225 - rom^2] - 2415))*ro^4 +
2415*(56339293500*Sqrt[5832225 - ro^2]*Sqrt[5832225 - rom^2]*
(4*rom^2 - 5832225) - 34993350*Sqrt[5832225 - rom^2]*
(4*rom^4 - 1944075*rom^2 + 11338282816875) +
2415*(4*rom^2 + 5832225)*(8*rom^4 - 64154475*rom^2 +
68029696901250) - 2*Sqrt[5832225 - ro^2]*
(rom^2*(17496675 - 4*rom^2)^2 - 396764499009892781250))*
ro^2 + 14084823375*(4*(4*Sqrt[5832225 - ro^2] - 12075)*
rom^6 - 7245*(8*Sqrt[5832225 - rom^2]*Sqrt[5832225 -
ro^2] + 9660*Sqrt[5832225 - ro^2] -
9660*Sqrt[5832225 - rom^2] - 64154475)*rom^4 +
140848233750*(Sqrt[5832225 - ro^2] + 2415)*
(Sqrt[5832225 - rom^2] - 2898)*rom^2 - 328583436033037500*
(Sqrt[5832225 - ro^2] + 2415)*(Sqrt[5832225 - rom^2] -
2415)))/(rom^2*(17496675 - 4*rom^2)^2)]));
PrecisionPlot[hw[1][ro], {ro, 0, 1}];
PrecisionPlot[hw[50][ro], {ro, 0, 1}];
produce nice plots. They are of such a different scale that it makes no
sense to display them on the same plot.
Ted has also allowed me to make PrecisionPlot available within the
DrawGraphics package at my web site.
David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/
From: Enrique Zeleny [mailto:ezeleny at fismat1.fcfm.buap.mx]
To: mathgroup at smc.vnet.net
Consider this expression
In[1]:= HW =
(1/7245)*(2*(Sqrt[(-ro^2)*(ro^2 + 4830*(Sqrt[5832225 - ro^2] - 2415))] -
Sqrt[(1/(rom^2*(17496675 - 4*rom^2)^2))*
((rom^2*(112678587000*Sqrt[5832225 - rom^2] - (17496675 - 4*rom^2)^
2) - 164291718016518750*(Sqrt[5832225 - rom^2] - 2415))*ro^4
+
2415*(56339293500*Sqrt[5832225 - ro^2]*Sqrt[5832225 - rom^2]*
(4*rom^2 - 5832225) - 34993350*Sqrt[5832225 - rom^2]*
(4*rom^4 - 1944075*rom^2 + 11338282816875) +
2415*(4*rom^2 + 5832225)*(8*rom^4 - 64154475*rom^2 +
68029696901250) - 2*Sqrt[5832225 - ro^2]*
(rom^2*(17496675 - 4*rom^2)^2 - 396764499009892781250))*ro^2 +
14084823375*(4*(4*Sqrt[5832225 - ro^2] - 12075)*rom^6 -
7245*(8*Sqrt[5832225 - rom^2]*Sqrt[5832225 - ro^2] +
9660*Sqrt[5832225 - ro^2] - 9660*Sqrt[5832225 - rom^2] -
64154475)*rom^4 + 140848233750*(Sqrt[5832225 - ro^2] + 2415)*
(Sqrt[5832225 - rom^2] - 2898)*rom^2 - 328583436033037500*
(Sqrt[5832225 - ro^2] + 2415)*(Sqrt[5832225 - rom^2] -
2415)))]));
This should work
In[2]:= Plot[Evaluate[SetPrecision[HW /. rom -> 1, 50]], {ro, 0, 1},
PlotPoints -> 5, Compiled -> False]
but is awful, how Plot chooses the points? see this
In[3]:= %[[1]]
(Output is not shown because it's big)
this is the problem
In[4]:= FullForm[SetPrecision[HW /. rom -> 1, 50]]
(Output is not shown)
SetPrecision converts Power[expr,1/2] to Power[expr,0.5'50], but power is
an algebraic operation!, documentation say :
SetPrecision[expr, n] yields a version of expr in which all numbers have
been set to have a precision of n digits.
SetPrecision[expr, n] does not modify expr itself.
(???)
this works well
In[5]:= ListPlot[Table[Evaluate[SetPrecision[HW /. rom -> 1, 24],
{ro, 0, 1, 0.01`24}]], PlotJoined -> True];
This should work?
In[6]:= Plot[Evaluate[N[HW /. rom -> 1, 50]], {ro, 0, 1}, Compiled ->
False]
Enrique Zeleny
UAP, Mexico