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