Salome HOME
Minor documentation and code review corrections (39)
[modules/adao.git] / doc / en / ref_algorithm_Blue.rst
1 ..
2    Copyright (C) 2008-2023 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: Blue
25 .. _section_ref_algorithm_Blue:
26
27 Calculation algorithm "*Blue*"
28 ------------------------------
29
30 .. ------------------------------------ ..
31 .. include:: snippets/Header2Algo01.rst
32
33 This algorithm realizes a BLUE (Best Linear Unbiased Estimator) type estimation
34 of the state of a system. It is a linear, unbiased and optimal estimation.
35 Technically, it is here an Aitken estimator. It performs the best linear
36 estimate of the state using the initial background state and the observations.
37 It is theoretically reserved for observation operator cases which are linear,
38 even if it sometimes works in "slightly" non-linear cases. One can verify the
39 linearity of the observation operator with the help of the
40 :ref:`section_ref_algorithm_LinearityTest`. This algorithm is always the
41 fastest of all the assimilation algorithms of ADAO.
42
43 This algorithm is naturally written for a single estimate, without any dynamic
44 or iterative notion (there is no need in this case for an incremental evolution
45 operator, nor for an evolution error covariance). In ADAO, it can also be used
46 on a succession of observations, placing the estimate in a recursive framework
47 partly similar to a :ref:`section_ref_algorithm_KalmanFilter`. A standard
48 estimate is made at each observation step on the state predicted by the
49 incremental evolution model, knowing that the state error covariance remains
50 the background covariance initially provided by the user. To be explicit,
51 unlike Kalman-type filters, the state error covariance is not updated.
52
53 In case of non-linearity, even slightly marked, it will be easily preferred a
54 :ref:`section_ref_algorithm_ExtendedBlue` or a
55 :ref:`section_ref_algorithm_3DVAR`.
56
57 .. index:: single: Optimal Interpolation
58 .. index:: single: OI
59
60 Additional remark: an algebraic simplification of the BLUE leads to the
61 so-called optimal interpolation method, named "*Optimal Interpolation*" or
62 "*OI*". It is a very simple and inexpensive method, especially adapted to very
63 (very) large problems, but whose disadvantage is to provide a globally
64 sub-optimal and noisy analysis result, even inconsistent. The way to avoid
65 these disadvantages is to adapt very precisely the elements of the method to
66 each physical model. For these reasons, this method is not proposed nor
67 recommended.
68
69 .. ------------------------------------ ..
70 .. include:: snippets/Header2Algo02.rst
71
72 .. include:: snippets/Background.rst
73
74 .. include:: snippets/BackgroundError.rst
75
76 .. include:: snippets/Observation.rst
77
78 .. include:: snippets/ObservationError.rst
79
80 .. include:: snippets/ObservationOperator.rst
81
82 .. ------------------------------------ ..
83 .. include:: snippets/Header2Algo03AdOp.rst
84
85 .. include:: snippets/EstimationOf_Parameters.rst
86
87 .. include:: snippets/NumberOfSamplesForQuantiles.rst
88
89 .. include:: snippets/Quantiles.rst
90
91 .. include:: snippets/SetSeed.rst
92
93 .. include:: snippets/SimulationForQuantiles.rst
94
95 .. include:: snippets/StateBoundsForQuantilesWithNone.rst
96
97 StoreSupplementaryCalculations
98   .. index:: single: StoreSupplementaryCalculations
99
100   *List of names*. This list indicates the names of the supplementary
101   variables, that can be available during or at the end of the algorithm, if
102   they are initially required by the user. Their avalability involves,
103   potentially, costly calculations or memory consumptions. The default is then
104   a void list, none of these variables being calculated and stored by default
105   (excepted the unconditionnal variables). The possible names are in the
106   following list (the detailed description of each named variable is given in
107   the following part of this specific algorithmic documentation, in the
108   sub-section "*Information and variables available at the end of the
109   algorithm*"): [
110   "Analysis",
111   "APosterioriCorrelations",
112   "APosterioriCovariance",
113   "APosterioriStandardDeviations",
114   "APosterioriVariances",
115   "BMA",
116   "CostFunctionJ",
117   "CostFunctionJAtCurrentOptimum",
118   "CostFunctionJb",
119   "CostFunctionJbAtCurrentOptimum",
120   "CostFunctionJo",
121   "CostFunctionJoAtCurrentOptimum",
122   "CurrentOptimum",
123   "CurrentState",
124   "CurrentStepNumber",
125   "ForecastState",
126   "Innovation",
127   "InnovationAtCurrentAnalysis",
128   "MahalanobisConsistency",
129   "OMA",
130   "OMB",
131   "SampledStateForQuantiles",
132   "SigmaBck2",
133   "SigmaObs2",
134   "SimulatedObservationAtBackground",
135   "SimulatedObservationAtCurrentOptimum",
136   "SimulatedObservationAtCurrentState",
137   "SimulatedObservationAtOptimum",
138   "SimulationQuantiles",
139   ].
140
141   Example :
142   ``{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}``
143
144 .. ------------------------------------ ..
145 .. include:: snippets/Header2Algo04.rst
146
147 .. include:: snippets/Analysis.rst
148
149 .. ------------------------------------ ..
150 .. include:: snippets/Header2Algo05.rst
151
152 .. include:: snippets/Analysis.rst
153
154 .. include:: snippets/APosterioriCorrelations.rst
155
156 .. include:: snippets/APosterioriCovariance.rst
157
158 .. include:: snippets/APosterioriStandardDeviations.rst
159
160 .. include:: snippets/APosterioriVariances.rst
161
162 .. include:: snippets/BMA.rst
163
164 .. include:: snippets/CostFunctionJ.rst
165
166 .. include:: snippets/CostFunctionJAtCurrentOptimum.rst
167
168 .. include:: snippets/CostFunctionJb.rst
169
170 .. include:: snippets/CostFunctionJbAtCurrentOptimum.rst
171
172 .. include:: snippets/CostFunctionJo.rst
173
174 .. include:: snippets/CostFunctionJoAtCurrentOptimum.rst
175
176 .. include:: snippets/CurrentOptimum.rst
177
178 .. include:: snippets/CurrentState.rst
179
180 .. include:: snippets/CurrentStepNumber.rst
181
182 .. include:: snippets/ForecastState.rst
183
184 .. include:: snippets/Innovation.rst
185
186 .. include:: snippets/InnovationAtCurrentAnalysis.rst
187
188 .. include:: snippets/MahalanobisConsistency.rst
189
190 .. include:: snippets/OMA.rst
191
192 .. include:: snippets/OMB.rst
193
194 .. include:: snippets/SampledStateForQuantiles.rst
195
196 .. include:: snippets/SigmaBck2.rst
197
198 .. include:: snippets/SigmaObs2.rst
199
200 .. include:: snippets/SimulatedObservationAtBackground.rst
201
202 .. include:: snippets/SimulatedObservationAtCurrentOptimum.rst
203
204 .. include:: snippets/SimulatedObservationAtCurrentState.rst
205
206 .. include:: snippets/SimulatedObservationAtOptimum.rst
207
208 .. include:: snippets/SimulationQuantiles.rst
209
210 .. ------------------------------------ ..
211 .. _section_ref_algorithm_Blue_examples:
212
213 .. include:: snippets/Header2Algo09.rst
214
215 .. include:: scripts/simple_Blue.rst
216
217 .. literalinclude:: scripts/simple_Blue.py
218
219 .. include:: snippets/Header2Algo10.rst
220
221 .. literalinclude:: scripts/simple_Blue.res
222
223 .. ------------------------------------ ..
224 .. include:: snippets/Header2Algo06.rst
225
226 - :ref:`section_ref_algorithm_ExtendedBlue`
227 - :ref:`section_ref_algorithm_3DVAR`
228 - :ref:`section_ref_algorithm_LinearityTest`
229
230 .. ------------------------------------ ..
231 .. include:: snippets/Header2Algo07.rst
232
233 - [Bouttier99]_