solutions, missing and excess, to transcendental equations [Re: JB discovers yet another K-12 level Maple bug the long liver, 1992--2007--? (solve)]
- From: Daniel Lichtblau <danl@xxxxxxxxxxx>
- Date: Fri, 15 Jun 2007 10:50:09 -0700
On Jun 15, 6:07 am, Vladimir Bondarenko <v...@xxxxxxxxxxxxxxx> wrote:
.................................................................
JB describes here his QA-valuable effort.
http://groups.google.com/group/comp.soft-sys.math.maple/msg/36c0a1d1d...
Looks like about 85% rant (perhaps I underestimate). I see no value in
that. Not even as entertainment.
.................................................................
BUG # XXXXX solve: INVALID ROOT VALUE
REGRESSION: NO
REPRODUCIBLE: ALWAYS
BUG HISTORY:
PRESENT Maple 11.00,IBM INTEL NT, Feb 16 2007 Build ID 277223
[...]
DESCRIPTION: During 15+ years Maple returns a set of two roots,
one of them false, for a trivial K-12 equation.
TEST CASE: solve(sin(arctan(z)+arctan(2*z)) = 1/sqrt(2), z);
ACTUAL: z = -3/4+1/4*17^(1/2), z = -3/4-1/4*17^(1/2)
z = .2807764060, z = -1.780776406
EXPECTED: z = -3/4+1/4*17^(1/2)
CHECKUP: evalf(subs(z = -3/4-17^(1/2)/4, sin(arctan(z)
+ arctan(2*z)) = 1/sqrt(2)));
-.7071067806 = .7071067810
[...]
Best wishes,
Vladimir Bondarenko
[...]
I don't see this example is in any sense trivial. I will discuss what
I think are the salient points.
Math program "solve" functions tend to rely on reducing input to a set
of "polynomials" in some set of "variables". Where transcendental
functions are involved this will require encapsulating them, and
inverses thereof, in order to unwind the system e.g. via Groebner
bases. One runs up against at least two issues.
(1) Where multi-valued "functions" e.g. log are concerned, some
solutions may be missed. Depends a lot on how much the program "knows"
about finding roots other than that given by, say, principal branch
values.
(2) It is quite easy to get spurious, or parasite, solutions.
Depending on problem specifics, it may be difficult or impossible to
recognize them. Indeed, if parameters are present then which
"solution" is valid and which a parasite, and in fact even how many
are valid, can depend on parameter values.
To some extent these issues are further influenced by the specifics of
the polynomialization process. For example, if trigs are converted to
complex exponentials one may get different solutions and different
parasites than would be obtained from not doing said conversion.
In Mathematica one can see the "full" set of solutions for the example
in question via
In[8]:= InputForm[Solve[Sin[ArcTan[z]+ArcTan[2*z]] == 1/Sqrt[2], z,
VerifySolutions->False] ]
Out[8]//InputForm=
{{z -> (-3 - Sqrt[17])/4}, {z -> (3 - Sqrt[17])/4}, {z -> (-3 +
Sqrt[17])/4},
{z -> (3 + Sqrt[17])/4}}
So we get two valid solutions and two parasites. Weeding out the
latter is done by numeric means (since no parameters are present), and
to be honest this involves a bit of voodoo. One thing I will claim is
that Mathematica's sometimes-criticized bignum numerics model,
significance arithmetic, tends to work quite well for determining a
value is zero to some given accuracy.
Daniel Lichtblau
Wolfram Research
.
- Follow-Ups:
- Prev by Date: big exponents in rational functions [Re: Yet another Maple regression bug, 2000--2007--? (trivial integral)]
- Next by Date: Re: solutions, missing and excess, to transcendental equations [Re: JB discovers yet another K-12 level Maple bug the long liver, 1992--2007--? (solve)]
- Previous by thread: big exponents in rational functions [Re: Yet another Maple regression bug, 2000--2007--? (trivial integral)]
- Next by thread: Re: solutions, missing and excess, to transcendental equations [Re: JB discovers yet another K-12 level Maple bug the long liver, 1992--2007--? (solve)]
- Index(es):
Relevant Pages
|