Salome HOME
Documentation and functions minor update correction
[modules/adao.git] / doc / fr / ref_algorithm_LinearityTest.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: LinearityTest
25 .. _section_ref_algorithm_LinearityTest:
26
27 Algorithme de vérification "*LinearityTest*"
28 --------------------------------------------
29
30 Description
31 +++++++++++
32
33 Cet algorithme permet de vérifier la qualité de linéarité 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 utilisables.
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 "CenteredDL"
41 *******************
42
43 On observe le résidu suivant, provenant de la différence centrée des valeurs de
44 :math:`F` au point nominal et aux points perturbés, normalisée par la valeur au
45 point nominal :
46
47 .. math:: R(\alpha) = \frac{|| F(\mathbf{x}+\alpha*\mathbf{dx}) + F(\mathbf{x}-\alpha*\mathbf{dx}) - 2*F(\mathbf{x}) ||}{|| F(\mathbf{x}) ||}
48
49 S'il reste constamment très faible par rapport à 1, l'hypothèse de linéarité
50 de :math:`F` est vérifiée.
51
52 Si le résidu varie, ou qu'il est de l'ordre de 1 ou plus, et qu'il n'est
53 faible qu'à partir d'un certain ordre d'incrément, l'hypothèse de linéarité
54 de :math:`F` n'est pas vérifiée.
55
56 Si le résidu décroît et que la décroissance se fait en :math:`\alpha^2` selon
57 :math:`\alpha`, cela signifie que le gradient est bien calculé jusqu'au niveau
58 d'arrêt de la décroissance quadratique.
59
60 Résidu "Taylor"
61 ***************
62
63 On observe le résidu issu du développement de Taylor de la fonction :math:`F`,
64 normalisée par la valeur au point nominal :
65
66 .. math:: R(\alpha) = \frac{|| F(\mathbf{x}+\alpha*\mathbf{dx}) - F(\mathbf{x}) - \alpha * \nabla_xF(\mathbf{dx}) ||}{|| F(\mathbf{x}) ||}
67
68 S'il reste constamment très faible par rapport à 1, l'hypothèse de linéarité
69 de :math:`F` est vérifiée.
70
71 Si le résidu varie, ou qu'il est de l'ordre de 1 ou plus, et qu'il n'est
72 faible qu'à partir d'un certain ordre d'incrément, l'hypothèse de linéarité
73 de :math:`F` n'est pas vérifiée.
74
75 Si le résidu décroît et que la décroissance se fait en :math:`\alpha^2` selon
76 :math:`\alpha`, cela signifie que le gradient est bien calculé jusqu'au niveau
77 d'arrêt de la décroissance quadratique.
78
79 Résidu "NominalTaylor"
80 **********************
81
82 On observe le résidu obtenu à partir de deux approximations d'ordre 1 de
83 :math:`F(\mathbf{x})`, normalisées par la valeur au point nominal :
84
85 .. math:: R(\alpha) = \max(|| F(\mathbf{x}+\alpha*\mathbf{dx}) - \alpha * F(\mathbf{dx}) || / || F(\mathbf{x}) ||,|| F(\mathbf{x}-\alpha*\mathbf{dx}) + \alpha * F(\mathbf{dx}) || / || F(\mathbf{x}) ||)
86
87 S'il reste constamment égal à 1 à moins de 2 ou 3 pourcents prés (c'est-à-dire
88 que :math:`|R-1|` reste égal à 2 ou 3 pourcents), c'est que l'hypothèse de
89 linéarité de :math:`F` est vérifiée.
90
91 S'il est égal à 1 sur une partie seulement du domaine de variation de
92 l'incrément :math:`\alpha`, c'est sur sous-domaine que l'hypothèse de linéarité
93 de :math:`F` est vérifiée.
94
95 Résidu "NominalTaylorRMS"
96 *************************
97
98 On observe le résidu obtenu à partir de deux approximations d'ordre 1 de
99 :math:`F(\mathbf{x})`, normalisées par la valeur au point nominal, dont on
100 calcule l'écart quadratique (RMS) avec la valeur au point nominal :
101
102 .. math:: R(\alpha) = \max(RMS( F(\mathbf{x}), F(\mathbf{x}+\alpha*\mathbf{dx}) - \alpha * F(\mathbf{dx}) ) / || F(\mathbf{x}) ||,RMS( F(\mathbf{x}), F(\mathbf{x}-\alpha*\mathbf{dx}) + \alpha * F(\mathbf{dx}) ) / || F(\mathbf{x}) ||)
103
104 S'il reste constamment égal à 0 à moins de 1 ou 2 pourcents prés, c'est
105 que l'hypothèse de linéarité de F est vérifiée.
106
107 S'il est égal à 0 sur une partie seulement du domaine de variation de
108 l'incrément :math:`\alpha`, c'est sur cette partie que l'hypothèse de linéarité
109 de F est vérifiée.
110
111 Commandes requises et optionnelles
112 ++++++++++++++++++++++++++++++++++
113
114 Les commandes requises générales, disponibles dans l'interface en édition, sont
115 les suivantes:
116
117   .. include:: snippets/CheckingPoint.rst
118
119   .. include:: snippets/ObservationOperator.rst
120
121 Les commandes optionnelles générales, disponibles dans l'interface en édition,
122 sont indiquées dans la :ref:`section_ref_checking_keywords`. De plus, les
123 paramètres de la commande "*AlgorithmParameters*" permettent d'indiquer les
124 options particulières, décrites ci-après, de l'algorithme. On se reportera à la
125 :ref:`section_ref_options_Algorithm_Parameters` pour le bon usage de cette
126 commande.
127
128 Les options de l'algorithme sont les suivantes:
129
130   .. include:: snippets/AmplitudeOfInitialDirection.rst
131
132   .. include:: snippets/EpsilonMinimumExponent.rst
133
134   .. include:: snippets/InitialDirection.rst
135
136   .. include:: snippets/SetSeed.rst
137
138   ResiduFormula
139     .. index:: single: ResiduFormula
140
141     Cette clé indique la formule de résidu qui doit être utilisée pour le test.
142     Le choix par défaut est "CenteredDL", et les choix possibles sont
143     "CenteredDL" (résidu de la différence entre la fonction au point nominal et
144     ses valeurs avec des incréments positif et négatif, qui doit rester très
145     faible), "Taylor" (résidu du développement de Taylor de l'opérateur
146     normalisé par sa valeur nominal, qui doit rester très faible),
147     "NominalTaylor" (résidu de l'approximation à l'ordre 1 de l'opérateur,
148     normalisé au point nominal, qui doit rester proche de 1), et
149     "NominalTaylorRMS" (résidu de l'approximation à l'ordre 1 de l'opérateur,
150     normalisé par l'écart quadratique moyen (RMS) au point nominal, qui doit
151     rester proche de 0).
152
153     Exemple :
154     ``{"ResiduFormula":"CenteredDL"}``
155
156   StoreSupplementaryCalculations
157     .. index:: single: StoreSupplementaryCalculations
158
159     Cette liste indique les noms des variables supplémentaires qui peuvent être
160     disponibles à la fin de l'algorithme. Cela implique potentiellement des
161     calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
162     aucune de ces variables n'étant calculée et stockée par défaut. Les noms
163     possibles sont dans la liste suivante : ["CurrentState", "Residu",
164     "SimulatedObservationAtCurrentState"].
165
166     Exemple :
167     ``{"StoreSupplementaryCalculations":["CurrentState"]}``
168
169 Informations et variables disponibles à la fin de l'algorithme
170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
171
172 En sortie, après exécution de l'algorithme, on dispose d'informations et de
173 variables issues du calcul. La description des
174 :ref:`section_ref_output_variables` indique la manière de les obtenir par la
175 méthode nommée ``get`` de la variable "*ADD*" du post-processing. Les variables
176 d'entrée, mises à disposition de l'utilisateur en sortie pour faciliter
177 l'écriture des procédures de post-processing, sont décrites dans
178 l':ref:`subsection_r_o_v_Inventaire`.
179
180 Les sorties non conditionnelles de l'algorithme sont les suivantes:
181
182   .. include:: snippets/Residu.rst
183
184 Les sorties conditionnelles de l'algorithme sont les suivantes:
185
186   .. include:: snippets/CurrentState.rst
187
188   .. include:: snippets/SimulatedObservationAtCurrentState.rst
189
190 Voir aussi
191 ++++++++++
192
193 Références vers d'autres sections :
194   - :ref:`section_ref_algorithm_FunctionTest`