Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

Re: Problems with easy simplifications

  • To: mathgroup at smc.vnet.net
  • Subject: [mg54149] Re: Problems with easy simplifications
  • From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
  • Date: Sat, 12 Feb 2005 01:56:56 -0500 (EST)
  • Organization: Uni Leipzig
  • References: <cuhsm1$9j1$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

If[] can not evaluate the last two arguments until it can decide
the test in the first argument. You should use
Piecewise[], that does what you whant

hh[x_, a_, b_] := Piecewise[{{a + b, x < a}}, a - b]

and

hh[x, 0, 0]

gives 0

Regards
  Jens


"Antonio González" <gonferh2o at esi.us.es> schrieb im Newsbeitrag 
news:cuhsm1$9j1$1 at smc.vnet.net...
>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]
>
> (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.
>
> -- 
>
>   Antonio
>
> (Eliminar el agua para responder por e-mail - Remove water to reply by
> e-mail)
> 



  • Prev by Date: Re: Quite Upset with NIntegrate
  • Next by Date: Re: Problems with easy simplifications
  • Previous by thread: Re: Problems with easy simplifications
  • Next by thread: Re: Problems with easy simplifications