Function to estimate the aquifer parameters from a pumping test using several optimization functions.

fit.optimization(ptest, model, obj.fn = "rss", opt.method = "nls",
  lower = 1e-09, upper = Inf, control.par, seed = 12345)

Arguments

ptest

A pumping_test object.

model

A character string specifying the model used in the parameter estimation.

obj.fn

A character string specifying the objective function used in the parameter estimation. Currently the following objective functions are included:

  • 'rss': Residual sum of squares

  • 'mnad': Mean absolute deviation

  • 'mxad': Maximum absolute deviation

  • 'loglik': Loglikelihood function

opt.method

A character string specifying the optimization method used in the parameter estimation. Currently the following methologies are included:

  • 'nls': Nonlinear regression

  • 'sa': Simulated Annealing (GenSA package)

  • 'ga': Genetic Algorithms (GA package)

  • 'l-bfgs-b': using optim function (stats package)

  • 'pso': Particle Swarm Optimization (pso package)

  • 'copulaedas': Estimation of Distribution Algorithms Based on Copulas (copulaedas package)

  • 'de': Differential Evolution (DEoptim package)

lower

A numeric vector with the lower values of the search region

upper

A numeric vector with the upper values of the search region

control.par

A list with the parameters of the optimization method

seed

A random seed

Value

A list with the following entries:

  • hydraulic_parameters: hydraulic parameters of the model (includes transmissivity, storage coefficient and radius of influence, or others)

  • parameters: fitted parameters (including a and t0 and other depending on the model)

  • resfit: The list or object returned by the optimization driver of each method.

  • value: The value of the objective function reached at the end of the optimization run.

See also

Other base functions: additional.parameters<-, confint.pumping_test, confint_bootstrap, confint_jackniffe, confint_wald, estimated<-, evaluate, fit.parameters<-, fit.sampling, fit, hydraulic.parameter.names<-, hydraulic.parameters<-, model.parameters, model<-, plot.pumping_test, plot_model_diagnostic, plot_sample_influence, plot_uncert, print.pumping_test, pumping_test, simulate, summary.pumping_test

Examples

# NOT RUN {
# Define pumping_test object
data("boulton")
ptest.boulton <- pumping_test("Well1", Q = 0.03, r = 20,
                              t = boulton$t, s = boulton$s)
# Parameter estimation using L-BFGS-B
ptest.boulton.bfgs.rss <- fit.optimization(ptest.boulton,
"boulton", obj.fn = "rss", opt.method = "l-bfgs-b",
seed = 54321)
# Parameter estimation using Simulated Annealing
ptest.boulton.sa.rss <- fit.optimization(ptest.boulton,
"boulton", obj.fn = "rss", opt.method = "sa", seed = 54321)
# Parameter estimation using Genetic Algorithms
ptest.boulton.ga.rss <- fit.optimization(ptest.boulton,
"boulton", obj.fn = "rss", opt.method = "ga", seed = 54321)
# Parameter estimation using Differential Evolution
ptest.boulton.de.rss <- fit.optimization(ptest.boulton,
                        "boulton", obj.fn = "rss", opt.method = "de", seed = 54321)
# Parameter estimation using Particle Swarm Optimization
ptest.boulton.pso.rss <- fit.optimization(ptest.boulton,
                         "boulton", obj.fn = "rss", opt.method = "pso", seed = 54321)
# }