nearestSPD

23.2版本1.1.0.0 (KB) 约翰D 'Errico
找到最近的正定矩阵

6.3 k下载

更新2013年7月31日

查看许可协议

这个工具可以节省你的协方差矩阵,把他们变成的东西真的有你需要的属性。也就是说,当你试图使用协方差矩阵在mvnrnd这样一个工具,是没有意义的,如果你的矩阵不是正定。所以mvnrnd将失败。

但有时,用户最终矩阵不对称正定(通常缩写为社民党),他们仍然希望使用它们来生成随机数,经常在mvnrnd之类的工具中。一个解决办法是找到最近的矩阵(减少弗罗贝尼乌斯规范的区别),所需的属性的SPD。

我看到这个问题每隔一段时间,所以我查了文件交换是什么。我发现nearest_posdef。虽然这通常几乎作品,它可能是更好的。实际上完全在我的大多数测试用例失败,这并不是我想快,使用一个优化。事实上,在评论中nearest_posdef,是构成一个合乎逻辑的选择。替代也失败,所以我写了nearestSPD,部分基于我发现尼克•海厄姆的工作。

nearestSPD作品在任何矩阵,它是相当快。作为测试,randn产生一个矩阵不对称也不是正定。
U = randn (100);

nearestSPD能够U转换成的东西的确是社民党,和100年到100年矩阵,足够快。

抽搐,Uj = nearestSPD (U); toc
运行时间是0.008964秒。

当然,最终测试是使用胆固醇。如果胆固醇返回第二个参数是0,那么MATLAB (mvnrnd)将快乐!
(R, p) =胆固醇(Uj);
p
p =
0

引用作为

约翰D 'Errico (2022)。nearestSPD(//www.tianjin-qmedu.com/matlabcentral/fileexchange/42885-nearestspd), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2013a
兼容任何释放
平台的兼容性
窗户 macOS Linux

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

NearestSymmetricPositiveDefinite /

NearestSymmetricPositiveDefinite / html /