Salome HOME
Updating version and copyright date information
[modules/adao.git] / doc / fr / ref_covariance_requirements.rst
1 ..
2    Copyright (C) 2008-2021 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 .. _section_ref_covariance_requirements:
25
26 Exigences pour décrire les matrices de covariance
27 -------------------------------------------------
28
29 .. index:: single: setBackgroundError
30 .. index:: single: setObservationError
31 .. index:: single: setEvolutionError
32 .. index:: single: matrice de covariance
33 .. index:: single: covariances d'erreurs d'ébauche
34 .. index:: single: covariances d'erreurs d'observation
35 .. index:: single: covariances
36
37 De manière générale, une matrice de variances-covariances, généralement appelée
38 matrice de covariance, doit être carrée, symétrique et semi-définie positive.
39 Chacun de ses termes décrit la covariance des deux variables aléatoires
40 correspondantes à sa position dans la matrice. La forme normalisée de la
41 covariance est la corrélation linéaire. On peut écrire la relation suivante,
42 entre une matrice de covariance :math:`\mathbf{M}` et ses matrices
43 correspondantes de corrélation :math:`\mathbf{C}` (matrice pleine) et
44 d'écart-type :math:`\mathbf{\Sigma}` (matrice diagonale):
45
46 .. math:: \mathbf{M} = \mathbf{\Sigma} * \mathbf{C} * \mathbf{\Sigma}
47
48 Diverses matrices de covariance sont nécessaires pour mettre en oeuvre des
49 procédures d'assimilation de données ou d'optimisation. Les principales sont la
50 matrice de covariance des erreurs d'ébauche, notée :math:`\mathbf{B}`, et la
51 matrice de covariance des erreurs d'observation, notée :math:`\mathbf{R}`.
52
53 Dans l'interface graphique EFICAS d'ADAO, il y a 3 méthodes pratiques pour
54 l'utilisateur pour fournir une matrice de covariance. La méthode est choisie à
55 l'aide du mot-clé "*INPUT_TYPE*" de chaque matrice de covariance, comme montré
56 dans la figure qui suit :
57
58   .. eficas_covariance_matrix:
59   .. image:: images/eficas_covariance_matrix.png
60     :align: center
61     :width: 100%
62   .. centered::
63     **Choisir la représentation d'une matrice de covariance**
64
65 Dans l'interface textuelle (TUI) d'ADAO (voir la partie :ref:`section_tui`),
66 les mêmes informations peuvent être données à l'aide de la commande adéquate
67 "*setBackgroundError*", "*setObservationError*" ou "*setEvolutionError*" selon
68 la grandeur physique à définir. Les autres arguments "*Matrix*",
69 "*ScalarSparseMatrix*" et "*DiagonalSparseMatrix*" de la commande permettent de
70 la définir comme décrit dans les sous-parties qui suivent. Ces informations
71 peuvent aussi être fournies dans un script contenu en fichier externe (argument
72 "*Script*").
73
74 Première forme matricielle : utiliser la représentation "*Matrix*"
75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
76
77 .. index:: single: Matrix
78 .. index:: single: BackgroundError
79 .. index:: single: EvolutionError
80 .. index:: single: ObservationError
81
82 La première forme est le défaut, et c'est la plus générale. La matrice de
83 covariance :math:`\mathbf{M}` doit être entièrement spécifiée. Même si la
84 matrice est symétrique par nature, la totalité de la matrice :math:`\mathbf{M}`
85 doit être fournie.
86
87 .. math:: \mathbf{M} =  \begin{pmatrix}
88     m_{11} & m_{12} & \cdots   & m_{1n} \\
89     m_{21} & m_{22} & \cdots   & m_{2n} \\
90     \vdots & \vdots & \vdots   & \vdots \\
91     m_{n1} & \cdots & m_{nn-1} & m_{nn}
92     \end{pmatrix}
93
94 Cela peut être réalisé soit par un vecteur ou une matrice Numpy, soit par une
95 liste de listes de valeurs (c'est-à-dire une liste de lignes). Par exemple, une
96 matrice simple diagonale unitaire de covariances des erreurs d'ébauche
97 :math:`\mathbf{B}` peut être décrite dans un fichier de script Python par::
98
99     BackgroundError = [[1, 0 ... 0], [0, 1 ... 0] ... [0, 0 ... 1]]
100
101 ou::
102
103     BackgroundError = numpy.eye(...)
104
105 Seconde forme matricielle : utiliser la représentation "*ScalarSparseMatrix*"
106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
107
108 .. index:: single: ScalarSparseMatrix
109 .. index:: single: BackgroundError
110 .. index:: single: EvolutionError
111 .. index:: single: ObservationError
112
113 Au contraire, la seconde forme matricielle est une méthode très simplifiée pour
114 définir une matrice. La matrice de covariance :math:`\mathbf{M}` est ici
115 supposée être un multiple positif de la matrice identité. Cette matrice peut
116 alors être spécifiée de manière unique par le multiplicateur :math:`m`:
117
118 .. math:: \mathbf{M} =  m \times \begin{pmatrix}
119     1       & 0      & \cdots   & 0      \\
120     0       & 1      & \cdots   & 0      \\
121     \vdots  & \vdots & \vdots   & \vdots \\
122     0       & \cdots & 0        & 1
123     \end{pmatrix}
124
125 Le multiplicateur :math:`m` doit être un nombre réel ou entier positif (s'il
126 est négatif, ce qui est impossible car une matrice de covariance est positive,
127 il est convertit en nombre positif). Par exemple, une simple matrice diagonale
128 unitaire de covariances des erreurs d'ébauche :math:`\mathbf{B}` peut être
129 décrite dans un fichier de script Python par::
130
131     BackgroundError = 1.
132
133 ou, mieux, par un argument "*String*" directement dans le cas graphique ou
134 textuel ADAO.
135
136 Troisième forme matricielle : utiliser la représentation "*DiagonalSparseMatrix*"
137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
138
139 .. index:: single: DiagonalSparseMatrix
140 .. index:: single: BackgroundError
141 .. index:: single: EvolutionError
142 .. index:: single: ObservationError
143
144 La troisième forme est aussi une méthode simplifiée pour fournir la matrice,
145 mais un peu plus puissante que la seconde. La matrice de covariance
146 :math:`\mathbf{M}` est ici toujours considérée comme diagonale, mais
147 l'utilisateur doit spécifier toutes les valeurs positives situées sur la
148 diagonale. La matrice peut alors être définie uniquement par un vecteur
149 :math:`\mathbf{V}` qui se retrouve ensuite sur la diagonale:
150
151 .. math:: \mathbf{M} =  \begin{pmatrix}
152     v_{1}  & 0      & \cdots   & 0      \\
153     0      & v_{2}  & \cdots   & 0      \\
154     \vdots & \vdots & \vdots   & \vdots \\
155     0      & \cdots & 0        & v_{n}
156     \end{pmatrix}
157
158 Cela peut être réalisé soit par vecteur ou une matrice Numpy, soit par
159 une liste, soit par une liste de listes de valeurs positives (dans tous les cas,
160 si certaines valeurs sont négatives, elles sont converties en valeurs
161 positives). Par exemple, un matrice simple diagonale unitaire des covariances
162 des erreurs d'ébauche :math:`\mathbf{B}` peut être décrite dans un fichier de
163 script Python par::
164
165     BackgroundError = [1, 1 ... 1]
166
167 ou::
168
169     BackgroundError = numpy.ones(...)
170
171 De la même manière que précédemment, on peut aussi définir cette matrice par
172 un "*String*" directement dans le cas graphique ou textuel ADAO.