Created
March 15, 2013 14:56
-
-
Save jsmpereira/5170420 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Am I missing something?