Re: How to simplify "Integrate[2 f[x], {x, 0, 1}]/2" to "Integrate[f[x],
- To: mathgroup at smc.vnet.net
- Subject: [mg109218] Re: How to simplify "Integrate[2 f[x], {x, 0, 1}]/2" to "Integrate[f[x],
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Sat, 17 Apr 2010 06:05:30 -0400 (EDT)
On 4/16/10 at 5:53 AM, klaus.engel at tiscali.it (Klaus Engel) wrote:
>I tried to simplify an awkward looking integral with "Mathematica 7"
>using its "(Full)Simplify[...]" function. Unfortunately it failed to
>do so, even though I know that this would be possible. I boiled down
>the problem to the following very simple example ("f" is just a
>generic, undefined function): The input
>Integrate[2 f[x], {x, 0, 1}]/2 // FullSimplify
>returns just the input
>Integrate[2 f[x], {x, 0, 1}]/2
The problem is f is undefined. Consequently, Integrate[2 f...]
is returned unevaluated and neither FullSimplify nor Simplify
can do anything further with the unevaluated result.
>TrueQ[Integrate[2 f[x], {x, 0, 1}]/2 == Integrate[f[x], {x, 0, 1}]]
This will return False for the same reason FullSimplify and
Simplify fail to work
>SameQ[Integrate[2 f[x], {x, 0, 1}]/2 , Integrate[f[x], {x, 0, 1}]]
>Integrate[2 f[x], {x, 0, 1}]/2 === Integrate[f[x], {x, 0, 1}]
Both of these should return False since the left hand side and
right hand side are not identical. SameQ tests whether things
are identical which is not the same as being mathematically equal.
>So my question: Is there something I am overlooking, or what is the
>right "Mathematica" way to treat expressions like the one above.
As far as I know, there isn't anyway to do exactly what you are
asking. What you are asking is for Mathematica to partially
evaluate something it cannot fully evaluate. And it seems
currently something can either be evaluated or not, i.e., no
allowance for partial evaluation.
You could do something like:
In[5]:= Integrate[2 f[x], {x, 0, 1}]/2 /.
Integrate[a_?NumericQ b_, c_] :> a Integrate[b, c]
Out[5]= Integrate[f[x], {x, 0, 1}]
But this type of transform really isn't doing mathematics and
could break in some future version. It relies on the way Times
orders its arguments. And note restricting the pattern matching
to numeric arguments is essential since
In[6]:= Integrate[ x f[x], {x, 0, 1}]/x /.
Integrate[a_ b_, c_] :> a Integrate[b, c]
Out[6]= Integrate[f[x], {x, 0, 1}]
produces a result that is not generally mathematically valid.