Householder
Transcript of Householder
-
7/27/2019 Householder
1/11
IMA Journal o Numerical Analysis (2010) 30, 887897
doi:10.1093/imanum/drp018
Advance Access publication on August 21, 2009
Householder triangularization of a quasimatrix
LLOYD N. TREFETHEN
Oxord University Computing Laboratory, Wolson Building, Parks Road,
Oxord OX1 3QD, UK
[Received on 4 July 2008]
A standard algorithm or computing the QR actorization o a matrix A is Householder triangulariza-
tion. Here this idea is generalized to the situation in which A is a quasimatrix, that is, a matrix whose
columns are unctions defned on an interval [a, b]. Applications are mentioned to quasimatrix least
squares ftting, singular value decomposition and determination o ranks, norms and condition numbers,
and numerical illustrations are presented using the chebun system.
Keywords: Householder triangularization; QR actorization; chebun; quasimatrix; singular value decom-
position.
1. QR factorization and Householder triangularization
Let A be an m n matrix, where m n. A (reduced) QR actorization o A is a actorization
A = Q R,
x
x
x
x
xx
x
x
x
x
xx
x
x
x
x
xx
x
x
x
x
xx
q
q
q
q
qq
q
q
q
q
qq
q
q
q
q
qq
q
q
q
q
qq
r r
r
r
r
r
r
r
r
r, (1.1)
where Q is m n with orthonormal columns and R is upper triangular. Here and in subsequent equations
we illustrate our matrix operations by schematic pictures in which x denotes an arbitrary entry, r denotes
an entry o an upper triangular matrix, q denotes an entry o an orthonormal column and a blank denotes
a zero. QR actorization is a undamental step or all kinds o computations in numerical linear algebra,
including least squares, eigenvalues and singular value decomposition (SVD) (Bjorck, 1996; Golub &
Van Loan, 1996; Treethen & Bau, 1997; Stewart, 1998b).
One way to compute a QR actorization is by GramSchmidt or modifed GramSchmidt actoriza-
tion, a process otriangular orthogonalization. This is ast and straightorward, but the calculation may
break down with division by zero i A is rank defcient, that is, i its column space has dimension less
than n. Even i A has ull rank, the matrix Q computed in oating point arithmetic may be ar rom
orthogonal i A is ill conditioned, and this may have an adverse eect on the accuracy o subsequent
computations (Stewart, 1998b).
Householder (1958) introduced an alternative approach to (1.1) based on orthogonal triangulariza-
tion, which has become one o the standard tools o computational science. At the frst step a unitary
Email: [email protected]
c The author 2009. Published by Oxord University Press on behal o the Institute o Mathematics and its Applications. All rights reserved.
-
7/27/2019 Householder
2/11
888 L. N. TREFETHEN
matrix H1 is applied that introduces zeros below the diagonal in the frst column:
x
x
x
xx
x
x
x
x
xx
x
x
x
x
xx
x
x
x
x
xx
x
r rx
x
xx
x
rx
x
xx
x
rx
x
xx
x
.
The second step applies another unitary matrix H2 that leaves the frst row unchanged and introduces
zeros below the diagonal in the second column:
r rx
x
x
x
x
rx
x
x
x
x
rx
x
x
x
x
r r
r
r
rx
x
x
x
r
rx
x
x
x
.
Ater n steps, A has become upper triangular:
Hn H2H1A = T,
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
r r
r
r
r
r
r
r
r
r. (1.2)
(Im = n then the nth step is not needed. In these ormulas we may take Hn = I.) Multiplying on the
let by H = H1H2 . . . Hn now gives
A = H1H2 Hn T,
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
r r
r
r
r
r
r
r
r
r. (1.3)
We have written Hk instead o Hk since the two are the same because the Householder matrices Hk are
sel-adjoint as well as unitary. In act, Hk is a refection matrix that maps Cn to itsel by reection across
an (n 1)-dimensional hyperplane. This interpretation makes it clear that H2k = I, i.e., H1k = Hk.
Algebraically, Hk takes the orm
Hk = I 2vkvk, (1.4)
where vk is a unit vector, i.e., vk = 1. (Here is the conjugate transpose and is the 2 norm.)
To multiply a Householder reection by a vector or matrix, one always uses this orm rather than anexplicit entrywise representation, and that is why our schematic fgures show H and H as boxes with
no entries inside them.
For any unit vector vk (1.4) defnes a reection in the sense just defned. In the application to
QR actorization vk is chosen orthogonal to the unit vectors e1, . . . , ek1, i.e., with zeros in positions
1, . . . , k 1, and this choice ensures that the space spanned by these vectors lies in the hyperplane that
is invariant under Hk, which in turn ensures that zeros introduced at one step are not destroyed at later
steps.
-
7/27/2019 Householder
3/11
TRIANGULARIZATION OF A QUASIMATRIX 889
The actorization (1.3) is almost (1.1), but we are not quite there yet since the matrices H and T on
the right have dimensions m m and m n rather than m n and n n. To achieve the latter we need
to delete all but the frst n columns o H and all but the frst n rows o T, which will have no eect
on the product since the deleted rows are all zero. But i H = H1 Hn is never actually ormed as
a matrix then how do we delete some o its columns? We give an answer that will make the transitionto quasimatrices particularly convenient as well as clariying the treatment o matrices with complex
entries. We shall actor T in (1.2) into a product o three matrices: an m n rectangular identity E
whose columns are the unit vectors e1, . . . , en , an n n sign matrix S = diag(s1, . . . , sn ) whose
diagonal entries are real or complex numbers with |sj | = 1 and an n n upper triangular matrix R
whose diagonal entries are real and non-negative:
Hn H2H1A = E S R,
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
1
1
1
1
s
s
s
s
r r
r
r
r
r
r
r
r
r. (1.5)
This ormulation makes it clear that we can compute the m n matrix Q by applying Hn, . . . , H1successively to E S:
Q = H1 HnE S,
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
1
1
1
1
s
s
s
s. (1.6)
2. Generalization to quasimatrices
Our subject in this note is the generalization o these ideas to the situation in which A is not a matrix
but a quasimatrix defned on an interval [a, b]. By this we mean an n matrix (a more specifcterm would be [a, b] n matrix) whose columns are unctions o x [a, b]. Thus A represents a
linear map rom Cn to L2[a, b]. The term quasimatrix comes rom Stewart (1998a), and the same idea
was introduced with dierent terminology in de Boor (1991) and Treethen & Bau (1997, p. 52). We
assume that each column lies in L2[a, b], so that inner products make sense, which we shall write in
vector notation as vw. Then is now the L2 norm on [a, b]. For example, one might consider the
quasimatrix with columns given by the unctions 1,x ,x2, . . . , x n1 defned on [1, 1]. The columns o
Q in its QR actorization will be multiples o the Legendre polynomials P0, . . . , Pn1, and the frst ew
entries o R are r11 = 21/2, r12 = 0, r22 = (2/3)
1/2, r13 = (2/9)1/2, r23 = 0 and r33 = (8/45)
1/2.
I A is a quasimatrix then the QR actorization ormula (1.1) still makes sense. Now Q, like A, has
dimensions n, and it has orthonormal columns. In our schematic pictures a quasimatrix whose
columns are unctions is indicated by a rectangle containing vertical lines, with a q in the middle i theunctions are orthonormal:
A = Q R, q q q q
r r
r
r
r
r
r
r
r
r . (2.1)
-
7/27/2019 Householder
4/11
890 L. N. TREFETHEN
A GramSchmidt computation goes exactly as beore, with discrete inner products replaced by con-
tinuous ones, and is susceptible to the same difculties i A is ill conditioned or rank defcient.
GramSchmidt orthogonalization o quasimatrices was discussed in Battles & Treethen (2004) and
Battles (2006).
Another way to compute the QR decomposition oA would be to orm A
A, which is an nn matrix,and then fnd its Cholesky actorization AA = R R by standard methods. One then has Q = A R1 at
least i A has ull rank so that R is nonsingular. Like GramSchmidt orthogonalization, this method has
difculties i A is ill conditioned since it squares the condition number. On the other hand, it provides
an easy proo o a basic proposition: i the quasimatrix A has rankn and R has positive diagonal entries
then the QR actorization is unique.
Our aim is to compute (2.1) by the numerically more stable method o Householder reections,
which has apparently not been done beore. The very frst step introduces the crucial question: What
could it mean to map a unction onto another unction that is zero below the diagonal? The answer we
propose is that one should start rom a quasimatrix analogue o (1.5):
Hn H2H1A = E S R, e e e e
s
s
s
s
r r
r
r
r
r
r
r
r
r . (2.2)
Here E will be an n quasimatrix, fxed in advance, with orthonormal columns {ej }, and S will be
an n n sign matrix as beore. There is no need or E to have any particular relationship to A, such
as identical or similar column spaces. Just as in the matrix case, the Householder reectors connectingA and E can reorient the vector space in arbitrary ways. In practice, we take ej to be a multiple o
the ( j 1)th Legendre polynomial Pj 1(x), scaled to [a, b]. The Householder reector Hk will be a
sel-adjoint operator acting on L 2[a, b], chosen so as to map a certain unction to another unction o
equal norm in the space spanned by e1, . . . , ek. Again, the signs {sj } will be chosen so that the diagonal
entries o R are real and non-negative.
The frst step o Householder quasimatrix triangularization looks like this:
e
s
1
1
1
r r
1
r
1
r
1
.
A Householder reector H1 has been applied to A, changing all o its columns and, in particular, chang-
ing the frst column to r11s1e1, ollowed by making all o the remaining columns orthogonal to the frst.
-
7/27/2019 Householder
5/11
TRIANGULARIZATION OF A QUASIMATRIX 891
The second step looks like this:
e e e
s
s
1
1
r r
r
r
r
1
r
r
1
.
The reector H2 has now changed the columns 2 to n, converting column 2 to r12s1e1 + r22s2e2. The
process continues in this ashion until the orm (2.2) is achieved at step n.
The precise ormulas or these computations are as ollows or each step k rom 1 to n. The outer
product notation v v denotes the operator that maps a unction w to v(vw). We have
x = A( :, k), rkk = x , sk = sign(ekx ), y = skrkkek, v=
y x
y x , Hk = I 2v v
, (2.3)
A( :, j ) = Hk A( :, j ), rkj = ek A( :, j ), A(:, j ) = A( :, j ) rkj ek, k + 1 j n. (2.4)
(The unction sign(z) returns z/z i z = 0, and 1 i z = 0.) The operations o (2.4) subtract o
projections onto the current vector ek rom the remaining columns o A. The unction x in (2.3) is
accordingly orthogonal to e1, . . . , ek1, and this implies that the same property holds or v, which
ensures that the application o Hk leaves the frst k 1 columns o A unchanged.
Ater triangularization is completed, the computation o Q i it is needed goes as in (1.6):
Q = H1 Hn E S, q q q q e e e e
s
s
s
s . (2.5)
The notation H makes sense since H1 Hn is indeed the adjoint o H in L2[a, b].
We now present our algorithm written in MATLAB-style pseudocode. The input is an n quasi-
matrix A, and the output is an n orthonormal quasimatrix Q and an n n upper triangular matrix
R with non-negative diagonal entries satisying (2.1). One dierence rom the description above is that,
instead o accumulating the signs sk, we replace ek by skek at step k beore moving on to step k + 1.
Another is that an additional line has been added to improve orthogonality o the direction vector vk
to the previous target vectors e1, . . . , ek1. In exact arithmetic this would not be needed, but in oatingpoint arithmetic we have ound that it makes a signifcant dierence.
HOUSEHOLDER TRIANGULARIZATION OF AN n QUASIMATRIX A
E = n quasimatrix with orthonormal columns
V = storage allocation or n quasimatrix
R = storage allocation or n n matrix
-
7/27/2019 Householder
6/11
892 L. N. TREFETHEN
for k = 1 : n TRIANGULARIZATION
e = E( :, k) target or this reection
x = A( :, k) vector to be mapped to e
= x, R(k, k) =
= ex
if = 0, s = 1, else s = /, end compute real or complex sign
e = s e, E( :, k) = e modiy e to take account o sign
v= e x vector defning reection
v= v E( :, 1: k1)(E(:, 1 :k1)v) improve orthogonality
= v
if = 0, v= e, else v= v/, end I zero column, arbitrary reection
V( :, k) = v store Householder vector
J = (k+1: n) convenient abbreviation
A( :, J) = A( :, J) 2v(v
A( :, J)) apply reectionrT = eA( :, J)
R(k, J) = rT entries o row k o R
A( :, J) = A( :, J) erT
end
Q = E
for k = n : 1:1 FORMATION OF Q
v= V( :, k) retrieve Householder vector
J = (k: n) convenient abbreviation
Q( :, J) = Q(:, J) 2v(v Q( :, J)) apply reection
end
3. Least squares and pseudoinverse
The most basic application o QR actorization is to the solution o least squares problems (Bjorck,
1996). The techniques used here carry over rom matrices to quasimatrices with virtually no changes.
Given a quasimatrix A o ull rank and a unction , both defned on [a, b], we seek a vector c such
that
Ac = minimum. (3.1)
As frst worked out ully in Golub (1965), the solution can be obtained by solving the triangular system
o equations
R c = Q, (3.2)
with Q and R defned by (2.1). For this computation it is not necessary to orm Q. It is enough i the
Householder vectors vk are stored and then used to compute Q. One can also write (3.2) as c = A+,
-
7/27/2019 Householder
7/11
TRIANGULARIZATION OF A QUASIMATRIX 893
where A+ is the pseudoinverse o A defned by
A+ = R1 Q. (3.3)
The pseudoinverse is an n quasimatrix: it has n rows each o which is a unction on [a, b].
4. SVD and related computations
Once the QR actorization (2.1) o a quasimatrix A is known, it is an easy matter to compute its SVD
A = U V. Following Battles & Treethen (2004), we frst compute the SVD U1 V o R, a standard
problem since R is an ordinary matrix. We then set U = Q U1, giving
A = (Q U1) V = U V. (4.1)
Here U is n, is n n with diagonal orm and nonincreasing non-negative diagonal entries {j }
and V is n n and unitary. This also gives us an alternative and numerically more stable ormula or
the pseudoinverse:A+ = V 1U. (4.2)
As in the case o QR actorization, an alternative but less stable way to compute the SVD would be
to compute AA and then work rom the SVD o this n n matrix.
From the SVD o A we can extract its norm
A = 1 (4.3)
and its condition number
(A) = 1/n , (4.4)
where 1 and n denote the largest and smallest singular values, respectively. Geometrically, these
numbers have their usual interpretations as the lengths o the largest and smallest semiaxes o the
n-dimensional hyperellipsoid that is the image under A o the unit ball in Cn . The only dierence rom
the matrix case is that this hyperellipsoid, while still itsel fnite dimensional, is now a subset o the
infnite-dimensional space L2[a, b]. I some o the singular values are zero then A is rank defcient, and
its rank can be determined by counting the nonzero singular values. For a numerical rank determination
algorithm one introduces a tolerance defning an approximate notion o nonzero.
The method o computation o the SVD summarized in (4.1), making use o a preliminary QR ac-
torization, is in the matrix case sometimes known as the LawsonHansonChan SVD (Lawson &
Hanson, 1974; Chan, 1982; Treethen & Bau, 1997). For m n matrices it is recommended in cases
with m > 5n/3, so it seems natural that it should be appropriate in the quasimatrix case m = .On the other hand, it is also possible to devise a quasimatrix SVD algorithm o the GolubKahan
variety in which one proceeds directly to bidiagonal orm without a preliminary QR actorization
(Golub & Kahan, 1965). This would involve n quasimatrix Householder reections on the let, as we
have used already, interleaved with n 1 matrix Householder reections on the right. I G de-
notes the product o these matrix Householder reections then the orm that results rom GolubKahan
bidiagonalization is
H A = E BG, (4.5)
-
7/27/2019 Householder
8/11
894 L. N. TREFETHEN
where B is an n n upper bidiagonal matrix and G is an n n unitary matrix o dimension n n.
IU1 V
1 is an SVD o B then the SVD o A can be written as
A = (HE U1) (GV1). (4.6)
5. Further algorithmic details
5.1 Operation counts
For matrix QR decomposition the GramSchmidt algorithm requires approximately n2/2 inner products
and approximately n2/2 saxpys (scalar times vector plus vector). For m n this corresponds to a total
operation count o approximately 2mn 2 ops, where a op is an addition, subtraction, multiplication or
division. Householder triangularization costs the same i you only need R, but i Q must be ormed as
well then the operation counts double to approximately n2 inner products and approximately n2 saxpys.
In the quasimatrix case the GramSchmidt numbers are again approximately n2/2 inner products
and approximately n2/2 saxpys (scalar times vector plus vector). O course, in this context the mean-
ing o an inner product or a saxpy is dierent since unctions and quadrature are involved rather thandiscrete vectors. As or Householder triangularization o a quasimatrix, the second phase o orming
Q again requires approximately n2/2 inner products and approximately n2/2 saxpys. The triangulariza-
tion, however, is three times as expensive as beore at least with the extra line to improve orthogonality,
requiring approximately 3n2/2 inner products and approximately 3n2/2 saxpys. Thus, roughly speak-
ing, whereas Householder QR actorization is twice as expensive as GramSchmidt or matrices, it is
three or our times as expensive or quasimatrices. The reason is the extra orthogonalization operations
needed at two points in the algorithm, which or matrices are bypassed since they are implied by the
sparsity structure. We suspect it may be possible to improve these fgures.
5.2 Sparsity and Givens rotations
For matrix QR actorization an alternative to Householder reections is Givens rotations, which act on
two rows at a time rather than O(m) rows. Though more expensive when the matrix is dense, this
technique may have advantages when the matrix is sparse. Now, what might it mean to say that a
quasimatrix A is sparse? A possible answer would be that each column o A is orthogonal to most
columns o E, assuming that E is specifed in advance. Perhaps there may be problems where this
property arises and analogues o Givens operations would be useul, but we have not pursued this idea.
6. Chebfun examples
This work was motivated by the chebun sotware system, which makes it possible to compute with
quasimatrices in MATLAB (Driscoll et al., 2008). Chebun version 1 used GramSchmidt orthogo-
nalization, but beginning with Chebun version 2.0308 in July 2008 we have replaced GramSchmidt
orthogonalization by Householder triangularization in all QR actorizations. We fnish with a ew exam-
ples involving QR actorization and SVD computations in this system.
First, here is a computation o the norm and condition number o the set o unctions 1 ,x,x 2, . . . , x 5
over [1, 1]:
>> x = chebfun(x,[-1 1]);
-
7/27/2019 Householder
9/11
TRIANGULARIZATION OF A QUASIMATRIX 895
>> A = [1 x x.2 x.3 x.4 x.5];
>> norm(A)
ans = 1.532062889375341
>> cond(A)
ans = 43.247975704139819
I [1, 1] is changed to [0, 1] then the norm decreases to 1.272359956507724 and the condition number
increases to 3866.659881620226.
Similarly, suppose that we want to know the dimension o the space spanned by the unctions 1,
sin2(x ) and cos2(x ). The ollowing result comes out the same with either o the choices o domain ox
mentioned above:
>> rank([1 sin(x).2 cos(x).2])
> > a n s = 2
Here is an example involving piecewise smooth chebuns. The commands
x = chebfun(x); A = [];for j = 0:6
A = [A max(0,1-abs(3*(x+1)-j))];
end
construct an 7 quasimatrix on [1, 1] whose columns correspond to triangular hat unctions o
width 1/3 centred at 1, 2/3, 1/3, . . . , 1. Linear combinations o these unctions are piecewise
linear unctions on [1, 1] with breakpoints at 2/3, 1/3, . . . , 2/3. The ollowing code computes the
least squares ft by such piecewise linear unctions to (x ) = ex sin(6x ) and produces the plot shown
in Fig. 1:
f = exp(x).*sin(6*x);
c = A\f;
FIG . 1. Quasimatrix least squares ft by piecewise linear unctions computed with the \ command in the chebun system. The
residual norm minimized is defned by integrals, not point values. This quasimatrix has condition number 1 .974212678743394.
-
7/27/2019 Householder
10/11
896 L. N. TREFETHEN
ffit = A*c;
plot(f), hold on, plot(ffit,--)
Here is the norm o the residual:
>> norm(f-ffit)ans = 0.301000501411522
All o these computations are continuous, involving integrals, not just point values.
Finally, we recall that the advantage o Householder triangularization over GramSchmidt orthog-
onalization is that it delivers an orthonormal quasimatrix Q, even when A is rank defcient. We can
veriy this numerically by considering the highly rank-defcient quasimatrix consisting o two copies o
A placed beside each other:
>> rank(A)
a n s = 7
>> AA = [A A];
>> rank(AA)a n s = 7
>> [Q,R] = qr(AA);
>> cond(Q)
>> ans = 1.000000000000002
>> norm(AA-Q*R)
ans = 8.400509803176009e-16
The chebun system is reely available, together with users guides and sample codes and other
materials, at http://www.comlab.ox.ac.uk/chebun.
7. Discussion
What is the essential algorithmic dierence between actorizations o matrices and quasimatrices? Per-
haps the main answer has to do with the notion o zero entries and associated matters o structures and
sparsity. With ordinary matrices, the problem has already been ormulated in the basis e1, e2, . . . : to
fnd out i a vector has zero component in a direction ej we need only check i a certain number is zero.
With quasimatrices, there is no basis given a priori. We must choose one to work with in practicehere
we have taken suitably scaled Legendre polynomialsbut the check o whether a unction has zero
component in a direction ej now requires the computation o an inner product.
This note is a contribution to a larger project: to reconstruct the subject o numerical linear algebra
in the context o unctions rather than vectors. The project has an intellectual side, as it orces us to
conront undamental questions o the deeper meanings o the algorithms that we know and trust so
well. It also has a practical side, a long-term enterprise indeed, which is to enable computational scienceand engineering to work directly with unctions, with details o discretizations hidden away just as
details o oating point arithmetic are today hidden away when we work with numbers.
Acknowledgements
This article was mostly written during the 17th Householder Symposium, held in June 2008 in Zeuthen,
Germany. I am grateul or advice rom several o the participants at the meeting and others including
-
7/27/2019 Householder
11/11
TRIANGULARIZATION OF A QUASIMATRIX 897
Nick Higham, Jorg Liesen, Sasha Malyshev, Chris Paige, Beresord Parlett, Pete Stewart and Gil Strang.
My chebun teammates Toby Driscoll, Ricardo Pachon and Rodrigo Platte have also been very helpul.
Funding
EPSRC (EP/E045847/1).
REFERENCES
BATTLES, Z. (2006) Numerical linear algebra or continuous unctions. D.Phil. Thesis, Oxord University Com-
puting Laboratory, Oxord.
BATTLES, Z . & TREFETHEN , L. N. (2004) An extension o MATLAB to continuous unctions and operators.
SIAM J. Sci. Comput., 25, 17431770.
BJORCK, A (1996) Numerical Methods or Least Squares Problems. Philadelphia, PA: SIAM.
CHA N, T. F. (1982) An improved algorithm or computing the singular value decomposition. ACM Trans. Math.
Sotw., 8, 7283.
DE BOO R, C. (1991) An alternative approach to (the teaching o) rank, basis, and dimension. Linear Algebra Appl.,
146, 221229.DRISCOLL, T. A., PACH ON , R. , PLATTE, R . & TREFETHEN , L. N. (2008) Chebun Version 2. Available at
http://www.comlab.ox.ac.uk/chebun/.
GOLUB, G. H. (1965) Numerical methods or solving least squares problems. Numer. Math., 7, 206216.
GOLUB, G. H. & KAHAN, W. (1965) Calculating the singular values and pseudoinverse o a matrix. SIAM J.
Numer. Anal., 2, 205224.
GOLUB, G. H. & VAN LOAN , C. (1996) Matrix Computations, 3rd edn. Baltimore, MD: Johns Hopkins University
Press.
HOUSEHOLDER , A. S. (1958) Unitary triangularization o a nonsymmetric matrix. J. Assoc. Comput. Mach., 5,
339342.
LAWSON, C. L. & H ANSON, R. J. (1974) Solving Least Squares Problems. Englewood Clis, NJ: Prentice Hall.
STEWART, G. W. (1998a) Aternotes Goes to Graduate School. Philadelphia, PA: SIAM.
STEWART, G. W. (1998b) Matrix Algorithms. Volume I: Basic Decompositions. Philadelphia, PA: SIAM.
TREFETHEN , L. N. & BAU III, D. (1997) Numerical Linear Algebra. Philadelphia, PA: SIAM.