gpt4 book ai didi

python - 在Python中生成随机稀疏正半定矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:41 27 4
gpt4 key购买 nike

我想为某些代码创建随机测试实例,该实例依赖于稀疏正半定矩阵。

Matlab 具有函数 sprandsym(n,密度,rc),该函数创建具有特征值 rc 的随机稀疏对称矩阵,因此非负向量 rc 会生成 PSD 矩阵。

有没有办法在 python 中重新创建这个函数?

我找到了各种解决方案来创建随机稀疏矩阵或随机 PSD 矩阵。我还找到了将两者组合的解决方案,方法是创建一个随机稀疏矩阵,如果不是 PSD,则添加单位矩阵直到它是 PSD(即最小特征值时间的绝对值)。但这个解决方案创建了对角占优矩阵,不幸的是这不足以满足我所需的测试实例。

最佳答案

您可以使用this answer提供的功能它依赖于 scipy 和 numpy ,应该可以满足您的需求:

def sprandsym(n, density):
rvs = stats.norm().rvs
X = sparse.random(n, n, density=density, data_rvs=rvs)
upper_X = sparse.triu(X)
result = upper_X + upper_X.T - sparse.diags(X.diagonal())
return result

关于python - 在Python中生成随机稀疏正半定矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56935566/

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