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.