MathGroup Archive 2007

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

Search the Archive

Re: novice needs help using Manipulate with Plot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg78437] Re: novice needs help using Manipulate with Plot
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Mon, 2 Jul 2007 06:40:16 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <f68458$eoh$1@smc.vnet.net>

PHILLMAN5 at gmail.com wrote:
> Manipulate seems at first to be very powerful, but I am having trouble
> using it with my own functions.  To vastly simplify my problem say I
> want to plot y = m x, with x going from 0 to 10, with the slider in
> Manipulate controlling m.  I have tried the following:
> 
> test := m x
> Manipulate[Plot[test, {x, 0, 10}], {{m, 1}, 0, 2}]
> 
> test3[x_] := m x;
> Manipulate[Plot[test3[x], {x, 0, 10}], {{m, 1}, 0, 2}]
> 
> don't seem to work.  If you define the function with m as a formal
> parameter, like the following it does.
> 
> test2 = #1 #2 &;
> Manipulate[Plot[test2[m , x], {x, 0, 10}], {{m, 1}, 0, 2}]
> 
> test4[m_, x_] := m x;
> Manipulate[Plot[test4[m, x], {x, 0, 10}], {{m, 1}, 0, 2}]
> 
> Is there anyway to write functions to work with Manipulate without
> have to have all the slider(s) formally written as a parameter to the
> function?

The issue you face is that for Mathematica the parameters 'm' are not 
the same in the function test (global scope) and in *Manipulate* (local 
scope). Indeed the global 'm' is named 'm' whereas the local 'm' is name 
'm$xxx' (xxx being some number produced by Mathematica that guarantees 
the uniqueness of the local symbol 'm').

If you do not want to change the definition your function(s), you could 
use a transformation rule instead, as in the following example:

f[x_] = m x;
Manipulate[Plot[f[x] /. m -> u, {x, 0, 10}], {{u, 1}, 0, 2}]

HTH,
Jean-Marc


  • Prev by Date: Re: position of matrix elements for intervals
  • Next by Date: Re: position of matrix elements for intervals
  • Previous by thread: novice needs help using Manipulate with Plot
  • Next by thread: Re: novice needs help using Manipulate with Plot