我正在寻找一个执行奇异值分解的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?
由于
答案 0 :(得分:2)
来自JavaDoc for singular decomposition methods的jblas似乎一如既往地符合您的定义,但我认为您必须进行测试才能获得任何确定性。
另一个是Universal Java Matrix Package,但是看一下JavaDoc是非常令人困惑的,让我对它的设计有一定的恐惧(用于定义getter和setter的界面?!)
答案 1 :(得分:1)
对不起它的回复很晚。但它迟到总比没有好。
如果你密切关注维基百科页面,
它描绘了一个4 * 5矩阵,它被分成一个u:4 * 4,s:4 * 5,v = 5 * 5
但如果你仔细观察它,那么s矩阵的最后一行和最后一个满是零的coloumn,因此它实际上只有一个4 * 4矩阵。 (即较低的维度只是一直使用)
我想这会回答你的问题!