Re: Problem with FullSimplify in Version 5: Rationals are converted to Reals
- To: mathgroup at smc.vnet.net
- Subject: [mg46306] Re: [mg45482] Problem with FullSimplify in Version 5: Rationals are converted to Reals
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Fri, 13 Feb 2004 21:57:36 -0500 (EST)
- References: <402D01EB.6040505@uni-mainz.de>
- Sender: owner-wri-mathgroup at wolfram.com
For all its worth here is another way that uses Hold instead of
Rationalize:
Solve[ReleaseHold[Simplify[(If[NumericQ[#] && Head[#] =!= Real, Hold[#],
#] & ) //@ expr]], deltaL]
Inverse functions are being used by Solve so some solutions may not be
found; use Reduce for complete solution information.
{{deltaL -> 3.7998970410976023,
Erf[(0.3070925731856876*(2.302585092994046*(0.1*deltaL - 10.) +
23.025850929940457))/
Sqrt[(0.6089140226261116 - 0.005294904544574884*(deltaL + 20.))^2
+
0.25302502757884177]] -> 0.41421356237309503}}
The "two rule" form of the solution is curious and surprised me, but we
can check that the solution is self-consistent:
%[[1,2]]/.%[[1,1]]
0.414214->0.414214
On 13 Feb 2004, at 17:57, oberfeld wrote:
> Dear list,
>
> some weeks ago, I posted a question concerning FullSimplify in Ma 5.0
> which seems to occur because Rationals are converted to Reals.
>
> Thanks to those who suggested work-arounds! Unfortunately, I was not
> able to resolve my problem following the suggestions. Wolfram support
> meanwhile confirmed this to be a problem of version 5.0.0 and said
> that the problem were resolved in Ma 5.0.1. However, after
> installing the update I had to realize that this is *not correct*.
>
> So, for all who are interested, here comes the 'full problem' (and its
> solution) again:
>
> I have to solve a rather nasty expr for a variable deltaL:
>
> expr=1/Sqrt[2] ==
> (1/2)*(1 + (1/2)*(-1 - Erf[(-(Log[10000000000]/Log[10]) -
> Log[10^(-12 + (20 + deltaL)/10)]/Log[10])/
> (Sqrt[2]*Sqrt[0.25302502757884177 + (0.6089140226261116 -
> 0.005294904544574884*(20 + deltaL))^2])])) +
> (1/4)*(1 + Erf[(Log[10000000000]/Log[10] + Log[10^(-12 + (20 +
> deltaL)/10)]/Log[10])/
> (Sqrt[2]*Sqrt[0.25302502757884177 + (0.6089140226261116 -
> 0.005294904544574884*(20 + deltaL))^2])]);
>
> In Ma 3+4, the following straightforward expression works:
>
> Solve[FullSimplify[expr],deltaL]
>
> In Ma 5, however, the same expression produces the all-too-well-known
> message "Solve::tdep: The equations appear to involve the variables to
> be solved for in an essentially non-algebraic way."
>
> Switching to Simplify (instead of FullSimplify), as Andrzej & Bob
> suggested, does not help (at least on my machine).
>
> The only solution I found (thank's for the idea, Bob!), was to use
> Rationalize:
>
> N[Solve[Simplify[Rationalize[expr,0]],deltaL]]
> Out:={deltaL->3.7999}
>
> Note, that *FullSimplify* still does not work!!
>
> N[Solve[FullSimplify[Rationalize[expr,0]],deltaL]]
>
>
>
> Would be no problem were it not for many of such expressions lingering
> in my code, so that I have to step through it and insert that
> "Rationalize magic" each and every time... ;-(
>
> Best wishes
>
> Daniel
>
>
> -------------------------------------
> Dipl. Psych. Daniel Oberfeld-Twistel
> University of Mainz
> Institute of Psychology
> Experimental Psychology
>
> Staudingerweg 9
> 55099 Mainz
> Germany
>
> T. ++49 (0) 6131 39 22423
> Fax. ++49 (0) 6131 39 22480
>
>
>
>
Andrzej Kozlowski
Chiba, Japan
http://www.mimuw.edu.pl/~akoz/