Subsection 10.5.1 Additional homework
ΒΆHomework 10.5.1.1.
You may want to do a new "git pull" to update directory Assignments .
In Assignments/Week10/matlab you will find the files
Givens_rotation.m: A function that computes a Givens' rotation from a \(2 \times 1 \) vectorx.Francis_Step.m: A function that performs a Francis Implicit QR Step with a tridiagonal matrix \(T \) (stored as the diagonal and subdiagonal ofT).Test_Francis_Step.m: A very rudimentary script that performs a few calls to the functionFrancis_Step. Notice that our criteria for the routine being correct is that the matrix retains the correct eigenvalues.
With this,
Investigate the convergence of the \((m,m-1) \) element of matrix
T1.Write a function
function T = Spectral_Decomposition_Lambda( T )
That returns \(\Lambda \) such that \(T = Q \Lambda Q^T \) is the Spectral Decomposition of \(T \text{.}\) The input matrix \(T\) is a tridiagonal matrix where only the lower triangular part of the matrix is stored in the diagonal and first subdiagonal of arrayT. The diagonal matrix \(\Lambda \) is returned inT. The upper triangular part of the array should not change values. You are encouraged to call the functionFrancis_Stepfrom the functionSpectral_Decomposition_Lambda. Obviously, you need to incorporate deflation in your implementation. How to handle the final \(2 \times 2 \) matrix is an interesting question... (You may use the matlab functioneigfor this.)
