14.6. Algorithme de vérification « LocalSensitivityTest »

Avertissement

Dans la présente version, cet algorithme ou certaines de ses variantes sont expérimentaux, et restent donc susceptibles de changements dans les prochaines versions.

Description

Cet algorithme permet d’établir la valeur de la Jacobienne de l’opérateur H par rapport aux variables d’entrée \mathbf{x}. Cet opérateur intervient dans la relation :

\mathbf{y} = H(\mathbf{x})

(voir [DocT] Une brève introduction à l’Assimilation de Données et à l’Optimisation pour de plus amples explications). Cette jacobienne est l’opérateur linéarisé (ou opérateur tangent) \mathbf{H} de H autour du point de vérification choisi.

Commandes requises et optionnelles

Les commandes générales requises, disponibles en édition dans l’interface graphique ou textuelle, sont les suivantes :

CheckingPoint
Vecteur. La variable désigne le vecteur utilisé comme l’état autour duquel réaliser le test requis, noté \mathbf{x}, similaire à l’ébauche \mathbf{x}^b. Sa valeur est définie comme un objet de type « Vector » ou « VectorSerie ». Sa disponibilité en sortie est conditionnée par le booléen « Stored » associé en entrée.
Observation
Liste de vecteurs. La variable désigne le vecteur d’observation utilisé en assimilation de données ou en optimisation, et usuellement noté \mathbf{y}^o. Sa valeur est définie comme un objet de type « Vector » si c’est une unique observation (temporelle ou pas) ou « VectorSerie » si c’est une succession d’observations. Sa disponibilité en sortie est conditionnée par le booléen « Stored » associé en entrée.

Remarque : l’observation n’étant utilisé que pour renforcer la vérification des dimensions, elle peut donc être fournie comme un vecteur non réaliste de la bonne taille. Exemple : numpy.ones(<nombre d'observations>)

ObservationOperator
Opérateur. La variable désigne l’opérateur d’observation, usuellement noté H, qui transforme les paramètres d’entrée \mathbf{x} en résultats \mathbf{y} qui sont à comparer aux observations \mathbf{y}^o. Sa valeur est définie comme un objet de type « Function » ou de type « Matrix ». Dans le cas du type « Function », différentes formes fonctionnelles peuvent être utilisées, comme décrit dans la section Conditions requises pour les fonctions décrivant un opérateur. Si un contrôle U est inclus dans le modèle d’observation, l’opérateur doit être appliqué à une paire (X,U).

Les commandes optionnelles générales, disponibles en édition dans l’interface graphique ou textuelle, sont indiquées dans la Liste des commandes et mots-clés pour un cas de vérification. 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 Description des options d’un algorithme par « AlgorithmParameters » pour le bon usage de cette commande.

Les options sont les suivantes :

SetDebug

Valeur booléenne. La variable conduit à l’activation, ou pas, du mode de débogage durant l’évaluation de la fonction ou de l’opérateur. La valeur par défaut est « True », les choix sont « True » ou « False ».

Exemple : {"SetDebug":False}

StoreSupplementaryCalculations

Liste de noms. Cette liste indique les noms des variables supplémentaires, qui peuvent être disponibles au cours du déroulement ou à la fin de l’algorithme, si elles sont initialement demandées par l’utilisateur. Leur disponibilité implique, potentiellement, des calculs ou du stockage coûteux. La valeur par défaut est donc une liste vide, aucune de ces variables n’étant calculée et stockée par défaut (sauf les variables inconditionnelles). Les noms possibles pour les variables supplémentaires sont dans la liste suivante (la description détaillée de chaque variable nommée est donnée dans la suite de cette documentation par algorithme spécifique, dans la sous-partie « Informations et variables disponibles à la fin de l’algorithme ») : [ « CurrentState », « JacobianMatrixAtCurrentState », « SimulatedObservationAtCurrentState », ].

Exemple : {"StoreSupplementaryCalculations":["BMA", "CurrentState"]}

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 Variables et informations disponibles en sortie indique la manière de les obtenir par la méthode nommée get, de la variable « ADD » du post-processing en interface graphique, ou du cas en interface textuelle. 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”Inventaire des informations potentiellement disponibles en sortie.

Sorties permanentes (non conditionnelles)

Les sorties non conditionnelles de l’algorithme sont les suivantes :

JacobianMatrixAtCurrentState

Liste de matrices. Chaque élément est une matrice jacobienne de dérivées partielles de la sortie de l’opérateur d’observation par rapport aux paramètres d’entrée, une colonne de dérivées par paramètre. Le calcul est effectué à l’état courant.

Exemple: GradH = ADD.get("JacobianMatrixAtCurrentState")[-1]

Ensemble des sorties à la demande (conditionnelles ou non)

L’ensemble des sorties (conditionnelles ou non) de l’algorithme, classées par ordre alphabétique, est le suivant :

CurrentState

Liste de vecteurs. Chaque élément est un vecteur d’état courant utilisé au cours du déroulement itératif de l’algorithme utilisé.

Exemple : Xs = ADD.get("CurrentState")[:]

JacobianMatrixAtCurrentState

Liste de matrices. Chaque élément est une matrice jacobienne de dérivées partielles de la sortie de l’opérateur d’observation par rapport aux paramètres d’entrée, une colonne de dérivées par paramètre. Le calcul est effectué à l’état courant.

Exemple: GradH = ADD.get("JacobianMatrixAtCurrentState")[-1]

SimulatedObservationAtCurrentState

Liste de vecteurs. Chaque élément est un vecteur d’observation simulé par l’opérateur d’observation à partir de l’état courant, c’est-à-dire dans l’espace des observations.

Exemple : hxs = ADD.get("SimulatedObservationAtCurrentState")[-1]