python - 基于SVD实现计算酉矩阵的行列式
问题描述
我有一个真正的方阵X
,我需要对其执行奇异值分解。现在,执行操作
X=USV^T
由于 U 和 V 是正交的,我们知道det(X)=±det(S)
并且det(S)
是非负的,因为奇异值是非负的。
现在,我需要知道和的行列式的符号U
(V
当然,这与知道行列式相同)。然而,天真的方法让我付出了代价2 O(N^3)
我想知道是否有人知道一种方法
U
将和的行列式符号推断为V
中的 SVD 实现或 Python 中的类似库的副产品numpy
,scipy
而无需调用det(U)
和det(V)
。det(U)
根据正交的事实,计算比 的默认实现更快的正交矩阵的行列式U/V
。
解决方案
推荐阅读
- amazon-web-services - Glue Boto 客户端——NoCredentialsError
- java - 如何在 android 上创建复制链接地址菜单?
- r - 使用 dplyr 查找列中的最大值并从不同列返回元素
- mongodb - Mongodb mongoose查询通过引用获取文档数
- python - python 在分区列结果之间剪切
- ssl - 如何将证书颁发机构 (CA) 添加到 k8s?
- c# - .NET Core API - 从服务器而不是本地存储返回图像 URL
- spring-boot - 使用 h2 数据库时如何“允许远程创建数据库”?
- spring-boot - Redis 无法序列化/反序列化内部 Map 对象
- rust - 结构所有权