From: hebisch@math.uni.wroc.pl   
      
   clicliclic@freenet.de wrote:   
   >   
   > Waldek Hebisch schrieb:   
   > >   
   > > clicliclic@freenet.de wrote:   
   > > >   
   > > > Waldek Hebisch schrieb:   
   > > > >   
   > > > > clicliclic@freenet.de wrote:   
   > > > > >   
   > > > > > ... and another quick FriCAS 1.2.3 on-line experiment:   
   > > > > >   
   > > > > > integrate((a + b*x + c*x^2)/((1 - x + x^2)*(1 - x^3)^(1/3)), x)   
   > > > > >   
   > > > > > >> Error detected within library code:   
   > > > > > integrate: implementation incomplete   
   > > > > > (residue poly has multiple non-linear factors)   
   > > > > >   
   > > > > > Is there no workable treatment of "multiple non-linear factors" other   
   > > > > > than Kauer's Groebner-basis heuristics?   
   > > > > >   
   > > > >   
      
   > > > But this trick doesn't help with Example 21 from Timofeev   
   > > > Chapter 4:   
   > > >   
   > > > INT(((x - 1)^2*(x + 1))^(1/3)/x^2, x) = ?   
   > >   
   > > This one can be easily rationalized: it is equivalent to   
   > > integral containing '((x + 1)/(x - 1))^(1/3)' which is well   
   > > known case. I just added a small modification to developement   
   > > version of FriCAS so that it will find appropriate substitution:   
   >   
   > 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.   
      
   >   
   > By the way, all of my examples in this thread admit rationalizing   
   > substitutions that can be found by fairly simple tests, in fact that's   
   > how they were constructed. These tests are the equivalent of Goursat's   
   > 1887 prescriptions for pseudo-elliptics involving square roots of cubics   
   > and quartics (Bull. SMF 15, p. 106-120). Apparently, he and everybody   
   > since just forgot to look into cube-root equivalents ...   
   >   
   > Here's another such example, this time involving the power -2/3 (I am   
   > too lazy to invoke FriCAS or the Wolframator on this one.):   
   >   
   > INT((1 - k*x)/((1 + (k - 2)*x)*(x*(1 - x)*(1 - k*x))^(2/3)), x) = ?   
   >   
   > Integration results reading ">> ... impossible" are clearly worse than   
   > sums over unresolved roots. Thus, rewriting   
   >   
   > INT(1/((2*x + SQRT(3)*#i - 1)*(1 - x^3)^(1/3)), x)   
   > = (- SQRT(3)*#i - 1)/4*INT(1/((x^2 - x + 1)*(1 - x^3)^(1/3)), x)   
   > + 1/2*INT(x/((x^2 - x + 1)*(1 - x^3)^(1/3)), x)   
   >   
   > would be a good idea - if it could be determined beforehand what   
   > denominator factor has to be augmented in order to render an elementary   
   > algebraic integral termwise FriCAS-semipalatable ...   
      
   Actually, internally FriCAS has in more detailed splitting in hand,   
   it just has to decide which terms combince to give something   
   integrable (and find corresponding integral).   
      
   > 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.   
      
   --   
    Waldek Hebisch   
   hebisch@math.uni.wroc.pl   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|