MATH 6640-100 (10736), Spring 2026

Numerical Analysis: Linear Algebra

Syllabus

Schedule

Many things will be filled in and moved around as we go.

Week 1 (January 12)

Week 2 (January 19)

Week 3 (January 26)

Week 4 (February 2)

Week 5 (February 9)

Week 6 (February 16)

February 16

Information:
  • Today we first assign topics for presentations (next week) from the paper Matrix Perturbation Analysis of Methods for Extracting Singular Values from Approximate Singular Subspaces:
    1. page 2616 line 27 'The general idea...' to line 43 '...for an implementation.'
    2. page 2618 line 22 'For any orthomormal...' to page 2619 line 2 '...of \(\tilde{A}\).'
    3. page 2619 line 2 'We have...' to line 18 '...in (3.4)).'
    4. page 2620 line 3 'Theorem 3.2 in...' to line 23 '...then \(\tau_i \ll 1\).'
    5. page 2620 line 24 'In the following,...' to page 2621 line 3 '...singular values of \(H\).'
    6. page 2621 line 3 'However, we still...' to line 18 '...\(=:H_p+F_p.\)'
    7. page 2621 line 19 'We can now apply...' to end of page 2621.
    8. page 2622 top to end of statement of Theorem 4.1.
  • Then we will work on some topics related to the paper Matrix Perturbation Analysis of Methods for Extracting Singular Values from Approximate Singular Subspaces: the Moore-Penrose pseudoinverse, least-squares problems, and how they relate to the SVD.
  • For a linear system \(Ax=b\), the residual is defined by \(r=b-Ax\). A least-squares solution is an \(x\) such that \(\|r\|_2\) is minimized. One goal today is to show that \(x = A^+b\) is a least-squares solution, where \(A^+\) is the (Moore-Penrose) pseudoinverse.
Homework:
  • For each of the following topics, make a markdown cell with a brief (e.g. 1-3 sentences and a formula) summary and links/citations to the sources you used. Use \(\LaTeX\) encoding for any formulas.
  • Use numpy.linalg.pinv to compute the pseudoinverse and run tests to show it satisfies the definition.
  • Use the SVD of \(A\) produced by svd() to construct the pseudoinverse of \(A\) and compare with the one produced by pinv().
  • Prove that \(x\) is a least-squares solution to \(Ax=b\) if and only if it is a least-squares solution to \((UA)x=(Ub)\) for any conformable unitary matrix \(U\).
  • Prove that \(x\) is a least-squares solution to \(Ax=b\) if and only if \(y=U^*x\) is a least-squares solution to \((AU)y=b\) for any conformable unitary matrix \(U\).
  • Prove that if \(A\) is a diagonal (not necessarily square) matrix then \(x = A^+b\) is a least-squares solution to \(Ax=b\).
  • Using the above and the definition of the pseudoinverse in terms of the SVD, show that \(x = A^+b\) is a least-squares solution to \(Ax=b\) for any \(A\).
  • Run numerical tests of the claim: \(x\) is a least-squares solution to \(Ax=b\) if and only if \(A^*r=0\). Test for both square and rectangular \(A\) and with some \(A\) that have a zero row or a zero column.
  • Generate some random \(A \in \mathbb{C}^{m\times m}\), get their QR decomposition using numpy.linalg.qr, and show that the results satisfy the definition of a QR-decomposition.

Tuesday February 17, 9am: homework week5 due

February 18

Information:
Today we will work toward numerical verification of the paper Matrix Perturbation Analysis of Methods for Extracting Singular Values from Approximate Singular Subspaces.
Homework:
Implement Algorithm 6.1 from the paper in python. Run a test showing that when \(m=n=r=4\), \(l=0\), and \(A\), \(\tilde{V}\), and \(\tilde{U}\) are generated randomly, the algorithm recovers the singular values of \(A\).

February 20

Information:
Today is a catch-up day.

Week 7 (February 23)

February 23

Information:
Today we start presentations from the paper Matrix Perturbation Analysis of Methods for Extracting Singular Values from Approximate Singular Subspaces.

Tuesday February 24, 9am: homework week6 due

February 25

Information:
  • Today we start ramp-up project 2, based on the paper Matrix Perturbation Analysis of Methods for Extracting Singular Values from Approximate Singular Subspaces. The goal of project 2 is to practice the same skills as project 1, and then do small versions of the core content of checking the paper's theoretical and numerical claims.
  • This project notebook is due next Thursday.
  • Writing quality counts. Reread the Good Problems handouts on Flow and Introductions and Conclusions, and then read the handouts on Logic and Graphs.
Ramp-up project 2:
  • Create a jupyter notebook for your project. In it, fill in (at least) the following:
    • A title for your project (not the paper title).
    • Your name, the course, the semester, and the year.
    • Full bibliographic information for the paper.
    • An Introduction section with one paragraph summarizing the paper, one paragraph describing the theory check you will perform, and one paragraph describing the numerical check you will perform.
    • A section stating in full Corollaries 4.2 and 5.1, and then explaining (proving) how they follow from Theorem 4.1. (This is a small version of what you would check if this was your final project.) Include definitions for things mentioned, statements of any lemmas used in the proof, etc. (You may use screenshots from the paper.) Divide into subsections as appropriate.
    • A section including Figure 2a and the numerical test it presents, and then checking the results with your own implementation. (This is a small version of what you would check if this was your final project.) Quote the relevant material from the paper, rather than just referring to the paper. (You may use screenshots from the paper.) Divide into subsections as appropriate.
    • A Conclusions section.

February 27

Information:
Today we get started on our third paper.
Homework:
Get our third paper A Complex-Projected Rayleigh Quotient Iteration for Targeting Interior Eigenvalues by Nils Friess, Alexander D. Gilbert, and Robert Scheichl. SIAM J. Matrix Anal. Appl. 46-1 (2025), pp. 626-647, doi:10.1137/23M1622155 (Ohio University proxy link). Make a list of topics it relies on that you do not know enough about.

Week 8 (March 2)

Spring Break

Week 9 (March 16)

Week 10 (March 23)

Week 11 (March 30)

Week 12 (April 5)

Week 13 (April 13)

Week 14 (April 20)

Week 15 (April 27)


Martin J. Mohlenkamp

Last modified: Tue Feb 17 18:37:31 UTC 2026