Re: Manipulating list of functions

• To: mathgroup at smc.vnet.net
• Subject: [mg96331] Re: [mg96276] Manipulating list of functions
• From: "David Park" <djmpark at comcast.net>
• Date: Wed, 11 Feb 2009 05:25:32 -0500 (EST)
• References: <23853518.1234264854681.JavaMail.root@m02>

```Istvan,

Many problems in Mathematica could be avoided if all the variables and
parameters of a function were included within the function definition and
not left 'hanging loose'.

It also helps a lot to calculate, define and test required functions outside
of Plot and Manipulate statements.

So I would do your calculation this way.

funcA[a_][z_]:=Sin[z+a];
funcB[a_][z_]:=Cos[z+a];
funcC[a_][z_]:=0;

Manipulate[
Plot[{funcA[a][x],funcB[b][x],funcC[0][x]},{x,1,10},Axes->False,Frame->True]
,
{a,0,1},
{b,0,1}]

There, I actually typed the list into the Plot statement. If we wanted to
precompute the list with different parameters for the functions it becomes
more convoluted.

Clear[funcA,funcB,funcC,funcList];
funcA[a_,b_][z_]:=Sin[z+a];
funcB[a_,b_][z_]:=Cos[z+b];
funcC[a_,b_][z_]:=0;
funcList[a_,b_][x_]=#[a,b][x]&/@{funcA,funcB,funcC}

{Sin[a+x],Cos[b+x],0}

Manipulate[
Plot[funcList[a,b][x]//Evaluate,{x,1,10},Axes->False,Frame->True],
{a,0,1},
{b,0,1}]

David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/

From: replicatorzed at gmail.com [mailto:replicatorzed at gmail.com]

Dear Group,

I have the following code:

Manipulate[
funcA[z_] := Sin[z + a];
funcB[z_] := Cos[z + b];
funcC[z_] := 0;
funcList = #[x] & /@ {funcA, funcB, funcC};
Plot[funcList, {x, 1, 10}, Axes -> False, Frame -> True],
{a, 0, 1},
{b, 0, 1}
]

It returns the Manipulate panel correctly. What annoys me is the cell
bracket of it that is constantly highlighted, probably because there
is some calculation going on even when I do not move any of the
sliders, due to some function-definitions. I'm afraid I do not fully
understand the cause of it. Nor do I know how to overcome it. Also
what should I do, if I want to move the funcA, funcB, funcC
definitions outside of Manipulate?