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