]> SALOME platform Git repositories - modules/adao.git/blob - doc/fr/ref_algorithm_AdjointTest.rst
Salome HOME
Updating copyright date information and version
[modules/adao.git] / doc / fr / ref_algorithm_AdjointTest.rst
1 ..
2    Copyright (C) 2008-2015 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: AdjointTest
25 .. _section_ref_algorithm_AdjointTest:
26
27 Algorithme de vérification "*AdjointTest*"
28 ------------------------------------------
29
30 Description
31 +++++++++++
32
33 Cet algorithme permet de vérifier la qualité de l'opérateur adjoint, en
34 calculant un résidu dont les propriétés théoriques sont connues.
35
36 On observe le résidu suivant, qui est la différence de deux produits scalaires :
37
38 .. math:: R(\alpha) = | < TangentF_x(\mathbf{dx}) , \mathbf{y} > - < \mathbf{dx} , AdjointF_x(\mathbf{y}) > |
39
40 qui doit rester constamment égal à zéro à la précision du calcul. On prend
41 :math:`\mathbf{dx}_0=Normal(0,\mathbf{x})` et
42 :math:`\mathbf{dx}=\alpha*\mathbf{dx}_0`. :math:`F` est le code de calcul.
43 :math:`\mathbf{y}` doit être dans l'image de :math:`F`. S'il n'est pas donné, on
44 prend :math:`\mathbf{y} = F(\mathbf{x})`.
45
46 Commandes requises et optionnelles
47 ++++++++++++++++++++++++++++++++++
48
49 .. index:: single: CheckingPoint
50 .. index:: single: ObservationOperator
51 .. index:: single: AmplitudeOfInitialDirection
52 .. index:: single: EpsilonMinimumExponent
53 .. index:: single: InitialDirection
54 .. index:: single: SetSeed
55
56 Les commandes requises générales, disponibles dans l'interface en édition, sont
57 les suivantes:
58
59   CheckingPoint
60     *Commande obligatoire*. Elle définit le vecteur utilisé comme l'état autour
61     duquel réaliser le test requis, noté :math:`\mathbf{x}` et similaire à
62     l'ébauche :math:`\mathbf{x}^b`. Sa valeur est définie comme un objet de type
63     "*Vector*".
64
65   ObservationOperator
66     *Commande obligatoire*. Elle indique l'opérateur d'observation, notée
67     précédemment :math:`H`, qui transforme les paramètres d'entrée
68     :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux
69     observations :math:`\mathbf{y}^o`.  Sa valeur est définie comme un objet de
70     type "*Function*". Différentes formes fonctionnelles peuvent être
71     utilisées, comme décrit dans la section
72     :ref:`section_ref_operator_requirements`. Si un contrôle :math:`U` est
73     inclus dans le modèle d'observation, l'opérateur doit être appliqué à une
74     paire :math:`(X,U)`.
75
76 Les commandes optionnelles générales, disponibles dans l'interface en édition,
77 sont indiquées dans la :ref:`section_ref_checking_keywords`. En particulier, la
78 commande optionnelle "*AlgorithmParameters*" permet d'indiquer les options
79 particulières, décrites ci-après, de l'algorithme. On se reportera à la
80 :ref:`section_ref_options_AlgorithmParameters` pour le bon usage de cette
81 commande.
82
83 Les options de l'algorithme sont les suivantes:
84
85   AmplitudeOfInitialDirection
86     Cette clé indique la mise à l'échelle de la perturbation initiale construite
87     comme un vecteur utilisé pour la dérivée directionnelle autour du point
88     nominal de vérification. La valeur par défaut est de 1, ce qui signifie pas
89     de mise à l'échelle.
90
91     Exemple : ``{"AmplitudeOfInitialDirection":0.5}``
92
93   EpsilonMinimumExponent
94     Cette clé indique la valeur de l'exposant minimal du coefficient en
95     puissance de 10 qui doit être utilisé pour faire décroître le multiplicateur
96     de l'incrément. La valeur par défaut est de -8, et elle doit être entre 0 et
97     -20. Par exemple, la valeur par défaut conduit à calculer le résidu de la
98     formule avec un incrément fixe multiplié par 1.e0 jusqu'à 1.e-8.
99
100     Exemple : ``{"EpsilonMinimumExponent":-12}``
101
102   InitialDirection
103     Cette clé indique la direction vectorielle utilisée pour la dérivée
104     directionnelle autour du point nominal de vérification. Cela doit être un
105     vecteur. Si elle n'est pas spécifiée, la direction par défaut est une
106     perturbation par défaut autour de zéro de la même taille vectorielle que le
107     point de vérification.
108
109     Exemple : ``{"InitialDirection":[0.1,0.1,100.,3}``
110
111   SetSeed
112     Cette clé permet de donner un nombre entier pour fixer la graine du
113     générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est
114     par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle
115     utilise ainsi l'initialisation par défaut de l'ordinateur.
116
117     Exemple : ``{"SetSeed":1000}``
118
119 Voir aussi
120 ++++++++++
121
122 Références vers d'autres sections :
123   - :ref:`section_ref_algorithm_FunctionTest`
124   - :ref:`section_ref_algorithm_TangentTest`
125   - :ref:`section_ref_algorithm_GradientTest`