Automatic Differentiation
 
Loading...
Searching...
No Matches

◆ solve_powell()

template<typename F , typename T , typename... T_Args, require_eigen_vector_t< T > * = nullptr>
Eigen::Matrix< stan::return_type_t< T_Args... >, Eigen::Dynamic, 1 > stan::math::solve_powell ( const F &  f,
const T &  x,
std::ostream *const  msgs,
const T_Args &...  args 
)

Return the solution to the specified system of algebraic equations given an initial guess, and parameters and data, which get passed into the algebraic system.

Use Powell's dogleg solver.

This signature does not let the user specify the tuning parameters of the solver (instead default values are used).

Template Parameters
Ftype of equation system function
Ttype of elements in the x vector
Argstypes of additional input to the equation system functor
Parameters
[in]fFunctor that evaluates the system of equations.
[in]xVector of starting values (initial guess).
[in,out]msgsthe print stream for warning messages.
[in]argsAdditional parameters to the equation system functor.
Returns
theta Vector of solutions to the system of equations.
Exceptions
<code>std::invalid_argument</code>if x has size zero.
<code>std::invalid_argument</code>if x has non-finite elements.
<code>std::invalid_argument</code>if relative_tolerance is strictly negative.
<code>std::invalid_argument</code>if function_tolerance is strictly negative.
<code>std::invalid_argument</code>if max_num_steps is not positive.
<code>std::domain_error</code>solver exceeds max_num_steps.
<code>std::domain_error</code>if the norm of the solution exceeds the function tolerance.

Definition at line 188 of file solve_powell.hpp.