Vandermonde Matrix/Optimization question
- To: mathgroup at smc.vnet.net
- Subject: [mg71336] Vandermonde Matrix/Optimization question
- From: scottmacd123 at gmail.com
- Date: Wed, 15 Nov 2006 06:43:43 -0500 (EST)
Hello all,
I am trying to find the numerical values of x[i] variables that
maximize the determinant of a Vandermonde matrix. For small N x N
matrices where N <= 7, Mathematica has no problem doing this
calculuation. Indeed:
VandermondMatrix[n_]:=Table[x[i]^j,{i,1,n},{j,1,n}]
vars[n_] := Table[x[i], {i, 1, n}]
cons[n_] := Table[-1 â?¤ x[i] â?¤ 1, {i, 1, n}]
NMaximize[{Det[VandermondMatrix[4], cons[4]}, vars[4], Method ->
{"NelderMead","RandomSeed"->100}]
gives:
{0.366453, {x[1] -> 1., x[2] -> -1., x[3] -> 0.654654, x[4] ->
-0.654654}}
I want to do this same calculation for larger N, say N=100. Clearly the
code I have above will fail because I am asking Mathematica to
calculate the determinant of a 100x100 matrix symbolically, which is
not feasible. Obviously the determinant must be evaluated numerically.
I have searched this group and found others with similar problems but
so far I have not been able to come up with a solution.
I think what I want to do is something like the following,
1. Define a function that tests if lists are numeric:
num[c_List]:=And @@ (NumericQ /@ c)
(I don't fully understand this line, I found it in a post in this
group)
2. Define a function f that takes as arguments the dimension of the
Matrix and a list of variables
f[n_?NumericQ, x_List?num]:=Det[VandermondMatrix[n]]
3. Call NMaximize on f
While the above does not work, I hope it is clear what I want to do:
have NMaximize fill in numerical values for the x[i] variables before
calling Det[].
Thank you in advance for any help/suggestions.
Scott MacDonald
PS: $Version returns 5.2 for Mac OS X