For a final project in my linear algebra intro, I have been tasked with writing a script that finds the largest and the second largest eigenvectors of a symmetric matrix in Matlab. For the best possible grade, it must include a function as well. So far, I have been able to get my script to verify that a matrix is symmetric, and am feeling a little bit stuck. I need some guidance for finishing this assignment, as my Matlab experience is extremely limited.

Here is what I have so far:

prompt = 'Please input a symmetric matrix A.'
A = input(prompt);
if (A == A'),
    disp('A is not a symmetric matrix.  Please input a symmetric matrix.')

Note that the script hopefully verifies that A is symmetric, and I have the eigenvalues for A, but I am not sure where to go from here to $1$. find the eigenvectors, $2$. get the two largest eigenvectors, and $3$. write a useful function to fit into the script. I would be very grateful for any help given. Thanks!

  • 3
    $\begingroup$ This may be better suited for stackoverflow.com/questions/tagged/matlab $\endgroup$ Dec 2, 2013 at 22:14
  • $\begingroup$ I'll x-post it there. I appreciate it. $\endgroup$ Dec 2, 2013 at 22:17
  • $\begingroup$ Yeah, they'll probably know the specific syntax. If there's not a syntax for getting eigenvectors, you can look at the nullspace of $A - \lambda I$, where $\lambda$ is an eigenvalue. That'll give you the eigenvectors. The other two steps are just MATLAB syntax somehow. $\endgroup$ Dec 2, 2013 at 22:21
  • 1
    $\begingroup$ To reinforce(?) @HenrySwanson 's Comment, if the Question is about an approach (Matlab: full eigensolution followed by picking out the two largest eigenvalues) already decided upon, it would certainly be ripe for SO. A mathematical (but computational) question would be how to best approximate the two top eigenvalues without getting all of them (such questions are also handled at SciComp.SE). $\endgroup$
    – hardmath
    Dec 2, 2013 at 22:27
  • 1
    $\begingroup$ It's the $\large\tt Power\ Method$ algorithm or $\large\tt Von\ Mises$ one which yields the eigenvalue of largest magnitude. Once you get this, you can "remove" that eigenvalue and repeat the algorithm for the next one. See ---> en.wikipedia.org/wiki/Power_iteration $\endgroup$ Dec 2, 2013 at 23:04

1 Answer 1


$\newcommand{\+}{^{\dagger}}% \newcommand{\angles}[1]{\left\langle #1 \right\rangle}% \newcommand{\braces}[1]{\left\lbrace #1 \right\rbrace}% \newcommand{\bracks}[1]{\left\lbrack #1 \right\rbrack}% \newcommand{\ceil}[1]{\,\left\lceil #1 \right\rceil\,}% \newcommand{\dd}{{\rm d}}% \newcommand{\ds}[1]{\displaystyle{#1}}% \newcommand{\equalby}[1]{{#1 \atop {= \atop \vphantom{\huge A}}}}% \newcommand{\expo}[1]{\,{\rm e}^{#1}\,}% \newcommand{\fermi}{\,{\rm f}}% \newcommand{\floor}[1]{\,\left\lfloor #1 \right\rfloor\,}% \newcommand{\half}{{1 \over 2}}% \newcommand{\ic}{{\rm i}}% \newcommand{\iff}{\Longleftrightarrow} \newcommand{\imp}{\Longrightarrow}% \newcommand{\isdiv}{\,\left.\right\vert\,}% \newcommand{\ket}[1]{\left\vert #1\right\rangle}% \newcommand{\ol}[1]{\overline{#1}}% \newcommand{\pars}[1]{\left( #1 \right)}% \newcommand{\partiald}[3][]{\frac{\partial^{#1} #2}{\partial #3^{#1}}} \newcommand{\pp}{{\cal P}}% \newcommand{\root}[2][]{\,\sqrt[#1]{\,#2\,}\,}% \newcommand{\sech}{\,{\rm sech}}% \newcommand{\sgn}{\,{\rm sgn}}% \newcommand{\totald}[3][]{\frac{{\rm d}^{#1} #2}{{\rm d} #3^{#1}}} \newcommand{\ul}[1]{\underline{#1}}% \newcommand{\verts}[1]{\left\vert\, #1 \,\right\vert}$ Given the $n$-iterated vector $\Psi_{n}$, we get the net one $\Psi_{n + 1}$ with $$ \Psi_{n + 1} = {\varphi_{n} \over \lambda_{n}}\,,\quad \mbox{where}\quad \varphi_{n} \equiv A\Psi_{n} $$ $\lambda_{n}$ is the component of $\varphi_{n}$ with the largest magnitude. After $N$ ( "many" ) iterations, we get the eigenvalue as $\lambda_{N}$. This is the eigenvalue with the largest magnitude. Next, we normalize the eigenvector: $\ds{\varphi_{N} \to {\varphi_{N} \over \varphi_{N}^{\sf T}\,\varphi_{N}}}$. "Reduce" the matrix as $$ \tilde{A} \equiv A - \lambda_{N}\ \varphi_{N}\varphi_{N}^{\sf T} $$ Repeat the procedure with $\tilde{A}$ and so on.

See this link.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .