List of usage examples for org.apache.commons.math3.linear RealVector copy
public abstract RealVector copy();
From source file:hivemall.utils.math.MatrixUtils.java
/** * Lanczos tridiagonalization for a symmetric matrix C to make s * s tridiagonal matrix T. * * @see http://www.cas.mcmaster.ca/~qiao/publications/spie05.pdf * @param C target symmetric matrix/*from w w w . ja va 2 s . c om*/ * @param a initial vector * @param T result is stored here */ public static void lanczosTridiagonalization(@Nonnull final RealMatrix C, @Nonnull final double[] a, @Nonnull final RealMatrix T) { Preconditions.checkArgument(Arrays.deepEquals(C.getData(), C.transpose().getData()), "Target matrix C must be a symmetric matrix"); Preconditions.checkArgument(C.getColumnDimension() == a.length, "Column size of A and length of a should be same"); Preconditions.checkArgument(T.getRowDimension() == T.getColumnDimension(), "T must be a square matrix"); int s = T.getRowDimension(); // initialize T with zeros T.setSubMatrix(new double[s][s], 0, 0); RealVector a0 = new ArrayRealVector(a.length); RealVector r = new ArrayRealVector(a); double beta0 = 1.d; for (int i = 0; i < s; i++) { RealVector a1 = r.mapDivide(beta0); RealVector Ca1 = C.operate(a1); double alpha1 = a1.dotProduct(Ca1); r = Ca1.add(a1.mapMultiply(-1.d * alpha1)).add(a0.mapMultiply(-1.d * beta0)); double beta1 = r.getNorm(); T.setEntry(i, i, alpha1); if (i - 1 >= 0) { T.setEntry(i, i - 1, beta0); } if (i + 1 < s) { T.setEntry(i, i + 1, beta1); } a0 = a1.copy(); beta0 = beta1; } }
From source file:edu.ucsf.valelab.saim.calculations.SaimParameterValidator.java
/** * Very simple validator that uses lower and upper bounds to restrict * parameter values//from w ww. j av a 2 s . c om * @param params * @return */ @Override public RealVector validate(RealVector params) { if (params.getDimension() != 3) throw new DimensionMismatchException(params.getDimension(), 3); RealVector n = params.copy(); for (int i = 0; i < 3; i++) { if (n.getEntry(i) < lowerBounds_[i]) n.setEntry(i, lowerBounds_[i]); if (n.getEntry(i) > upperBounds_[i]) n.setEntry(i, upperBounds_[i]); } return n; }
From source file:edu.stanford.cfuller.imageanalysistools.fitting.NelderMeadMinimizer.java
/** * Constructs the initial simplex that is the starting point of the optimization given an initial guess at the minimum and a size scale for each parameter. * @param initialPoint The initial guess at the minimum, one component per parameter. * @param componentScales A size scale for each parameter that is used to set how large the initial simplex is. * @return A matrix containing p + 1 rows, each of which is one set of p parameters, which specify the simplex. *//*from www . j a v a 2s.c o m*/ public RealMatrix generateInitialSimplex(RealVector initialPoint, RealVector componentScales) { RealMatrix initialSimplex = new Array2DRowRealMatrix(initialPoint.getDimension() + 1, initialPoint.getDimension()); initialSimplex.setRowVector(0, initialPoint); for (int i = 1; i < initialSimplex.getRowDimension(); i++) { RealVector newVector = initialPoint.copy(); newVector.setEntry(i - 1, newVector.getEntry(i - 1) + componentScales.getEntry(i - 1)); initialSimplex.setRowVector(i, newVector); } return initialSimplex; }
From source file:org.grouplens.samantha.modeler.space.SynchronizedVariableSpace.java
final public List<RealVector> getVectorVarByName(String name) { List<RealVector> vars = new ArrayList<>(); readLock.lock();/*from w ww.ja v a 2 s. com*/ try { for (RealVector var : vectorVars.get(name)) { vars.add(var.copy()); } return vars; } finally { readLock.unlock(); } }
From source file:org.knime.al.util.noveltydetection.knfst.MatrixFunctions.java
public static RealVector sqrt(final RealVector vector) { final RealVector result = vector.copy(); for (int e = 0; e < result.getDimension(); e++) { result.setEntry(e, Math.sqrt(result.getEntry(e))); }//www . j a va 2 s .co m return result; }
From source file:shapeCompare.PairingTools.java
public static RealVector alignPointFromShape2toShape1(RealVector trans2toOrigin, RealVector trans, RealMatrix rot, RealVector point) { RealVector translatedToOriginPoint = point.add(trans2toOrigin.copy()); RealVector rotatedPoint = rot.operate(translatedToOriginPoint); RealVector translatedBackPoint = rotatedPoint.subtract(trans2toOrigin); RealVector translatedToShape1 = translatedBackPoint.add(trans); return translatedToShape1; }