NormalEquation
This class provides a system of normal equations. This total system is the weighted sum of individual normals. \[ \M N_{total} = \sum_{k=1} \frac{1}{\sigma_k^2}\M N_k \qquad\text{and}\qquad \M n_{total} = \sum_{k=1} \frac{1}{\sigma_k^2} \M n_k. \]The normals do not need to have the same dimension. The dimension of the total combined system is chosen to cover all individual systems. For each normal a startIndex is required which indicates the position of the first unknown of the individual normal within the combined parameter vector.
The $\sigma_k$ of the relative weights are defined by aprioriSigma in a first step. If an apriori solution inputfileApproxSolution is given or the normals are solved iteratively the weights are determined by means of variance compoment estimation (VCE), see NormalsSolverVCE: \[ \sigma_k^2 = \frac{\M e_k^T\M P\M e_k} {n_k-\frac{1}{\sigma_k^2}\text{trace}\left(\M N_k\M N_{total}^{-1}\right)}, \]where $n_k$ is the number of observations. The square sum of the residuals is calculated by \[ \M e_k^T\M P\M e_k = \M x^T\M N_k\M x - 2\M n_k^T\M x + \M l_k^T\M P_k\M l_k. \]The system of normal equations can be solved with several right hand sides at once. But only one right hand side, which can be selected with the index rightHandSide (counting from zero), can be used to compute the variance factors. The combined normal $\M N_{total}$ and the solution $\M x$ are taken from the previous iteration step. In case of DesignVCE the algorithm is a little bit different as described below.
Design
This class acculumates normal equations from observation equations. The class observation computes the linearized and decorrelated equation system for each arc $i$: \[ \M l_i = \M A_i \M x + \M B_i \M y_i + \M e_i. \]The arc depending parameters $\M y_i$ are eliminated and the system of normal equations is acculumated according to \[ \M N = \sum_{i=1}^m \M A_i^T \M A_i \qquad\text{and}\qquad \M n = \sum_{i=1}^m \M A_i^T \M l_i. \]
Name | Type | Annotation |
---|---|---|
observation | observation | |
aprioriSigma | double | |
startIndex | uint | add this normals at index of total matrix (counting from 0) |
inputfileArcList | filename | to accelerate computation |
DesignVCE
This class acculumates normal equations from observation equations. The class observation computes the linearized and decorrelated equation system for each arc $i$: \[ \M l_i = \M A_i \M x + \M B_i \M y_i + \M e_i. \]The arc depending parameters $\M y_i$ are eliminated and the system of normal equations is acculumated according to \[ \M N = \sum_{i=1} \frac{1}{\sigma_i^2}\M A_i^T \M A_i \qquad\text{and}\qquad \M n = \sum_{i=1} \frac{1}{\sigma_i^2} \M A_i^T \M l_i. \]The variance $\sigma_i^2$ of each individual arc is determined by \[ \sigma_i^2 = \frac{(\M l_i-\M A_i\M x)^T(\M l_i-\M A_i\M x)} {n_i-\frac{1}{\sigma_i^2}\text{trace}\left(\M A_i^T \M A_i\M N_{total}^{-1}\right)}, \]where $n_i$ is the number of observations. If an apriori solution is not given at the first iteration step a zero vector is assumed.
Name | Type | Annotation |
---|---|---|
observation | observation | |
startIndex | uint | add this normals at index of total matrix (counting from 0) |
inputfileArcList | filename | to accelerate computation |
File
Reads a system of normal equations from file inputfileNormalEquation as generated by e.g. NormalsBuild.
Name | Type | Annotation |
---|---|---|
inputfileNormalEquation | filename | |
aprioriSigma | double | |
startIndex | uint | add this normals at index of total matrix (counting from 0) |
Regularization
Set up a system of normal equations \[ \M N = \M R \qquad\text{and}\qquad \M n = \M R \M b, \]where $\M R$ is a diagonal matrix whose elements are given as a vector by inputfileDiagonalMatrix and $\M b$ is the right hand side towards which will be regularized. It can be given by inputfileBiasVector. The diagonal matrix can be generated with NormalsRegularizationBorders, NormalsRegularizationSphericalHarmonics, or MatrixCalculate. If $\M R$ is not given a unit matrix is assumed. The right hand side $\M b$ may be generated with Gravityfield2SphericalHarmonicsVector. If $\M b$ is not given a zero vector is assumed.
Name | Type | Annotation |
---|---|---|
inputfileDiagonalMatrix | filename | Vector with the diagonal elements of the weight matrix |
inputfileBias | filename | Matrix with right hand sides |
aprioriSigma | double | |
startIndex | uint | regularization of parameters starts at this index (counting from 0) |
RegularizationGeneralized
Generalized regularization which is represented by the observation equation \[ \mathbf{x}_0 = \mathbf{I} \mathbf{x} + \mathbf{v}, \mathbf{v} \sim \mathcal{N}(0, \sum_k \sigma^2_k \mathbf{V}_k). \] There are no requirements for partial covariance matrices $\mathbf{V}_k$ except for them being symmetric. The accumulated covariance matrix $\sum_k \sigma^2_k \mathbf{V}_k$ must be positive definite however. The variance components $\sigma^2_k$ are estimated during the adjustment process and are assumed to be positive. All inputfilePartialCovarianceMatrix must be of same size and must match the dimension of inputfileBiasMatrix (if provided, otherwise a zero vector of appropriate dimensions is created).
The parameter aprioriSigma determines the initial variance factor for the partial covariance matrices. Either one $\sigma_0$ can be supplied or one for each $\mathbf{V}_k$.
The regularization matrix can be applied to a subset of parameters by adjusting startIndex.
Name | Type | Annotation |
---|---|---|
inputfilePartialCovarianceMatrix | filename | symmetric matrix (sum of all matrices must be positive definite) |
inputfileBiasMatrix | filename | bias vector (default: zero vector) |
aprioriSigma | double | apriori sigmas for initial iteration (default: 1.0) |
startIndex | uint | regularization of parameters starts at this index (counting from 0) |