/** * Creates a sparse Schur Complement trust region optimization using dogleg steps. * * @see UnconLeastSqTrustRegionSchur_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquaresSchur<DMatrixSparseCSC> doglegSchur( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianSchurComplement_DSCC hessian = new HessianSchurComplement_DSCC(); TrustRegionUpdateDogleg_F64<DMatrixSparseCSC> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegionSchur_F64<DMatrixSparseCSC> alg = new UnconLeastSqTrustRegionSchur_F64<>(update,hessian); alg.configure(config); return alg; }
/** * Creates a sparse Schur Complement trust region optimization using dogleg steps. * * @see UnconLeastSqTrustRegionSchur_F64 * * @param config Trust region configuration * @return The new optimization routine */ public static UnconstrainedLeastSquaresSchur<DMatrixSparseCSC> doglegSchur( @Nullable ConfigTrustRegion config ) { if( config == null ) config = new ConfigTrustRegion(); HessianSchurComplement_DSCC hessian = new HessianSchurComplement_DSCC(); TrustRegionUpdateDogleg_F64<DMatrixSparseCSC> update = new TrustRegionUpdateDogleg_F64<>(); UnconLeastSqTrustRegionSchur_F64<DMatrixSparseCSC> alg = new UnconLeastSqTrustRegionSchur_F64<>(update,hessian); alg.configure(config); return alg; }
@Override protected UnconstrainedLeastSquaresSchur<DMatrixSparseCSC> createSearch(double minimumValue) { ConfigTrustRegion config = new ConfigTrustRegion(); // config.regionInitial = 1; config.hessianScaling = true; TrustRegionUpdateDogleg_F64<DMatrixSparseCSC> dogleg = new TrustRegionUpdateDogleg_F64<>(); HessianSchurComplement_DSCC hessian = new HessianSchurComplement_DSCC(); UnconLeastSqTrustRegionSchur_F64<DMatrixSparseCSC> tr = new UnconLeastSqTrustRegionSchur_F64<>(dogleg,hessian); tr.configure(config); // tr.setVerbose(true); return tr; } }