3

我正在寻找一个执行奇异值分解的java库,如维基百科中所述:从矩阵A(m X n)得到A = U * S * V',其中U是mxm,S是mxn,V是nx n。

任何人都可以帮助我吗?

请不要回答 colt 或 jama,因为他们对 svd 的定义与维基百科的不同。事实上,colt 返回 A = U*S*V',其中 U 是 mxn,S 是 nxn,V 是 nx n。

Alternativley 如何使用 colt 计算维基百科的 svd?

谢谢

4

2 回答 2

2

来自jblas的奇异分解方法的JavaDoc似乎符合您乍一看需要的定义,但我认为您必须进行测试才能确定。

另一个是Universal Java Matrix Package,但是翻阅 JavaDoc 非常令人困惑,让我有点担心它的设计(定义 getter 和 setter 的接口?!)

于 2011-12-01T14:31:47.053 回答
1

抱歉,回复晚了。但迟到总比没有好。

如果你仔细查看维基百科页面,

它描绘了一个 4*5 矩阵,该矩阵被拆分为 au:4*4 ,s:4*5,v=5*5

但如果你仔细观察,s 矩阵的最后一行和最后一列全是零,因此它实际上只是一个 4*4 矩阵。(即始终只使用较低的维度)

我想这回答了你的问题!

于 2012-02-13T06:59:15.047 回答