Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*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 2004

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

Search the Archive

RE: Problem with transformation rules in Plot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg48521] RE: [mg48498] Problem with transformation rules in Plot
  • From: "David Park" <djmp at earthlink.net>
  • Date: Fri, 4 Jun 2004 04:49:39 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Alain,

The problem occurs because Plot has the Attribute HoldFirst. But I am not
certain of the exact sequence of internal evaluations that causes the
problem.

In any case, you can easily circumvent the problem by evaluating the first
argument.

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

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/

From: Alain Cochard [mailto:alain at geophysik.uni-muenchen.de]
To: mathgroup at smc.vnet.net


Hello.  I would be grateful if someone could explain to me the
following behavior (i.e., is it normal? why?), or point me to a
relevant part of a manual:

Mathematica 4.0 for Linux
Copyright 1988-1999 Wolfram Research, Inc.
 -- Motif graphics initialized --

In[1]:= f[x_]:=a x ; g[x_]:=2 a x ;

In[2]:= Plot[ f[x]/.{a->1} , {x,0,1}]  (* Fine *)

Out[2]= -Graphics-

In[3]:= {f[x],g[x]}/.{a->1}

Out[3]= {x, 2 x}  (* Fine, just checking *)

In[4]:= Plot[{f[x],g[x]}/.{a->1} , {x,0,1}]

Plot::plnr: {f[x], g[x]} /. {a -> 1} is not a machine-size real number at x
=
              -8
    4.16667 10  .

Plot::plnr: {f[x], g[x]} /. {a -> 1} is not a machine-size real number at x
=
    0.040567.

Plot::plnr: {f[x], g[x]} /. {a -> 1} is not a machine-size real number at x
=
    0.0848088.

General::stop: Further output of Plot::plnr
     will be suppressed during this calculation.

Out[4]= -Graphics-

(* So the question is: why does it work for f[x] alone, and not for
f[x] and g[x]? *)

(* The following works fine, but is there a better workaround? *)

In[5]:= data={a->1} ; Plot[{ f[x]/.data , g[x]/.data }, {x,0,1}]


Many thanks in advance,
Alain Cochard






  • Prev by Date: Re: ext kalman filter
  • Next by Date: Re: Problem with transformation rules in Plot
  • Previous by thread: Re: Problem with transformation rules in Plot
  • Next by thread: Re: Problem with transformation rules in Plot