commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz" <>
Subject Re: [math] Does LU decomposition assume matrix is square?
Date Sat, 21 Jun 2003 19:43:11 GMT
Al Chou wrote:
> I finally decided that cubic spline would be my first attempt at implementing
> interpolation, partly because of the difficulty of finding an alternative
> reference to NR for the Stoer & Bulirsch rational function method, partly
> because I started to have doubts about the desirability of interpolation using
> high-order polynomials/rationals

+1  This is also easier to document and understand for users.

, and partly because I think being forced to
> implement tridiagonal linear systems solution is probably good for the library.
> I could go the NR route and embed the tridiagonal solver into the cubic spline
> routine, but I think it's worthwhile to provide the tridiagonal solver
> separately for others to use, given the frequency with which tridiagonal
> systems appear (in physics anyway; am I dreaming too much to think that someone
> might use this library to solve second order differential equations by finite
> differences?).

I would either embed the tridiagonal solution or just use
RealMatrixImpl.solve(). Personally, I would probably take the second 
approach, for initial release, since the implementation exists.  If 
users complain about the speed (which will only happen if they are 
fitting splines using large numbers of points), we can modify the 
implementation to use the faster approach. I would not see a tridiagonal 
solver as something that we should add to intial release of commons-math.

> I happened to notice as I started to plan my work that RealMatrixImpl.solve,
> which uses LU decomposition, doesn't explicitly check whether the matrix is
> square before proceeding with the decomposition.  I think (but am not sure)
> that LU decomposition assumes the matrix is square.

No, but it does require that the number of rows >= the number of 
columns.  I will add this check.  Good catch.

>  Currently it already
> checks whether the vector of right-hand-sides of the equations is equal to the
> number of rows in the matrix, which I think implicitly assumes that the matrix
> is square (otherwise it would probably be more correct to check against the
> number of columns).

The check against the constant matrix column dimension is to make sure 
that the linear system(s) represented by the matrix equation are 
well-defined.  You are correct that the coefficient matrix also needs to 
be square. I will add this to solve().  Once again, good catch!

> Al
> =====
> Albert Davidson Chou
>     Get answers to Mac questions at .
> __________________________________
> Do you Yahoo!?
> SBC Yahoo! DSL - Now only $29.95 per month!
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message