Bonjour,
comment je peux crée une matrice de vecteur gaussien normal iid de dimenssion nt*nr.
Merci
Bonjour,
comment je peux crée une matrice de vecteur gaussien normal iid de dimenssion nt*nr.
Merci
Plusieurs cas selon ma compréhension de ta question.
-Si tu désires seulement avoir une matrice ou chaque éléments (réalisations) est indépendent l'un de l'autre. Par exemple chaque élément, n_{ij}~N(m,sigma²), tu peux faire
Tu peux également remplacer m et sigma par 2 matrices (nt x nr) M et S respectivement, si chaque composante doit être générée avec ses propres premiers moments :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 m = 1; sigma = 2; nt = 3; nr = 4; A = m + sigma.*randn(nt , nr);
- Si il ne sont pas indépendants, c'est à dire que chaque colonne de ta matrice est une réalisation d'un vecteur multidimensionnel gaussien, i.e. z~N(M , \Sigma), avec M le vecteur moyenne (nt x 1) et \Sigma (nt x nt), matrice de covariance définie positive. Là tu passes par exemple par une factorisation de cholesky :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 A = M + S.*randn(nt , nr);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 nr = 100; M = [1;2]; Sigma = [1 , 0.2 ; 0.2 , 2]; A = M(: , ones(1 , nr)) + chol(Sigma)'*randn(nt , nr);
Voilà ....
bonjour,
lorsque j ai executé le troisieme code un message d erreur apparait
??? Error using ==> chol
Matrix must be positive definite.
Error in ==> gaussien_n_i at 31
H = M(: , ones(1 , nt)) + chol(Sigma)'*randn(nr , nt);
AvecMerci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 sigma = randn(nr,nt) m = randn(nr,1)
C'est normal .... rien ne te garantie qu'en tapant sigma = randn(nr , nt), sigma soit une matrice définie positive (même aucune chance) .... Ce que tu peux faire, c'est :
A = rand(nr , nt);
sigma = A*A';
La ca devrait passer .... Tu devrais réviser ce que représente une matrice de covariance notamment dans les processus Gaussiens multivariés car avec ta question je subodore quelques lacunes ....
Sébastien
Partager