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:


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


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



1 Answer


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