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