lizfcm/homeworks/hw-7.org

77 lines
2.9 KiB
Org Mode
Raw Normal View History

#+TITLE: Homework 7
#+AUTHOR: Elizabeth Hunt
#+LATEX_HEADER: \notindent \notag \usepackage{amsmath} \usepackage[a4paper,margin=1in,portrait]{geometry}
#+LATEX: \setlength\parindent{0pt}
#+OPTIONS: toc:nil
* Question One
See ~UTEST(eigen, dominant_eigenvalue)~ in ~test/eigen.t.c~ and the entry
~Eigen-Adjacent -> dominant_eigenvalue~ in the LIZFCM API documentation.
* Question Two
See ~UTEST(eigen, leslie_matrix_dominant_eigenvalue)~ in ~test/eigen.t.c~
and the entry ~Eigen-Adjacent -> leslie_matrix~ in the LIZFCM API
documentation.
* Question Three
See ~UTEST(eigen, least_dominant_eigenvalue)~ in ~test/eigen.t.c~ which
finds the least dominant eigenvalue on the matrix:
\begin{bmatrix}
2 & 2 & 4 \\
1 & 4 & 7 \\
0 & 2 & 6
\end{bmatrix}
which has eigenvalues: $5 + \sqrt{17}, 2, 5 - \sqrt{17}$ and should thus produce $5 - \sqrt{17}$.
See also the entry ~Eigen-Adjacent -> least_dominant_eigenvalue~ in the LIZFCM API
documentation.
* Question Four
See ~UTEST(eigen, shifted_eigenvalue)~ in ~test/eigen.t.c~ which
finds the least dominant eigenvalue on the matrix:
\begin{bmatrix}
2 & 2 & 4 \\
1 & 4 & 7 \\
0 & 2 & 6
\end{bmatrix}
which has eigenvalues: $5 + \sqrt{17}, 2, 5 - \sqrt{17}$ and should thus produce $2.0$.
With the initial guess: $[0.5, 1.0, 0.75]$.
See also the entry ~Eigen-Adjacent -> shift_inverse_power_eigenvalue~ in the LIZFCM API
documentation.
2023-11-27 16:45:48 -05:00
* Question Five
See ~UTEST(eigen, partition_find_eigenvalues)~ in ~test/eigen.t.c~ which
finds the eigenvalues in a partition of 10 on the matrix:
\begin{bmatrix}
2 & 2 & 4 \\
1 & 4 & 7 \\
0 & 2 & 6
\end{bmatrix}
which has eigenvalues: $5 + \sqrt{17}, 2, 5 - \sqrt{17}$, and should produce all three from
the partitions when given the guesses $[0.5, 1.0, 0.75]$ from the questions above.
See also the entry ~Eigen-Adjacent -> partition_find_eigenvalues~ in the LIZFCM API
documentation.
* Question Six
Consider we have the results of two methods developed in this homework: ~least_dominant_eigenvalue~, and ~dominant_eigenvalue~
into ~lambda_0~, ~lambda_n~, respectively. Also assume that we have the method implemented as we've introduced,
~shift_inverse_power_eigenvalue~.
2023-11-27 16:45:48 -05:00
Then, we begin at the midpoint of ~lambda_0~ and ~lambda_n~, and compute the
~new_lambda = shift_inverse_power_eigenvalue~
with a shift at the midpoint, and some given initial guess.
1. If the result is equal (or within some tolerance) to ~lambda_n~ then the closest eigenvalue to the midpoint
is still the dominant eigenvalue, and thus the next most dominant will be on the left. Set ~lambda_n~
to the midpoint and reiterate.
2. If the result is greater or equal to ~lambda_0~ we know an eigenvalue of greater or equal magnitude
exists on the right. So, we set ~lambda_0~ to this eigenvalue associated with the midpoint, and
re-iterate.
3. Continue re-iterating until we hit some given maximum number of iterations. Finally we will return
~new_lambda~.