Salome HOME
Updating copyright date information
[modules/adao.git] / doc / fr / ref_algorithm_ExtendedKalmanFilter.rst
index aac32edc8b0e9cf1228ba64bb826f23934a4e184..92d3b02363767f5ad80c1154a20835535cafca86 100644 (file)
@@ -1,5 +1,5 @@
 ..
-   Copyright (C) 2008-2015 EDF R&D
+   Copyright (C) 2008-2016 EDF R&D
 
    This file is part of SALOME ADAO module.
 
@@ -31,12 +31,13 @@ Description
 +++++++++++
 
 Cet algorithme réalise une estimation de l'état d'un système dynamique par un
-filtre de Kalman étendu, utilisant un calcul non linéaire de l'état et de l'évolution
-incrémentale (processus).
+filtre de Kalman étendu, utilisant un calcul non linéaire de l'état et de
+l'évolution incrémentale (processus).
 
 Commandes requises et optionnelles
 ++++++++++++++++++++++++++++++++++
 
+.. index:: single: AlgorithmParameters
 .. index:: single: Background
 .. index:: single: BackgroundError
 .. index:: single: Observation
@@ -45,7 +46,6 @@ Commandes requises et optionnelles
 .. index:: single: Bounds
 .. index:: single: ConstrainedBy
 .. index:: single: EstimationOf
-.. index:: single: StoreInternalVariables
 .. index:: single: StoreSupplementaryCalculations
 
 Les commandes requises générales, disponibles dans l'interface en édition, sont
@@ -86,10 +86,10 @@ les suivantes:
     appliqué à une paire :math:`(X,U)`.
 
 Les commandes optionnelles générales, disponibles dans l'interface en édition,
-sont indiquées dans la :ref:`section_ref_assimilation_keywords`. En particulier,
-la commande optionnelle "*AlgorithmParameters*" permet d'indiquer les options
-particulières, décrites ci-après, de l'algorithme. On se reportera à la
-:ref:`section_ref_options_AlgorithmParameters` pour le bon usage de cette
+sont indiquées dans la :ref:`section_ref_assimilation_keywords`. De plus, les
+paramètres de la commande "*AlgorithmParameters*" permettent d'indiquer les
+options particulières, décrites ci-après, de l'algorithme. On se reportera à la
+:ref:`section_ref_options_Algorithm_Parameters` pour le bon usage de cette
 commande.
 
 Les options de l'algorithme sont les suivantes:
@@ -103,6 +103,13 @@ Les options de l'algorithme sont les suivantes:
 
     Exemple : ``{"Bounds":[[2.,5.],[1.e-2,10.],[-30.,1.e99],[-1.e99,1.e99]]}``
 
+  ConstrainedBy
+    Cette clé permet d'indiquer la méthode de prise en compte des contraintes de
+    bornes. La seule disponible est "EstimateProjection", qui projete
+    l'estimation de l'état courant sur les contraintes de bornes.
+
+    Exemple : ``{"ConstrainedBy":"EstimateProjection"}``
+
   EstimationOf
     Cette clé permet de choisir le type d'estimation à réaliser. Cela peut être
     soit une estimation de l'état, avec la valeur "State", ou une estimation de
@@ -110,23 +117,100 @@ Les options de l'algorithme sont les suivantes:
 
     Exemple : ``{"EstimationOf":"Parameters"}``
 
-  StoreInternalVariables
-    Cette clé booléenne permet de stocker les variables internes par défaut,
-    principalement l'état courant lors d'un processus itératif. Attention, cela
-    peut être un choix numériquement coûteux dans certains cas de calculs. La
-    valeur par défaut est "False".
-
-    Exemple : ``{"StoreInternalVariables":True}``
-
   StoreSupplementaryCalculations
     Cette liste indique les noms des variables supplémentaires qui peuvent être
     disponibles à la fin de l'algorithme. Cela implique potentiellement des
     calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
     aucune de ces variables n'étant calculée et stockée par défaut. Les noms
-    possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA",
+    possibles sont dans la liste suivante : ["APosterioriCorrelations",
+    "APosterioriCovariance", "APosterioriStandardDeviations",
+    "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState",
     "Innovation"].
 
-    Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
+    Exemple : ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
+
+Informations et variables disponibles à la fin de l'algorithme
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+En sortie, après exécution de l'algorithme, on dispose d'informations et de
+variables issues du calcul. La description des
+:ref:`section_ref_output_variables` indique la manière de les obtenir par la
+méthode nommée ``get`` de la variable "*ADD*" du post-processing. Les variables
+d'entrée, mises à disposition de l'utilisateur en sortie pour faciliter
+l'écriture des procédures de post-processing, sont décrites dans
+l':ref:`subsection_r_o_v_Inventaire`.
+
+Les sorties non conditionnelles de l'algorithme sont les suivantes:
+
+  Analysis
+    *Liste de vecteurs*. Chaque élément est un état optimal :math:`\mathbf{x}*`
+    en optimisation ou une analyse :math:`\mathbf{x}^a` en assimilation de
+    données.
+
+    Exemple : ``Xa = ADD.get("Analysis")[-1]``
+
+Les sorties conditionnelles de l'algorithme sont les suivantes:
+
+  APosterioriCorrelations
+    *Liste de matrices*. Chaque élément est une matrice de corrélation des
+    erreurs *a posteriori* de l'état optimal.
+
+    Exemple : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
+  APosterioriCovariance
+    *Liste de matrices*. Chaque élément est une matrice :math:`\mathbf{A}*` de
+    covariances des erreurs *a posteriori* de l'état optimal.
+
+    Exemple : ``A = ADD.get("APosterioriCovariance")[-1]``
+
+  APosterioriStandardDeviations
+    *Liste de matrices*. Chaque élément est une matrice d'écart-types des
+    erreurs *a posteriori* de l'état optimal.
+
+    Exemple : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+  APosterioriVariances
+    *Liste de matrices*. Chaque élément est une matrice de variances des erreurs
+    *a posteriori* de l'état optimal.
+
+    Exemple : ``V = ADD.get("APosterioriVariances")[-1]``
+
+  BMA
+    *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
+    l'ébauche et l'état optimal.
+
+    Exemple : ``bma = ADD.get("BMA")[-1]``
+
+  CostFunctionJ
+    *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
+    :math:`J`.
+
+    Exemple : ``J = ADD.get("CostFunctionJ")[:]``
+
+  CostFunctionJb
+    *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
+    :math:`J^b`, c'est-à-dire de la partie écart à l'ébauche.
+
+    Exemple : ``Jb = ADD.get("CostFunctionJb")[:]``
+
+  CostFunctionJo
+    *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
+    :math:`J^o`, c'est-à-dire de la partie écart à l'observation.
+
+    Exemple : ``Jo = ADD.get("CostFunctionJo")[:]``
+
+  CurrentState
+    *Liste de vecteurs*. Chaque élément est un vecteur d'état courant utilisé
+    au cours du déroulement de l'algorithme d'optimisation.
+
+    Exemple : ``Xs = ADD.get("CurrentState")[:]``
+
+  Innovation
+    *Liste de vecteurs*. Chaque élément est un vecteur d'innovation, qui est
+    en statique l'écart de l'optimum à l'ébauche, et en dynamique l'incrément
+    d'évolution.
+
+    Exemple : ``d = ADD.get("Innovation")[-1]``
 
 Voir aussi
 ++++++++++