一、函數簡介
MVNRND函數是MATLAB中用於生成多元正態分布隨機數的函數。它可以用來模擬多元正態分布的隨機變量,是很多統計學、金融學等領域常用的工具之一。
MVNRND函數的語法是:
R = mvnrnd(mu,Sigma)
R = mvnrnd(mu,Sigma,n)
其中,mu是多元正態分布的均值向量,Sigma是協方差矩陣,n是需要生成的隨機數個數。R是生成的隨機數矩陣,每一行代表一個多元正態分布的隨機向量。
二、用法示例
我們來看一個簡單的例子,在二維正態分布中生成100個隨機數:
mu = [0 0];
Sigma = [1 0.5; 0.5 2];
R = mvnrnd(mu,Sigma,100);
scatter(R(:,1),R(:,2));
代碼結果是,生成了100個二維正態分布的隨機向量,並繪製出其散點圖:

我們再來看一個稍微複雜一點的例子,在三維正態分布中生成1000個隨機數,並畫出其立體圖形:
mu = [0 0 0];
Sigma = [1 0.5 0.8; 0.5 2 0.4;0.8 0.4 3];
R = mvnrnd(mu,Sigma,1000);
scatter3(R(:,1),R(:,2),R(:,3),'.');
代碼結果是,生成了1000個三維正態分布的隨機向量,並繪製出其三維散點圖:

三、參數說明
1. mu參數
mu參數是指多元正態分布的均值向量,向量中的每個元素表示每個隨機變量的期望值。當我們需要生成多元正態分布的隨機變量時,必須提供該參數。
下面是一個例子,生成一個二維的正態分布隨機數向量,其中第一維的期望值為1,第二維的期望值為2:
mu = [1 2];
Sigma = [1 0.5; 0.5 2];
R = mvnrnd(mu,Sigma,100);
scatter(R(:,1),R(:,2));
2. Sigma參數
Sigma參數是指多元正態分布的協方差矩陣。協方差矩陣描述了每個隨機變量之間的相關性,對於多元正態分布隨機變量的生成是必須提供的參數。
下面是一個例子,生成一個二維的正態分布隨機數向量,其中第一維和第二維的協方差為0.1,其他元素為0:
mu = [0 0];
Sigma = [0.1 0; 0 0.1];
R = mvnrnd(mu,Sigma,100);
scatter(R(:,1),R(:,2));
3. n參數
n參數表示需要生成的隨機向量的個數,是一個可選參數。如果不提供該參數,MATLAB會默認生成一個隨機向量。
下面是一個例子,生成一個二維的正態分布隨機數向量,其中有300個隨機向量:
mu = [0 0];
Sigma = [1 0.5; 0.5 2];
R = mvnrnd(mu,Sigma,300);
scatter(R(:,1),R(:,2));
四、總結
MVNRND函數是MATLAB中用於生成多元正態分布隨機數的函數,能夠應用於模擬多種實際問題。在使用該函數時,需要提供均值向量和協方差矩陣。此外,我們還可以通過指定生成隨機向量的個數,來靈活地滿足不同的需求。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/198020.html