NMaxmize with a list of variables

I want to use NMaximize to find the maximum value of a function with multiple variables. The problem is I would like to set this up so the number of variables is only decided when the function sees the data. So I have:

NMaximize[{F[data,a1,a2],a1>0,a2>0},{a1,a2}]

when there are data from two genes.
But would like the function to be

NMaximize[{F[data,a1,a2,a3],a1>0,a2>0,a3>0},{a1,a2,a3}]

if there are 3 genes…etc Any way to set this?

=================

=================

1 Answer
1

=================

Does this do what you want?

func[syms__Symbol] := NMaximize[{F[data, syms], Thread[{syms} > 0]}, {syms}]

func[q, r, s, t]

NMaximize[{F[data, q, r, s, t], {q > 0, r > 0, s > 0, t > 0}}, {q, r, s, t}]

  

 

Thanks for this. I’ve almost got it to work using pList = Table[Symbol[“a”<>ToString[i]],{i,1,n}] to generate my list of variables, but there’s a complication I’m still working on.
– user6799
Apr 10 ’13 at 16:48

  

 

@user6799 Can I help with whatever that complication is?
– Mr.Wizard♦
Apr 12 ’13 at 18:14