Hi,
I am using the SingularValueDecomposition class with a matrix but it gives me a different result than R. My knowledge of SVD is limited, so any advice is welcomed. Here's the method in Java public void svdTest(){ double[][] x = { {1.0, -0.053071807862720116, 0.04236086650321309}, {0.05307180786272012, 1.0, 0.0058054424137053435}, {-0.04236086650321309, -0.005805442413705342, 1.0} }; RealMatrix X = new Array2DRowRealMatrix(x); SingularValueDecomposition svd = new SingularValueDecomposition(X); RealMatrix U = svd.getU(); for(int i=0;i<U.getRowDimension();i++){ for(int j=0;j<U.getColumnDimension();j++){ System.out.print(U.getEntry(i,j) + " "); } System.out.println(); } System.out.println(); System.out.println(); RealMatrix V = svd.getV(); for(int i=0;i<V.getRowDimension();i++){ for(int j=0;j<V.getColumnDimension();j++){ System.out.print(V.getEntry(i,j) + " "); } System.out.println(); } } And here's the function in R. x<-matrix(c( 1.0, -0.053071807862720116, 0.04236086650321309, 0.05307180786272012, 1.0, 0.0058054424137053435, -0.04236086650321309, -0.005805442413705342, 1.0), nrow=3, byrow=TRUE) svd(x) Does anyone know why I am getting different results for U and V? I am using commons math 3.1. Thanks, Patrick