Axel Vogt

5936 Reputation

20 Badges

20 years, 256 days
Munich, Bavaria, Germany

MaplePrimes Activity


These are replies submitted by Axel Vogt

I do not expect Maple to do such inequalities "automatically", it would
not do 2*(a+b+c)-(a*b+b*c+a*c) <= 3 for the parameters between -1 and 1

 

I do not expect Maple to do such inequalities "automatically", it would
not do 2*(a+b+c)-(a*b+b*c+a*c) <= 3 for the parameters between -1 and 1

 

I am not that sure, that Maple behaves wrong (and the following
may apply partially also to the initial posted question).

For me it is how to interprete the expression and what is done on
it afterwards.

At first that expression for me is a rational polynomial or more
precisely it represents an equivalence class in the field R(a) of
fractions of R[a], the polynomial ring in a (do not care for R).

And as thus it equals (the equivalence class of ) 1, no doubt.

However I do distinguish between a polynomial (or rational poly)
and the induced function (which is evaluation), say x^2+x and 0
is not the same in characteristic 2 or 1/x is fine in IR(x), but
not as function on IR.

What is done by using unapply? I am not trained in CS, so lambda
calculus is not my thing (thus find no help at the help page) - 
but from Algebra I would have the desire, that this does *not*
depend on the representant of the equivalence class.

But Maple does not check it (and in general would possibly not be
able to do that), it gives just a 'functional operator' as the
help says (what ever is meant by that ...).

So a priori it has no need to check for 'singularities'. May be
it should (since in some cases it would transform the expression,
say automatic simplification.

This goes together with "eval can not be used at a singularity".

However F:=a->(a-2)/(a-8^(1/3)) and F(2)=0 for me is a bug. Yes?
Well, actually in that form F is only defined except a=2 and we
use an continuation to all IR - and we *expect* the system to use
the continous extension. So it is a bit questionable ... at least
in a formal sense. 

But a sad trap. On the other hand in general extending is not
trivial (mostly needs Analysis as in the case above).


So any formulation, which implicitely makes Maple to manipulate
the original expression is not guaranteed to be equivalent as a
point evaluation due to singularities - do I get that right?


How about letting the system spit out conditions or restrictions
or 'reformulations'?

it means: Maple warns you, that it may not have returned all solutions

?solve and then to solve/details (which is a quite common way to find
info about commands) will tell you:

Missed Solutions
If the solve command cannot confirm that the solution set returned is
complete, it sets the global variable _SolutionsMayBeLost to true and
issues a warning.

Not an error due to documentation, which says:

  "Since eval does pointwise evaluation, eval cannot be used to
   evaluate an expression at a singularity. Use limit instead."

That's an ugly trap. In which sense ever one wants to consider q
(as expression to comute a number or in some algebraic structure).

So it meets the specification - it does not meet user's needs.


To have it simplier I used eval(q,a = a/3); eval(%,a=a+1)/2*3;
to have a=0 as the problematic point:

  Q := a/(12*a-104+4*(4*a^3+9*a^2-156*a+676)^(1/2))^(1/3);

The singularity is easy to find using singular: it is just a=0.

And the limit is seen not to exist (@Jakubi: take a wider range
-16 ... 10 to see, that Re or Im(denom) is not piecewise linear).


I am a fan of save results (i.e. Maple should check, whether eval
can be used) - but they may last long, so some 'lame and fast' eval
then would be helpfull.

NB: for the above subs(a=0,Q) or subs(a=0.0,Q) behaves similar.

Funny, that rationalize(Q) gives it as algebraic/a^2 and thus it
gives no problems.


Besides Alec's nice example I have some, where eval is not allowed
due to the documentation, but I see no easy way to find it out:

  J:= x -> Int( ln( (x-1)^2 + 4*x*sin(theta)^2 ), theta=0..Pi/2 );

  theQ:= x/J(x);

Now I want to check singularities by singular(theQ,x), which gives
{x = infinity}, {x = -infinity}. So the following should be correct
eval(theQ,x=0), eval(theQ,x=0.0); subs(x=0,theQ), subs(x=0.0,theQ);
They all return zeros.

However the following shows J to be identical 0 for -1 <= x <= 1:

  op(J(x)), method = _d01ajc: Int(%);
  plot([Re(J(x)), Im(J(x))], x= - 2..2, numpoints=5, thickness=2,
    color=[red,blue]);

I filed that function once and IIRC it was given by Robert Israel.

It also shows how dangerous it may be to use functions from some
expressions without thinking about the domain of definitions: for
the q posted here one should have in mind, that 3rd root is 'only'
a function on positive reals (which Alex is aware of, for sure;
Edited: however what is if I do not want to see that as function,
but as rational polynomial, say for x/x ?).
Just my 2 cents ... and thx - it is interesting!


BTW: how all that is done in other CAS (if comparable)?

you are an advocate for that :-)

just a brute suggestion: is it possible, that the plot is done 'externally' using the unbeloved Standard interface? I remember vaguely, that Mupad (which I used before Maple) had such stuff ...

would applyrule help here (since oder of evaluation may count)?

would applyrule help here (since oder of evaluation may count)?

this solves for your 'sloppy' input, if you want to have 1 for a in the Reals but 0 else (say infinity or some complex number or any symbol) and repeated input gives different answers (cf acer's post). No?

this solves for your 'sloppy' input, if you want to have 1 for a in the Reals but 0 else (say infinity or some complex number or any symbol) and repeated input gives different answers (cf acer's post). No?

it would be nice, if convert/numericproc would do that ...

it would be nice, if convert/numericproc would do that ...

böse junx ...

You would need a range, cf whois.domaintools.com/199.71.183.2

I doubt that it would help, since there would always be a private way (with IP through provider)

then it is to mimize the following w.r.t. variable p
exp(rho*p)*J1;

                             infinity
                            /                     2
                    1/2    |                exp(-x )
        exp(rho p) p    s  |          --------------------- dx
                           |            2                2
                          /           (x  + p + s) (p + x )
                            -infinity

where rho=(1-b)^2/ lambda[2], lambda = lambda[1] in the above &
using your inital question.

Then a minimum seems to exist, probably you have to do it numerical.
then it is to mimize the following w.r.t. variable p
exp(rho*p)*J1;

                             infinity
                            /                     2
                    1/2    |                exp(-x )
        exp(rho p) p    s  |          --------------------- dx
                           |            2                2
                          /           (x  + p + s) (p + x )
                            -infinity

where rho=(1-b)^2/ lambda[2], lambda = lambda[1] in the above &
using your inital question.

Then a minimum seems to exist, probably you have to do it numerical.
First 171 172 173 174 175 176 177 Last Page 173 of 209