MathGroup Archive 2004

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

Search the Archive

Re: Substitution ignored?

  • To: mathgroup at
  • Subject: [mg48746] Re: [mg48738] Substitution ignored?
  • From: Andrzej Kozlowski <akoz at>
  • Date: Sat, 12 Jun 2004 23:33:36 -0400 (EDT)
  • References: <>
  • Sender: owner-wri-mathgroup at

On 12 Jun 2004, at 12:59, Jos R Bergervoet wrote:

> Dear MathGroup,
> Why is the following going wrong?
> f = x^2
> Plot[{  f,  f /. x->x-1  }, {x,0,2}]   (* Identical functions plotted 
> !!! *)
> g = f /. x->x-1
> Plot[{f, g}, {x,0,2}]                  (* OK, different functions 
> plotted *)
> -- Jos

Actually both of these are examples show that you have not bothered to 
read the documentation for Plot (or the archives of this list since 
this is one of the most commonly asked questions). The correct code is

Plot[Evaluate[{f, f /. x -> x - 1}], {x, 0, 2}]

(and in fact Plot[Evaluate[{f, g}], {x,0,2}] is also better than what 
you have).

Now the explanation. If you do not Evaluate the first argument in Plot, 
the graph is made by substituting individual numerical values for x, 
and then evaluating the function at this point. So your second 
function, f/.x->x-1 is evaluated as follows (with x = 1.5 chosen to 
illustrate what is going on):

(1.5)^2/. 1.5->(1.5-1)

which is just

2.25/. 1.5->0.5

which is of course just 2.25, in other words your substitution rule has 
no effect at all..
In the other case of course this does not happen since the second 
function is already (x-1)^2 before any values are substituted.

Andrzej Kozlowski
Chiba, Japan

  • Prev by Date: RE: Substitution ignored?
  • Next by Date: RE: Creating combinations from a group of sets, PART 2
  • Previous by thread: Substitution ignored?
  • Next by thread: Re: Substitution ignored?