Ex 11
Ex 11
Ex 11
Figure 11.17. Application of the trace estimate Tkest in the FTNL stopping rule for
Landweber’s method applied to the overdetermined test problem from Example 11.11. We used
10 different random vectors w in (11.33), and the corresponding 10 intersections between k 22
(thick red line) and η 2 m Tkest (thin blue lines) are shown by the red circles. The black dot
shows the intersection with the exact η 2 m Tk .
Example 11.13. Continuing from the previous example, Figure 11.17 illustrates the use
of the trace estimate Tkest in the FTNL stopping rule. To show the variability of the stop-
ping rule we used 10 different random vectors w, leading to 10 different realizations of
η 2 m Tkest . Their intersections with k 22 are shown by the red circles, correspond-
ing to stopping the iterations at
k 3100, 3112, 3421, 3512, 3722, 3875, 4117, 4133, 5553, 7000.
k 2
The black dot marks the intersection of 2 with the exact η 2 m Tk , corresponding
to iteration k 3846.
Exercises
For some of the exercises below, recall that we define the relative noise level as
ρ e 2 b 2 , b Ax .
Given rho and a noise-free right-hand side bex, we can generate such a noise vector e
and the corresponding noisy data b by means of the following code:
>> e = randn(size(bex));
>> e = rho*norm(bex)*e/norm(e);
>> b = bex + e;
240 Chapter 11. Algebraic Iterative Reconstruction Methods
ek }x xpkq }2 , k 1, 2, . . . , 20 . (11.34)
ek 1 C ek , k 1, 2, . . . , 19 , (11.35)
logpeK {ek q
C exp K k
. (11.37)
Do this for Kaczmarz’s and Cimmino’s methods in the two previous exercises,
e.g., using the results that you computed for 800 and 1600 iterations. What are the
two constants for the two methods? Which one is preferable?
11.7. When the System Is Inconsistent
We return to the 3 3 test problem from Exercise 10.8. Run enough iterations of
Kaczmarz’s and Cimmino’s methods to ensure that the methods have converged.
Do these methods converge to the exact solution in (10.31), to the minimum-norm
solution x0LS , or perhaps to something else?
11.8. Consistent and Inconsistent Overdetermined Problems
Let us try to experimentally verify the following convergence behavior for the case
m ¡ n r:
For consistent systems b P RangepAq, both Kaczmarz and Cimmino con-
verge to the least-squares solution xLS , which is identical to the weighted
least-squares solution xLS,M .
Exercises 243
Then create the perturbed right-hand side btilde, solve the corresponding in-
consistent system with both Kaczmarz and Cimmino, and compare with the least-
squares solution xLS as well as the weighted least-squares solution xLS,M defined
in (9.34). Do the two methods converge to xLS , xLS,M , or something else?
11.9. The Advantage of Constraints
We know from the underlying physics of the problem that the attenuation coef-
ficients we wish to reconstruct—the elements of the vector x—are nonnegative.
And sometimes we also know an upper bound on the elements of this vector.
Hence it often makes a lot of sense to include box constraints in the reconstruction
process.
In this exercise we return to the test problem from Exercise 11.3, but here we
impose the box constraints
These constraints are specified in the function kaczmarz by means of the options
input as follows:
>> kmax = 20;
>> options.lbound = 0;
>> options.ubound = 1;
>> X = kaczmarz(A,b,1:kmax,[ ],options);
244 Chapter 11. Algebraic Iterative Reconstruction Methods
Plot the 20 reconstructions as images; you should see that they are considerably
better than those from Exercise 11.4. What is the improvement in the error for the
last iteration with and without constraints?
11.10. Convergence Analysis for the Constrained Algorithm
Do the constrained iterates converge faster? To answer this question, we will
repeat Exercise 11.4 for the constrained algorithm, still looking at iterations 50,
100, 200, 400, 800, and 1600. Does the constrained Kaczmarz method converge
slower or faster than the unconstrained method?
11.11. Comparison with FBP
In this exercise we compare the constrained Kaczmarz reconstruction for k
1600 iterations from the previous exercise with the FBP solution computed by
means of fbp(A,b,theta)—this is a function from AIR Tools II that is similar
to the MATLAB iradon function, except that it takes the system matrix as input.
When displaying the FBP solution, note that some elements are outside the interval
[0,1], so you may want to “chop” them or set the figure color axis to this interval
by means of caxis([0,1]). Which reconstruction is better?
>> N = 64;
>> theta = 4:4:180;
>> [A,bex,xex] = paralleltomo(N,theta);
Run kmax 800 iterations of Kaczmarz’s method with these relative noise levels:
ρ 0, 0.0015, 0.0020, 0.0025 . (11.41)
Plot the error history, i.e., the relative error }xxpkq }2 {}x}2 , as a function of k, for
all four noise levels. You should see the characteristic semiconvergence behavior
for all ρ 0. At what iteration number k do we reach the smallest error for
each ρ?
Note: You will get a different answer each time you run your code, because the
results depend on the actual realization of the noise.
Exercises 245
Repeat Exercise 11.12, still with kmax 800 and now with the box constraints.
Discuss the error histories, and compare the results with those from Exercise 11.12.
11.15. Surprising Semiconvergence?
In this exercise we also use box constraints. We use a parallel-beam test prob-
lem with a special phantom with binary pixel values, generated by means of the
following code:
>> N = 64;
>> theta = 4:4:180;
>> A = paralleltomo(N,theta);
>> Xex = phantomgallery(’binary’,N);
>> xex = Xex(:);
>> bex = A*xex;
Use the relative noise level ρ 0.002; you only need to perform kmax 100
Kaczmarz iterations. Do you see any substantial growth in the noise error? Can
you explain this behavior?
11.16. SVD Analysis of Cimmino’s Method
The goals of this exercise are twofold: to illustrate how to perform SVD analysis
of an iterative method, and to demonstrate how to do so for the basic Cimmino
method with a relaxation parameter λ:
Note that we compute the square root of the diagonal matrix M simply by com-
puting the square roots of its diagonal elements. Then it follows that the SVD
analysis of Cimmino’s method follows that of Landweber’s method, but with A
and b replaced by Ap and pb. In particular, we should use the SVD of A p for the
analysis.
Theory question: Assuming a zero starting vector xp0q 0, write down the ex-
pression for the kth iterate of Cimmino’s method in terms of p
b and the SVD of
p
A:
pU
A pΣ pVpT. (11.46)
Repeat for the iteration error and the noise error.
Now generate a parallel-beam test problem, and the corresponding Z = M 1{2 :
Exercises 247
>> N = 64;
>> theta = 2:2:180;
>> [A,bex] = paralleltomo(N,theta);
>> [A,bex] = purge_rows(A,bex,3);
>> m = size(A,1);
>> d = sqrt(m*sum(A.^2,2));
>> Z = spdiags(1./d(:),0,sparse(m,m)); % Sparse diagonal matrix.
The statement [A,bex] = purge_rows(A,bex,3) removes all zero rows, as
well as rows with fewer than four nonzero elements; this is to ensure a numer-
ically stable computation of M and M 1{2 . To compute the SVD of the sparse
matrix Z*A use the statement
>> [U,S,V] = svd(full(Z*A),0);
The second input argument 0 tells the MATLAB svd function to compute the
economy-size version of the SVD in which
Save the SVD for later use in Exercise 11.18: save SavedSVD U S V.
Now add noise with relative noise level ρ 0.02, and run Cimmino’s method on
2
the noisy problem with relaxation parameter λ 1{A p 1{Sp1, 1q2 and with
kmax 5000 iterations. The relaxation parameter is specified via the options
2
but it is not obvious how to compute this trace for more general unconstrained
methods. Here we specifically consider Cimmino’s method, and our task is to
derive an expression for the trace Tk for this method.
The key point is to find an expression for the matrix A# k corresponding to Cim-
mino’s method, such that the Cimmino iterates can be written as xpkq A# k b.
According to Eqs. (11.44) and (11.45) in the previous exercise, Cimmino’s method
is identical to Landweber’s method applied to the matrix Ap and the right-hand side
b̂ from (11.45). Thus, we can write the Cimmino iterates xpkq as
with
pi
ϕ
pkq 1 p1 λ σp 2 qk , i 1, 2, . . . , n . (11.49)
i
Our goal is to derive an expression for the trace of the influence matrix A A# k , but
expressed in terms of the singular values σpi of the matrix A.p First, show that
A#
k Vp Φp pkq Σp 1 Up T M 1{2 . (11.50)
A A#
k M 1{2 Up Φp pkq Up T M 1{2 pM 1{2 Up q Φp pkq pM 1{2 Up q1 .
(11.51)
The multiplication from the left and from the right by M 1{2 Vp and its inverse
is a similarity transform which leaves the eigenvalues unchanged. Using the fact
that the trace of a matrix is the sum of its eigenvalues, show that
¸
n
pkq
Tk tracepA A#k q pi .
ϕ (11.52)
i 1