Re: Extending Integrate[]

• To: mathgroup at smc.vnet.net
• Subject: [mg87783] Re: Extending Integrate[]
• From: "Szabolcs HorvÃt" <szhorvat at gmail.com>
• Date: Wed, 16 Apr 2008 22:33:14 -0400 (EDT)

```On Wed, Apr 16, 2008 at 2:02 PM, dh <dh at metrohm.ch> wrote:
> Hi Szabolcs,
>  it looks like mathematica does not automatically distribute your rule over
> Plus. This comes a bit as a surprise. But you can teach it. If you
> additionally give the following rule:
>  Integrate[a_+b_,x_]:=Integrate[a,x]+Integrate[b,x]
>  then your example works. Of course you also need linearity.

Hi Daniel,

The problem with this approach is that it will prevent Integrate from
working correctly in certain cases.  Here's an example:

In[1]:= expr = D[x*f[x], x]
Out[1]= f[x] + x*f'[x]

In[2]:= Integrate[expr, x]
Out[2]= x*f[x]

In[3]:= Unprotect[Integrate]
Out[3]= {"Integrate"}

In[4]:= Integrate[a_ + b_, x_] := Integrate[a, x] + Integrate[b, x]

In[5]:= Integrate[expr, x]
Out[5]= Integrate[f[x], x] + Integrate[x*f'[x], x]

Jens's suggestion, i.e.

Integrate[d_. + c_.*Sin[Sin[a_. + b_. x_]], x_] :=
c*Jones[a, x]/b + Integrate[d, x] /; FreeQ[c, x]

appears to be reliable, but everything it does is still fully
implemented with plain old pattern matching.  So my original
suspicion, that the internal algorithms of Integrate[] cannot use
these new definitions in any way, seems to be true.

Szabolcs

```

• Prev by Date: Re: Extending Integrate[]
• Next by Date: Re: Select from list
• Previous by thread: Re: Extending Integrate[]
• Next by thread: Re: Extending Integrate[]