Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: lists of variables

  • To: mathgroup at smc.vnet.net
  • Subject: [mg58255] Re: lists of variables
  • From: Paul Abbott <paul at physics.uwa.edu.au>
  • Date: Sat, 25 Jun 2005 01:56:14 -0400 (EDT)
  • Organization: The University of Western Australia
  • References: <d9630u$q1t$1@smc.vnet.net><d9gb4h$sud$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

In article <d9gb4h$sud$1 at smc.vnet.net>, "Ray Koopman" <koopman at sfu.ca> 
wrote:

> dh wrote:
> > Hi Heath,
> > You already got many answers, but I think the solution to create
> > a variable name as a string and using ToExpression  is not the
> > appropriate way to do this.
> > Array[..] is made for this purpose.
> 
> I agree that using ToExpression to construct code is awkward and tends
> to obscure what the code is, but for functions such as Minimize, that
> require names of variables in their calling sequence, how else would
> you handle problems in which the number of variables is not fixed?

I'm not sure that I follow you. You can pass the necessary variables to 
such functions. For example, here is a function that generates a random 
polynomial in n variables:

 f[x_List] := Plus @@ Apply[Times, 
    Outer[Plus, x, Table[Random[Integer, {-5, 5}], {Length[x]}]], {1}]

For example,

  SeedRandom[1]

  g = f[{x,y}]

  h = f[{x,y,z}]

Here is a routine that finds the mimimum over a specified domain.

  Minimize[{g, Thread[-2 < Variables[g] < 2]} , Variables[g]]

  Minimize[{h, Thread[-2 < Variables[h] < 2]} , Variables[h]]

And here is a routine for numerical minima:

  Nmin[f_, {x_List, a_List}] := 
   FindMinimum[f, Evaluate[Sequence @@ Transpose[{x, a}]]]

  Nmin[g, {Variables[g], {0,1}}]

  Nmin[h, {Variables[h], {0,1,2}}]

Of course, you cannot use Variables if there are other parameters in the 
functions.

Cheers,
Paul

-- 
Paul Abbott                                      Phone: +61 8 6488 2734
School of Physics, M013                            Fax: +61 8 6488 1014
The University of Western Australia         (CRICOS Provider No 00126G)    
AUSTRALIA                               http://physics.uwa.edu.au/~paul
        http://InternationalMathematicaSymposium.org/IMS2005/


  • Prev by Date: Re: Re: Mathematica program generating sequence ofpoints stalls for no apparent reason.
  • Next by Date: Re: Re: Asking questions
  • Previous by thread: lists of variables
  • Next by thread: mathematica bench mark and hp c8000?