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