[lisplab-devel] Eigenvalues
José Santos
jsmpereira at gmail.com
Fri Mar 15 09:59:41 UTC 2013
Hi,
After trying out GSLL, Clem, also FemLisp, Lisplab managed to get me
the functionality I needed with the least trouble.
I'm trying to get the connectivity of a graph (second smallest eigen value)
from eigenvalues.
Given the fully connected 4x4 adjacency matrix:
#md(( 0.000 1.000 1.000 1.000 )
( 1.000 0.000 1.000 1.000 )
( 1.000 1.000 0.000 1.000 )
( 1.000 1.000 1.000 0.000 ))
I compute the diagonal matrix of the vector sum of the adjacency matrix and
then
subtract the adjacency matrix from it to get the laplacian matrix.
I'm unable to call (lisplab:eigenvalues) on that matrix, despite being a
#md matrix.
I can see that the function calls for LISPLAB::MATRIX-FOREIGN-DGE. However
other functions
that call for the same type seem to work when called with #md, namely FFT1.
As a workaround, I'm using this call to get the eigenvalues:
(lisplab::dgeev (laplacian-matrix *adj-matrix* *diag-matrix*) nil nil) and
I get:
(
#md(( 4.000 )
(-1.1102d-16)
( 4.000 )
( 4.000 ))
NIL NIL)
Is this appropriate?
I'm curious however about different results I get from Matlab.
I get the same results up until the call to
>> eig(diag(sum(A)) - A)
which gives me
ans =
0.0000
4.0000
4.0000
4.0000
Any comment I can get on this would be awsome. Am I going about this right?
What might I be missing?
Sorry about the lengthy email.
Thanks!
José Santos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/lisplab-devel/attachments/20130315/137a6d66/attachment.html>
More information about the lisplab-devel
mailing list