/** 2009.05.25. by M.Kemmler */ #include "vislearning/math/algebra_trlan/Eigenproblem.h" #include <iostream> #include <fstream> using namespace OBJREC; int main (int argc, char **argv) { #ifdef NICE_USELIB_TRLAN int N=10; int problem_size=N*N; int eval_nr=N; element e; std::vector<element> sparse_mat; std::vector<double> evals; std::vector< std::vector<double> > evecs; //build sparse matrix for(int i=0;i<N;i++){ for(int j=0;j<N;j++){ for(int k=i-5;k<i+5;k++){ for(int l=j-5;l<j+5;l++){ if(k<0||l<0||k>=N||l>=N) continue; e.x=i*N+j; e.y=k*N+l; e.val=1.0/(1.0+i*j+k*l); sparse_mat.push_back(e); e.y=i*N+j; e.x=k*N+l; sparse_mat.push_back(e); } } } } Eigenproblem eig; eig.solve(sparse_mat,problem_size,evals,evecs,eval_nr,+1); for(int i=0;i<eval_nr;i++){ std::cerr << "eigenvalue "<<i+1<<": \n\t"<<evals[i]<<std::endl; std::cerr << "corresponding eigenvector:"<<i+1<<": \n"; for(int j=0;j<problem_size;j++) std::cerr << evecs[i][j] << std::endl; } #endif }