12.3. Conditions requises pour décrire des matrices de covariance¶
De manière générale, une matrice de variances-covariances, généralement appelée
matrice de covariance, doit être carrée, symétrique et semi-définie positive.
Chacun de ses termes décrit la covariance des deux variables aléatoires
correspondantes à sa position dans la matrice. La forme normalisée de la
covariance est la corrélation linéaire. On peut écrire la relation suivante,
entre une matrice de covariance
et ses matrices
correspondantes de corrélation
(matrice pleine) et
d’écart-type
(matrice diagonale):

Diverses matrices de covariance sont nécessaires pour mettre en oeuvre des
procédures d’assimilation de données ou d’optimisation. Les principales sont la
matrice de covariance des erreurs d’ébauche, notée
, et la
matrice de covariance des erreurs d’observation, notée
.
Dans l’interface graphique EFICAS d’ADAO, il y a 3 méthodes pratiques pour l’utilisateur pour fournir une matrice de covariance. La méthode est choisie à l’aide du mot-clé « INPUT_TYPE » de chaque matrice de covariance, comme montré dans la figure qui suit :
Dans l’interface textuelle (TUI) d’ADAO (voir la partie [DocR] Interface textuelle pour l’utilisateur (TUI/API)), les mêmes informations peuvent être données à l’aide de la commande adéquate « setBackgroundError », « setObservationError » ou « setEvolutionError » selon la grandeur physique à définir. Les autres arguments « Matrix », « ScalarSparseMatrix » et « DiagonalSparseMatrix » de la commande permettent de la définir comme décrit dans les sous-parties qui suivent. Ces informations peuvent aussi être fournies dans un script contenu en fichier externe (argument « Script »).
12.3.1. Première forme matricielle : utiliser la représentation « Matrix »¶
La première forme est le défaut, et c’est la plus générale. La matrice de
covariance
doit être entièrement spécifiée. Même si la
matrice est symétrique par nature, la totalité de la matrice
doit être fournie.

Cela peut être réalisé soit par un vecteur ou une matrice Numpy, soit par une
liste de listes de valeurs (c’est-à-dire une liste de lignes). Par exemple, une
matrice simple diagonale unitaire de covariances des erreurs d’ébauche
peut être décrite dans un fichier de script Python par :
BackgroundError = [[1, 0 ... 0], [0, 1 ... 0] ... [0, 0 ... 1]]
ou:
BackgroundError = numpy.eye(...)
12.3.2. Seconde forme matricielle : utiliser la représentation « ScalarSparseMatrix »¶
Au contraire, la seconde forme matricielle est une méthode très simplifiée pour
définir une matrice. La matrice de covariance
est ici
supposée être un multiple positif de la matrice identité. Cette matrice peut
alors être spécifiée de manière unique par le multiplicateur
:

Le multiplicateur
doit être un nombre réel ou entier positif (s’il
est négatif, ce qui est impossible car une matrice de covariance est positive,
il est converti en nombre positif). Par exemple, une simple matrice diagonale
unitaire de covariances des erreurs d’ébauche
peut être
décrite dans un fichier de script Python par :
BackgroundError = 1.
ou, mieux, par un argument « String » directement dans le cas graphique ou textuel ADAO.
12.3.3. Troisième forme matricielle : utiliser la représentation « DiagonalSparseMatrix »¶
La troisième forme est aussi une méthode simplifiée pour fournir la matrice,
mais un peu plus puissante que la seconde. La matrice de covariance
est ici toujours considérée comme diagonale, mais
l’utilisateur doit spécifier toutes les valeurs positives situées sur la
diagonale. La matrice peut alors être définie uniquement par un vecteur
qui se retrouve ensuite sur la diagonale:

Cela peut être réalisé soit par vecteur ou une matrice Numpy, soit par une
liste, soit par une liste de listes de valeurs positives (dans tous les cas, si
certaines valeurs sont négatives, elles sont converties en valeurs positives).
Par exemple, une matrice simple diagonale unitaire des covariances des erreurs
d’ébauche
peut être décrite dans un fichier de script Python
par :
BackgroundError = [1, 1 ... 1]
ou:
BackgroundError = numpy.ones(...)
De la même manière que précédemment, on peut aussi définir cette matrice par un « String » directement dans le cas graphique ou textuel ADAO.
