Forcer une matrice de covariance à être définie positive

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
iamor
Messages: 4
Enregistré le: 09 Aoû 2006, 11:31

Forcer une matrice de covariance à être définie positive

par iamor » 09 Aoû 2006, 11:56

Bonjour,

Je voudrais simuler en C++ un vecteur de variables aléatoires normales. Pour cela la méthode conseillée est de générer un vecteur colonne de variables normales, que je noterais [epsilon] puis de le multiplier par la matrice de Cholesky qui est une matrice issue de la décomposition de cholesky de la matrice de variance covariance:

[var-covar]=[chol]*[chol]t

[var-covar]: est la matrice de variance-covariance
[chol]: est la matrice de cholesky
[chol]t: est la transposée de la matrice de cholesky

Le problème est que pour que cette décomposition soit juste, il faut que [var-covar] soit définie positive or ce n'est pas toujours mon cas.
Mon objectif est donc de trouver une méthode qui puisse forcer la matrice [var-covar] à devenir une matrice symétrique définie positive.
Pour cela j'ai pensé à diagonaliser [var-covar] puis à remplacer toutes les valeurs propres négatives par des 0 :

[var-covar] = [v]-1*[d]*[v]
ou [d] est une matrice diagonale dont les valeurs>0

ensuite je prends la racine des éléments de [d], donc diag[di]=di^(1/2).
Puis je dis que la matrice de cholesky est la suivante
chol = [v]-1*[d]^(1/2)*[v].

Je voudrais savoir si mon raisonnemment est correcte, car j'ai une doute sur la validité de ma méthode.

Merci d'avance !



 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 31 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite