Base class for the nonlinear least squares branch of the iterator hierarchy. More...
Protected Member Functions | |
LeastSq () | |
default constructor | |
LeastSq (Model &model) | |
standard constructor | |
LeastSq (NoDBBaseConstructor, Model &model) | |
alternate constructor | |
~LeastSq () | |
destructor | |
void | initialize_run () |
void | run () |
run portion of run_iterator; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post | |
void | post_run (std::ostream &s) |
void | finalize_run () |
utility function to perform common operations following post_run(); deallocation and resetting of instance pointers | |
void | print_results (std::ostream &s) |
virtual void | minimize_residuals ()=0 |
Used within the least squares branch for minimizing the sum of squares residuals. Redefines the run virtual function for the least squares branch. | |
void | read_observed_data () |
read user data file to load observed data points | |
void | get_confidence_intervals () |
Calculate confidence intervals on estimated parameters. | |
Static Protected Member Functions | |
static void | primary_resp_recast (const Variables &native_vars, const Variables &scaled_vars, const Response &native_response, Response &scaled_response) |
primary response conversion map for RecastModel used in scaling: transform least squares terms (fns, grads, Hessians) from native (user) to iterator space | |
Protected Attributes | |
int | numLeastSqTerms |
number of least squares terms | |
LeastSq * | prevLSqInstance |
pointer containing previous value of leastSqInstance | |
bool | weightFlag |
flag indicating whether weighted least squares is active | |
String | obsDataFilename |
filename from which to read observed data | |
bool | obsDataFlag |
flag indicating whether user-supplied data is active | |
RealArray | obsData |
storage for user-supplied data for computing residuals | |
RealVector | confBoundsLower |
lower bounds for confidence intervals on calibration parameters | |
RealVector | confBoundsUpper |
upper bounds for confidence intervals on calibration parameters | |
Static Protected Attributes | |
static LeastSq * | leastSqInstance |
pointer to LeastSq instance used in static member functions |
Base class for the nonlinear least squares branch of the iterator hierarchy.
The LeastSq class provides common data and functionality for least squares solvers (including NL2OL, NLSSOLLeastSq, and SNLLLeastSq.
standard constructor
This constructor extracts the inherited data for the least squares branch and performs sanity checking on gradient and constraint settings.
References Dakota::abort_handler(), Model::assign_rep(), Iterator::bestVariablesArray, Variables::copy(), Model::current_variables(), Minimizer::cvScaleTypes, Model::init_communicators(), RecastModel::initialize(), Minimizer::initialize_scaling(), Iterator::iteratedModel, Iterator::maxConcurrency, Model::model_rep(), Iterator::numContinuousVars, Iterator::numFunctions, Minimizer::numIterPrimaryFns, LeastSq::numLeastSqTerms, Minimizer::numNonlinearConstraints, Minimizer::numNonlinearIneqConstraints, Minimizer::numUserPrimaryFns, LeastSq::obsDataFlag, LeastSq::primary_resp_recast(), Minimizer::primaryRespScaleFlag, LeastSq::read_observed_data(), Minimizer::responseScaleTypes, Minimizer::scaleFlag, Minimizer::secondary_resp_recast(), Minimizer::secondaryRespScaleFlag, Minimizer::variables_recast(), Minimizer::varsScaleFlag, and LeastSq::weightFlag.
void initialize_run | ( | ) | [protected, virtual] |
This function should be invoked (or reimplemented) by any derived implementations of initialize_run() (which would otherwise hide it).
Reimplemented from Minimizer.
Reimplemented in SNLLLeastSq.
References Iterator::iteratedModel, LeastSq::leastSqInstance, LeastSq::obsDataFlag, LeastSq::prevLSqInstance, Minimizer::scaleFlag, and Model::update_from_subordinate_model().
void run | ( | ) | [inline, protected, virtual] |
run portion of run_iterator; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post
Virtual run function for the iterator class hierarchy. All derived classes need to redefine it.
Reimplemented from Iterator.
References LeastSq::minimize_residuals().
void post_run | ( | std::ostream & | s | ) | [protected, virtual] |
Implements portions of post_run specific to LeastSq for scaling back to native variables and functions. This function should be invoked (or reimplemented) by any derived implementations of post_run() (which would otherwise hide it).
Reimplemented from Iterator.
Reimplemented in SNLLLeastSq.
References Dakota::abort_handler(), Response::active_set_request_vector(), Iterator::bestResponseArray, Iterator::bestVariablesArray, Variables::continuous_variables(), Response::copy(), Minimizer::cvScaleMultipliers, Minimizer::cvScaleOffsets, Minimizer::cvScaleTypes, Response::function_value(), Response::function_values(), Iterator::iteratedModel, Minimizer::modify_s2n(), Minimizer::need_resp_trans_byvars(), LeastSq::numLeastSqTerms, Minimizer::numNonlinearConstraints, Model::primary_response_fn_weights(), Minimizer::primaryRespScaleFlag, Minimizer::response_modify_s2n(), Minimizer::secondaryRespScaleFlag, Model::subordinate_model(), Response::update_partial(), Minimizer::varsScaleFlag, and LeastSq::weightFlag.
void finalize_run | ( | ) | [inline, protected, virtual] |
utility function to perform common operations following post_run(); deallocation and resetting of instance pointers
Optional: perform finalization phases of run sequence, like deallocating memory and resetting instance pointers. Commonly used in sub-iterator executions. This is a virtual function; when re-implementing, a derived class must call its nearest parent's finalize_run(), typically _after_ performing its own implementation steps.
Reimplemented from Minimizer.
Reimplemented in SNLLLeastSq.
References LeastSq::leastSqInstance, and LeastSq::prevLSqInstance.
void print_results | ( | std::ostream & | s | ) | [protected, virtual] |
Redefines default iterator results printing to include nonlinear least squares results (residual terms and constraints).
Reimplemented from Iterator.
References Iterator::activeSet, Iterator::bestResponseArray, Iterator::bestVariablesArray, LeastSq::confBoundsLower, LeastSq::confBoundsUpper, Model::continuous_variable_labels(), Dakota::data_pairs, Model::interface_id(), Iterator::iteratedModel, Dakota::lookup_by_val(), Iterator::numContinuousVars, Iterator::numFunctions, LeastSq::numLeastSqTerms, ActiveSet::request_values(), Dakota::write_data_partial(), and Dakota::write_precision.
void primary_resp_recast | ( | const Variables & | native_vars, |
const Variables & | scaled_vars, | ||
const Response & | native_response, | ||
Response & | iterator_response | ||
) | [static, protected] |
primary response conversion map for RecastModel used in scaling: transform least squares terms (fns, grads, Hessians) from native (user) to iterator space
Least squares function map from user/native space to iterator/scaled space using a RecastModel. If no scaling also copies constraints.
References Response::active_set_derivative_vector(), Response::active_set_request_vector(), Variables::acv(), Variables::all_continuous_variable_ids(), Variables::continuous_variable_ids(), Response::copy(), Variables::cv(), Response::function_gradient(), Response::function_gradients(), Response::function_hessian(), Response::function_hessians(), Response::function_labels(), Response::function_value(), Response::function_values(), Variables::icv(), Variables::inactive_continuous_variable_ids(), Iterator::iteratedModel, LeastSq::leastSqInstance, Minimizer::need_resp_trans_byvars(), LeastSq::numLeastSqTerms, LeastSq::obsData, LeastSq::obsDataFlag, Iterator::outputLevel, Model::primary_response_fn_weights(), Minimizer::primaryRespScaleFlag, Minimizer::response_modify_n2s(), Model::subordinate_model(), Response::update(), Response::update_partial(), LeastSq::weightFlag, and Dakota::write_data().
Referenced by LeastSq::LeastSq().
void read_observed_data | ( | ) | [protected] |
read user data file to load observed data points
read user's observation data for computation of least squares residuals (currently reading on all processors -- need to read once and broadcast)
References Dakota::abort_handler(), LeastSq::numLeastSqTerms, LeastSq::obsData, and LeastSq::obsDataFilename.
Referenced by LeastSq::LeastSq().
void get_confidence_intervals | ( | ) | [protected] |
Calculate confidence intervals on estimated parameters.
Calculate individual confidence intervals for each parameter. These bounds are based on a linear approximation of the nonlinear model.
References Iterator::activeSet, Iterator::bestResponseArray, Iterator::bestVariablesArray, Model::compute_response(), LeastSq::confBoundsLower, LeastSq::confBoundsUpper, Model::continuous_variables(), Model::current_response(), Response::function_gradients(), Iterator::iteratedModel, Iterator::numContinuousVars, LeastSq::numLeastSqTerms, ActiveSet::request_values(), Minimizer::scaleFlag, and Minimizer::vendorNumericalGradFlag.
Referenced by NLSSOLLeastSq::minimize_residuals(), NL2SOLLeastSq::minimize_residuals(), and SNLLLeastSq::post_run().