gpt4 book ai didi

matlab - 生成具有协方差矩阵的正态分布随机向量

转载 作者:太空宇宙 更新时间:2023-11-03 19:54:16 30 4
gpt4 key购买 nike

在 matlab 中很容易生成具有均值和标准差的正态分布随机向量。来自帮助 randn:

从均值 1 和标准的正态分布生成值 偏差2。 r = 1 + 2.*randn(100,1);

现在我有一个协方差矩阵 C,我想生成 N(0,C)。

但是我怎么能这样做呢?

来自 randn 帮助:从具有指定均值的双变量正态分布生成值 向量和协方差矩阵。 亩 = [1 2]; 西格玛 = [1 .5; .5 2]; R = chol(西格玛); z = repmat(mu,100,1) + randn(100,2)*R;

但我不知道他们到底在做什么。

最佳答案

这有点像数学问题,而不是编程问题。但我非常喜欢编写需要扎实的数学和编程知识的伟大代码,所以我会为后代写这篇文章。

您需要采用 Cholesky 分解(或矩阵的任何分解/平方根)从独立随机变量生成相关随机变量。这是因为如果 X 是具有均值 m 和协方差 D 的多元正态分布,则 Y = AX 是具有均值 Am 和协方差矩阵 ADA' 的多元正态分布,其中 A' 是转置。如果 D 是单位矩阵,那么协方差矩阵就是 AA',您希望它等于您正在尝试的协方差矩阵 C生成。

Cholesky 分解计算这样的矩阵 A 并且是最有效的方法。

有关详细信息,请参阅:http://web.as.uky.edu/statistics/users/viele/sta601s03/multnorm.pdf

关于matlab - 生成具有协方差矩阵的正态分布随机向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4368121/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com