La fonction mvnpdf() dans MATLAB

Ammar Ali 13 juin 2022
La fonction mvnpdf() dans MATLAB

Ce tutoriel discutera de l’évaluation de la fonction de densité de probabilité d’une distribution normale multivariée à l’aide de la fonction mvnpdf() dans MATLAB.

Utiliser la fonction mvnpdf() dans MATLAB

La distribution normale multivariée de la version généralisée de la distribution normale univariée à deux variables ou plus. La distribution normale multivariée a deux paramètres similaires à la distribution normale univariée, y compris la matrice de covariance et le vecteur moyen.

Les éléments hors diagonale de la matrice de covariance contiennent les covariances entre les variables, et les éléments diagonaux de la matrice de covariance contiennent les variances pour chaque variable. Dans MATLAB, nous utilisons la fonction mvnpdf() pour trouver la fonction de densité de probabilité de la distribution normale multivariée.

La fonction mvnpdf() a trois syntaxes données ci-dessous.

Syntaxe:

output = mvnpdf(input)
output = mvnpdf(input, mu)
output = mvnpdf(input, mu, sigma)

La output = mvnpdf(input) renverra la fonction de densité de probabilité sous la forme d’un vecteur n-par-1 de la matrice d’entrée, contenant la distribution normale multivariée de dimension m. La fonction évaluera la sortie à chaque ligne de la matrice d’entrée le long de la dimension n-par-m.

Le output = mvnpdf(input, mu) renverra la fonction de densité de probabilité selon la variable mu, qui définit la valeur moyenne de la distribution normale multivariée. La troisième syntaxe inclura également la variable sigma, qui définit la covariance de la distribution normale multivariée.

Dans output = mvnpdf(input, mu, sigma), si nous ne voulons spécifier que la valeur de sigma et que nous voulons utiliser la valeur par défaut de mu, nous pouvons passer un vecteur vide comme valeur de mu comme deuxième argument et définissez la valeur de sigma comme troisième argument. Nous pouvons utiliser la fonction mvnrnd() pour créer une matrice de distribution normale multivariée contenant des nombres aléatoires.

Pour créer la distribution normale multivariée aléatoire, nous devons passer la valeur des variables mu et sigma à l’intérieur de la fonction mvnrnd(). Nous pouvons également définir le nombre de lignes de la matrice de sortie en définissant le nombre comme troisième argument dans la fonction mvnrnd().

Par exemple, créons une matrice aléatoire de distribution normale multivariée à l’aide de la fonction mrnrnd(), puis trouvons sa fonction de densité de probabilité à l’aide de la fonction mvnpdf().

Exemple de code :

mu_v = zeros(1,4);
Sigma_m = eye(4);
rng('default')
random_mvn = mvnrnd(mu_v,Sigma_m,6)
out_pdf = mvnpdf(random_mvn)

Production:

random_mvn =

    0.5377   -0.4336    0.7254    1.4090
    1.8339    0.3426   -0.0631    1.4172
   -2.2588    3.5784    0.7147    0.6715
    0.8622    2.7694   -0.2050   -1.2075
    0.3188   -1.3499   -0.1241    0.7172
   -1.3077    3.0349    1.4897    1.6302

out_pdf =

    0.0057
    0.0016
    0.0000
    0.0002
    0.0074
    0.0000

Nous avons utilisé la fonction zeros() pour créer le vecteur de la variable mu et la fonction eye() pour créer la matrice de la variable sigma, et la fonction rng() pour contrôler l’aléatoire. générateur de nombres, et nous l’avons défini par défaut pour la reproductibilité. La sortie ci-dessus montre la matrice aléatoire de la distribution normale multivariée et le vecteur contenant les valeurs de la fonction de densité de probabilité.

Supposons que nous voulions trouver la fonction de densité de probabilité en certains points selon une valeur moyenne différente. Nous pouvons définir les valeurs moyennes dans la variable mu comme deuxième argument à l’intérieur de la fonction mvnpdf().

La taille de la matrice mu doit être la même que la taille de la matrice d’entrée de la distribution normale multivariée.

Supposons que nous voulions trouver la fonction de densité de probabilité selon une valeur de covariance différente à certains points. Nous pouvons définir les valeurs de covariance dans la variable sigma comme troisième argument à l’intérieur de la fonction mvnpdf().

Le nombre de colonnes de la matrice sigma doit être le même que le nombre de colonnes de la matrice d’entrée de la distribution normale multivariée. Si nous voulons trouver la fonction de densité de probabilité aux mêmes points, nous pouvons répéter le même point à l’intérieur de la variable mu, et par défaut, la variable mu est un vecteur de zéros, et la variable sigma est un matrice de uns.

Consultez ce lien pour plus de détails sur la fonction mvnpdf(), ou ce lien pour la fonction mvnrnd().

Auteur: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Article connexe - MATLAB Function