Skip to article frontmatterSkip to article content

Il existe une grande variété de méthodes de simulation géostatistique. Pour les regrouper, on peut proposer la subdivision suivante :

Dans la suite, nous examinerons quelques-unes de ces méthodes.

8.3 Méthode de simulation matricielle (LU, décomposition de Cholesky)

Cette méthode est simple à programmer et efficace pour simuler de petits champs. Elle permet de réaliser facilement des simulations conditionnelles comme non-conditionnelles.


8.3.1 Simulations non-conditionnelles

Soit ( n ) points à simuler avec une covariance ( C(h) ). On construit la matrice de covariance ( K ) de taille ( n \times n ) (identique à celle utilisée pour le krigeage simple).

On effectue la décomposition de Cholesky :
[ K = L U, \quad \text{où } L = U^{T} ]

On tire ensuite ( n ) valeurs indépendantes ( y_i \sim \mathcal{N}(0,1) ) pour ( i=1,\dots,n ), formant le vecteur ( \mathbf{y} ).

La réalisation simulée est alors :
[ \mathbf{z} = L \mathbf{y} ]

Cette réalisation ( \mathbf{z} ) a la covariance correcte, car :
[ \operatorname{Cov}[\mathbf{z}] = \operatorname{Cov}[L \mathbf{y}] = L \operatorname{Cov}[\mathbf{y}] L^T = L I L^T = L L^T = K ]


8.3.2 Simulations conditionnelles

Le principe est similaire, mais on distingue deux ensembles de points :

On construit la matrice de covariance ( K ) de taille ( (N + n) \times (N + n) ), et on la décompose en blocs via Cholesky :
[ K = L L^T =

[L110L21L22]\begin{bmatrix} L_{11} & 0 \\ L_{21} & L_{22} \end{bmatrix}
[L11TL21T0L22T]\begin{bmatrix} L_{11}^T & L_{21}^T \\ 0 & L_{22}^T \end{bmatrix}

]

On génère un vecteur aléatoire ( \mathbf{y} = \begin{bmatrix} \mathbf{y}_1 \ \mathbf{y}_2 \end{bmatrix} ), où ( \mathbf{y}_1 \in \mathbb{R}^N ) et ( \mathbf{y}_2 \in \mathbb{R}^n ) sont des vecteurs de variables indépendantes ( \mathcal{N}(0,1) ).

La simulation s’écrit :
[

[z1z2]\begin{bmatrix} \mathbf{z}_1 \\ \mathbf{z}_2 \end{bmatrix}

= L \mathbf{y} =

[L11y1L21y1+L22y2]\begin{bmatrix} L_{11} \mathbf{y}_1 \\ L_{21} \mathbf{y}_1 + L_{22} \mathbf{y}_2 \end{bmatrix}

]

Comme les valeurs ( \mathbf{z}1 = \mathbf{z}\text{obs} ) sont connues, on impose :
[ \mathbf{y}1 = L{11}^{-1} \mathbf{z}_1 ]

On tire ensuite aléatoirement ( \mathbf{y}_2 \sim \mathcal{N}(0, I) ), et on calcule
[ \mathbf{z}2 = L{21} \mathbf{y}1 + L{22} \mathbf{y}_2 ]

Notez que ( L_{21} \mathbf{y}_1 ) est constant pour toutes les réalisations conditionnelles et ne nécessite pas d’être recalculé.


Notes importantes

8.4 Méthode de simulation séquentielle gaussienne (SGS)

La méthode SGS, basée sur les travaux de Paul Lévy (1937), est une méthode de simulation conditionnelle (le cas non-conditionnel est un cas particulier).


Principe général


Workflow de la méthode SGS

  1. Initialisation

    • Ensemble des points connus : les ( N ) points conditionnants.
    • Points à simuler : ( {x_1, x_2, \dots, x_n} ) dans un ordre aléatoire.
  2. Pour chaque point ( x_i ) dans l’ordre aléatoire :

    a. Calcul du krigeage simple sur ( x_i ) en utilisant :

    • Tous les points conditionnants ( N ),
    • Tous les points déjà simulés ( {x_1, \dots, x_{i-1}} ).

    Le krigeage simple fournit :

    • La valeur krigée (espérance conditionnelle) :
      [ Z_i^* = E[Z(x_i) \mid \text{données connues}] ]
    • La variance de krigeage (variance conditionnelle) :
      [ \sigma_k^2 = \operatorname{Var}[Z(x_i) \mid \text{données connues}] ]

    b. Simulation de la valeur au point ( x_i ) :
    On tire aléatoirement une valeur suivant la loi normale conditionnelle :
    [ Z(x_i) \sim \mathcal{N}(Z_i^*, \sigma_k^2) ]

    c. Ajout du point simulé ( x_i ) avec sa valeur ( Z(x_i) ) à l’ensemble des points connus.

  3. Répéter jusqu’à ce que tous les ( n ) points soient simulés.


Remarques importantes


Schéma simplifié du workflow