0
$\begingroup$

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'),
    eig(A)
else
    disp('A is not a symmetric matrix.  Please input a symmetric matrix.')
end

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!

$\endgroup$
  • 3
    $\begingroup$ This may be better suited for stackoverflow.com/questions/tagged/matlab $\endgroup$ – Henry Swanson Dec 2 '13 at 22:14
  • $\begingroup$ I'll x-post it there. I appreciate it. $\endgroup$ – Heath Huffman Dec 2 '13 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$ – Henry Swanson Dec 2 '13 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 '13 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$ – Felix Marin Dec 2 '13 at 23:04
2
$\begingroup$

$\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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.