diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /math/slalib/doc/svdsol.hlp | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'math/slalib/doc/svdsol.hlp')
-rw-r--r-- | math/slalib/doc/svdsol.hlp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/math/slalib/doc/svdsol.hlp b/math/slalib/doc/svdsol.hlp new file mode 100644 index 00000000..42513cfa --- /dev/null +++ b/math/slalib/doc/svdsol.hlp @@ -0,0 +1,82 @@ +.help svdsol Jun99 "Slalib Package" +.nf + + SUBROUTINE slSVDS (M, N, MP, NP, B, U, W, V, WORK, X) + + - - - - - - - + S V D S + - - - - - - - + + From a given vector and the SVD of a matrix (as obtained from + the SVD routine), obtain the solution vector (double precision) + + This routine solves the equation: + + A . x = b + + where: + + A is a given M (rows) x N (columns) matrix, where M.GE.N + x is the N-vector we wish to find + b is a given M-vector + + by means of the Singular Value Decomposition method (SVD). In + this method, the matrix A is first factorised (for example by + the routine slSVD) into the following components: + + A = U x W x VT + + where: + + A is the M (rows) x N (columns) matrix + U is an M x N column-orthogonal matrix + W is an N x N diagonal matrix with W(I,I).GE.0 + VT is the transpose of an NxN orthogonal matrix + + Note that M and N, above, are the LOGICAL dimensions of the + matrices and vectors concerned, which can be located in + arrays of larger PHYSICAL dimensions MP and NP. + + The solution is found from the expression: + + x = V . [diag(1/Wj)] . (transpose(U) . b) + + Notes: + + 1) If matrix A is square, and if the diagonal matrix W is not + adjusted, the method is equivalent to conventional solution + of simultaneous equations. + + 2) If M>N, the result is a least-squares fit. + + 3) If the solution is poorly determined, this shows up in the + SVD factorisation as very small or zero Wj values. Where + a Wj value is small but non-zero it can be set to zero to + avoid ill effects. The present routine detects such zero + Wj values and produces a sensible solution, with highly + correlated terms kept under control rather than being allowed + to elope to infinity, and with meaningful values for the + other terms. + + Given: + M,N i numbers of rows and columns in matrix A + MP,NP i physical dimensions of array containing matrix A + B d(M) known vector b + U d(MP,NP) array containing MxN matrix U + W d(N) NxN diagonal matrix W (diagonal elements only) + V d(NP,NP) array containing NxN orthogonal matrix V + + Returned: + WORK d(N) workspace + X d(N) unknown vector x + + Reference: + Numerical Recipes, section 2.9. + + P.T.Wallace Starlink 29 October 1993 + + Copyright (C) 1995 Rutherford Appleton Laboratory + Copyright (C) 1995 Association of Universities for Research in Astronomy Inc. + +.fi +.endhelp |