Re: SetDelayed::write ... [x_] is protected

*To*: mathgroup at smc.vnet.net*Subject*: [mg97899] Re: [mg97863] SetDelayed::write ... [x_] is protected*From*: "Serych Jakub" <Serych at panska.cz>*Date*: Wed, 25 Mar 2009 05:42:59 -0500 (EST)*References*: <16449487.41188.1237895183797.JavaMail.hanlonr@127.0.0.1>

Thanks for the Flatten, now it seem that it works (without any error messages), but in fact it doesn't work. sol = {{i1 -> 220/x}, {i2 -> 100 + x}}; myfun[x_] := 50*i1 + 2*i2 /. Flatten[sol] (no errors here) but: In: myfun[1] Out: 11000/x + 2 (100 + x) and not 11202 which would be result for argument 1. So it cannot recognize (or connect together with the pattern x_) the = variable x in the result from sol. What to do with it? Thanks Jakub > -----Original Message----- > From: Bob Hanlon [mailto:hanlonr at cox.net] > Sent: Tuesday, March 24, 2009 12:46 PM > To: Serych Jakub > Cc: mathgroup at smc.vnet.net > Subject: RE: [mg97863] SetDelayed::write ... [x_] is protected > > sol = {{i1 -> 220/x}, {i2 -> 100 + x}}; > > myfun[x_] = 50*i1 + 2*i2 /. Flatten[sol] > > 2*(x + 100) + 11000/x > > > > Bob Hanlon > > > On Tue, Mar 24, 2009 at 7:46 AM , Serych Jakub wrote: > > > Dear M users, > > I have solution of equations which is dependend on one > parameter lets > > say: > > sol={{i1->220/x}, {i2 -> 100+x}} and I need to define > function based > > on this solution with the x as argument lets say: > myfun[x_]:=50*220/x > > + 2 (100+x); > > > > I'm trying to do it like this: > > > > myfun[x_]:=50 * i1 + 2 * i2 /. sol > > > > But it prints the error message: "SetDelayed::write ... [x_] is > > protected". > > > > Does anybody know what's the problem and how to define such > function? > > > > Thanks in advance > > > > Jakub >