
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))


Coordinator
Apr 24, 2009 at 4: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 accessandcopy 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.

