Could you elaborate on this?  I guess you have better examples, but here is 
one for illustration:

(1) -> integrate(1/(1+x+x^3),x)

   (1)
           +---------------+
           |         2          +--+
         (\|- 93 %%E0  + 12  - \|31 %%E0)
      *
         log
                                    +---------------+
                  +--+        +--+  |         2                2
              (2 \|31 %%E0 + \|31 )\|- 93 %%E0  + 12  + 62 %%E0  - 31 %%E0
            + 
              18 x - 4
     + 
             +---------------+
             |         2          +--+
         (- \|- 93 %%E0  + 12  - \|31 %%E0)
      *
         log
                                      +---------------+
                    +--+        +--+  |         2                2
              (- 2 \|31 %%E0 - \|31 )\|- 93 %%E0  + 12  + 62 %%E0  - 31 %%E0
            + 
              18 x - 4
     + 
          +--+                  2
       2 \|31 %%E0 log(- 62 %%E0  + 31 %%E0 + 9 x + 4)
  /
        +--+
     2 \|31
                                         Type: 
Union(Expression(Integer),...)

(2) -> definingPolynomial %%E0

               3
        31 %%E0  - 3 %%E0 - 1
   (2)  ---------------------
                  31
                                                    Type: 
Expression(Integer)

dim...@gmail.com schrieb am Dienstag, 20. Juli 2021 um 19:26:54 UTC+2:

> On Tue, Jul 20, 2021 at 11:23 AM 'Martin R' via sage-devel
> <sage-...@googlegroups.com> wrote:
> >
> > So, do you have an alternative idea on how to translate these results 
> from FriCAS to sage? I guess the most interesting application is in 
> symbolic integration, where rootOf objects appear frequently.
>
> As far as integration goes, I only know about cases where one takes
> the sum over the roots.
>
> >
> > Nils Bruin schrieb am Dienstag, 20. Juli 2021 um 02:42:46 UTC+2:
> >>
> >> On Monday, 19 July 2021 at 09:33:39 UTC-7 axio...@yahoo.de wrote:
> >>>
> >>> Dear Nils,
> >>>
> >>> please excuse my late reaction!
> >>>
> >>> I think FriCAS solves this problem as follows: the meaning of its 
> rootOf object is "any root of the given (minimal) polynomial". Thus, such 
> an object may only appear, when the choice of root does not matter, for 
> example, as an integral.
> >>>
> >>> fricas.zerosOf returns a list of zeros of a given polynomial, which 
> are given as interdependent rootOf objects. Thus, once you choose any root 
> for the first, you get a different root for the second, and so on. Eg 
> (sorry, ascii-art follows)
> >>>
> >>> (1) -> z := zerosOf(y^3 + y + a, y)
> >>>
> >>> +------------+ +------------+
> >>> | 2 | 2
> >>> \|- 3 %y0 - 4 - %y0 - \|- 3 %y0 - 4 - %y0
> >>> (1) [%y0, ---------------------, -----------------------]
> >>> 2 2
> >>> Type: List(Expression(Integer))
> >>> (2) -> (z.1)::INFORM
> >>>
> >>> (2) (rootOf (+ a (+ (^ %y0 3) %y0)) %y0)
> >>> Type: InputForm
> >>>
> >>>
> >>> This looks like a pragmatic approach to me.
> >>
> >> It depends a little bit what arithmetic you want how much intermingling 
> of results you want to have. I know that maple has an "index" to rootof 
> objects that allow you to at least track if two roots of the same 
> polynomial are the same root or not necessarily the same one. What this 
> basically gives you, if you have roots of polynomials f and g, is 
> arithmetic in the ring k[x,y]/(f(x),g(y)). That ring maps onto any field 
> extension you may get from adjoining roots of f,g (in an algebraic closure 
> of k) to k, but it does not necessarily give you an isomorphism. For 
> instance, if f(x)=x^2-2 and g(y)=y^2-8 then the ring Q[x,y]/(f(x),g(y)) has 
> zero-divisors, reflecting that g(y) is not irreducible over k[x]/(f(x)). 
> This is a fairly fundamental problem: if you really want to compute in a 
> field, you'll need additional relations between the RootOf objects. Absent 
> that information, indeed computing in this universal ring and accepting the 
> zero-divisors is probably the most pragmatic thing to do. You may not even 
> run into the zero divisors! However, if you trace back the origin of the 
> objects the user creates, there will generally be sufficient information to 
> determine the extra relations as well.
> >>
> >> Note that Fricas here makes use of additional information to construct 
> the splitting field as a quadratic extension of a cubic one, so these are 
> basically nested RootOfs. It does need to know that the (second) rootofs, 
> displayed as square-roots here, that occur in the second and third root are 
> in fact identical.
> >>
> >> This will be a little more obvious if you ask zerosOf(y^5+y+a,y).
> >>
> > --
> > You received this message because you are subscribed to the Google 
> Groups "sage-devel" group.
> > To unsubscribe from this group and stop receiving emails from it, send 
> an email to sage-devel+...@googlegroups.com.
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-devel/e09ebd0b-105c-4002-b324-857b1e0b9c56n%40googlegroups.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/33b51bc8-67f4-4f32-92de-a9ca294d5a44n%40googlegroups.com.

Reply via email to