are in the following list: ["APosterioriCorrelations",
"APosterioriCovariance", "APosterioriStandardDeviations",
"APosterioriVariances", "BMA", "CostFunctionJ", "CostFunctionJb",
- "CostFunctionJo", "CostFunctionJAtCurrentOptimum", "CurrentOptimum",
- "CurrentState", "IndexOfOptimum", "Innovation", "InnovationAtCurrentState",
- "MahalanobisConsistency", "OMA", "OMB", "SigmaObs2",
- "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentOptimum",
+ "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
+ "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
+ "CurrentOptimum", "CurrentState", "IndexOfOptimum", "Innovation",
+ "InnovationAtCurrentState", "MahalanobisConsistency", "OMA", "OMB",
+ "SigmaObs2", "SimulatedObservationAtBackground",
+ "SimulatedObservationAtCurrentOptimum",
"SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum",
"SimulationQuantiles"].
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["BMA", "CostFunctionJ", "CostFunctionJb",
- "CostFunctionJo", "CostFunctionJAtCurrentOptimum", "CurrentOptimum",
- "CurrentState", "IndexOfOptimum"].
+ are in the following list: ["BMA", "CostFunctionJ",
+ "CostFunctionJb", "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
+ "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
+ "CurrentOptimum", "CurrentState", "IndexOfOptimum"].
Example : ``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["CurrentState", "CostFunctionJ",
+ are in the following list: ["BMA", "CostFunctionJ",
"CostFunctionJb", "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
- "CurrentOptimum", "IndexOfOptimum", "InnovationAtCurrentState", "BMA",
- "OMA", "OMB", "SimulatedObservationAtBackground",
- "SimulatedObservationAtCurrentOptimum",
+ "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
+ "CurrentOptimum", "CurrentState", "IndexOfOptimum",
+ "InnovationAtCurrentState", "OMA", "OMB",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentOptimum",
"SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"].
Example : ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
The conditional outputs of the algorithm are the following:
+ CostFunctionJAtCurrentOptimum
+ *List of values*. Each element is a value of the error function :math:`J`.
+ At each step, the value corresponds to the optimal state found from the
+ beginning.
+
+ Example : ``JACO = ADD.get("CostFunctionJAtCurrentOptimum")[:]``
+
+ CostFunctionJbAtCurrentOptimum
+ *List of values*. Each element is a value of the error function :math:`J^b`,
+ that is of the background difference part. At each step, the value
+ corresponds to the optimal state found from the beginning.
+
+ Example : ``JbACO = ADD.get("CostFunctionJbAtCurrentOptimum")[:]``
+
+ CostFunctionJoAtCurrentOptimum
+ *List of values*. Each element is a value of the error function :math:`J^o`,
+ that is of the observation difference part. At each step, the value
+ corresponds to the optimal state found from the beginning.
+
+ Example : ``JoACO = ADD.get("CostFunctionJoAtCurrentOptimum")[:]``
+
+ CurrentOptimum
+ *List of vectors*. Each element is the optimal state obtained at the current
+ step of the optimization algorithm. It is not necessarily the last state.
+
+ Example : ``Xo = ADD.get("CurrentOptimum")[:]``
+
+ IndexOfOptimum
+ *List of integers*. Each element is the iteration index of the optimum
+ obtained at the current step the optimization algorithm. It is not
+ necessarily the number of the last iteration.
+
+ Example : ``i = ADD.get("IndexOfOptimum")[-1]``
+
+ InnovationAtCurrentState
+ *List of vectors*. Each element is an innovation vector at current state.
+
+ Example : ``ds = ADD.get("InnovationAtCurrentState")[-1]``
+
+ OMA
+ *List of vectors*. Each element is a vector of difference between the
+ observation and the optimal state in the observation space.
+
+ Example : ``oma = ADD.get("OMA")[-1]``
+
+ OMB
+ *List of vectors*. Each element is a vector of difference between the
+ observation and the background state in the observation space.
+
+ Example : ``omb = ADD.get("OMB")[-1]``
+
SimulatedObservationAtBackground
*List of vectors*. Each element is a vector of observation simulated from
the background :math:`\mathbf{x}^b`.
Example : ``hxb = ADD.get("SimulatedObservationAtBackground")[-1]``
+ SimulatedObservationAtCurrentOptimum
+ *List of vectors*. Each element is a vector of observation simulated from
+ the optimal state obtained at the current step the optimization algorithm,
+ that is, in the observation space.
+
+ Example : ``hxo = ADD.get("SimulatedObservationAtCurrentOptimum")[-1]``
+
SimulatedObservationAtCurrentState
*List of vectors*. Each element is an observed vector at the current state,
that is, in the observation space.
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["BMA", "CostFunctionJ", "CostFunctionJb",
- "CostFunctionJo", "CurrentState", "OMA", "OMB", "Innovation",
- "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"].
+ are in the following list: ["BMA", "CostFunctionJ",
+ "CostFunctionJb", "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
+ "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
+ "CurrentState", "CurrentOptimum", "IndexOfOptimum", "Innovation",
+ "InnovationAtCurrentState", "OMA", "OMB",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState",
+ "SimulatedObservationAtOptimum", "SimulatedObservationAtCurrentOptimum"].
Example : ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
Example : ``Xs = ADD.get("CurrentState")[:]``
+ IndexOfOptimum
+ *List of integers*. Each element is the iteration index of the optimum
+ obtained at the current step the optimization algorithm. It is not
+ necessarily the number of the last iteration.
+
+ Example : ``i = ADD.get("IndexOfOptimum")[-1]``
+
Innovation
*List of vectors*. Each element is an innovation vector, which is in static
the difference between the optimal and the background, and in dynamic the
Example : ``d = ADD.get("Innovation")[-1]``
+ InnovationAtCurrentState
+ *List of vectors*. Each element is an innovation vector at current state.
+
+ Example : ``ds = ADD.get("InnovationAtCurrentState")[-1]``
+
OMA
*List of vectors*. Each element is a vector of difference between the
observation and the optimal state in the observation space.
Example : ``omb = ADD.get("OMB")[-1]``
+ SimulatedObservationAtBackground
+ *List of vectors*. Each element is a vector of observation simulated from
+ the background :math:`\mathbf{x}^b`.
+
+ Example : ``hxb = ADD.get("SimulatedObservationAtBackground")[-1]``
+
+ SimulatedObservationAtCurrentOptimum
+ *List of vectors*. Each element is a vector of observation simulated from
+ the optimal state obtained at the current step the optimization algorithm,
+ that is, in the observation space.
+
+ Example : ``hxo = ADD.get("SimulatedObservationAtCurrentOptimum")[-1]``
+
SimulatedObservationAtCurrentState
*List of vectors*. Each element is an observed vector at the current state,
that is, in the observation space.
commands, the ``case`` object name of the ADAO TUI calculation case being let
free to the user choice::
- from numpy import array
+ from numpy import array, matrix
import adaoBuilder
case = adaoBuilder.New()
Cette clé permet de définir des bornes supérieure et inférieure pour chaque
variable d'état optimisée. Les bornes doivent être données par une liste de
liste de paires de bornes inférieure/supérieure pour chaque variable, avec
- une valeur ``None`` chaque fois qu'il n'y a pas de borne. Les bornes peuvent
- toujours être spécifiées, mais seuls les optimiseurs sous contraintes les
- prennent en compte.
+ une valeur ``None`` chaque fois qu'il n'y a pas de borne. Les bornes
+ peuvent toujours être spécifiées, mais seuls les optimiseurs sous
+ contraintes les prennent en compte.
Exemple : ``{"Bounds":[[2.,5.],[1.e-2,10.],[-30.,None],[None,None]]}``
possibles sont dans la liste suivante : ["APosterioriCorrelations",
"APosterioriCovariance", "APosterioriStandardDeviations",
"APosterioriVariances", "BMA", "CostFunctionJ", "CostFunctionJb",
- "CostFunctionJo", "CostFunctionJAtCurrentOptimum", "CurrentOptimum",
- "CurrentState", "IndexOfOptimum", "Innovation", "InnovationAtCurrentState",
- "MahalanobisConsistency", "OMA", "OMB", "SigmaObs2",
- "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentOptimum",
+ "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
+ "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
+ "CurrentOptimum", "CurrentState", "IndexOfOptimum", "Innovation",
+ "InnovationAtCurrentState", "MahalanobisConsistency", "OMA", "OMB",
+ "SigmaObs2", "SimulatedObservationAtBackground",
+ "SimulatedObservationAtCurrentOptimum",
"SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum",
"SimulationQuantiles"].
aucune de ces variables n'étant calculée et stockée par défaut. Les noms
possibles sont dans la liste suivante : ["BMA", "CostFunctionJ",
"CostFunctionJb", "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
+ "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
"CurrentOptimum", "CurrentState", "IndexOfOptimum"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA", "CurrentState"]}``
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 : ["CurrentState", "CostFunctionJ",
+ possibles sont dans la liste suivante : ["BMA", "CostFunctionJ",
"CostFunctionJb", "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
- "CurrentOptimum", "IndexOfOptimum", "InnovationAtCurrentState", "BMA",
- "OMA", "OMB", "SimulatedObservationAtBackground",
- "SimulatedObservationAtCurrentOptimum",
+ "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
+ "CurrentOptimum", "CurrentState", "IndexOfOptimum",
+ "InnovationAtCurrentState", "OMA", "OMB",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentOptimum",
"SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
Les sorties conditionnelles de l'algorithme sont les suivantes:
+ CostFunctionJAtCurrentOptimum
+ *Liste de valeurs*. Chaque élément est une valeur de fonctionnelle d'écart
+ :math:`J`. A chaque pas, la valeur correspond à l'état optimal trouvé depuis
+ le début.
+
+ Exemple : ``JACO = ADD.get("CostFunctionJAtCurrentOptimum")[:]``
+
+ CostFunctionJbAtCurrentOptimum
+ *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. A chaque pas, la
+ valeur correspond à l'état optimal trouvé depuis le début.
+
+ Exemple : ``JbACO = ADD.get("CostFunctionJbAtCurrentOptimum")[:]``
+
+ CostFunctionJoAtCurrentOptimum
+ *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. A chaque pas,
+ la valeur correspond à l'état optimal trouvé depuis le début.
+
+ Exemple : ``JoACO = ADD.get("CostFunctionJoAtCurrentOptimum")[:]``
+
+ CurrentOptimum
+ *Liste de vecteurs*. Chaque élément est le vecteur d'état optimal au pas de
+ temps courant au cours du déroulement de l'algorithme d'optimisation. Ce
+ n'est pas nécessairement le dernier état.
+
+ Exemple : ``Xo = ADD.get("CurrentOptimum")[:]``
+
+ IndexOfOptimum
+ *Liste d'entiers*. Chaque élément est l'index d'itération de l'optimum
+ obtenu au cours du déroulement de l'algorithme d'optimisation. Ce n'est pas
+ nécessairement le numéro de la dernière itération.
+
+ Exemple : ``i = ADD.get("IndexOfOptimum")[-1]``
+
+ InnovationAtCurrentState
+ *Liste de vecteurs*. Chaque élément est un vecteur d'innovation à l'état
+ courant.
+
+ Exemple : ``ds = ADD.get("InnovationAtCurrentState")[-1]``
+
+ OMA
+ *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
+ l'observation et l'état optimal dans l'espace des observations.
+
+ Exemple : ``oma = ADD.get("OMA")[-1]``
+
+ OMB
+ *Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
+ l'observation et l'état d'ébauche dans l'espace des observations.
+
+ Exemple : ``omb = ADD.get("OMB")[-1]``
+
SimulatedObservationAtBackground
*Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
partir de l'ébauche :math:`\mathbf{x}^b`.
Exemple : ``hxb = ADD.get("SimulatedObservationAtBackground")[-1]``
+ SimulatedObservationAtCurrentOptimum
+ *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
+ partir de l'état optimal au pas de temps courant au cours du déroulement de
+ l'algorithme d'optimisation, c'est-à-dire dans l'espace des observations.
+
+ Exemple : ``hxo = ADD.get("SimulatedObservationAtCurrentOptimum")[-1]``
+
SimulatedObservationAtCurrentState
*Liste de vecteurs*. Chaque élément est un vecteur observé à l'état courant,
c'est-à-dire dans l'espace des observations.
Exemple : ``{"Minimizer":"LBFGSB"}``
Bounds
- Cette clé permet de définir des bornes supérieure et inférieure pour
- chaque variable d'état optimisée. Les bornes doivent être données par une
- liste de liste de paires de bornes inférieure/supérieure pour chaque
- variable, avec une valeur ``None`` chaque fois qu'il n'y a pas de borne. Les
- bornes peuvent toujours être spécifiées, mais seuls les optimiseurs sous
+ Cette clé permet de définir des bornes supérieure et inférieure pour chaque
+ variable d'état optimisée. Les bornes doivent être données par une liste de
+ liste de paires de bornes inférieure/supérieure pour chaque variable, avec
+ une valeur ``None`` chaque fois qu'il n'y a pas de borne. Les bornes
+ peuvent toujours être spécifiées, mais seuls les optimiseurs sous
contraintes les prennent en compte.
Exemple : ``{"Bounds":[[2.,5.],[1.e-2,10.],[-30.,None],[None,None]]}``
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 : ["BMA", "CostFunctionJ",
- "CostFunctionJb", "CostFunctionJo", "CurrentState", "OMA", "OMB",
- "Innovation", "SimulatedObservationAtCurrentState",
- "SimulatedObservationAtOptimum"].
+ "CostFunctionJb", "CostFunctionJo", "CostFunctionJAtCurrentOptimum",
+ "CostFunctionJbAtCurrentOptimum", "CostFunctionJoAtCurrentOptimum",
+ "CurrentState", "CurrentOptimum", "IndexOfOptimum", "Innovation",
+ "InnovationAtCurrentState", "OMA", "OMB",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState",
+ "SimulatedObservationAtOptimum", "SimulatedObservationAtCurrentOptimum"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA", "Innovation"]}``
Exemple : ``Xs = ADD.get("CurrentState")[:]``
+ IndexOfOptimum
+ *Liste d'entiers*. Chaque élément est l'index d'itération de l'optimum
+ obtenu au cours du déroulement de l'algorithme d'optimisation. Ce n'est pas
+ nécessairement le numéro de la dernière itération.
+
+ Exemple : ``i = ADD.get("IndexOfOptimum")[-1]``
+
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
Exemple : ``d = ADD.get("Innovation")[-1]``
+ InnovationAtCurrentState
+ *Liste de vecteurs*. Chaque élément est un vecteur d'innovation à l'état
+ courant.
+
+ Exemple : ``ds = ADD.get("InnovationAtCurrentState")[-1]``
+
OMA
*Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
l'observation et l'état optimal dans l'espace des observations.
Exemple : ``omb = ADD.get("OMB")[-1]``
+ SimulatedObservationAtBackground
+ *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
+ partir de l'ébauche :math:`\mathbf{x}^b`.
+
+ Exemple : ``hxb = ADD.get("SimulatedObservationAtBackground")[-1]``
+
+ SimulatedObservationAtCurrentOptimum
+ *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
+ partir de l'état optimal au pas de temps courant au cours du déroulement de
+ l'algorithme d'optimisation, c'est-à-dire dans l'espace des observations.
+
+ Exemple : ``hxo = ADD.get("SimulatedObservationAtCurrentOptimum")[-1]``
+
SimulatedObservationAtCurrentState
- *Liste de vecteurs*. Chaque élément est un vecteur observé à l'état courant,
- c'est-à-dire dans l'espace des observations.
+ *Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
+ partir de l'état courant, c'est-à-dire dans l'espace des observations.
- Exemple : ``Ys = ADD.get("SimulatedObservationAtCurrentState")[-1]``
+ Exemple : ``hxs = ADD.get("SimulatedObservationAtCurrentState")[-1]``
SimulatedObservationAtOptimum
*Liste de vecteurs*. Chaque élément est un vecteur d'observation simulé à
corps du script pour faciliter la lecture. L'ensemble des commandes est le
suivant::
- from numpy import array
+ from numpy import array, matrix
import adaoBuilder
case = adaoBuilder.New()
case.set( 'AlgorithmParameters', Algorithm='3DVAR' )
le nom ``case`` de l'objet du cas de calcul TUI ADAO étant quelconque, au choix
de l'utilisateur::
- from numpy import array
+ from numpy import array, matrix
import adaoBuilder
case = adaoBuilder.New()
méthode "*New()*" comme illustré dans les quelques lignes suivantes (le nom
``case`` de l'objet étant quelconque, au choix de l'utilisateur)::
- from numpy import array
+ from numpy import array, matrix
import adaoBuilder
case = adaoBuilder.New()
Il est recommandé par principe de toujours importer le module ``numpy`` (ou ses
constructeurs particuliers, comme celui d'``array``) pour faciliter ensuite son
-usage dans les commandes elle-mêmes.
+usage dans les commandes elles-mêmes.
Définir les données de calcul
+++++++++++++++++++++++++++++