ZeroDimensionalSolvePackage has "realSolve" and "positiveSolve"
which gives RealClosure as result, and the numeric value is right
(I computed another one and compared with wolframalpha.)

- Qian

On 11/23/23 19:11, Waldek Hebisch wrote:
On Thu, Nov 23, 2023 at 12:11:01PM +0800, Qian Yun wrote:

Trouble here is with A(u,v) and B(u,v).  Already when p is of degree
4 with Galois group S(4) we have trouble: beside right solutions
there are spurious ones and it is hard to separate good ones from
spurious one.

Consider

p := 10*(a^4 + 1) + a

and

rootSum(a*log(x - a), p::SUP(EXPR(INT)))

How you want to find right u, v?  The approach I described
works around difficulty with u, v by working with coefficients
of p.  We still have difficulty with final result, but it is
less problematic: we need to choose positive real root of
a polyniomial.  Note that the polynomial is minimal polynomial
for the answer, so we need to choose this root directly or
indirectly.  But we can avoid trouble with u and v.


In this particular case, B(u, v) = - v, when v is positive, B is
negative.  So for this case, limit when x is +infinity is
   rootSum(-%pi*v, V(v) where v is real and positive)

V(v) can be achieved by resultant:

p := 10*(a^4 + 1) + a
puv := eval(p,a=u+%i*v)
P := real puv
Q := imag puv
V := resultant(univariate(P, second kernels P), univariate(Q, second kernels
P))::POLY INT

40960000000*v^16+20480000000*v^12+(-166400000)*v^10+(-17920000000)*v^8+(-86400000)*v^6+2559973000*v^4

countRealRoots V returns 5, which is a 0 (ignore) and 2 positive v and
2 negative v (come in pairs), which is the correct number of v.

This does not scale for more complex B(u, v) though.

The trouble is that AFAICS we have _no_ reasonable expression for
real roots.  When V factors we can try to use countRealRoots to
find factors responsible for real roots.  However, above V has
irreducible factor of degree 12 and need to sum over its real roots.

If wee look at u we get polynomial of degree 6, which may be easier
to handle (but then we need square roots to get v).  In approach
that I sketched we get polynomial of degree 6 for final result.

BTW: Q is always divisible by v and v=0 can not give complex root,
so we can divide by it in "interesting" cases (that is when there
is no real root).


--
You received this message because you are subscribed to the Google Groups "FriCAS - 
computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/0894cf21-eb67-48ba-a15d-8dd1fc506aa1%40gmail.com.

Reply via email to