Salome HOME
Documentation corrections and modular evolution (3 EN)
[modules/adao.git] / doc / en / ref_algorithm_ExtendedKalmanFilter.rst
1 ..
2    Copyright (C) 2008-2018 EDF R&D
3
4    This file is part of SALOME ADAO module.
5
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with this library; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19
20    See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
22    Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
23
24 .. index:: single: ExtendedKalmanFilter
25 .. _section_ref_algorithm_ExtendedKalmanFilter:
26
27 Calculation algorithm "*ExtendedKalmanFilter*"
28 ----------------------------------------------
29
30 Description
31 +++++++++++
32
33 This algorithm realizes an estimation of the state of a dynamic system by a
34 extended Kalman Filter, using a non-linear calculation of the state and the
35 incremental evolution (process).
36
37 In case of really non-linear operators, one can easily use the
38 :ref:`section_ref_algorithm_EnsembleKalmanFilter` or the
39 :ref:`section_ref_algorithm_UnscentedKalmanFilter`, which are often far more
40 adapted to non-linear behavior but more costly. One can verify the linearity of
41 the operators with the help of the :ref:`section_ref_algorithm_LinearityTest`.
42
43 Optional and required commands
44 ++++++++++++++++++++++++++++++
45
46 The general required commands, available in the editing user interface, are the
47 following:
48
49   .. include:: snippets/Background.rst
50
51   .. include:: snippets/BackgroundError.rst
52
53   .. include:: snippets/EvolutionError.rst
54
55   .. include:: snippets/EvolutionModel.rst
56
57   .. include:: snippets/Observation.rst
58
59   .. include:: snippets/ObservationError.rst
60
61   .. include:: snippets/ObservationOperator.rst
62
63 The general optional commands, available in the editing user interface, are
64 indicated in :ref:`section_ref_assimilation_keywords`. Moreover, the parameters
65 of the command "*AlgorithmParameters*" allows to choose the specific options,
66 described hereafter, of the algorithm. See
67 :ref:`section_ref_options_Algorithm_Parameters` for the good use of this
68 command.
69
70 The options of the algorithm are the following:
71
72   .. include:: snippets/BoundsWithExtremes.rst
73
74   .. include:: snippets/ConstrainedBy.rst
75
76   .. include:: snippets/EstimationOf.rst
77
78   StoreSupplementaryCalculations
79     .. index:: single: StoreSupplementaryCalculations
80
81     This list indicates the names of the supplementary variables that can be
82     available at the end of the algorithm. It involves potentially costly
83     calculations or memory consumptions. The default is a void list, none of
84     these variables being calculated and stored by default. The possible names
85     are in the following list: ["APosterioriCorrelations",
86     "APosterioriCovariance", "APosterioriStandardDeviations",
87     "APosterioriVariances", "BMA", "CostFunctionJ", "CostFunctionJb",
88     "CostFunctionJo", "CurrentState", "Innovation"].
89
90     Example :
91     ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
92
93 Information and variables available at the end of the algorithm
94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
95
96 At the output, after executing the algorithm, there are variables and
97 information originating from the calculation. The description of
98 :ref:`section_ref_output_variables` show the way to obtain them by the method
99 named ``get`` of the variable "*ADD*" of the post-processing. The input
100 variables, available to the user at the output in order to facilitate the
101 writing of post-processing procedures, are described in the
102 :ref:`subsection_r_o_v_Inventaire`.
103
104 The unconditional outputs of the algorithm are the following:
105
106   .. include:: snippets/Analysis.rst
107
108 The conditional outputs of the algorithm are the following:
109
110   .. include:: snippets/APosterioriCorrelations.rst
111
112   .. include:: snippets/APosterioriCovariance.rst
113
114   .. include:: snippets/APosterioriStandardDeviations.rst
115
116   .. include:: snippets/APosterioriVariances.rst
117
118   .. include:: snippets/BMA.rst
119
120   .. include:: snippets/CostFunctionJ.rst
121
122   .. include:: snippets/CostFunctionJb.rst
123
124   .. include:: snippets/CostFunctionJo.rst
125
126   .. include:: snippets/CurrentState.rst
127
128   .. include:: snippets/Innovation.rst
129
130 See also
131 ++++++++
132
133 References to other sections:
134   - :ref:`section_ref_algorithm_KalmanFilter`
135   - :ref:`section_ref_algorithm_EnsembleKalmanFilter`
136   - :ref:`section_ref_algorithm_UnscentedKalmanFilter`