A class for finding the N roots of N one-dimensional non-linear equations. More...
#include <RootSolver.h>
Public Member Functions | |
RootSolver (VectorFunctionUncoupledNxN *aFunc) | |
Default constructor. | |
virtual | ~RootSolver () |
Destructor. | |
Array< double > | solve (const SimTK::State &s, const Array< double > &ax, const Array< double > &bx, const Array< double > &tol) |
Solve for the roots. |
A class for finding the N roots of N one-dimensional non-linear equations.
The rational for making this class solve for the roots of N equations simultaneously is that, for some problems, it is more computationally efficient to evaluate the N equations at the same time, as opposed to one after the other. That is, the N equations, though decoupled, do share some common terms.
This class can always be used for a system where N=1, although there will be some small amount of overhead for this class to function in this way when compared to a class that is dedicated to an N=1.
To construct an instance of this class, the user must provide an instance of a VectorFunctionUncoupledNxN.
RootSolver::RootSolver | ( | VectorFunctionUncoupledNxN * | aFunc | ) |
Default constructor.
RootSolver::~RootSolver | ( | ) | [virtual] |
Destructor.
Array< double > RootSolver::solve | ( | const SimTK::State & | s, | |
const Array< double > & | ax, | |||
const Array< double > & | bx, | |||
const Array< double > & | tol | |||
) |
Solve for the roots.