]> SALOME platform Git repositories - modules/adao.git/blob - doc/fr/ref_algorithm_GradientTest.rst
Salome HOME
Documentation and functions minor update correction
[modules/adao.git] / doc / fr / ref_algorithm_GradientTest.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: GradientTest
25 .. _section_ref_algorithm_GradientTest:
26
27 Algorithme de vérification "*GradientTest*"
28 -------------------------------------------
29
30 Description
31 +++++++++++
32
33 Cet algorithme permet de vérifier la qualité du gradient de l'opérateur, en
34 calculant un résidu dont les propriétés théoriques sont connues. Plusieurs
35 formules de résidu sont disponibles.
36
37 Dans tous les cas, on prend :math:`\mathbf{dx}_0=Normal(0,\mathbf{x})` et
38 :math:`\mathbf{dx}=\alpha*\mathbf{dx}_0`. :math:`F` est le code de calcul.
39
40 Résidu "Taylor"
41 ***************
42
43 On observe le résidu issu du développement de Taylor de la fonction :math:`F`,
44 normalisé par la valeur au point nominal :
45
46 .. math:: R(\alpha) = \frac{|| F(\mathbf{x}+\alpha*\mathbf{dx}) - F(\mathbf{x}) - \alpha * \nabla_xF(\mathbf{dx}) ||}{|| F(\mathbf{x}) ||}
47
48 Si le résidu décroît et que la décroissance se fait en :math:`\alpha^2` selon
49 :math:`\alpha`, cela signifie que le gradient est bien calculé jusqu'à la
50 précision d'arrêt de la décroissance quadratique, et que :math:`F` n'est pas
51 linéaire.
52
53 Si le résidu décroît et que la décroissance se fait en :math:`\alpha` selon
54 :math:`\alpha`, jusqu'à un certain seuil après lequel le résidu est faible et
55 constant, cela signifie que :math:`F` est linéaire et que le résidu décroît à
56 partir de l'erreur faite dans le calcul du terme :math:`\nabla_xF`.
57
58 Résidu "TaylorOnNorm"
59 *********************
60
61 On observe le résidu issu du développement de Taylor de la fonction :math:`F`,
62 rapporté au paramètre :math:`\alpha` au carré :
63
64 .. math:: R(\alpha) = \frac{|| F(\mathbf{x}+\alpha*\mathbf{dx}) - F(\mathbf{x}) - \alpha * \nabla_xF(\mathbf{dx}) ||}{\alpha^2}
65
66 C'est un résidu essentiellement similaire au critère classique de Taylor décrit
67 précédemment, mais son comportement peut différer selon les propriétés
68 numériques des calculs de ses différents termes.
69
70 Si le résidu est constant jusqu'à un certain seuil et croissant ensuite, cela
71 signifie que le gradient est bien calculé jusqu'à cette précision d'arrêt, et
72 que :math:`F` n'est pas linéaire.
73
74 Si le résidu est systématiquement croissant en partant d'une valeur faible par
75 rapport à :math:`||F(\mathbf{x})||`, cela signifie que :math:`F` est
76 (quasi-)linéaire et que le calcul du gradient est correct jusqu'au moment où le
77 résidu est de l'ordre de grandeur de :math:`||F(\mathbf{x})||`.
78
79 Résidu "Norm"
80 *************
81
82 On observe le résidu, qui est basé sur une approximation du gradient :
83
84 .. math:: R(\alpha) = \frac{|| F(\mathbf{x}+\alpha*\mathbf{dx}) - F(\mathbf{x}) ||}{\alpha}
85
86 qui doit rester constant jusqu'à ce que l'on atteigne la précision du calcul.
87
88 Commandes requises et optionnelles
89 ++++++++++++++++++++++++++++++++++
90
91 Les commandes requises générales, disponibles dans l'interface en édition, sont
92 les suivantes:
93
94   .. include:: snippets/CheckingPoint.rst
95
96   .. include:: snippets/ObservationOperator.rst
97
98 Les commandes optionnelles générales, disponibles dans l'interface en édition,
99 sont indiquées dans la :ref:`section_ref_checking_keywords`. De plus, les
100 paramètres de la commande "*AlgorithmParameters*" permettent d'indiquer les
101 options particulières, décrites ci-après, de l'algorithme. On se reportera à la
102 :ref:`section_ref_options_Algorithm_Parameters` pour le bon usage de cette
103 commande.
104
105 Les options de l'algorithme sont les suivantes:
106
107   .. include:: snippets/AmplitudeOfInitialDirection.rst
108
109   .. include:: snippets/EpsilonMinimumExponent.rst
110
111   .. include:: snippets/InitialDirection.rst
112
113   .. include:: snippets/SetSeed.rst
114
115   ResiduFormula
116     .. index:: single: ResiduFormula
117
118     Cette clé indique la formule de résidu qui doit être utilisée pour le test.
119     Le choix par défaut est "Taylor", et les choix possibles sont "Taylor"
120     (résidu du développement de Taylor normalisé de l'opérateur, qui doit
121     décroître comme le carré de la perturbation), "TaylorOnNorm" (résidu du
122     développement de Taylor rapporté à la perturbation de l'opérateur, qui doit
123     rester constant) et "Norm" (résidu obtenu en prenant la norme du
124     développement de Taylor à l'ordre 0, qui approxime le gradient, et qui doit
125     rester constant).
126
127     Exemple :
128     ``{"ResiduFormula":"Taylor"}``
129
130   StoreSupplementaryCalculations
131     .. index:: single: StoreSupplementaryCalculations
132
133     Cette liste indique les noms des variables supplémentaires qui peuvent être
134     disponibles à la fin de l'algorithme. Cela implique potentiellement des
135     calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
136     aucune de ces variables n'étant calculée et stockée par défaut. Les noms
137     possibles sont dans la liste suivante : ["CurrentState", "Residu",
138     "SimulatedObservationAtCurrentState"].
139
140     Exemple :
141     ``{"StoreSupplementaryCalculations":["CurrentState"]}``
142
143 Informations et variables disponibles à la fin de l'algorithme
144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
145
146 En sortie, après exécution de l'algorithme, on dispose d'informations et de
147 variables issues du calcul. La description des
148 :ref:`section_ref_output_variables` indique la manière de les obtenir par la
149 méthode nommée ``get`` de la variable "*ADD*" du post-processing. Les variables
150 d'entrée, mises à disposition de l'utilisateur en sortie pour faciliter
151 l'écriture des procédures de post-processing, sont décrites dans
152 l':ref:`subsection_r_o_v_Inventaire`.
153
154 Les sorties non conditionnelles de l'algorithme sont les suivantes:
155
156   .. include:: snippets/Residu.rst
157
158 Les sorties conditionnelles de l'algorithme sont les suivantes:
159
160   .. include:: snippets/CurrentState.rst
161
162   .. include:: snippets/SimulatedObservationAtCurrentState.rst
163
164 Voir aussi
165 ++++++++++
166
167 Références vers d'autres sections :
168   - :ref:`section_ref_algorithm_FunctionTest`
169   - :ref:`section_ref_algorithm_LinearityTest`
170   - :ref:`section_ref_algorithm_TangentTest`
171   - :ref:`section_ref_algorithm_AdjointTest`