]> SALOME platform Git repositories - modules/adao.git/blob - doc/fr/ref_algorithm_GradientTest.rst
Salome HOME
Adding examples for each optional command
[modules/adao.git] / doc / fr / ref_algorithm_GradientTest.rst
1 ..
2    Copyright (C) 2008-2014 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ée 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écroit 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écroit 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écroit à
56 partir de l'erreur faite dans le calcul du terme :math:`\nabla_xF`.
57
58 Résidu "Norm"
59 *************
60
61 On observe le résidu, qui est basé sur une approximation du gradient :
62
63 .. math:: R(\alpha) = \frac{|| F(\mathbf{x}+\alpha*\mathbf{dx}) - F(\mathbf{x}) ||}{\alpha}
64
65 qui doit rester constant jusqu'à ce que l'on atteigne la précision du calcul.
66
67 Commandes requises et optionnelles
68 ++++++++++++++++++++++++++++++++++
69
70 .. index:: single: CheckingPoint
71 .. index:: single: ObservationOperator
72 .. index:: single: AmplitudeOfInitialDirection
73 .. index:: single: EpsilonMinimumExponent
74 .. index:: single: InitialDirection
75 .. index:: single: ResiduFormula
76 .. index:: single: SetSeed
77
78 Les commandes requises générales, disponibles dans l'interface en édition, sont
79 les suivantes:
80
81   CheckingPoint
82     *Commande obligatoire*. Elle définit le vecteur utilisé comme l'état autour
83     duquel réaliser le test requis, noté :math:`\mathbf{x}` et similaire à
84     l'ébauche :math:`\mathbf{x}^b`. Sa valeur est définie comme un objet de type
85     "*Vector*".
86
87   ObservationOperator
88     *Commande obligatoire*. Elle indique l'opérateur d'observation, notée
89     précédemment :math:`H`, qui transforme les paramètres d'entrée
90     :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux
91     observations :math:`\mathbf{y}^o`.  Sa valeur est définie comme un objet de
92     type "*Function*". Différentes formes fonctionnelles peuvent être
93     utilisées, comme décrit dans la section
94     :ref:`section_ref_operator_requirements`. Si un contrôle :math:`U` est
95     inclus dans le modèle d'observation, l'opérateur doit être appliqué à une
96     paire :math:`(X,U)`.
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`. En particulier, la
100 commande optionnelle "*AlgorithmParameters*" permet d'indiquer les options
101 particulières, décrites ci-après, de l'algorithme. On se reportera à la
102 :ref:`section_ref_options_AlgorithmParameters` pour le bon usage de cette
103 commande.
104
105 Les options de l'algorithme sont les suivantes:
106
107   AmplitudeOfInitialDirection
108     Cette clé indique la mise à l'échelle de la perturbation initiale construite
109     comme un vecteur utilisé pour la dérivée directionnelle autour du point
110     nominal de vérification. La valeur par défaut est de 1, ce qui signifie pas
111     de mise à l'échelle.
112
113     Exemple : ``{"AmplitudeOfInitialDirection":0.5}``
114
115   EpsilonMinimumExponent
116     Cette clé indique la valeur de l'exposant minimal du coefficient en
117     puissance de 10 qui doit être utilisé pour faire décroître le multiplicateur
118     de l'incrément. La valeur par défaut est de -8, et elle doit être entre 0 et
119     -20. Par exemple, la valeur par défaut conduit à calculer le résidu de la
120     formule avec un incrément fixe multiplié par 1.e0 jusqu'à 1.e-8.
121
122     Exemple : ``{"EpsilonMinimumExponent":-12}``
123
124   InitialDirection
125     Cette clé indique la direction vectorielle utilisée pour la dérivée
126     directionnelle autour du point nominal de vérification. Cela doit être un
127     vecteur. Si elle n'est pas spécifiée, la direction par défaut est une
128     perturbation par défaut autour de zéro de la même taille vectorielle que le
129     point de vérification.
130
131     Exemple : ``{"InitialDirection":[0.1,0.1,100.,3}``
132
133   ResiduFormula
134     Cette clé indique la formule de résidu qui doit être utilisée pour le test.
135     Le choix par défaut est "Taylor", et les choix possibles sont "Taylor"
136     (résidu du développement de Taylor de l'opérateur, qui doit décroître comme
137     le carré de la perturbation) et "Norm" (résidu obtenu en prenant la norme du
138     développement de Taylor à l'ordre 0, qui approxime le gradient, et qui doit
139     rester constant).
140
141     Exemple : ``{"ResiduFormula":"Taylor"}``
142
143   SetSeed
144     Cette clé permet de donner un nombre entier pour fixer la graine du
145     générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est
146     par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle
147     utilise ainsi l'initialisation par défaut de l'ordinateur.
148
149     Exemple : ``{"SetSeed":1000}``
150
151 Voir aussi
152 ++++++++++
153
154 Références vers d'autres sections :
155   - :ref:`section_ref_algorithm_FunctionTest`
156   - :ref:`section_ref_algorithm_TangentTest`
157   - :ref:`section_ref_algorithm_AdjointTest`