Forums before death by AOL, social media and spammers... "We can't have nice things"
|    sci.math.symbolic    |    Symbolic algebra discussion    |    10,432 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 8,752 of 10,432    |
|    Waldek Hebisch to clicliclic@freenet.de    |
|    Re: Announce: FriCAS 1.2.4 has been rele    |
|    14 Feb 15 23:04:10    |
      From: hebisch@math.uni.wroc.pl              clicliclic@freenet.de wrote:       >       > Waldek Hebisch schrieb:       > >       > > clicliclic@freenet.de wrote:       > > >       > > > Rationalizing by substitution belongs to the 18th century (the age       > > > of the Bernoullis and Euler), for a Risch integrator it amounts to       > > > admitting defeat!       > >       > > Of course I would like to handle such integrals using general       > > code. But when there is rationalizing substitution, then       > > execution time is usualy much better compared to full Trager       > > procedure. So this is desirable optimization.       > >       >       > Your use of the term optimization is futuristic in that it is relative       > to a procedure that has been described but not been implemented in       > FriCAS or elsewhere.              FriCAS uses rationalizing substitution before trying Trager       procedure. In particular at this point FriCAS does not know       if integral would hit unimplemented part or not. And in cases       handled by current version of Trager procedure execution time       using substitution usually is much better.              > > >       > > > Alternatively, Kauers' Groebner-basis heuristics could be resorted       > > > to when an algebraic integral is pronounced ">> ... impossible". He       > > > does it in about ten lines of code ...       > >       > > Ten lines of pseudo code. Real code that only handles very simple       > > case is already longer. More complicated cases need code which       > > introduces extra variables. The real problem is exection time.       > > I could add to FriCAS few lines of code (probably more than 10)       > > that will "handle" general case. But ATM there is no hope that       > > such code would finish execution in reasonable time. Groebner       > > bases do well in simple cases, but may also lead to enormous       > > execution time. At least theoretically Trager procedure has       > > lower complexity than Groebner bases, so it is not clear if       > > adding Groebner bases to the mix helps.       > >       >       > And also about ten lines of Mathematica code in the Appendix - but this       > line count does not include a separate interface package used to access       > Singular on whose Groebner basis engine the code relies (without real       > need, I suppose).       >              AFAICS this code does not handle any complications which are       mentiond in the paper (that is caller must prepare data in       a special way).              BTW: Trager procedure builds divisors (that is colections of       zeros and poles) corresponding to candidate integrals. Then       divisors have to be combined and checked if they correspond to       real funtions. If not, there is no elementary integral.       If there is rationalizing substitution, then no combining       is needed: any divisor gives you a function.              Compared to that Kauers uses incomplete divisors (without       part at infinity) and skipped combining. His Groebner       heuristic attemps to find a function which has arbitrary       behaviour at infinity while in finite places has zeros       and poles given by the divisor. AFAICS his procedure is       incomplete in at least two places: for some functions       combining divisors is needed and he uses fixed bound       for order of divisors while it is know that there are       divisors of order higher than any fixed bound       (and Trager procedure can compute bound on the order).       It is not clear for me if Groebner heuristic is complete       for the problem of checking if divisor corresponds to       a function.              How this compares to what FriCAS is doing: at first       step of Trager procedure FriCAS obtains incomplete       divisors (without part at infinity). They have to       be combined to get a complete divisors. Normaly       divisors come in pairs, one for zeros and other       for poles. In such case FriCAS typically can       recognize that parts of divisor should be paired and       checks combined divisor. In your examples there       is no such pattern, one gets three parts. ATM I do not       know if one needs to combine all parts or (more likely)       if one can handle them separately. If parts can be       handled separately then Kauers heuristic has chance       to succeed.              --        Waldek Hebisch       hebisch@math.uni.wroc.pl              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca