public TestMatrixMath_DDRM() { super(new MatrixMath_DDRM()); }
public static UnconstrainedLeastSquares<DMatrixRMaj> levenbergMarquardt( @Nullable ConfigLevenbergMarquardt config, boolean robust ) { if( config == null ) config = new ConfigLevenbergMarquardt(); LinearSolverDense<DMatrixRMaj> solver; if( robust ) solver = LinearSolverFactory_DDRM.leastSquaresQrPivot(true,false); else solver = LinearSolverFactory_DDRM.chol(100); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(solver); UnconLeastSqLevenbergMarquardt_F64<DMatrixRMaj> lm = new UnconLeastSqLevenbergMarquardt_F64<>(new MatrixMath_DDRM(),hessian); lm.configure(config); return lm; } }
public static UnconstrainedLeastSquares<DMatrixRMaj> levenbergMarquardt( @Nullable ConfigLevenbergMarquardt config, boolean robust ) { if( config == null ) config = new ConfigLevenbergMarquardt(); LinearSolverDense<DMatrixRMaj> solver; if( robust ) solver = LinearSolverFactory_DDRM.leastSquaresQrPivot(true,false); else solver = LinearSolverFactory_DDRM.chol(100); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(solver); UnconLeastSqLevenbergMarquardt_F64<DMatrixRMaj> lm = new UnconLeastSqLevenbergMarquardt_F64<>(new MatrixMath_DDRM(),hessian); lm.configure(config); return lm; } }
public MockLevenbergMarquardt() { super(new MatrixMath_DDRM(), new HessianMath_DDRM()); }
/** * Creates a dense trust region least-squares optimization using cauchy steps. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixRMaj> cauchy( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(); MatrixMath_DDRM math = new MatrixMath_DDRM(); TrustRegionUpdateCauchy_F64<DMatrixRMaj> update = new TrustRegionUpdateCauchy_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
/** * Creates a dense trust region least-squares optimization using cauchy steps. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixRMaj> cauchy( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(); MatrixMath_DDRM math = new MatrixMath_DDRM(); TrustRegionUpdateCauchy_F64<DMatrixRMaj> update = new TrustRegionUpdateCauchy_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
private static UnconLeastSqTrustRegion_F64<DMatrixRMaj> createSolver() { LinearSolverDense<DMatrixRMaj> solver = LinearSolverFactory_DDRM.chol(2); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(solver); TrustRegionUpdateDogleg_F64<DMatrixRMaj> alg = new TrustRegionUpdateDogleg_F64<>(); return new UnconLeastSqTrustRegion_F64<>(alg,hessian, new MatrixMath_DDRM()); }
private UnconLeastSqLevenbergMarquardt_F64<DMatrixRMaj> createLM() { ConfigLevenbergMarquardt config = new ConfigLevenbergMarquardt(); LinearSolverDense<DMatrixRMaj> solver = LinearSolverFactory_DDRM.chol(2); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(solver); UnconLeastSqLevenbergMarquardt_F64<DMatrixRMaj> lm = new UnconLeastSqLevenbergMarquardt_F64<>(new MatrixMath_DDRM(),hessian); lm.configure(config); return lm; }
@Override protected UnconstrainedLeastSquares<DMatrixRMaj> createSearch(double minimumValue) { ConfigLevenbergMarquardt config = new ConfigLevenbergMarquardt(); config.dampeningInitial = 0.1; config.hessianScaling = true; LinearSolverDense<DMatrixRMaj> solver = LinearSolverFactory_DDRM.chol(2); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(solver); UnconLeastSqLevenbergMarquardt_F64<DMatrixRMaj> lm = new UnconLeastSqLevenbergMarquardt_F64<>(new MatrixMath_DDRM(),hessian); lm.configure(config); // lm.setVerbose(System.out,0); return lm; } }
/** * Creates a dense trust region least-squares optimization using dogleg steps. Solver works on the B=J<sup>T</sup>J matrix. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixRMaj> dogleg( @Nullable ConfigTrustRegion config, boolean robust ) { if( config == null ) config = new ConfigTrustRegion(); LinearSolverDense<DMatrixRMaj> solver; if( robust ) solver = LinearSolverFactory_DDRM.leastSquaresQrPivot(true,false); else solver = LinearSolverFactory_DDRM.chol(100); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(solver); MatrixMath_DDRM math = new MatrixMath_DDRM(); TrustRegionUpdateDogleg_F64<DMatrixRMaj> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
/** * Creates a dense trust region least-squares optimization using dogleg steps. Solver works on the B=J<sup>T</sup>J matrix. * * @see UnconLeastSqTrustRegion_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquares<DMatrixRMaj> dogleg( @Nullable ConfigTrustRegion config, boolean robust ) { if( config == null ) config = new ConfigTrustRegion(); LinearSolverDense<DMatrixRMaj> solver; if( robust ) solver = LinearSolverFactory_DDRM.leastSquaresQrPivot(true,false); else solver = LinearSolverFactory_DDRM.chol(100); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(solver); MatrixMath_DDRM math = new MatrixMath_DDRM(); TrustRegionUpdateDogleg_F64<DMatrixRMaj> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> alg = new UnconLeastSqTrustRegion_F64<>(update,hessian,math); alg.configure(config); return alg; }
@Override protected UnconstrainedLeastSquares<DMatrixRMaj> createSearch(double minimumValue) { ConfigTrustRegion config = new ConfigTrustRegion(); TrustRegionUpdateCauchy_F64<DMatrixRMaj> cauchy = new TrustRegionUpdateCauchy_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> tr = new UnconLeastSqTrustRegion_F64<>( cauchy, new HessianLeastSquares_DDRM(),new MatrixMath_DDRM()); tr.configure(config); return tr; } }
protected UnconLeastSqTrustRegion_F64<DMatrixRMaj> createAlg() { TrustRegionUpdateCauchy_F64<DMatrixRMaj> update = new TrustRegionUpdateCauchy_F64<>(); HessianLeastSquares_DDRM hessian = new HessianLeastSquares_DDRM(); MatrixMath_DDRM math = new MatrixMath_DDRM(); return new UnconLeastSqTrustRegion_F64<>(update,hessian,math); }
@Override protected UnconstrainedLeastSquares<DMatrixRMaj> createSearch(double minimumValue) { ConfigTrustRegion config = new ConfigTrustRegion(); config.hessianScaling = true; TrustRegionUpdateCauchy_F64<DMatrixRMaj> cauchy = new TrustRegionUpdateCauchy_F64<>(); UnconLeastSqTrustRegion_F64<DMatrixRMaj> tr = new UnconLeastSqTrustRegion_F64<>( cauchy, new HessianLeastSquares_DDRM(),new MatrixMath_DDRM()); tr.configure(config); return tr; }