2 Copyright (C) 2008-2020 EDF R&D
4 This file is part of SALOME ADAO module.
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.
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.
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
20 See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
24 .. index:: single: NonLinearLeastSquares
25 .. _section_ref_algorithm_NonLinearLeastSquares:
27 Calculation algorithm "*NonLinearLeastSquares*"
28 -----------------------------------------------
30 .. ------------------------------------ ..
31 .. include:: snippets/Header2Algo01.rst
33 This algorithm realizes a state estimation by variational minimization of the
34 classical :math:`J` function of weighted "Least Squares":
36 .. math:: J(\mathbf{x})=(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.\mathbf{R}^{-1}.(\mathbf{y}^o-\mathbf{H}.\mathbf{x})
38 It is similar to the :ref:`section_ref_algorithm_3DVAR`, without its background
39 part. The background, required in the interface, is only used as an initial
40 point for the variational minimization.
42 In all cases, it is recommended to prefer the :ref:`section_ref_algorithm_3DVAR`
43 for its stability as for its behavior during optimization.
45 .. ------------------------------------ ..
46 .. include:: snippets/Header2Algo02.rst
48 .. include:: snippets/Background.rst
50 .. include:: snippets/Observation.rst
52 .. include:: snippets/ObservationError.rst
54 .. include:: snippets/ObservationOperator.rst
56 .. ------------------------------------ ..
57 .. include:: snippets/Header2Algo03AdOp.rst
60 .. index:: single: Minimizer
62 This key allows to choose the optimization minimizer. The default choice is
63 "LBFGSB", and the possible ones are "LBFGSB" (nonlinear constrained
64 minimizer, see [Byrd95]_, [Morales11]_ and [Zhu97]_), "TNC" (nonlinear
65 constrained minimizer), "CG" (nonlinear unconstrained minimizer), "BFGS"
66 (nonlinear unconstrained minimizer), "NCG" (Newton CG minimizer). It is
67 strongly recommended to stay with the default.
70 ``{"Minimizer":"LBFGSB"}``
72 .. include:: snippets/BoundsWithNone.rst
74 .. include:: snippets/MaximumNumberOfSteps.rst
76 .. include:: snippets/CostDecrementTolerance.rst
78 .. include:: snippets/ProjectedGradientTolerance.rst
80 .. include:: snippets/GradientNormTolerance.rst
82 StoreSupplementaryCalculations
83 .. index:: single: StoreSupplementaryCalculations
85 This list indicates the names of the supplementary variables that can be
86 available at the end of the algorithm, if they are initially required by the
87 user. It involves potentially costly calculations or memory consumptions. The
88 default is a void list, none of these variables being calculated and stored
89 by default excepted the unconditionnal variables. The possible names are in
94 "CostFunctionJAtCurrentOptimum",
96 "CostFunctionJbAtCurrentOptimum",
98 "CostFunctionJoAtCurrentOptimum",
103 "InnovationAtCurrentState",
106 "SimulatedObservationAtBackground",
107 "SimulatedObservationAtCurrentOptimum",
108 "SimulatedObservationAtCurrentState",
109 "SimulatedObservationAtOptimum",
113 ``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
115 *Tips for this algorithm:*
117 As the *"BackgroundError"* command is required for ALL the calculation
118 algorithms in the interface, you have to provide a value, even if this
119 command is not required for this algorithm, and will not be used. The
120 simplest way is to give "1" as a STRING.
122 .. ------------------------------------ ..
123 .. include:: snippets/Header2Algo04.rst
125 .. include:: snippets/Analysis.rst
127 .. include:: snippets/CostFunctionJ.rst
129 .. include:: snippets/CostFunctionJb.rst
131 .. include:: snippets/CostFunctionJo.rst
133 .. ------------------------------------ ..
134 .. include:: snippets/Header2Algo05.rst
136 .. include:: snippets/Analysis.rst
138 .. include:: snippets/BMA.rst
140 .. include:: snippets/CostFunctionJ.rst
142 .. include:: snippets/CostFunctionJAtCurrentOptimum.rst
144 .. include:: snippets/CostFunctionJb.rst
146 .. include:: snippets/CostFunctionJbAtCurrentOptimum.rst
148 .. include:: snippets/CostFunctionJo.rst
150 .. include:: snippets/CostFunctionJoAtCurrentOptimum.rst
152 .. include:: snippets/CurrentOptimum.rst
154 .. include:: snippets/CurrentState.rst
156 .. include:: snippets/IndexOfOptimum.rst
158 .. include:: snippets/Innovation.rst
160 .. include:: snippets/InnovationAtCurrentState.rst
162 .. include:: snippets/OMA.rst
164 .. include:: snippets/OMB.rst
166 .. include:: snippets/SimulatedObservationAtBackground.rst
168 .. include:: snippets/SimulatedObservationAtCurrentOptimum.rst
170 .. include:: snippets/SimulatedObservationAtCurrentState.rst
172 .. include:: snippets/SimulatedObservationAtOptimum.rst
174 .. ------------------------------------ ..
175 .. include:: snippets/Header2Algo06.rst
177 - :ref:`section_ref_algorithm_3DVAR`
179 .. ------------------------------------ ..
180 .. include:: snippets/Header2Algo07.rst