![]() |
|
Finds a zero of a system of n nonlinear functions in n variables by a modification of the Powell hybrid method ("dogleg"). More...
#include <HybridNonLinearSolver.h>
Classes | |
struct | Parameters |
Public Types | |
typedef DenseIndex | Index |
typedef Matrix< Scalar, Dynamic, 1 > | FVectorType |
typedef Matrix< Scalar, Dynamic, Dynamic > | JacobianType |
typedef Matrix< Scalar, Dynamic, Dynamic > | UpperTriangularType |
Public Member Functions | |
HybridNonLinearSolver (FunctorType &_functor) | |
HybridNonLinearSolverSpace::Status | hybrj1 (FVectorType &x, const Scalar tol=numext::sqrt(NumTraits< Scalar >::epsilon())) |
HybridNonLinearSolverSpace::Status | solveInit (FVectorType &x) |
HybridNonLinearSolverSpace::Status | solveOneStep (FVectorType &x) |
HybridNonLinearSolverSpace::Status | solve (FVectorType &x) |
HybridNonLinearSolverSpace::Status | hybrd1 (FVectorType &x, const Scalar tol=numext::sqrt(NumTraits< Scalar >::epsilon())) |
HybridNonLinearSolverSpace::Status | solveNumericalDiffInit (FVectorType &x) |
HybridNonLinearSolverSpace::Status | solveNumericalDiffOneStep (FVectorType &x) |
HybridNonLinearSolverSpace::Status | solveNumericalDiff (FVectorType &x) |
void | resetParameters (void) |
Public Attributes | |
Parameters | parameters |
FVectorType | fvec |
FVectorType | qtf |
FVectorType | diag |
JacobianType | fjac |
UpperTriangularType | R |
Index | nfev |
Index | njev |
Index | iter |
Scalar | fnorm |
bool | useExternalScaling |
Private Member Functions | |
HybridNonLinearSolver & | operator= (const HybridNonLinearSolver &) |
Private Attributes | |
FunctorType & | functor |
Index | n |
Scalar | sum |
bool | sing |
Scalar | temp |
Scalar | delta |
bool | jeval |
Index | ncsuc |
Scalar | ratio |
Scalar | pnorm |
Scalar | xnorm |
Scalar | fnorm1 |
Index | nslow1 |
Index | nslow2 |
Index | ncfail |
Scalar | actred |
Scalar | prered |
FVectorType | wa1 |
FVectorType | wa2 |
FVectorType | wa3 |
FVectorType | wa4 |
Finds a zero of a system of n nonlinear functions in n variables by a modification of the Powell hybrid method ("dogleg").
The user must provide a subroutine which calculates the functions. The Jacobian is either provided by the user, or approximated using a forward-difference method.
typedef Matrix<Scalar, Dynamic, 1> Eigen::HybridNonLinearSolver< FunctorType, Scalar >::FVectorType |
typedef DenseIndex Eigen::HybridNonLinearSolver< FunctorType, Scalar >::Index |
typedef Matrix<Scalar, Dynamic, Dynamic> Eigen::HybridNonLinearSolver< FunctorType, Scalar >::JacobianType |
typedef Matrix<Scalar, Dynamic, Dynamic> Eigen::HybridNonLinearSolver< FunctorType, Scalar >::UpperTriangularType |
|
inline |
References Eigen::HybridNonLinearSolver< FunctorType, Scalar >::fnorm, Eigen::HybridNonLinearSolver< FunctorType, Scalar >::iter, Eigen::HybridNonLinearSolver< FunctorType, Scalar >::nfev, Eigen::HybridNonLinearSolver< FunctorType, Scalar >::njev, and Eigen::HybridNonLinearSolver< FunctorType, Scalar >::useExternalScaling.
HybridNonLinearSolverSpace::Status Eigen::HybridNonLinearSolver< FunctorType, Scalar >::hybrd1 | ( | FVectorType & | x, |
const Scalar | tol = numext::sqrt(NumTraits<Scalar>::epsilon()) |
||
) |
References diag, Eigen::HybridNonLinearSolverSpace::ImproperInputParameters, n, and plotDoE::x.
HybridNonLinearSolverSpace::Status Eigen::HybridNonLinearSolver< FunctorType, Scalar >::hybrj1 | ( | FVectorType & | x, |
const Scalar | tol = numext::sqrt(NumTraits<Scalar>::epsilon()) |
||
) |
References diag, Eigen::HybridNonLinearSolverSpace::ImproperInputParameters, n, solve, and plotDoE::x.
|
private |
|
inline |
HybridNonLinearSolverSpace::Status Eigen::HybridNonLinearSolver< FunctorType, Scalar >::solve | ( | FVectorType & | x | ) |
References Eigen::HybridNonLinearSolverSpace::ImproperInputParameters, Eigen::HybridNonLinearSolverSpace::Running, and plotDoE::x.
HybridNonLinearSolverSpace::Status Eigen::HybridNonLinearSolver< FunctorType, Scalar >::solveInit | ( | FVectorType & | x | ) |
References diag, eigen_assert, Eigen::HybridNonLinearSolverSpace::ImproperInputParameters, j, n, Eigen::HybridNonLinearSolverSpace::Running, Eigen::HybridNonLinearSolverSpace::UserAsked, and plotDoE::x.
HybridNonLinearSolverSpace::Status Eigen::HybridNonLinearSolver< FunctorType, Scalar >::solveNumericalDiff | ( | FVectorType & | x | ) |
References Eigen::HybridNonLinearSolverSpace::ImproperInputParameters, Eigen::HybridNonLinearSolverSpace::Running, and plotDoE::x.
HybridNonLinearSolverSpace::Status Eigen::HybridNonLinearSolver< FunctorType, Scalar >::solveNumericalDiffInit | ( | FVectorType & | x | ) |
References diag, eigen_assert, Eigen::HybridNonLinearSolverSpace::ImproperInputParameters, j, n, Eigen::HybridNonLinearSolverSpace::Running, Eigen::HybridNonLinearSolverSpace::UserAsked, and plotDoE::x.
HybridNonLinearSolverSpace::Status Eigen::HybridNonLinearSolver< FunctorType, Scalar >::solveNumericalDiffOneStep | ( | FVectorType & | x | ) |
References abs(), Eigen::numext::abs2(), MultiOpt::delta, diag, e(), eigen_assert, Eigen::internal::fdjac1(), Eigen::HouseholderQR< MatrixType_ >::householderQ(), j, Eigen::HouseholderQR< MatrixType_ >::matrixQR(), max, min, n, Eigen::HybridNonLinearSolverSpace::NotMakingProgressIterations, Eigen::HybridNonLinearSolverSpace::NotMakingProgressJacobian, R, Eigen::HybridNonLinearSolverSpace::RelativeErrorTooSmall, Eigen::HybridNonLinearSolverSpace::Running, sqrt(), Eigen::HybridNonLinearSolverSpace::TolTooSmall, Eigen::HybridNonLinearSolverSpace::TooManyFunctionEvaluation, Eigen::HouseholderSequence< VectorsType, CoeffsType, Side >::transpose(), Eigen::HybridNonLinearSolverSpace::UserAsked, and plotDoE::x.
HybridNonLinearSolverSpace::Status Eigen::HybridNonLinearSolver< FunctorType, Scalar >::solveOneStep | ( | FVectorType & | x | ) |
References abs(), Eigen::numext::abs2(), MultiOpt::delta, diag, e(), eigen_assert, Eigen::HouseholderQR< MatrixType_ >::householderQ(), j, Eigen::HouseholderQR< MatrixType_ >::matrixQR(), max, min, n, Eigen::HybridNonLinearSolverSpace::NotMakingProgressIterations, Eigen::HybridNonLinearSolverSpace::NotMakingProgressJacobian, R, Eigen::HybridNonLinearSolverSpace::RelativeErrorTooSmall, Eigen::HybridNonLinearSolverSpace::Running, Eigen::HybridNonLinearSolverSpace::TolTooSmall, Eigen::HybridNonLinearSolverSpace::TooManyFunctionEvaluation, Eigen::HouseholderSequence< VectorsType, CoeffsType, Side >::transpose(), Eigen::HybridNonLinearSolverSpace::UserAsked, and plotDoE::x.
|
private |
|
private |
FVectorType Eigen::HybridNonLinearSolver< FunctorType, Scalar >::diag |
JacobianType Eigen::HybridNonLinearSolver< FunctorType, Scalar >::fjac |
Scalar Eigen::HybridNonLinearSolver< FunctorType, Scalar >::fnorm |
|
private |
|
private |
FVectorType Eigen::HybridNonLinearSolver< FunctorType, Scalar >::fvec |
Index Eigen::HybridNonLinearSolver< FunctorType, Scalar >::iter |
|
private |
|
private |
|
private |
|
private |
Index Eigen::HybridNonLinearSolver< FunctorType, Scalar >::nfev |
Index Eigen::HybridNonLinearSolver< FunctorType, Scalar >::njev |
|
private |
|
private |
Parameters Eigen::HybridNonLinearSolver< FunctorType, Scalar >::parameters |
|
private |
|
private |
FVectorType Eigen::HybridNonLinearSolver< FunctorType, Scalar >::qtf |
UpperTriangularType Eigen::HybridNonLinearSolver< FunctorType, Scalar >::R |
|
private |
|
private |
|
private |
|
private |
bool Eigen::HybridNonLinearSolver< FunctorType, Scalar >::useExternalScaling |
|
private |
|
private |
|
private |
|
private |
|
private |