Salome HOME
Documentation minor correction
[modules/adao.git] / doc / en / ref_algorithm_UnscentedKalmanFilter.rst
index 9938481f88ddabc8d1521913785a68c307337009..cb5343c236003f65990e560d68598e732ee7c732 100644 (file)
@@ -1,5 +1,5 @@
 ..
-   Copyright (C) 2008-2014 EDF R&D
+   Copyright (C) 2008-2016 EDF R&D
 
    This file is part of SALOME ADAO module.
 
@@ -38,6 +38,7 @@ extended Kalman filter.
 Optional and required commands
 ++++++++++++++++++++++++++++++
 
+.. index:: single: AlgorithmParameters
 .. index:: single: Background
 .. index:: single: BackgroundError
 .. index:: single: Observation
@@ -50,7 +51,6 @@ Optional and required commands
 .. index:: single: Beta
 .. index:: single: Kappa
 .. index:: single: Reconditioner
-.. index:: single: StoreInternalVariables
 .. index:: single: StoreSupplementaryCalculations
 
 The general required commands, available in the editing user interface, are the
@@ -90,10 +90,11 @@ following:
     :math:`(X,U)`.
 
 The general optional commands, available in the editing user interface, are
-indicated in :ref:`section_ref_assimilation_keywords`. In particular, the
-optional command "*AlgorithmParameters*" allows to choose the specific options,
+indicated in :ref:`section_ref_assimilation_keywords`. Moreover, the parameters
+of the command "*AlgorithmParameters*" allows to choose the specific options,
 described hereafter, of the algorithm. See
-:ref:`section_ref_options_AlgorithmParameters` for the good use of this command.
+:ref:`section_ref_options_Algorithm_Parameters` for the good use of this
+command.
 
 The options of the algorithm are the following:
 
@@ -103,15 +104,22 @@ The options of the algorithm are the following:
     lower/upper bounds for each variable, with extreme values every time there
     is no bound (``None`` is not allowed when there is no bound).
 
+    Example : ``{"Bounds":[[2.,5.],[1.e-2,10.],[-30.,1.e99],[-1.e99,1.e99]]}``
+
   ConstrainedBy
-    This key allows to define the method to take bounds into account. The
-    possible methods are in the following list: ["EstimateProjection"].
+    This key allows to choose the method to take into account the bounds
+    constraints. The only one available is the "EstimateProjection", which
+    projects the current state estimate on the bounds constraints.
+
+    Example : ``{"ConstrainedBy":"EstimateProjection"}``
 
   EstimationOf
     This key allows to choose the type of estimation to be performed. It can be
     either state-estimation, with a value of "State", or parameter-estimation,
     with a value of "Parameters". The default choice is "State".
-  
+
+    Example : ``{"EstimationOf":"Parameters"}``
+
   Alpha, Beta, Kappa, Reconditioner
     These keys are internal scaling parameters. "Alpha" requires a value between
     1.e-4 and 1. "Beta" has an optimal value of 2 for Gaussian *a priori*
@@ -119,18 +127,100 @@ The options of the algorithm are the following:
     obtained by setting it to 0. "Reconditioner" requires a value between 1.e-3
     and 10, it defaults to 1.
 
-  StoreInternalVariables
-    This Boolean key allows to store default internal variables, mainly the
-    current state during iterative optimization process. Be careful, this can be
-    a numerically costly choice in certain calculation cases. The default is
-    "False".
+    Example : ``{"Alpha":1,"Beta":2,"Kappa":0,"Reconditioner":1}``
 
   StoreSupplementaryCalculations
     This list indicates the names of the supplementary variables that can be
     available at the end of the algorithm. It involves potentially costly
-    calculations. The default is a void list, none of these variables being
-    calculated and stored by default. The possible names are in the following
-    list: ["APosterioriCovariance", "BMA", "Innovation"].
+    calculations or memory consumptions. The default is a void list, none of
+    these variables being calculated and stored by default. The possible names
+    are in the following list: ["APosterioriCorrelations",
+    "APosterioriCovariance", "APosterioriStandardDeviations",
+    "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState",
+    "Innovation"].
+
+    Example : ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
+
+Information and variables available at the end of the algorithm
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+At the output, after executing the algorithm, there are variables and
+information originating from the calculation. The description of
+:ref:`section_ref_output_variables` show the way to obtain them by the method
+named ``get`` of the variable "*ADD*" of the post-processing. The input
+variables, available to the user at the output in order to facilitate the
+writing of post-processing procedures, are described in the
+:ref:`subsection_r_o_v_Inventaire`.
+
+The unconditional outputs of the algorithm are the following:
+
+  Analysis
+    *List of vectors*. Each element is an optimal state :math:`\mathbf{x}*` in
+    optimization or an analysis :math:`\mathbf{x}^a` in data assimilation.
+
+    Example : ``Xa = ADD.get("Analysis")[-1]``
+
+The conditional outputs of the algorithm are the following:
+
+  APosterioriCorrelations
+    *List of matrices*. Each element is an *a posteriori* error correlation
+    matrix of the optimal state.
+
+    Example : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
+  APosterioriCovariance
+    *List of matrices*. Each element is an *a posteriori* error covariance
+    matrix :math:`\mathbf{A}*` of the optimal state.
+
+    Example : ``A = ADD.get("APosterioriCovariance")[-1]``
+
+  APosterioriStandardDeviations
+    *List of matrices*. Each element is an *a posteriori* error standard
+    deviation matrix of the optimal state.
+
+    Example : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+  APosterioriVariances
+    *List of matrices*. Each element is an *a posteriori* error variance matrix
+    of the optimal state.
+
+    Example : ``V = ADD.get("APosterioriVariances")[-1]``
+
+  BMA
+    *List of vectors*. Each element is a vector of difference between the
+    background and the optimal state.
+
+    Example : ``bma = ADD.get("BMA")[-1]``
+
+  CostFunctionJ
+    *List of values*. Each element is a value of the error function :math:`J`.
+
+    Example : ``J = ADD.get("CostFunctionJ")[:]``
+
+  CostFunctionJb
+    *List of values*. Each element is a value of the error function :math:`J^b`,
+    that is of the background difference part.
+
+    Example : ``Jb = ADD.get("CostFunctionJb")[:]``
+
+  CostFunctionJo
+    *List of values*. Each element is a value of the error function :math:`J^o`,
+    that is of the observation difference part.
+
+    Example : ``Jo = ADD.get("CostFunctionJo")[:]``
+
+  CurrentState
+    *List of vectors*. Each element is a usual state vector used during the
+    optimization algorithm procedure.
+
+    Example : ``Xs = ADD.get("CurrentState")[:]``
+
+  Innovation
+    *List of vectors*. Each element is an innovation vector, which is in static
+    the difference between the optimal and the background, and in dynamic the
+    evolution increment.
+
+    Example : ``d = ADD.get("Innovation")[-1]``
 
 See also
 ++++++++