MADNESS
version 0.9
|
Files | |
file | gmres.h |
Defines a general operator interface and a templated GMRES solver for solving linear equations. | |
file | solvers.h |
Defines interfaces for optimization and non-linear equation solvers. | |
Classes | |
struct | madness::SolverTargetInterface |
The interface to be provided by targets for non-linear equation solver. More... | |
struct | madness::OptimizationTargetInterface |
The interface to be provided by functions to be optimized. More... | |
struct | madness::SolverInterface |
The interface to be provided by solvers ... NOT USED ANYWHERE? More... | |
struct | madness::OptimizerInterface |
The interface to be provided by optimizers. More... | |
class | madness::SteepestDescent |
Unconstrained minimization via steepest descent. More... | |
class | madness::QuasiNewton |
Optimization via quasi-Newton (BFGS or SR1 update) More... | |
Functions | |
template<typename T > | |
Tensor< T > | madness::KAIN (const Tensor< T > &Q, double rcond=1e-12) |
Solves non-linear equation using KAIN (returns coefficients to compute next vector) More... | |
Tensor<T> madness::KAIN | ( | const Tensor< T > & | Q, |
double | rcond = 1e-12 |
||
) |
Solves non-linear equation using KAIN (returns coefficients to compute next vector)
The Krylov-accelerated inexact-Newton method employs directional derivatives to estimate the Jacobian in the subspace and separately computes updates in the subspace and its complement.
We wish to solve the non-linear equations where and are vectors of the same dimension (e.g., consider both being MADNESS functions).
Define the following matrices and vector (with and denoting previous iterations in the Krylov subspace and the current iteration):
The subspace equation is of dimension (assuming iterations are indexed from zero) and is given by
The interior and exterior updates may be combined into one simple expression as follows. First, define an additional element of the solution vector
and then the new vector (guess for next iteration) is given by
To employ the solver, each iteration
[in] | Q | The matrix of inner products between subspace vectors and residuals. |
[in] | rcond | Threshold for discarding small singular values in the subspace equations. |
References b(), c, madness::gelss(), L, m, and std::tr1::T().
Referenced by madness::check_linear_dependence(), madness::NonlinearSolverND< NDIM >::update(), madness::XNonlinearSolver< T, C, Alloc >::update(), madness::SubspaceK< T, NDIM >::update_subspace(), madness::Subspace< T, NDIM >::update_subspace(), and madness::SCF::update_subspace().