• No se han encontrado resultados

16604398

N/A
N/A
Protected

Academic year: 2020

Share "16604398"

Copied!
10
0
0

Texto completo

(1)

doi:10.1093/imanum/dri027

Advance Access publication on July 20, 2005

Updating and downdating an upper trapezoidal

sparse orthogonal factorization†

´

ANGELSANTOS-PALOMO‡ANDPABLOGUERRERO-GARC´IA§ Departamento de Matem´atica Aplicada, University of M´alaga, Complejo Tecnol´ogico, Campus Teatinos, 29071 M´alaga, Spain

[Received on 20 August 2001; revised on 22 February 2005]

We describe how to update and downdate an upper trapezoidal sparse orthogonal factorization, namely the sparse QR factorization of Ak, where Ak is a ‘tall and thin’ full column rank matrix formed with a subset of the columns of a fixed matrix A. In order to do this, we have adapted Saunders’ techniques of the early 1970s for square matrices, to rectangular matrices (with fewer columns than rows) by using the static data structure of George and Heath of the early 1980s but allowing row downdating on it. An implicitly determined column permutation allows us to dispense with computing a new ordering after each update/downdate; it fits well into the LINPACKdowndating algorithm and ensures that the updated trapezoidal factor will remain sparse. We give all the necessary formulae even if the orthogonal factor is not available, and we comment on our implementation using the sparse toolbox of MATLAB5.

Keywords: sparse linear algebra; orthogonalization; static structure; factorization update and downdate.

1. Motivation and related work

In certain non-simplex active-set methods (also currently known as basis-deficiency-allowing simplex variations) for linear programming we need to solve a sequence of sparse compatible systems of the form:

Akx=b and Aky=c or

Ak c

d =

O −1

,

where b and c are iteration-dependent vectors, and x, y and d are unknown vectors. Furthermore, the matrix Ak ∈ Rn×mk is a ‘tall and thin’ iteration-dependent full column rank matrix with mk n and rank(Ak)=mk. Such a matrix Akis a subset of the columns of a fixed matrix A∈Rn×m with m n and rank(A)=n, and Ak+1is obtained by appending/deleting columns to/from Akwith rank(Ak+1)=

rank(Ak)±1; when exchanging, deletion is done before appending and rank(Ak+1)=rank(Ak). In this paper we describe how to update and downdate the sparse orthogonal QR factorization of Ak. Saunders (1972) used it in his implementation of the simplex method for linear programming (hence with mk =n for all k), and what we do here is to adapt Saunders’ methodology to the case mk < n (in fact, his proposal to do an exchange was to delete before adding, and he proclaimed the numerical stability of this exchange in spite of the rank reduction after the deletion). We use the data structure of George and Heath (George & Heath, 1980; Heath, 1982), but we allow row downdating on such a static structure. As we work on top of a static structure, we do not have to deal with intricate data structures

Abridged version of a talk presented at the 19th Biennial Conference on Numerical Analysis, Dundee, Scotland, June 2001,

and at the 5th FoCM Workshop on Numerical Linear Algebra, Santander, Spain, July 2005.

Email: [email protected]

§Corresponding Author. Email: [email protected]

c

(2)

as in dynamic approaches like Davis & Hager (1999) and Edlund (2002). Furthermore, small non-zeros which actually would be structural zeros (Barlow, 1990) can be avoided. As pointed out by a referee, the algorithms proposed depend on knowing the structure of all possible updates (i.e. the structure of the larger fixed matrix A) in advance, and thus the algorithms are not applicable to situations where potential updates are not known in advance. The interested reader can find a more detailed survey of related work in Santos & Guerrero (2003, Section 1).

As we shall see in the following sections, the key point is the management of an implicitly de-fined column permutation in order to dispense with determining a new ordering in each step; we shall also show that it fits well into the LINPACKdowndating algorithm and this ensures that the updated trapezoidal factor will remain sparse. We also provide mathematically rigorous descriptions of both the updating and downdating processes, which are usually avoided when dealing with static structures in sparse settings, as well as illustrative examples.

2. Initial factorization and sparse issues

Let us consider the sparse QR factorization of a ‘short and fat’ matrix Ak, e.g. with mk =3 rows and n = 7 columns. When we compute this factorization with the MATLAB 5 qr‘black-box’ we would obtain, say, the Wilkinson diagram

qr

⎛ ⎜ ⎝ ⎡ ⎢ ⎣

X X X X X X X

X X X X X X X

X X X X X X X

⎤ ⎥ ⎦ ⎞ ⎟ ⎠

Ak

=

⎡ ⎢ ⎣

X X X

X X X

X X X

⎤ ⎥ ⎦

Qk

·

⎡ ⎢ ⎣

X X X X X X X

O O X X X X X

O O O O O X X

⎤ ⎥ ⎦.

RkΠk

Note that RkΠkis a staircase-shaped, permuted upper trapezoidal matrix, where the permutationΠk is implicitly defined by the staircase shape of the structure; in this case

Πk=[e1,e3,e6,e2,e4,e5,e7] or Πk=[e1,e4,e2,e5,e6,e3,e7],

where ei ∈R7is the i -th column of the identity matrix I7. It could even be the case that

qr

⎛ ⎜ ⎝ ⎡ ⎢ ⎣

X X X X X X X

X X X X X X X

X X X X X X X

⎤ ⎥ ⎦ ⎞ ⎟ ⎠

Ak

=

⎡ ⎢ ⎣

X X X

X X X

X X X

⎤ ⎥ ⎦

Qk

·

⎡ ⎢ ⎣

O O X X X X X

O O O X X X X

O O O O O O X

⎤ ⎥ ⎦,

RkΠk

Πk=[e3,e4,e7,e1,e2,e5,e6] or Πk =[e4,e5,e1,e2,e6,e7,e3].

In a more general framework, let Ak ∈Rn×mk be sparse and rank(Ak)=mk n. We know that there exists an implicitly defined permutationΠkof the columns of Ak such that

AkΠk=QkRk =. Qk[Ri Rd], Qk,Ri ∈Rmk×mk and Rd ∈Rmk×(nmk),

with Rk upper trapezoidal, Ri upper triangular and non-singular and Qk orthogonal. (We have used Ri and Rd rather than a more standard notation R1 and R2 to avoid subindex clash problems with

(3)

maintain. Note also that a reordering of the columns of Akhas no impact on Rk, for

SkAkΠk=(SkQk)Rk, thus only a reordering of the rows of Qkwould take place.

This factorization is computable with the black-boxqrin MATLAB 5 (but not every Ak can be factorized in this way with the sparse sqr package of Matstoms (1994), because it is intended for matrices with more rows than columns). However, this factorization is not updatable withqrupdate

in MATLAB5 because it only works with dense matrices. Also, there are no efficient ways yet to update this QR factorization using multifrontal techniques.

Enlarging Rkbelow with nmkzero rows we obtain the sparse Cholesky factor ofΠkAkAkΠk0 (see Higham, 2002, Theorem 10.9, p. 201). Computing this factor from the sparse QR given above makes it unnecessary to form the product AkAk and the complete pivoting that we would have to perform if a dense semidefinite Cholesky method on AkAk were used; in other words, ourΠk is defined only for sparsity purposes rather than for numerical purposes. This is not expected to cause numerical difficulties. It is well known that when Akis a subset of the columns of a fixed matrix A∈Rn×mwith mn and rank(A)=n, a static structure (i.e. a priori set up) can be used to try to minimize fill in the triangular factor. The sparse structure of AkAk is a subset of that of A A (George & Heath, 1980), hence an a priori permutation P (not related toΠk) of the rows of A can be chosen to sparsify the Cholesky factor R of P A AP. Moreover, when a row is deleted, there must be space in the static structure, as hyperbolic rotations modify the structure in the same way as Givens rotations. Additional remarks on the suitability of the different row orderings that can be obtained with MATLAB 5 can be found in Santos & Guerrero (2003, Section 2).

The column order of A does not affect the density of the Cholesky factor R of P A AP, but does affect the amount of intermediate work to compute it. When we have to refactorize Ak (or to calculate an initial factorization of A0), an a priori ordering of the columns of A can be beneficial (Bj¨orck, 1996, pp. 244–245).

Since access to A and R is done by columns, they are stored by a simple compressed column scheme that allows us to take advantage of the locality of reference (Stewart, 1998, p. 110). As pointed out by Davis & Hager (1999, Section 7.1), in MATLABevery change in the structure of a sparse matrix would entail a new copy of the entire matrix. Hence, when MATLABannihilates an element of a sparse matrix, the operating system does not deallocate the memory locations previously allocated for that element. Thus, rather than overlaying a data structure on the triangular factor (as Vempati et al., 1991, did), we mark with an special value (e.g. NaN in MATLAB) the elements not used in the structure previously set up, and we convert them into zeros just before selecting the submatrix to operate with. Thus, sparse numerical linear algebra primitives of the sparse toolbox (Gilbert et al., 1992) can be used, but we have to recover the structure after the algebraic operation involved, reinsertingNaNs in those elements where fill-in did not occur yet; this overhead could be avoided with low-level programming.

3. Updating the factorization

When we add the p-th constraint to the active set, we have to add a new column to the right of Ak, i.e. we have to add a new row ap to the bottom of Ak:

Ak+1=

Ak ap

(4)

Then, given the QR factorization of AkΠk, we want to determine the new QR factorization after the add-ition of ap; this problem is known as updating the QR factorization.

Since Ak =QkRkΠk, we can write

Ak+1=

Ak ap

=

Qk O

O 1

RkΠk ap

,

so we have

Qk O

O 1

Ak ap

=

RkΠk ap

=

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

X X X X X X X

O O X X X X X

O O O O O X X

X X X X X X X

⎤ ⎥ ⎥ ⎥ ⎥

⎦. (3.1)

Let fj be the index of the column ofΠkwhere ej appears; e.g. regarding the first Wilkinson diagram of Section 2,

f1=1, f3=2, f6=3 and f2=4>3=. mk;

or, with respect to the second Wilkinson diagram of Section 2,

f3=1, f4=2, f7=3 and f1=4>3=. mk.

For each j1 : n, we proceed to annihilate the j -th element (if non-zero) of the updated version of ap; such an annihilation is done by a Givens rotation G(fj,mk+1)∈R(mk+1)×(mk+1)(Golub & Van Loan, 1996, Section 5.1.8) only if fj mk, since otherwise the factorization is complete. Hence, after mk rotations (in the worst case) we have

G=. G(fn,mk+1)· · ·G(f2,mk+1)G(f1,mk+1),

FG

RkΠk ap

.

=Rk+1Πk+1, (3.2)

whereΠk+1is a permutation matrix such that Rk+1is trapezoidal with non-zero diagonal elements, and

Fis a suitable row permutation for Rk+1Πk+1to be staircase shaped. Then, from (3.1) and (3.2),

Ak+1Πk+1=

Qk O

O 1

G F FG

RkΠk ap

Πk+1=. Qk+1Rk+1.

It is well known that in practical algorithms we can dispense with the orthogonal factor, since Rk can be updated even if Qk is not available. Furthermore, as we shall illustrate in the following example, the static sparsity structure itself implicitly defines both the updated column permutationΠk+1and the

suitable row permutation F; in fact, the actual Givens rotation used to annihilate the j -th element is G(j,n+1)∈R(n+1)×(n+1). This ensures that the updated trapezoidal factor will remain sparse. 3.1 Example of updating

Let us consider the matrix whose structure is given in George et al. (1988, p. 104). In MATLAB,

(5)

returns an upper bound structure for R:

A=

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ × × × ×

1 −1

× × ×

1 1

1 2

−1 −1

× × ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

, R=

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ × × × × × × × × × × × × × × ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ .

Note that we have considered Rinstead of R because of locality of reference issues (MATLABstores the sparse matrices by columns). We have chosen to proceed row-wise in the mathematical description of the updating due to familiarity reasons; however, for the example to be as real as possible, we shall work column-wise, postmultiplying by Givens matrices rather than premultiplying by their transposes.

We have rotated rows a6and a7into R and now we are going to rotate a3(i.e. k=2, Ak =[a6a7]

and Ak+1=[a6a7a3], where aiis column i of A):

[R|a3]= ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ 1 1 ×

× −1 −1

× −1 × ×

2 × × × × ×

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

and [Π2R2|a3]= ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

1 0 1

0 0 0

0 −1 −1

0 −1 0

0 0 0

2 0 0

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ,

where the working vector is located to the right of the vertical bar. Postmultiplying by

1/√2−1/√2 1/√2 1/√2

and by √

6/3−1/√3 1/√3 √6/3

, first columns 1 and 3 and then columns 2 and 3, the elements of the working

vector are annihilated downhill using Givens rotations: ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ √

2 0 0

0 0 0

−1/√2 −1 −1/√2

0 −1 0

0 0 0

2 0 −√2

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

and Π3R3 =

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ √

2 0 0

0 0 0

−1/√2 −√6/2 0 0 −√6/3 1/√3

0 0 0

2 −√6/3 −2/√3 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ .

Note that the fill is restricted to the working vector and the column with respect to which we are rotating. The column just created has appeared in the last position (hence F = I ), but it does not happen in general. Although we have shown here only the columns of Rthat occur inΠkRk, we actually work within the whole structure to avoid the explicit computation of the permutations Πk and F , so the

(6)

mathematical application of F amounts to a simple copy of the working vector to the right position within the sparsity structure. Finally, the addition of the 5th constraint entails no rotations:

Π 4 R4=

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

2 0 0 0

0 0 0 0

−1/√2 −√6/2 0 0 0 −√6/3 1/√3 0

0 0 0 1

2 −√6/3 −2/√3 1 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

,

thus obtaining the permuted trapezoidal matrix for A4 = [a6 a7 a3 a5] or any column permutation

A4S4.

4. Downdating the factorization

When we delete the q-th constraint from the active set, we can assume that it is the first row of Ak:

Ak =

aq Ak+1

,

because if it were not the first row we only have to exchange beforehand the corresponding row and the first row in Ak. Then, given the QR factorization of AkΠk, we want to determine the new QR factorization after aqis deleted; this problem is known as downdating the QR factorization.

It can be shown (see Guerrero, 2002, Section 3.2.4) that the presence of the permutation matrix does not modify in essence the classical downdating algorithm, although it turns out not to be suitable to be combined with the static structure unless a separate working vector is introduced. As was pointed out by one of the referees, the computations of the classical downdating method could be reorganized to rotate into the bottom row (more precisely, into the row corresponding to the bottom-most non-zero element of the vector q ∈Rmk defined below), with that row being the working vector. What we are (equivalently)

going to do here is to reorganize the computation to rotate into a new top row, with that row being the working vector, to illustrate the suitability of the proposal to be used in a LINPACKsetting.

In a sparse setting it is usual to dispense with Qk. Let us show how the implicitly determined column permutation fits well into the LINPACKalgorithm (Saunders, 1972) to downdate the Cholesky factor, because the systemΠkRkq =aqis also compatible with only one solution, and solving it we obtain q; furthermore, it does not destroy the predicted static structure. First we enlarge the matrix RkΠkwith a suitable numberδnto be determined below:

¯ Rk=.

δn O q RkΠk

=

⎡ ⎢ ⎢ ⎢ ⎢ ⎣

X O O O O O O O

X X X X X X X X

X O O X X X X X

X O O O O O X X

⎤ ⎥ ⎥ ⎥ ⎥ ⎦.

Now if we apply toR¯kseveral Givens rotations G(1,j)∈R(mk+1)×(mk+1)with jmk+1:−1: 2 to annihilate the non-zeros of q, we obtain

FGR¯k=. FG(1,2)· · ·G(1,mk)G(1,mk+1)R¯k=.

¯

Rk+1

O

(7)

whereR¯k+1is the enlarged matrix corresponding to the new factor with Rk+1trapezoidal with non-zero

diagonal elements:

¯ Rk+1=.

α αvΠk+1 O Rk+1Πk+1

(α= ±1),

and Fis the permutation needed to move the zero row just created to the mk+1 position. G and F being orthogonal matrices implies thatR¯k+1R¯k+1= ¯RkR¯k:

α O

αΠ

k+1v Πk+1Rk+1

α αvΠk+1 O Rk+k+1

=

δn q O ΠkRk

δn O q RkΠk

.

Multiplying out and comparing blocks we have thatΠk+1v=ΠkRkq =aqandδ2n =1− q22=0,

because

1 vΠk+1

Π

k+1v Πk+1(Rk+1Rk+1+vv)Πk+1

=

δ2

n+ q22 qRkΠk

Π

k Rkq ΠkRkRkΠk

.

Thus,Πk+1Rk+1Rk+1Πk+1=ΠkRkRkΠkaqaq, which is what we wanted, for Ak+1Ak+1=Πk+1Rk+1Rk+1Πk+1=ΠkRkRkΠkaqaq =AkAkaqaq.

As in the algorithm given above, the Givens matrices are(mk+1)×(mk+1). Using the additional working row we can get useful information to trigger the refactorization whenΠk+1v and aq differ substantially; furthermore, the data structure always has enough space allocated to work, and the fill-in is confined to the working row, as in the updating algorithm but not in the classical downdating algorithm (Guerrero, 2002, Section 3.2.4).

There is a subtle difference with the mk > n LINPACK case, in which q is the first row of an orthonormal matrix (a matrix whose columns are orthonormal vectors, cf. Stewart, 1998, p. 56) and hence q2 = 1 in general. On the other hand, we can ensureq2 = 1 in exact arithmetic when

mk n, since q is the first row of an orthogonal matrix. This case was excluded from LINPACK because it leads to a reduction in rank after the downdate but, as was pointed out in 1972 by Saunders (1972), numerical difficulties are not expected.

4.1 Example of downdating

Let us go on with the example of Section 3.1; now we want to delete a7. First we solve the compatible systemΠ4R4q=a7to obtain q =[0;

6/3; −1/√3;0]; as was pointed out by Heath (1982, p. 229) (with his R1being the same as our Ri),

It is unnecessary to extract R1from the data structure or write a special back substitution

routine to skip over the zero rows, since the same effect may be obtained by simply setting the “zero” diagonal elements equal to 1 and noting that the corresponding components of the right-hand sides will already be zero.

and hence solving this system does not need any special back substitution routine, since we can proceed by overlayingΠ4R4on I6to obtain [0;0;

(8)

and fifth components. Now we enlargeΠ4R4 and rotate with respect to the first column to annihilate the non-zero elements of qwestbound:

¯ R4 =.

δn q O Π4R4

= ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

0 0 √6/3 −1/√3 0

0 √2 0 0 0

0 0 0 0 0

0 −1/√2 −√6/2 0 0

0 0 −√6/3 1/√3 0

0 0 0 0 1

0 √2 −√6/3 −2/√3 1 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ,

where the working vector is now located to the left of the vertical bar; postmultiplying by0 1

1 0

and

by 1/

3 √6/3

−√6/3−1/√3

, first columns 1 and 4 and then columns 1 and 3, we obtain

⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

1/√3 0 √6/3 0 0

0 √2 0 0 0

0 0 0 0 0

0 −1/√2 −√6/2 0 0 −1/√3 0 −√6/3 0 0

0 0 0 0 1

2/√3 √2 −√6/3 0 1 ⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦

, [R¯5O]F=. ⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣

−1 0 0 0 0

0 √2 0 0 0

0 0 0 0 0

1 −1/√2 1/√2 0 0

1 0 0 0 0

0 0 0 0 1

0 √2 √2 0 1

⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ .

Note that the result is the same (barring signs and the last column) as just after having annihilated the first element when we were rotating a3, that the vector a7 has been recovered in the additional

column, and that in this caseα = −1. We have to reset toNaNthe zeros shown in bold in order to conserve the predicted structure for Rin the columns involved. The zero column just created has not appeared in the last position, hence F = I in general. Once again, the work with the static structure avoids the explicit computation of the permutation F . We can check the result using MATLAB with

[Q,R] = qr(sparse([1 0 0 0 0 2; 1 0 -1 0 0 0; 0 0 0 0 1 1])).

5. Conclusions and future work

We have described how to update and downdate an upper trapezoidal sparse orthogonal factorization. We have adapted the techniques of Saunders (1972) for square matrices to rectangular matrices (with fewer columns than rows), by using the static data structure of George and Heath (George & Heath, 1980; Heath, 1982) but allowing sparse row downdating on it. An implicitly determined column permu-tation allows us to dispense with its recompupermu-tation; we have shown how it fits well into the LINPACK

downdating algorithm and ensures that the updated trapezoidal factor will remain sparse.

A FORTRAN implementation of the updating process (without the downdating) can be found in the SPARSPAKpackage, which is currently being translated into C++as described by George & Liu

(9)

(1999). The availability of this SPARSPAK++package implies a rapid prototyping of a low-level im-plementation of the sparse proposal given here. Nowadays, the updatable sparse factorization described in this paper has been implemented in a MATLABtoolbox, which has been used to solve the sequence of sparse compatible systems needed to implement certain non-simplex active-set methods for linear programming. The formulae needed and the computational results obtained when solving the first 15 smallest NETLIB problems with a highly degenerate Phase I are the subject of a forthcoming article (Guerrero & Santos, 2003), in which we also comment on several advantages of using QR rather than LU, its suitability to a combined interior-point simplex methodology, and several parallelization issues. The numerical analysis of the behaviour in floating-point arithmetic when solving dense quadratic programs with an orthogonal factorization of Ak similar to the one given in Section 2 was developed by Powell (1981, and references therein). When numerical difficulties with the rank arise, the matrix Rk can be postprocessed as indicated by Heath (1982) to obtain a rank-revealing factorization.

At present we deal only with problems in which we can choose an a priori permutation P of the rows of A such that the Cholesky factor of P A APis sparse. When this cannot be done (e.g. when A has dense columns), it would be better to use dynamic techniques as in Davis & Hager (1999) and Edlund (2002), adapting them to the semidefinite case to work with AkAk or else regularizing the problem to work withσIn+AkAk.

Acknowledgements

The authors thank the referees for having put a lot of work into producing the reports and marking up our previous manuscript, and for providing us with some references that we were not aware of. We also want to thank John Gilbert for confirming that the sparse orthogonal factorization in MATLAB5 is row-oriented and Givens-based, and providing us technical details about the interface, as well as Christof V¨omel at CERFACS for several remarks on the first sections.

REFERENCES

BARLOW, J. L. (1990) On the use of structural zeros in orthogonal factorization. SIAM J. Sci. Stat. Comput., 11, 600–601.

BJORCK, ˚¨ A. (1996) Numerical Methods for Least Squares Problems. Philadelphia, PA: SIAM.

DAVIS, T. & HAGER, W. (1999) Modifying a sparse Cholesky factorization. SIAM J. Matrix Anal. Appl., 20, 606–627.

EDLUND, O. (2002) A software package for sparse orthogonal factorization and updating. ACM Trans. Math. Soft.,

28, 448–482.

GEORGE, A. & HEATH, M. T. (1980) Solution of sparse linear least squares problems using Givens rotations. Linear Algebra Appl., 34, 69–83.

GEORGE, A. & LIU, J. (1999) An object-oriented approach to the design of a user interface for a sparse matrix package. SIAM J. Matrix Anal. Appl., 20, 953–969.

GEORGE, A., LIU, J. & NG, E. (1988) A data structure for sparse QR and LU factorizations. SIAM J. Sci. Stat. Comput., 9, 100–121.

GILBERT, J. R., MOLER, C. B. & SCHREIBER, R. S. (1992) Sparse matrices in MATLAB: design and implemen-tation. SIAM J. Matrix Anal. Appl., 13, 333–356.

GOLUB, G. H. & VAN LOAN, C. L. (1996) Matrix Computations. Baltimore, MD: North Oxford Academic Publishing.

GUERRERO-GARC´IA, P. (2002) Range space methods for sparse linear programs. Ph.D. Thesis, Department of Applied Mathematics, University of M´alaga. (In Spanish.)

(10)

GUERRERO-GARC´IA, P. & SANTOS-PALOMO, ´A. (2003) Solving a sequence of sparse compatible systems. Technical Report MA-02-03, Department of Applied Mathematics, University of M´alaga.

HEATH, M. T. (1982) Some extensions of an algorithm for sparse linear least squares problems. SIAM J. Sci. Stat. Comput., 3, 223–237.

HIGHAM, N. J. (2002) Accuracy and Stability of Numerical Algorithms, 2nd edn. Philadelphia, PA: SIAM. MATSTOMS, P. (1994) Sparse QR factorization with applications to linear least squares problems. Ph.D. Thesis,

Department of Mathematics, Link¨oping University.

POWELL, M. J. D. (1981) An upper triangular matrix method for quadratic programming 4. Nonlinear Program-ming, (O. L. Mangasarian, R. R. Meyer & S. M. Robinson eds). New York: Academic Press, pp. 1–24. SANTOS-PALOMO, ´A. & GUERRERO-GARC´IA, P. (2003) Updating and downdating an upper trapezoidal sparse

orthogonal factorization. Technical report MA-02-02, Department of Applied Mathematics, University of M´alaga.

SAUNDERS, M. A. (1972) Large-scale linear programming using the Cholesky factorization. Technical Report CS-252, Computer Science Department, Stanford University.

STEWART, G. W. (1998) Matrix Algorithms I: Basic Decompositions. Philadelphia, PA: SIAM.

VEMPATI, N., SLUTSKER, I. W. & TINNEY, W. F. (1991) Enhancements to Givens rotations for power system state estimation. IEEE Trans. Power Syst., 6, 842–849.

Referencias

Documento similar

[r]

The following figures show the evolution along more than half a solar cycle of the AR faculae and network contrast dependence on both µ and the measured magnetic signal, B/µ,

Recent observations of the bulge display a gradient of the mean metallicity and of [Ƚ/Fe] with distance from galactic plane.. Bulge regions away from the plane are less

(hundreds of kHz). Resolution problems are directly related to the resulting accuracy of the computation, as it was seen in [18], so 32-bit floating point may not be appropriate

Results show that both HFP-based and fixed-point arithmetic achieve a simulation step around 10 ns for a full-bridge converter model.. A comparison regarding resolution and accuracy

Even though the 1920s offered new employment opportunities in industries previously closed to women, often the women who took these jobs found themselves exploited.. No matter

In order to quantify the impact of the frequency band on an IoT network operating in an SG scenario, we consider three Key Performance Indicators (KPIs): the Packet Reception

 The expansionary monetary policy measures have had a negative impact on net interest margins both via the reduction in interest rates and –less powerfully- the flattening of the