维基百科定义的Java SVD

时间:2011-12-01 14:05:01

标签: java svd

我正在寻找一个执行奇异值分解的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是m x n,S是n x n,V是n x n。

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

由于

2 个答案:

答案 0 :(得分:2)

来自JavaDoc for singular decomposition methodsjblas似乎一如既往地符合您的定义,但我认为您必须进行测试才能获得任何确定性。

另一个是Universal Java Matrix Package,但是看一下JavaDoc是非常令人困惑的,让我对它的设计有一定的恐惧(用于定义getter和setter的界面?!)

答案 1 :(得分:1)

对不起它的回复很晚。但它迟到总比没有好。

如果你密切关注维基百科页面,

它描绘了一个4 * 5矩阵,它被分成一个u:4 * 4,s:4 * 5,v = 5 * 5

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

我想这会回答你的问题!