1

我需要算法来计算矩阵 M 的 smith 范式。通常它被描述为M = USV,参见例如WP 上的 SNF,其中我的矩阵总是满秩的,即det(S) ~= 0

我从 Mathematica 开始,一个不错的包提供了这个算法。虽然有一些实现,例如this onethis one by Gilbertthis one using maple,但我无权访问 maple (我认为),其他两种实现要么不计算矩阵UV要么计算错误(尝试[5,0;0,5]在第二个实现中,其中U应该V只是单位矩阵)

那么还有其他可用的实现吗?

也许遵循这个 Mathematica 包的方法(当然在 MatLab 中类似),因为这对我的需要非常有效(使用 Mathematica 时),但只要正确提供U并且V我不介意。

4

1 回答 1

0

自 Matlab 2015b 以来SmithForm,此处记录的符号数学工具箱中有

https://mathworks.com/help/symbolic/smithform.html

解决了上述问题。

于 2016-11-22T20:39:51.307 回答