Re: Help with minimization of Eigenvalues
- To: mathgroup at smc.vnet.net
- Subject: [mg87779] Re: Help with minimization of Eigenvalues
- From: "Jean-Marc Gulliet" <jeanmarc.gulliet at gmail.com>
- Date: Wed, 16 Apr 2008 22:32:30 -0400 (EDT)
- References: <fu4ll6$sfq$1@smc.vnet.net> <480602EA.8010102@gmail.com>
Chimico wrote: > I am trying to minimize a particular eigenvalue of a generalized > eigenvalue problem that depends on a few parameters. I have the > following problem: > > Suppose we have two matrices s and m like these (the real matrices are > much more complicated) > > m = {{a, b}, {b, -a + 1}} > > s = {{1, 0}, {0, 3a}} > > If I define the function Eig > > Eig[a_, b_] := Eigenvalues[{m, s}]//First > > And use it with the FindMinimum function it does not work. > Infact just calling > > Eig[1,2] gives the error > > Eigenvalues::gfargs: > Generalized Eigenvalues > arguments accept only matrices with machine real > and complex elements. More... > > Even inserting Evaluate[] into the Eigenvalues function does not work. > What am I doing wrong? Your function Eig[a, b] does *not* use or pass its arguments to the matrices m and s. (In other words, the values a and b on the LHS are not used on the RHS: the matrices still hold the symbols a and b.) The following is one possible way to modify the value of a and b within the matrices m and s. In[29]:= m = {{a, b}, {b, -a + 1}}; s = {{1, 0}, {0, 3 a}}; Eig[p_, q_] := Eigenvalues[N@{m, s} /. a -> p /. b -> q] // First Eig[1, 2] Out[32]= 1.75831 Moreover, though I am not sure to have fully understood what you tried to achieved, you might be interested in using the function CharacteristicPolynomial[] to compute the eigenvalues in a symbolic form and use these results to solve or minimize them. In[46]:= CharacteristicPolynomial[{m, s}, x] Out[46]= a - a^2 - b^2 - x + a x - 3 a^2 x + 3 a x^2 In[51]:= Reduce[CharacteristicPolynomial[{m, s}, x] == 0] Out[51]= (x == -(1/3) && a == 1/3 (-1 + 3 b^2)) || (1 + 3 x != 0 && (a == ( 1 + x + 3 x^2 - Sqrt[-4 (b^2 + x) (1 + 3 x) + (-1 - x - 3 x^2)^2])/( 2 (1 + 3 x)) || a == (1 + x + 3 x^2 + Sqrt[-4 (b^2 + x) (1 + 3 x) + (-1 - x - 3 x^2)^2])/( 2 (1 + 3 x)))) Regards -- Jean-Marc