【发布时间】:2013-01-25 15:49:15
【问题描述】:
令 (X,Y) 为均值为 0 且协方差矩阵为 S 的二维正态随机变量。进一步令 Q = [0,1]x[0,1] 为单位平方,让我们网格化它,均匀地每边有N个网格点。结果,我们得到 Q 是 N x N 个正方形的并集。我需要在 MATLAB 中计算每个这样的正方形的 (X,Y) 的边际,即我需要计算一个矩阵 I,其中元素是形式的 N x N 积分
其中 是分区的元素。贪心的方法是运行两个循环:在 i 上和在 j 上,并以数值方式计算这些积分中的每一个。但是,如果 S 是对角线,则可以做更有效的技巧:首先计算 X 的分布(这将是一个行向量),然后是 Y 的分布(列向量),最后取它们的 Kronecker 乘积,即将产生正确的矩阵 I。
但是,如果存在相关性,即 S 不是对角矩阵,则这种技巧不起作用。在这种情况下是否需要运行2个循环,或者有更好的方法?
【问题讨论】:
-
令人惊讶的是,这个网站不支持数学模式——据我所知,使用它的唯一方法是通过图片,但是它非常慢而且不方便。另一方面,如果不使用公式,这个问题可能不清楚。请告诉我是否需要任何澄清 - 例如在 S 是对角线的情况下我该怎么做。
-
你在 dsp.stackexchange.com 上提问会更好。这里的人是白痴(见下面的答案)。他们不知道如何回答 htis 之类的问题。此外,dsp 有很酷的乳胶数学符号。你正在做的是简单的数值积分。当 S 不是对角线时,您不能使用相同的技巧,因为 PDF 不可分离。但是,您知道高斯分布与不同的主轴倾斜,并且沿这些轴是可分离的。您可以做的是将随机变量 X、Y 转换为 A = aX+bY 和 B = cX+dY。 [a b; c d] 是 PCA 变换。这也会让你的 Q 倾斜。
标签: matlab numerical-methods normal-distribution