RE: plot several functions
- To: mathgroup at smc.vnet.net
- Subject: [mg35900] RE: plot several functions
- From: "DrBob" <majort at cox-internet.com>
- Date: Wed, 7 Aug 2002 05:59:18 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
You can redefine the functions to take advantage of their commonality, something like this: (I'm using Sin[x] as the LARGE BLOCK) helper[x_] := Sin[x] fun1[large_, x_] := Cos[x]large fun2[large_, x_] := Exp[x]large fun3[large_, x_] := x large Plot[Evaluate@{h = helper[t]; fun1[h, t], fun2[h, t], fun3[h, t]}, {t, 0, Pi}] or helper[x_] := Sin[x] fun1[large_, x_] := Cos[x]large fun2[large_, x_] := Exp[x]large fun3[large_, x_] := x large vector[x_] := (h = helper[t]; {fun1[h, t], fun2[h, t], fun3[h, t]}) Plot[Evaluate@vector@t, {t, 0, Pi}] For other purposes, you can still define fun1[arg_]:=fun1[helper@arg,arg] et cetera. In case you haven't seen this before, f@x is the same as f[x]. Bobby -----Original Message----- From: Mihajlo Vanevic [mailto:mvane at eunet.yu] To: mathgroup at smc.vnet.net Subject: [mg35900] plot several functions I have the following problem: I have to plot several functions at once, like Plot[{fun1[t], fun2[t], fun3[t]},{t,0,1}] where fun1,2,3 consists of the same (large!!) block, something like: fun1[arg_]:=Module[... LARGE BLOCK; result1]; fun2[arg_]:=Module[... LARGE BLOCK(same as above); result2]; fun3[arg_]:=Module[... LARGE BLOCK(same as above); result3]; When I do the plot, this block is evaluated three times for every t, and the plot takes very long time... Is there any way to make my plot faster, by evaluating LARGE BLOCK (in Plot) only once, for every t??