From d54fe7c1f704a63824c5bfa0ece65245572e9b27 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 4 Mar 2015 21:21:30 -0500 Subject: Initial commit --- src/slalib/sun67.htx/node182.html | 201 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 src/slalib/sun67.htx/node182.html (limited to 'src/slalib/sun67.htx/node182.html') diff --git a/src/slalib/sun67.htx/node182.html b/src/slalib/sun67.htx/node182.html new file mode 100644 index 0000000..f99ea3f --- /dev/null +++ b/src/slalib/sun67.htx/node182.html @@ -0,0 +1,201 @@ + + + + +SLA_SVDSOL - Solution Vector from SVD + + + + + + + + + + + + +

+ +next + +up + +previous +
+ Next: SLA_TP2S - Tangent Plane to Spherical +
+Up: SUBPROGRAM SPECIFICATIONS +
+ Previous: SLA_SVDCOV - Covariance Matrix from SVD +

+

+

SLA_SVDSOL - Solution Vector from SVD +   +

+
+
ACTION: +
From a given vector and the SVD of a matrix (as obtained from +the sla_SVD routine), obtain the solution vector. + This routine solves the equation: +

+ 		 A $\cdot$ x = b         
+
+ where: +

+ 		 A 		 is a given m (rows) $\times n$ (columns)                       matrix, where $m \geq n$ 
+		 x 		 is the n-vector we wish to find, and
+		 b 		 is a given m-vector         
+
+ by means of the Singular Value Decomposition method (SVD). +

CALL: +
CALL sla_SVDSOL (M, N, MP, NP, B, U, W, V, WORK, X) +

+

+
GIVEN: +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
M,NIm, n, the numbers of rows and columns in matrix A
MP,NPIphysical dimensions of array containing matrix A
BD(M)known vector b
UD(MP,NP)array containing $m \times n$ matrix U
WD(N)$n \times n$ diagonal matrix W +(diagonal elements only)
VD(NP,NP)array containing $n \times n$ orthogonal matrix V
+

+
RETURNED: +
+
+ + + + + + + + + +
WORKD(N)workspace
XD(N)unknown vector x
+

+
NOTES: +
+
1. +
In the Singular Value Decomposition method (SVD), +the matrix A is first factorized (for example by +the routine sla_SVD) into the following components: +

+ 		 A = U $\cdot$ W $\cdot$ VT
+
+ where: +

+ 		 A 		 is any m (rows) $\times n$ (columns) matrix,                      where m > n 
+		 U 		 is an $m \times n$ column-orthogonal matrix
+		 W 		 is an $n \times n$ diagonal matrix with                      $w_{ii} \geq 0$ 
+		 VT is the transpose of an $n \times n$                            orthogonal matrix        
+
+ Note that m and n 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 then found from the expression: +

+ 		 x = V $\cdot~[diag(1/$W$_{j})]
+ \cdot ($U$^{T}\cdot$b)        
+
+
2. +
If matrix A is square, and if the diagonal matrix W is not + altered, the method is equivalent to conventional solution + of simultaneous equations. +
3. +
If m > n, the result is a least-squares fit. +
4. +
If the solution is poorly determined, this shows up in the + SVD factorization 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. +
+

+
REFERENCE: +
Numerical Recipes, section 2.9. +
+

+ +next + +up + +previous +
+ Next: SLA_TP2S - Tangent Plane to Spherical +
+Up: SUBPROGRAM SPECIFICATIONS +
+ Previous: SLA_SVDCOV - Covariance Matrix from SVD +

+

+

+SLALIB --- Positional Astronomy Library
Starlink User Note 67
P. T. Wallace
12 October 1999
E-mail:ptw@star.rl.ac.uk
+
+ + -- cgit