SparseM is really intended for arbitrary sparse structure, for banded structural there are much more efficient methods, some of which are, if I'm not mistaken, now available in lapack.
url: www.econ.uiuc.edu/~roger/my.html Roger Koenker email [EMAIL PROTECTED] Department of Economics vox: 217-333-4558 University of Illinois fax: 217-244-6678 Champaign, IL 61820 On Wed, 1 Oct 2003, Thomas W Blackwell wrote: > Will - > > Take a look at Roger Koenker's package SparseMatrix, > available from CRAN. Look also for some other package > from Roger which depends on SparseMatrix, but has a > different name. It's a place to look. I don't recall > whether it will answer your need or not. > > - tom blackwell - u michigan medical school - ann arbor - > > On Wed, 1 Oct 2003, Will Harvey wrote: > > > I need to find solutions to a tridiagonal system. By > > this I mean a set of linear equations Ax = d where A > > is a square matrix containing elements A[i,i-1], > > A[i,i] and A[i,i+1] for i in 1:nrow, and zero > > elsewhere. R is probably not the ideal way to do this, > > but this is part of a larger problem that requires R. > > > > In my application it is much easier (and much faster) > > to generate the diagonal and off-diagonal elements of > > A as vectors, i.e. a = A[i,i-1], b = A[i,i] and c = > > A[i,i+1]. So I have three vectors that define A, along > > with a solution vector d. The conventional method of > > solving such systems is to use the so-called "Thomas > > algorithm", see e.g. > > <http://www.enseeiht.fr/hmf/travaux/CD0001/travaux/optmfn/hi/01pa/hyb74/node24.html>. > > This is very easy to code, but much more difficult to > > "vectorize". Is anyone aware of a library that > > contains a fast implementation of this algorithm? > > > > Another alternative is to use backsolve. I can easily > > eliminate the lower diagonal a, but I'm still left > > with b and c, whereas backsolve requires a matrix. > > Again, I can write a function to read b and c into a > > matrix, but this requires loops, and is too slow. Is > > there a vectorized way of doing it? Of course, the > > diag command works for b, but what about c? In Octave, > > diag allows for an offset, but R apparently does not. > > > > I would appreciate any and all assistance you experts > > can offer. Thanks in advance. > > > > Will Harvey > > > > ______________________________________________ > > [EMAIL PROTECTED] mailing list > > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > > > > ______________________________________________ > [EMAIL PROTECTED] mailing list > https://www.stat.math.ethz.ch/mailman/listinfo/r-help > ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help
