MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Extending Integrate[]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg87754] Extending Integrate[]
  • From: Szabolcs Horvát <szhorvat at gmail.com>
  • Date: Wed, 16 Apr 2008 06:51:42 -0400 (EDT)
  • Organization: University of Bergen

According to the documentation it is possible to extend Integrate[] with 
new rules:

http://reference.wolfram.com/mathematica/tutorial/IntegralsThatCanAndCannotBeDone.html

The specific example that is given is:

Unprotect[Integrate]

Integrate[Sin[Sin[a_. + b_. x_]], x_] := Jones[a, x]/b

Now Integrate[Sin[Sin[3x]], x] will return Jones[0, x]/3

But if I try an integrand that is just slightly more complicated, 
Mathematica returns it unevaluated:

In[21]:= Integrate[a + Sin[Sin[x]], x]
Out[21]= Integrate[a + Sin[Sin[x]], x]

My question is:  Is it really possible to extend Integrate in an 
intelligent way?  The above example seems to be just simple pattern 
matching.  It would work with any function, not just Integrate[].  There 
is nothing new or surprising about it.

But is it *really* possible to extend Integrate[] with new definitions 
in a way that Mathematica will use these rules when calculating more 
complicated Integrals?

If (as I suspect) it is not possible to do this, then the documentation 
is a bit misleading ...


  • Prev by Date: Re: List re-arrangement question
  • Next by Date: If Integrate returns no result, can we conclude that no closed-form
  • Previous by thread: Fw: Re: DifferenitalD vs CapitalDifferenitalD
  • Next by thread: Re: Extending Integrate[]