This project has moved and is read-only. For the latest updates, please go here.

basic Matrix problem: eigenvalue results

Apr 24, 2009 at 2:37 PM

How to get an pointed eigenvector?

Have tried this way:

Dim mtrx As New Meta.Numerics.Matrices.SymmetricMatrix(3)

mtrx.Item(0, 0) = "1"
mtrx.Item(1, 0) = "0.64"
mtrx.Item(2, 0) = "0.89"

mtrx.Item(0, 1) = "0.64"
mtrx.Item(1, 1) = "1"
mtrx.Item(2, 1) = "0.97"

mtrx.Item(0, 2) = "0.89"
mtrx.Item(1, 2) = "0.97"
mtrx.Item(2, 3) = "1"

Dim Lambda(3) As Double

'mtrx.Eigenvalues()

Lambda(0) = mtrx.Eigenvalues.GetValue(0)

'Lambda(0) = mtrx.Eigenvalues.ElementAt(0)
'Lambda(1) = mtrx.Eigenvalues.ElementAt(1)
'Lambda(2) = mtrx.Eigenvalues.ElementAt(2)


MsgBox(Lambda(0) & vbLf & Lambda(1) & vbLf & Lambda(2))

Apr 24, 2009 at 5:51 PM
Sorry, I don't undertsand; what makes an eigenvector "pointed"? From your code, it looks like you are not dealing with eigenvectors at all, but rather constructing a an array of eigenvalues. Since SymmetricMatrix.Eigenvalues() already returns an array, you can just write lambda = mtrx.Eigenvalues() without having to access-and-copy each element.

By the way, you also don't need to set the elements of your symmetric matrix that are already determined by the transpose element. For example, if you set mtrx(2,0) = 0.89, then mtrx(0,2) is already determined.