[Date Index]
[Thread Index]
[Author Index]
Re: Problems with easy simplifications
*To*: mathgroup at smc.vnet.net
*Subject*: [mg54187] Re: Problems with easy simplifications
*From*: "David W. Cantrell" <DWCantrell at sigmaxi.org>
*Date*: Sat, 12 Feb 2005 01:59:05 -0500 (EST)
*References*: <cuhsm1$9j1$1@smc.vnet.net>
*Sender*: owner-wri-mathgroup at wolfram.com
Antonio_González <gonferh2o at esi.us.es> wrote:
> I have found some weird behaviors of Mathematica (5.0) related to the
> simplifications of easy expressions.
>
> Take, for instance the function
>
> H[x_, a_, b_] = If[x < a, a + b, a - b]
>
> If I try now to evaluate
>
> H[x,0,0]
>
> the result
>
> If[x < 0, 0 + 0, 0 - 0]
I have two very different suggestions. Other people may have better ideas.
First suggestion: Use Evaluate and delayed assignment as shown below.
In[1]:= H[x_, a_, b_]:= If[x < a, Evaluate[a + b], Evaluate[a - b]]
In[2]:= H[x, 1, 2]
Out[2]= If[x<1, 3, -1]
Second suggestion: Write H in a different way such as
In[3]:= H[x_, a_, b_]:= a + (1 - 2 UnitStep[x-a])b
In[4]:= Simplify[H[x, 1, 2]]
Out[4]= 3 - 4 UnitStep[-1+x]
David Cantrell
> (the values of a and b are irrelevat, a similar result is obtained, for
> instance, with a=1, b= 2, or any integer, real or complex values). I
> cannot force (at least in a simple way) Mathematica to make the addition
> or the substraction. The action of Simplify or FullSimplify leaves the
> expression unchanged while a Map of Simplify
>
> MapAll[Simplify, H[x, 0, 0]]
>
> produces
>
> If[x < 0,
> Simplify[Simplify[0] + Simplify[0]], Simplify[Simplify[
> 0] + Simplify[Simplify[-1] Simplify[0]]]]
>
> Something even worse happens if a use values already defined. For
> instance
>
> c = 0; d = 0; H[x_] = If[x < c, c + d, c - d]
>
> produces
>
> If[x < 0, c + d, c - d]
>
> In this case, the addition is not necessary.
>
> c = 0; d = 0; H[x_] = If[x < c, c, d]
>
> leads to
>
> If[x < 0, c, d]
>
> Similar problems arise using the function Which.
>
> Any explanation or help with this malfunction would be welcome.
Prev by Date:
**Re: Problems with easy simplifications**
Next by Date:
**Re: Algebraic Symbol Manipulation**
Previous by thread:
**Re: Problems with easy simplifications**
Next by thread:
**Re: Problems with easy simplifications**
| |