Die Funktion mvnpdf() in MATLAB

Ammar Ali 13 Juni 2022
Die Funktion mvnpdf() in MATLAB

In diesem Tutorial wird die Auswertung der Wahrscheinlichkeitsdichtefunktion einer multivariaten Normalverteilung mit der Funktion mvnpdf() in MATLAB behandelt.

Verwendung von die Funktion mvnpdf() in MATLAB

Die multivariate Normalverteilung der verallgemeinerten Version der univariaten Normalverteilung auf zwei oder mehr Variablen. Die multivariate Normalverteilung hat zwei Parameter, die der univariaten Normalverteilung ähnlich sind, einschließlich der Kovarianzmatrix und des Mittelwertvektors.

Die nicht diagonalen Elemente der Kovarianzmatrix enthalten die Kovarianzen zwischen Variablen, und die diagonalen Elemente der Kovarianzmatrix enthalten die Varianzen für jede Variable. In MATLAB verwenden wir die Funktion mvnpdf(), um die Wahrscheinlichkeitsdichtefunktion der multivariaten Normalverteilung zu finden.

Die Funktion mvnpdf() hat die drei unten angegebenen Syntaxen.

Syntax:

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

Die output = mvnpdf(input) gibt die Wahrscheinlichkeitsdichtefunktion als n-mal-1-Vektor der Eingabematrix zurück, die die multivariate Normalverteilung der Dimension m enthält. Die Funktion wertet die Ausgabe in jeder Zeile der Eingabematrix entlang der Dimension n-mal-m aus.

Die output = mvnpdf(input, mu) gibt die Wahrscheinlichkeitsdichtefunktion entsprechend der mu-Variablen zurück, die den Mittelwert der multivariaten Normalverteilung definiert. Die dritte Syntax wird auch die Variable sigma enthalten, die die Kovarianz der multivariaten Normalverteilung definiert.

Wenn wir in output = mvnpdf(input, mu, sigma) nur den Wert für sigma angeben und den Standardwert von mu verwenden wollen, können wir einen leeren Vektor als Wert für übergeben Die Variable mu als zweites Argument und den Wert von sigma als drittes Argument. Wir können die Funktion mvnrnd() verwenden, um eine multivariate Normalverteilungsmatrix mit Zufallszahlen zu erstellen.

Um die zufällige multivariate Normalverteilung zu erstellen, müssen wir den Wert der Variablen mu und sigma innerhalb der Funktion mvnrnd() übergeben. Wir können auch die Anzahl der Zeilen der Ausgabematrix festlegen, indem wir die Zahl als drittes Argument innerhalb der Funktion mvnrnd() definieren.

Lassen Sie uns zum Beispiel eine Zufallsmatrix der multivariaten Normalverteilung mit der Funktion mrnrnd() erstellen und dann ihre Wahrscheinlichkeitsdichtefunktion mit der Funktion mvnpdf() ermitteln.

Beispielcode:

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

Ausgabe:

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

Wir haben die Funktion zeros() verwendet, um den Vektor für die Variable mu zu erstellen, und die Funktion eye(), um die Matrix für die Variable sigma zu erstellen, und die Funktion rng(), um den Zufall zu steuern Zahlengenerator, und wir haben ihn aus Gründen der Reproduzierbarkeit auf Standard gesetzt. Die obige Ausgabe zeigt die Zufallsmatrix der multivariaten Normalverteilung und den Vektor, der die Werte der Wahrscheinlichkeitsdichtefunktion enthält.

Angenommen, wir wollen die Wahrscheinlichkeitsdichtefunktion an bestimmten Punkten nach einem anderen Mittelwert finden. Wir können die Mittelwerte in der Variable mu als zweites Argument innerhalb der Funktion mvnpdf() definieren.

Die Größe der mu-Matrix sollte gleich der Eingabematrixgröße der multivariaten Normalverteilung sein.

Angenommen, wir möchten die Wahrscheinlichkeitsdichtefunktion gemäß einem anderen Kovarianzwert an bestimmten Punkten finden. Wir können die Kovarianzwerte in der Variable sigma als drittes Argument innerhalb der Funktion mvnpdf() definieren.

Die Spaltenanzahl der sigma-Matrix sollte gleich der Spaltenanzahl der multivariaten Normalverteilungs-Eingabematrix sein. Wenn wir die Wahrscheinlichkeitsdichtefunktion an denselben Punkten finden möchten, können wir denselben Punkt innerhalb der Variablen mu wiederholen, und standardmäßig ist die Variable mu ein Vektor aus Nullen und die Variable sigma ist a Matrix von Einsen.

Überprüfen Sie diesen Link für weitere Details über die Funktion mvnpdf() oder diesen Link für die Funktion mvnrnd().

Autor: 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

Verwandter Artikel - MATLAB Function