/ / Esempio dalla distribuzione normale multivariata usando Boost - c ++, boost, distribuzione normale, partizione multivariata

Esempio dalla distribuzione normale multivariata usando Boost - c ++, boost, distribuzione normale, partizione multivariata

Posso campionare da una normale distribuzione usando Boost in c ++.

Ho ora una semplice domanda:

Come posso campionare da una distribuzione normale multivariata (n> 2) usando le funzioni Boost (distribuzione normale, multi-array ...)?

risposte:

1 per risposta № 1

Penso che non sarai in grado di fare questo senza un po 'di algebra lineare.Efficacemente, se hai una matrice di covarianza C, puoi generare una matrice triangolare superiore L usando Decomposizione di Cholesky tale che C = L * L ^ T. Questa matrice L può essere utilizzata ora per generare un campione dalla distribuzione con covarianza C, applicando L ad un vettore di rumore non correlato.