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.