numerical-collection-cpp 0.10.0
A collection of algorithms in numerical analysis implemented in C++
|
Class to perform Tikhonov regularization. More...
#include <num_collect/regularization/tikhonov.h>
Public Types | |
using | base_type |
Type of base class. | |
using | coeff_type = Coeff |
Type of coefficient matrices. | |
Public Types inherited from num_collect::regularization::regularized_solver_base< tikhonov< Coeff, Data >, Data > | |
using | data_type |
Type of data. | |
using | scalar_type |
Type of scalars. | |
Public Member Functions | |
tikhonov () | |
Constructor. | |
void | compute (const coeff_type &coeff, const data_type &data) |
Compute internal matrices. | |
auto | data_size () const -> index_type |
Get the size of data. | |
auto | first_derivative_of_regularization_term (const scalar_type ¶m) const -> scalar_type |
Calculate the first-order derivative of the Regularization term. | |
auto | first_derivative_of_residual_norm (const scalar_type ¶m) const -> scalar_type |
Calculate the first-order derivative of the squared norm of the residual. | |
auto | param_search_region () const -> std::pair< scalar_type, scalar_type > |
Get the default region to search for the optimal regularization parameter. | |
auto | regularization_term (const scalar_type ¶m) const -> scalar_type |
Calculate the regularization term. | |
auto | residual_norm (const scalar_type ¶m) const -> scalar_type |
Calculate the squared norm of the residual. | |
auto | second_derivative_of_regularization_term (const scalar_type ¶m) const -> scalar_type |
Calculate the send-order derivative of the Regularization term. | |
auto | second_derivative_of_residual_norm (const scalar_type ¶m) const -> scalar_type |
Calculate the second-order derivative of the squared norm of the residual. | |
auto | singular_values () const -> const typename Eigen::BDCSVD< coeff_type >::SingularValuesType & |
Get the singular values. | |
void | solve (const scalar_type ¶m, data_type &solution) const |
Solve for a regularization parameter. | |
auto | sum_of_filter_factor (const scalar_type ¶m) const -> scalar_type |
Calculate the sum of filter factors. | |
Public Member Functions inherited from num_collect::regularization::explicit_regularized_solver_base< tikhonov< Coeff, Data >, Data > | |
auto | first_derivative_of_regularization_term (const scalar_type ¶m) const -> scalar_type |
Calculate the first-order derivative of the Regularization term. | |
auto | first_derivative_of_residual_norm (const scalar_type ¶m) const -> scalar_type |
Calculate the first-order derivative of the squared norm of the residual. | |
auto | gcv (const scalar_type ¶m) const -> scalar_type |
Calculate GCV function. | |
auto | l_curve_curvature (const scalar_type ¶m) const |
Calculate the curvature of L-curve. | |
auto | regularization_term (const scalar_type ¶m) const -> scalar_type |
Calculate the regularization term. | |
auto | residual_norm (const scalar_type ¶m) const -> scalar_type |
Calculate the squared norm of the residual. | |
auto | second_derivative_of_regularization_term (const scalar_type ¶m) const -> scalar_type |
Calculate the send-order derivative of the Regularization term. | |
auto | second_derivative_of_residual_norm (const scalar_type ¶m) const -> scalar_type |
Calculate the second-order derivative of the squared norm of the residual. | |
void | solve (const scalar_type ¶m, data_type &solution) const |
Solve for a regularization parameter. | |
auto | sum_of_filter_factor (const scalar_type ¶m) const -> scalar_type |
Calculate the sum of filter factors. | |
Public Member Functions inherited from num_collect::regularization::regularized_solver_base< tikhonov< Coeff, Data >, Data > | |
auto | data_size () const -> index_type |
Get the size of data. | |
auto | param_search_region () const -> std::pair< scalar_type, scalar_type > |
Get the default region to search for the optimal regularization parameter. | |
void | solve (const scalar_type ¶m, data_type &solution) |
Solve for a regularization parameter. | |
Public Member Functions inherited from num_collect::logging::logging_mixin | |
logging_mixin (log_tag_view tag) | |
Constructor. | |
template<typename Child > | |
void | configure_child_algorithm_logger_if_exists (Child &child) |
Configure a logger of a child algorithm if exists. | |
auto | logger () const noexcept -> const num_collect::logging::logger & |
Access to the logger. | |
auto | logger () noexcept -> num_collect::logging::logger & |
Access to the logger. | |
Private Attributes | |
scalar_type | min_res_ {} |
Minimum residual. | |
data_type | rot_data_ {} |
Data in the space of singular values. | |
Eigen::BDCSVD< coeff_type > | svd_ {} |
SVD of the coefficient matrix. | |
Additional Inherited Members | |
Protected Member Functions inherited from num_collect::regularization::explicit_regularized_solver_base< tikhonov< Coeff, Data >, Data > | |
explicit_regularized_solver_base (logging::log_tag_view tag) | |
Constructor. | |
Protected Member Functions inherited from num_collect::regularization::regularized_solver_base< tikhonov< Coeff, Data >, Data > | |
regularized_solver_base (logging::log_tag_view tag) | |
Constructor. | |
auto | derived () const noexcept -> const tikhonov< Coeff, Data > & |
Access derived object. | |
auto | derived () noexcept -> tikhonov< Coeff, Data > & |
Access derived object. | |
Class to perform Tikhonov regularization.
Coeff | Type of coefficient matrices. |
Data | Type of data vectors. |
Definition at line 47 of file tikhonov.h.
using num_collect::regularization::tikhonov< Coeff, Data >::base_type |
Type of base class.
Definition at line 51 of file tikhonov.h.
using num_collect::regularization::tikhonov< Coeff, Data >::coeff_type = Coeff |
Type of coefficient matrices.
Definition at line 58 of file tikhonov.h.
|
inline |
Constructor.
Definition at line 67 of file tikhonov.h.
|
inline |
Compute internal matrices.
[in] | coeff | Coefficient matrix. |
[in] | data | Data vector. |
Definition at line 75 of file tikhonov.h.
|
inlinenodiscard |
|
inlinenodiscard |
Calculate the first-order derivative of the Regularization term.
[in] | param | Regularization parameter. |
Definition at line 151 of file tikhonov.h.
|
inlinenodiscard |
Calculate the first-order derivative of the squared norm of the residual.
[in] | param | Regularization parameter. |
Definition at line 136 of file tikhonov.h.
|
inlinenodiscard |
Get the default region to search for the optimal regularization parameter.
Definition at line 214 of file tikhonov.h.
|
inlinenodiscard |
Calculate the regularization term.
[in] | param | Regularization parameter. |
Definition at line 122 of file tikhonov.h.
|
inlinenodiscard |
Calculate the squared norm of the residual.
[in] | param | Regularization parameter. |
Definition at line 108 of file tikhonov.h.
|
inlinenodiscard |
Calculate the send-order derivative of the Regularization term.
[in] | param | Regularization parameter. |
Definition at line 183 of file tikhonov.h.
|
inlinenodiscard |
Calculate the second-order derivative of the squared norm of the residual.
[in] | param | Regularization parameter. |
Definition at line 166 of file tikhonov.h.
|
inlinenodiscard |
|
inline |
Solve for a regularization parameter.
[in] | param | Regularization parameter. |
[out] | solution | Solution. |
Definition at line 86 of file tikhonov.h.
|
inlinenodiscard |
Calculate the sum of filter factors.
[in] | param | Regularization parameter. |
Definition at line 198 of file tikhonov.h.
|
private |
Minimum residual.
Definition at line 231 of file tikhonov.h.
|
private |
Data in the space of singular values.
Definition at line 228 of file tikhonov.h.
|
private |
SVD of the coefficient matrix.
Definition at line 225 of file tikhonov.h.