@Override public double[] getVariances() { return svd.getS(); }
@Override public double[] getVariances() { return svd.getS(); }
private void estimate_internal(Matrix y, Matrix x) { try { final no.uib.cipr.matrix.DenseMatrix mjtX = new no.uib.cipr.matrix.DenseMatrix(x.getArray()); no.uib.cipr.matrix.SVD svd; svd = no.uib.cipr.matrix.SVD.factorize(mjtX); final Matrix u = MatrixUtils.convert(svd.getU(), svd.getU().numRows(), svd.getS().length); final Matrix v = MatrixUtils.convert(svd.getVt(), svd.getS().length, svd.getVt().numColumns()).transpose(); final Matrix d = MatrixUtils.diag(svd.getS()); weights = v.times(MatrixUtils.pseudoInverse(d)).times(u.transpose()).times(y); } catch (final NotConvergedException e) { throw new RuntimeException(e.getMessage()); } }
public Matrix[] calc(Matrix source) { try { DenseMatrix m = null; if (source instanceof MTJDenseDoubleMatrix2D) { m = ((MTJDenseDoubleMatrix2D) source).getWrappedObject(); } else { m = new MTJDenseDoubleMatrix2D(source).getWrappedObject(); } no.uib.cipr.matrix.SVD svd = no.uib.cipr.matrix.SVD.factorize(m); Matrix u = new MTJDenseDoubleMatrix2D(svd.getU()); Matrix v = new MTJDenseDoubleMatrix2D(svd.getVt()).transpose(); double[] svs = svd.getS(); Matrix s = SparseDoubleMatrix2D.Factory.zeros(source.getSize()); for (int i = (int) Math.min(s.getRowCount(), s.getColumnCount()); --i >= 0;) { s.setAsDouble(svs[i], i, i); } return new Matrix[] { u, s, v }; } catch (Exception e) { throw new RuntimeException(e); } } }
public Matrix[] calc(Matrix source) { try { DenseMatrix m = null; if (source instanceof MTJDenseDoubleMatrix2D) { m = ((MTJDenseDoubleMatrix2D) source).getWrappedObject(); } else { m = new MTJDenseDoubleMatrix2D(source).getWrappedObject(); } no.uib.cipr.matrix.SVD svd = no.uib.cipr.matrix.SVD.factorize(m); Matrix u = new MTJDenseDoubleMatrix2D(svd.getU()); Matrix v = new MTJDenseDoubleMatrix2D(svd.getVt()).transpose(); double[] svs = svd.getS(); Matrix s = SparseDoubleMatrix2D.Factory.zeros(source.getSize()); for (int i = (int) Math.min(s.getRowCount(), s.getColumnCount()); --i >= 0;) { s.setAsDouble(svs[i], i, i); } return new Matrix[] { u, s, v }; } catch (Exception e) { throw new RuntimeException(e); } } }
SVD s = svd.factor(tmp); U = s.getU(); S = s.getS(); Vt = s.getVt(); } catch (NotConvergedException e) {
final double[] svector = svd.getS(); final DenseMatrix S = new DenseMatrix(U.numColumns(), Vt.numRows()); for (int i = 0; i < rank; i++)
double[] singularValues = internalSVD.getS(); int numSingular = singularValues.length; DenseMatrix S = matrixFactory.createMatrix( numRows, numColumns );
double[] singularValues = internalSVD.getS(); int numSingular = singularValues.length; DenseMatrix S = matrixFactory.createMatrix( numRows, numColumns );
double[] singularValues = internalSVD.getS(); int numSingular = singularValues.length; DenseMatrix S = matrixFactory.createMatrix( numRows, numColumns );