Re: lists w/o double brackets
- To: mathgroup at smc.vnet.net
- Subject: [mg31449] Re: [mg31436] lists w/o double brackets
- From: BobHanlon at aol.com
- Date: Wed, 7 Nov 2001 05:29:09 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 2001/11/5 4:52:18 AM, gbrennen at unm.edu writes: >I am using the function FindRoot with a large number of simultaneous equations. > > FindRoot[eqs,initialvals] > >I have a function for generating the equations which works fine as a list >input in FindRoot, however I am having difficulty creating a function for >generating initialvals that will be accepted by FindRoot. The problem >seems to be that FindRoot demands a format > > FindRoot[{eq1,eq2,...,eqn},{var1,val1},{var2,val2},...,{varn,valn}] > >the variables and initial values of which must appear as a list without >double brackets. The function I have for generating the initial values >always outputs the list as follows > > > Input > initialvals > Output > {{var1,val1},{var2,val2},...,{varn,valn}}. > >Note the double brackets which FindRoot will not accept. >I have tried using > > initialvals2=StringReplace[ToString[initialvals], {"{{" -> "{", "}}" >-> >"}"}] > >which eliminates the double brackets, however FindRoot will not accept >stings as input for the variables and upon converting back to an Expression >using > > ToExpression[initialvals2] > >the double brackets return. > >Is there a solution to this without having to manually cut and paste the >output of my expression for initialvals without the double brackets into >FindRoot? > Use Sequence and Evaluate varVal = Table[ {ToExpression["x"<>ToString[n]], 1}, {n,3}]; FindRoot[ {x1^2+x2^2+x3^2==29, x1+x2==5, x3-x2==1}, Evaluate[Sequence @@ varVal]] {x1->2., x2->3., x3->4.} Bob Hanlon Chantilly, VA USA