 Perl-Sensitive Sunglasses PerlMonks

### Re: Help with Matrix math!

by randyk (Parson)
 on Dec 16, 2007 at 21:33 UTC ( #657319=note: print w/replies, xml ) Need Help??

in reply to Help with Matrix math!

If you set aside for a moment the constraint on the vector x, then the problem of maximizing xiDijxj (a sum over repeated indices is implied) translates, upon taking the derivative with respect to xi, into the equation Dijxj = 0. This is a special form of the eigenvalue equation for the matrix D, with the eigenvalue being 0. In order for non-trivial solutions, the matrix D cannot have an inverse, so it's determinant must vanish. Finding the eigenvectors can be done with PDL; see Mastering Algorithms with Perl for a discussion. The Math::Cephes::Matrix module can also do this for real symmetric matrices. Generally, the components of the eigenvectors found in this way are not completely determined; by convention, the normalization xixi = 1 is imposed.

Update: The preceding needs to be augmented by a test on the Hessian of the matrix to determine what type of critical point is present.

Replies are listed 'Best First'.
Re^2: Help with Matrix math!
by pc88mxer (Vicar) on Dec 17, 2007 at 05:04 UTC

In this case you have to take into account the constraint on the vector x. The quadratic form xiDijxj is unbounded on Rn, so a derivative test (even with an Hessian test) is only going to find local extreme points, and there is no guarantee that those points will lie on the surface of interest (i.e. x'x = 1.) The difference is that for a point to be a local maximum when x is constrained, the derivative only needs to be zero when evaluated in the tangent space of the constraining surface at that point, not zero in every direction.

The standard way to include the surface constraint is to use Lagrangian multipliers.

I was thinking of the problem differently - find the extremal points of xDx, which leads to the eigenvalue equation Dx = 0. This equation doesn't determine xx completely, so one is free to impose, for example, xx = 1 as a normalization condition. But you're right that if xx = 1 is intended as a true constraint, then a method like Lagrange multipliers should be used.

Create A New User
Node Status?
node history
Node Type: note [id://657319]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2020-10-22 00:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
My favourite web site is:

Results (225 votes). Check out past polls.

Notices?