如何生成随机三角矩阵?(上下)
通常我使用rand(n)
,但如果我尝试tril(rand(n))
它会是单数的,我不想要那样。
如何生成随机三角矩阵?(上下)
通常我使用rand(n)
,但如果我尝试tril(rand(n))
它会是单数的,我不想要那样。
如果你想要一个条件良好的随机三角矩阵,你可以用A = rand( n )取A 2的三角形部分。因此,任何大小n的triu( A * A )条件良好,但矩阵-矩阵乘法当然具有复杂性O(n 3 )。
好了,关于三角矩阵奇点的想法就说到这里。三角矩阵的行列式决定了奇异性,因为在构建逆矩阵时它会进入分母。三角矩阵的性质是行列式等于对角元素的乘积。
所以对于矩阵NxN
,我们在对角线上有 iid U(0,1) 数的乘积。显然,行列式会随着N
增加而减少,因为所有数字都<1,并且您拥有的数字越多,产品(也称为行列式)的价值就越小。
有趣的是,检查 det=X 1 X 2 ...*X N的平均值将下降为 2 -N,因为产品中的每个项都是 U(0,1),平均值为 1/2,并且它们都是 iid 替代检查是从产品 PDF 计算平均值(请参阅https://math.stackexchange.com/questions/659254/product-distribution-of-two-uniform-distribution-what-about-3-or- more ),实际上,它会给你完全相同的结果, 2 -N。也可以计算行列式的方差,即第二动量减去均方,它等于 (3 -N -4 -N )。
请注意,这些是平均值,您可以平均预期,例如,如果您对 N=100 的 10 6 个三角矩阵进行采样,计算它们的行列式并将其平均,您应该会发现它非常接近 2 -100。
这就是问题所在。平均而言,三角随机矩阵随着 的增长呈指数增长N
。2 -10大约等于 1/1,000。2 -20大约等于 1/1,000,000。对于 N = 100,它应该平均约为 10 -30左右,这使得整个练习没有意义。
不幸的是,除了这个简单的分析,我无法提供任何东西。