(* Macierz dysktretnego laplasjanu na n-kacie *)
n=30;
A=-IdentityMatrix[n];
Do[A[[i,i+1]]=1/2;A[[i+1,i]]=1/2,{i,1,n-1}]
A[[1,n]]=1/2;A[[n,1]]=1/2;

MatrixForm[A]

(* lista wektorow wlasnych (numerycznie) *)
alpha=Reverse[N[Eigenvectors[A]]];

(* lista wartosci wlasnych *)
lambda=Reverse[N[Eigenvalues[A]]]

(* "wykresy" *)
Do[Print["wartosc wlasna = ",lambda[[k]]];Print[ListLinePlot[Table[{i,alpha[[k,i]]},{i,1,n}],Filling->Axis]],{k,1,n}]

(* sprawdzanie ortogonalnosci wektorow wlasnych *)
MatrixForm[Table[Round[(alpha[[i]]).(alpha[[j]]),1],{i,1,n},{j,1,n}]]