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 http://www.Mac-Mgrs.org/ .
__________________________________ Do you Yahoo!? SBC Yahoo! DSL - Now only $29.95 per month! http://sbc.yahoo.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
