Finding Eigenvalue and Eigenvector of a symmetric n*n matrix in Matlab - matlab

I need to find the eigen value decomposition of the symmetric matrix in Matlab. But I do not want to use the matlab inbuilt function eig Can anyone tell me efficient algortihm. I have already implemented the power Iteration Algorithm but it is not suitable for my project because it gives the best value in eigenvalue and eigen vector. Looking forward for suggestions.
PS: I am using eigenvalue decomposition several time in my algorithm...

Related

MATLAB sparse matrix GEVP

Is there a way/function/code to find the eigenvectors and eigenvalues of a sparse matrix (possibly a large matrix as well) in MATLAB? The Generalized Eigenvalue problem needs to be solved and using eig results in errors due to singularity.

MATLAB: Eig algorithm and alternatives

I am simulating a physical system, where I need to calculate the eigenvalues and vectors of a very large (~10000x10000) matrix.
So far I have used the in-built Eig algorithm in MATLAB but it is very slow for large matrices. Is there other algorithms in MATLAB that would do a better job or can I somehow improve the performance of Eig? Specifically it turns out that I only need the first ~100 eigenvectors of the matrix starting from the smallest numerical eigenvalue. Is there a way to get the algorithm to calculate only the first N eigenvectors and eigenvalues to save computation time? Of course this would only work if the eigenvectors come out sorted but they seem to do so, because of the symmetry of the Matrix I am using.
Your matrix has mostly zeros, so you should make it a sparse matrix. You'll then be able to use EIGS to calculate a smaller number of eigenvalues and eigenvectors.
http://www.mathworks.com/help/matlab/ref/eigs.html

How to find only the eigen values without finding eigen vectors in MATLAB?

I have a large matrix for which I want to find only the eigen values. I know I can use charpoly(A) and find roots, but even that is very slow (takes about a minute). Is there a fast way to find only the eigen values for the matrix.
Furthermore, my matrix happens to be a symmetric PSD covariance matrix.

How to speed up c++ eigen decomposition

I use the MATLAB to do eigenvalue decomposition, and the dimension of data is about 10000, so the covariance matrix is 10000*10000. When I use the eig() function in MATLAB, it is very slow. Is there any way to speed up the eigenvalue decomposition.
I use the eigenvalue decomposition to do principal component analysis(PCA), so I just use the top K eigenvalues and eigenvectors. There is no need to get all the eigenvalues and eigenvectors. I have tried to use the Intel-MKL to do eigen decomposition, but when I use the mex interface, there are some errors. I posted it in the link https://stackoverflow.com/questions/19220271/how-to-use-intel-mkl-for-speed-my-own-matlab-mex-cpp-applications
Please give me some advice, Thanks.
use eigs if your data is sparse, or if you are interested in the first k values. For example,
eigs(A,k) returns the k largest magnitude eigenvalues. Note that eigs will be faster only for the first few eigen-values, and will be slower for k > some value (probably 5...)

Finding eigenvalues in MATLAB without using eig function

I'm trying to find eigenvalues of a matrix without using eig function (my homework says so). In Matlab, I define the matrix and identity matrix. But I cannot set up this equation:
A - x*I
x here is lambda, A is the matrix that I should find eigenvalues of and I is the identity matrix. If you know how to find eigenvalues, you supposed to understand this. How can I go through?
you can get some inspiration here: http://en.wikipedia.org/wiki/Eigenvalue_algorithm
if the matrix is fixed size, you can easily do the det(A-lambda*eye)=0 solving by yourself and use that.
With power iteration you can already find the dominant eigenvalue, and I knew there was an extension to this algorithm to also find the other eigenvalues, but cannot recall how that works :(