Re: Evaluate, Replace, and Hold
- To: mathgroup at smc.vnet.net
- Subject: [mg77181] Re: Evaluate, Replace, and Hold
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Tue, 5 Jun 2007 06:45:42 -0400 (EDT)
- Organization: Uni Leipzig
- References: <f40gib$65a$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
Hi, and model = a x + b; p1 = {a -> 1, b -> 0}; p2 = {a -> 1, b -> 1}; pts = Range[10]; f[pts_, param_] := With[{ff = Function[{x}, #] & @ (model /. param)}, ff /@ pts ] will do it. Regards Jens grenander at gmail.com wrote: > This is a newbie question. I have a parametric form of a model and I > would like to evaluate it with different parameters on a list of > values. > > model = a x + b; > > Different sets of parameters: > > p1 = {a->1, b->0}; > p2 = {a->1, b->1}; > > x for which I'd like to evaluate the model: > > pts = Range[10]; > > I would like to define a function to evaluate the model at pts using > any of the sets of paramters: > > f[pts, p1] > f[pts, p2] > > I would also like it to work for single points: > > f[1, p1] > f[2, p1] > > I've tried various forms for a function definition that dont work. I > can do the following for a particular set of parameters: > > Function[{x}, Evaluate[model /. p1]] /@ pts > > but how can I turn it into a function of also the parameters. The > below doesn't work, for example: > > f[pts_, p_]:=Function[{x}, Evaluate[model /. p] ] /@ pts > > What I know is from descending the documentation tree (v6.0) starting > from the examples in FindFit. I have a fundamental misunderstanding of > replacement rules and delayed evaluation. > > Thanks. > >