那如何生成多元正态分布的随机数
时间: 2023-10-18 20:24:27 浏览: 146
使用C语言产生正态分布的随机数的源代码
生成多元正态分布的随机数可以使用Cholesky分解方法。具体步骤如下:
1.生成多个独立的标准正态分布的随机数;
2.构造一个协方差矩阵,该矩阵为对称正定矩阵;
3.进行Cholesky分解,得到一个下三角矩阵L;
4.将独立标准正态分布的随机数与L相乘,得到多元正态分布的随机数。
具体的Python代码如下:
```python
import numpy as np
# 生成多个独立的标准正态分布的随机数
n = 3
x = np.random.normal(size=n)
# 构造一个协方差矩阵
cov = np.array([[1.0, 0.5, 0.3], [0.5, 1.0, 0.2], [0.3, 0.2, 1.0]])
# 进行Cholesky分解
L = np.linalg.cholesky(cov)
# 将独立标准正态分布的随机数与L相乘,得到多元正态分布的随机数
y = np.dot(L, x)
print(y)
```
其中,cov表示协方差矩阵,L表示Cholesky分解得到的下三角矩阵,x表示独立标准正态分布的随机数,y表示多元正态分布的随机数。
阅读全文