2 Copyright (C) 2008-2019 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 Algorithme de calcul "*NonLinearLeastSquares*"
28 ----------------------------------------------
33 Cet algorithme réalise une estimation d'état par minimisation variationnelle de
34 la fonctionnelle :math:`J` d'écart classique de "Moindres Carrés" pondérés:
36 .. math:: J(\mathbf{x})=(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.\mathbf{R}^{-1}.(\mathbf{y}^o-\mathbf{H}.\mathbf{x})
38 Il est similaire à l':ref:`section_ref_algorithm_3DVAR` privé de sa partie
39 ébauche. L'ébauche, requise dans l'interface, ne sert que de point initial pour
40 la minimisation variationnelle.
42 Dans tous les cas, il est recommandé de lui préférer
43 l':ref:`section_ref_algorithm_3DVAR` pour sa stabilité comme pour son
44 comportement lors de l'optimisation.
46 Commandes requises et optionnelles
47 ++++++++++++++++++++++++++++++++++
49 Les commandes requises générales, disponibles dans l'interface en édition, sont
52 .. include:: snippets/Background.rst
54 .. include:: snippets/Observation.rst
56 .. include:: snippets/ObservationError.rst
58 .. include:: snippets/ObservationOperator.rst
60 Les commandes optionnelles générales, disponibles dans l'interface en édition,
61 sont indiquées dans la :ref:`section_ref_assimilation_keywords`. De plus, les
62 paramètres de la commande "*AlgorithmParameters*" permettent d'indiquer les
63 options particulières, décrites ci-après, de l'algorithme. On se reportera à la
64 :ref:`section_ref_options_Algorithm_Parameters` pour le bon usage de cette
67 Les options de l'algorithme sont les suivantes:
70 .. index:: single: Minimizer
72 Cette clé permet de changer le minimiseur pour l'optimiseur. Le choix par
73 défaut est "LBFGSB", et les choix possibles sont "LBFGSB" (minimisation non
74 linéaire sous contraintes, voir [Byrd95]_, [Morales11]_ et [Zhu97]_), "TNC"
75 (minimisation non linéaire sous contraintes), "CG" (minimisation non
76 linéaire sans contraintes), "BFGS" (minimisation non linéaire sans
77 contraintes), "NCG" (minimisation de type gradient conjugué de Newton), "LM"
78 (minimisation non linéaire de type Levenberg-Marquard). Il est fortement
79 conseillé de conserver la valeur par défaut.
82 ``{"Minimizer":"LBFGSB"}``
84 .. include:: snippets/BoundsWithNone.rst
86 .. include:: snippets/MaximumNumberOfSteps.rst
88 .. include:: snippets/CostDecrementTolerance.rst
90 .. include:: snippets/ProjectedGradientTolerance.rst
92 .. include:: snippets/GradientNormTolerance.rst
94 StoreSupplementaryCalculations
95 .. index:: single: StoreSupplementaryCalculations
97 Cette liste indique les noms des variables supplémentaires qui peuvent être
98 disponibles à la fin de l'algorithme. Cela implique potentiellement des
99 calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
100 aucune de ces variables n'étant calculée et stockée par défaut. Les noms
101 possibles sont dans la liste suivante : ["BMA", "CostFunctionJ",
102 "CostFunctionJb", "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
103 "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
104 "CurrentState", "CurrentOptimum", "IndexOfOptimum", "Innovation",
105 "InnovationAtCurrentState", "OMA", "OMB",
106 "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState",
107 "SimulatedObservationAtOptimum", "SimulatedObservationAtCurrentOptimum"].
110 ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
112 *Astuce pour cet algorithme :*
114 Comme la commande *"BackgroundError"* est requise pour TOUS les algorithmes
115 de calcul dans l'interface graphique, vous devez fournir une valeur, malgré
116 le fait que cette commande n'est pas requise pour cet algorithme, et ne
117 sera pas utilisée. La manière la plus simple est de donner "1" comme un
120 Informations et variables disponibles à la fin de l'algorithme
121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
123 En sortie, après exécution de l'algorithme, on dispose d'informations et de
124 variables issues du calcul. La description des
125 :ref:`section_ref_output_variables` indique la manière de les obtenir par la
126 méthode nommée ``get`` de la variable "*ADD*" du post-processing. Les variables
127 d'entrée, mises à disposition de l'utilisateur en sortie pour faciliter
128 l'écriture des procédures de post-processing, sont décrites dans
129 l':ref:`subsection_r_o_v_Inventaire`.
131 Les sorties non conditionnelles de l'algorithme sont les suivantes:
133 .. include:: snippets/Analysis.rst
135 .. include:: snippets/CostFunctionJ.rst
137 .. include:: snippets/CostFunctionJb.rst
139 .. include:: snippets/CostFunctionJo.rst
141 Les sorties conditionnelles de l'algorithme sont les suivantes:
143 .. include:: snippets/BMA.rst
145 .. include:: snippets/CostFunctionJAtCurrentOptimum.rst
147 .. include:: snippets/CostFunctionJbAtCurrentOptimum.rst
149 .. include:: snippets/CostFunctionJoAtCurrentOptimum.rst
151 .. include:: snippets/CurrentOptimum.rst
153 .. include:: snippets/CurrentState.rst
155 .. include:: snippets/IndexOfOptimum.rst
157 .. include:: snippets/Innovation.rst
159 .. include:: snippets/InnovationAtCurrentState.rst
161 .. include:: snippets/OMA.rst
163 .. include:: snippets/OMB.rst
165 .. include:: snippets/SimulatedObservationAtBackground.rst
167 .. include:: snippets/SimulatedObservationAtCurrentOptimum.rst
169 .. include:: snippets/SimulatedObservationAtCurrentState.rst
171 .. include:: snippets/SimulatedObservationAtOptimum.rst
176 Références vers d'autres sections :
177 - :ref:`section_ref_algorithm_3DVAR`
179 Références bibliographiques :