code
MATH466/46
2
Project 4. Due in class on Wed, Mar
1
8, 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
Understand more on FFT: https://arxiv.org/pdf/1805.05533v2
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
?−? if (1 − ?) ≤ ? < 0
.
2. T. Chan’s Preconditioner: T. Chan’s preconditioner ?? with ?? (?, ?) = ??−? is defined through minimizing
the difference between?? and?? over all circulat matrices. The diagonals ?? of?? are given by (taking ?−? = 0)
?? =
{
(?−?)??+???−?
? if 0 ≤ ? ≤ ? − 1
??+? if (1 − ?) ≤ ? < 0
.
3. R. Chan’s Preconditioner: R. Chan’s preconditioner ?? with ?? (?, ?) = ??−? is defined to make uses of all
the entries of ?? . The diagonals ?? of ?? are given by (taking ?−? = 0)
?? =
{
?? + ??−? if 0 ≤ ? ≤ ? − 1
?−? if (1 − ?) ≤ ? < 0
.
1
https://ee.stanford.edu/~gray/toeplitz
https://arxiv.org/pdf/1805.05533v2
(1) Use our PCG (mypcgfun.m) to solve the SPD Toeplitz systems ??? = ? with ? = ???? (?, 1) and
?? (?, ?) =
{
?2/3 if ? == ?
2(−1) ?−?
( ?−?)2 if ? ≠ ?
.
Test with no preconditioner and the above circulant preconditioners, and compare their iteration numbers
and CPU times for different dimensions n=1e3*(1:5) (set max 10000 iterations and tolerance 10−7).
You can start with construction of all related full matrices for smaller ?, but eventually all matrix-vector
products should be replaced by only FFT based codes for better efficiency and lower memory costs.
(2) Circulant preconditioners are attrative since they can be solved efficiently (? (? ln?) operations) via FFT. As we
aready know, a tridiagonal matrix can also be solved very efficiently (? (?) operations) via Thomas algorithm.
Run your codes again with the following tridiagonal preconditioner, which works well for the given ?? :
1 Pn=gallerygallerygallery(‘tridiag’,n,-1,2,-1);
For benchmarking your own codes, below are the iteration numbers based on my implementation:
1 n None Strang T. Chan R. Chan Tridiag
2 1000 746 8 28 7 14
3 2000 1522 8 35 7 14
4 3000 2301 8 41 7 14
5 4000 3081 8 47 7 14
6 5000 3862 8 50 7 14
(3) Solve the same system using the Gaussian elimination method (GEsolver.m), what you observe in terms
of CPU times growth, in comparison with the above PCG solvers?
2
function x=GEsolver(a,b)
%Gaussian elimination code based our Textbook p.78-80
n=size(a,1);
for j = 1 : n-1
if abs(a(j,j))
for i = j+1 : n
mult = a(i,j)/a(j,j);
for k = j+1:n
a(i,k) = a(i,k) – mult*a(j,k);
end
b(i) = b(i) – mult*b(j);
end
end
%back-ward substitution
x=zeros(n,1);
for i = n : -1 : 1
for j = i+1 : n
b(i) = b(i) – a(i,j)*x(j);
end
x(i) = b(i)/a(i,i);
end
function [x,flag,relres,iter]=mypcgfun(Afun,b,tol,maxit,Mfun)
%Textbook page 133
%Mfun(r) solves M*z=r (i.e., compute z=M\r=M^{-1}r)
if(nargin<5)
Mfun=@(r) r; %no preconditioner
end
n=length(b);
x=zeros(n,1); %initial guess
r=b-Afun(x); r0=norm(r);
d=Mfun(r); z=d;
flag=1;relres=[];
for iter=1:maxit
Ad=Afun(d);
alf=r’*z/(d’*Ad);
x=x+alf*d;
r_old=r; r=r_old-alf*Ad;
relres=[relres;norm(r)/r0]; %store relative residuals
if(norm(r)/r0)<=tol
flag=0;break;
end
z_old=z; z=Mfun(r);
beta=r’*z/(r_old’*z_old);
d=z+beta*d;
end
We provide professional writing services to help you score straight A’s by submitting custom written assignments that mirror your guidelines.
Get result-oriented writing and never worry about grades anymore. We follow the highest quality standards to make sure that you get perfect assignments.
Our writers have experience in dealing with papers of every educational level. You can surely rely on the expertise of our qualified professionals.
Your deadline is our threshold for success and we take it very seriously. We make sure you receive your papers before your predefined time.
Someone from our customer support team is always here to respond to your questions. So, hit us up if you have got any ambiguity or concern.
Sit back and relax while we help you out with writing your papers. We have an ultimate policy for keeping your personal and order-related details a secret.
We assure you that your document will be thoroughly checked for plagiarism and grammatical errors as we use highly authentic and licit sources.
Still reluctant about placing an order? Our 100% Moneyback Guarantee backs you up on rare occasions where you aren’t satisfied with the writing.
You don’t have to wait for an update for hours; you can track the progress of your order any time you want. We share the status after each step.
Although you can leverage our expertise for any writing task, we have a knack for creating flawless papers for the following document types.
Although you can leverage our expertise for any writing task, we have a knack for creating flawless papers for the following document types.
From brainstorming your paper's outline to perfecting its grammar, we perform every step carefully to make your paper worthy of A grade.
Hire your preferred writer anytime. Simply specify if you want your preferred expert to write your paper and we’ll make that happen.
Get an elaborate and authentic grammar check report with your work to have the grammar goodness sealed in your document.
You can purchase this feature if you want our writers to sum up your paper in the form of a concise and well-articulated summary.
You don’t have to worry about plagiarism anymore. Get a plagiarism report to certify the uniqueness of your work.
Join us for the best experience while seeking writing assistance in your college life. A good grade is all you need to boost up your academic excellence and we are all about it.
We create perfect papers according to the guidelines.
We seamlessly edit out errors from your papers.
We thoroughly read your final draft to identify errors.
Work with ultimate peace of mind because we ensure that your academic work is our responsibility and your grades are a top concern for us!
Dedication. Quality. Commitment. Punctuality
Here is what we have achieved so far. These numbers are evidence that we go the extra mile to make your college journey successful.
We have the most intuitive and minimalistic process so that you can easily place an order. Just follow a few steps to unlock success.
We understand your guidelines first before delivering any writing service. You can discuss your writing needs and we will have them evaluated by our dedicated team.
We write your papers in a standardized way. We complete your work in such a way that it turns out to be a perfect description of your guidelines.
We promise you excellent grades and academic excellence that you always longed for. Our writers stay in touch with you via email.