home bbs files messages ]

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 9,279 of 10,432   
   Albert Rich to clicl...@freenet.de   
   Re: The leaner and meaner Rubi 4.11 now    
   07 Mar 17 16:11:02   
   
   From: Albert_Rich@msn.com   
      
   On Tuesday, March 7, 2017 at 8:44:01 AM UTC-10, clicl...@freenet.de wrote:   
   >    
   > A look at Rubi's rule count for versions 4.0 through 4.9:   
   >    
   >   4.0  5150  | *   
   >   4.1  5273  |  *   
   >   4.2  5548  |    *   
   >   4.3  5647  |     *   
   >   4.4  5587  |     *   
   >   4.5  5465  |    *   
   >   4.6  5594  |     *   
   >   4.7  5914  |        *   
   >   4.8  6157  |               *   
   >   4.9  6329  |                                *   
   >    
   > I conclude that doomsday has been warded off for another year or so.   
      
   You need not be so pessimistic.  For one, the exponential growth you graph   
   seems to show is sitting on a base of some 5000 rules.  Also, although large,   
   the scope of Rubi is NOT infinite in extent.  Rather the goal is to provide a   
   comprehensive set of    
   rules for finding optimal antiderivatives of instances of a fixed set of   
   well-defined forms of integrands.  For example, all instances of integrands of   
   the form   
      
       (d+e x^n)^m (a+b x^n+c x^(2 n))^p   
   and   
       cos(e+f x)^p (a+b sin(e+f x))^m (c+d sin(e+f x))^n   
      
   Given this limited goal, I think a manageable number of integration rules will   
   suffice.  Certainly under 10,000.  The uncompressed size of the Rubi 4.11   
   source text files is less than 1.9 megabytes.  This is tiny by today's   
   standards, and leaves plenty    
   of room for growth.   
      
   > > Through the use of what Maple calls inert functions, the pattern   
   > > matcher was effectively extended to recognize that cos(r+s x) is an   
   > > instance of the pattern sin(a_+b_ x) by assigning a_ the value r+pi/2.   
   > > Similarly cot and sec are now recognized as instance of tan and csc,   
   > > respectively.  Therefore all the rules for cos, cot and sec were   
   > > eliminated, since they are now handled by the corresponding sin, tan   
   > > and csc rules.  Slightly less than half the trig rules could be   
   > > eliminated because terminal cases involving special functions (e.g.   
   > > the sine integral and cosine integral functions) require two rules to   
   > > choose between them.   
   > >    
   > > It should be noted that Rubi has long used inert trig functions to   
   > > recognize hyperbolic functions as instances of trig functions; thereby   
   > > eliminating hyperbolic integration rules.  The only downside to the   
   > > elimination of the hyperbolic integration rules, and now half of the   
   > > trig integration rules, is that when single-stepping through an   
   > > integration of say cos(r+s x), the rule for integrating sin(a+b x) is   
   > > displayed.  However, even this objection could be eliminated by   
   > > getting the single-stepper to automatically transform the sine rule   
   > > into the equivalent cosine rule when sin(r+pi/2+s x) is being   
   > > integrated.  I leave that as a project for an intrepid Rubi user.   
   >    
   > I seem to recall that intermediate and final results are transformed   
   > back already where appropriate. Similar transformations should apply to   
   > rules that are displayed. The necessary information would have to be   
   > passed by the extended pattern matcher or to be determined anew from the   
   > current rule code and input and output expressions, I suppose.   
   >    
   > Anyway, most users will find it easier to read a sine as cosine than to   
   > read a sine as a hyperbolic function.   
   >    
   > But couldn't the issue have been addressed by a single simple rule that   
   > replaces all occurences of COS(x) in an integrand with SIN(pi/2 + x),   
   > &cetera?   
      
   Mathematica evaluates Sin[Pi/2+x] to Cos[x], and -I Sin[I x] to Sin[x].  So   
   the rule you suggest would result in an infinite regress.  Instead Rubi uses   
   inert functions as follows:   
      
   1) All occurrences of active trig and hyperbolic functions in an integrand are   
   replaced with an equivalent expression involving one of the 3 inert trig   
   functions (sin, tan, or csc).  For example, Sin[x] goes to sin[x], Cos[x] goes   
   to sin[Pi/2+x], and    
   Sinh[x] goes to -I sin[I x].   
      
   2) Mathematica's built-in pattern matcher then finds the right sin, tan or csc   
   rule to apply to the integrand.   
      
   3) Finally, the right side of the sin, tan and csc rules are expressed in   
   terms of the active trig functions.  So their evaluation by Mathematica   
   results in all 12 trig and hyperbolic functions automatically being used to   
   express the antiderivatives in    
   optimal form.  For example, Sin[Pi/2+x] evaluates to Cos[x].   
      
   Albert   
      
   --- 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