MATH466/462 Project 4. Due in class on Wed, Mar 18, 2020 Instruction: your project report should include necessary mathematical justification, description, and details of your algorithms/conclusions. Your MATLAB codes and generated outputs may be attached in the end of the report. Make sure you addressed all the questions in each problem. Both the report and codes will be graded. Please submit a printed hard-copy. Problem A (20 pts): Circulant Preconditioners for Toeplitz Systems Toeplitz matrix arises in many different applications. Its matrix-vector product can be computed efficiently via fast Fourier transform (FFT). Many circulant preconditioners have been proposed for solving Toeplitz systems. In this project, we will compare several circulant preconditioners for solving various Toeplitz systems. Task 1: Study Toeplitz matrix, Circulant matrix, and the use of FFT (read our Textbook Chap 10.1). Read Chapters 1 and 3: https://ee.stanford.edu/~gray/toeplitz.pdf Understand more on FFT: https://arxiv.org/pdf/1805.05533v2.pdf Task 2: play and understand the following codes: For any Circulant matrix πΆ , the matrix-vector products π₯ = πΆβ1π can also be computed via FFT:
1 n=10; C=gallerygallerygallery('circul',(1:n));%Construct a Circulant matrix using (1:n) as 1st row 2 b=ones(n,1); x2=C\b; %Direct solve: O(n^3) operations 3 ev=fftfftfft(C(:,1));%the eigenvalues of C by FFT of its first column 4 x1= ifftifftifft(fftfftfft(b)./ev); %Solve C\b using FFT: O(n log n) operations 5 normnormnorm(x1-x2,inf) %should be zero
By embedding a Toeplitz matrix π into a Circulant matrix, the product ππ£ can also be computed via FFT:
1 n=10;t=(n:-1:1); T=toeplitztoeplitztoeplitz(t,t'); %construct a full symmetric Toeplitz matrix: T'=T 2 v=randrandrand(n,1);y2=T*v;%compute y2=T*v using direct multiplication: O(n^2) operations 3 gev = fftfftfft([t 0 t(n:-1:2)].');%the eigenvalues of the embeding larger Circulant matrix 4 y = ifftifftifft(fftfftfft([v;zeroszeroszeros(n,1)]).*gev);%compute y1=T*v using FFT: only O(n log n) operations 5 y1 = y(1:n); %take the first half of the long vector 6 normnormnorm(y1-y2,inf) %should be close to zero
Task 3: understand the construction of 3 circulant preconditioners. Let ππ be an π-by-π Toeplitz matrix with ππ (π, π) = π‘πβπ , where {π‘π }πβ1π=1βπ are given diagonals. We can define at least 3 different circulant preconditioners as follows:
1. Strangβs Preconditioner: Strangβs preconditioner ππ with ππ (π, π) = π πβπ is defined to be the circulant ma- trix obtained by copying the central diagonals of ππ and bringing them around to complete the circulant requirement. Assume π = 2π is even, the diagonals π π of ππ are given by
π π =
 π‘π if 0 β€ π β€ π β 1 0 if π =π π‘πβπ ifπ < π β€ π β 1 π βπ