numerical-collection-cpp 0.10.0
A collection of algorithms in numerical analysis implemented in C++
Loading...
Searching...
No Matches
num_collect::regularization::full_gen_tikhonov< Coeff, Data > Class Template Reference

Class to perform generalized Tikhonov regularization on the condition that the matrix in the regularization term which have full row rank [4], [11]. More...

#include <num_collect/regularization/full_gen_tikhonov.h>

+ Inheritance diagram for num_collect::regularization::full_gen_tikhonov< Coeff, Data >:
+ Collaboration diagram for num_collect::regularization::full_gen_tikhonov< Coeff, Data >:

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< full_gen_tikhonov< Coeff, Data >, Data >
using data_type
 Type of data.
 
using scalar_type
 Type of scalars.
 

Public Member Functions

 full_gen_tikhonov ()
 Constructor.
 
void compute (const coeff_type &coeff, const data_type &data, const coeff_type &reg_coeff)
 Compute internal matrices.
 
auto data_size () const -> index_type
 Get the size of data.
 
auto first_derivative_of_regularization_term (const scalar_type &param) const -> scalar_type
 Calculate the first-order derivative of the Regularization term.
 
auto first_derivative_of_residual_norm (const scalar_type &param) const -> scalar_type
 Calculate the first-order derivative of the squared norm of the residual.
 
auto internal_solver () const -> const tikhonov< coeff_type, data_type > &
 Access to the internal solver (for debug).
 
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 &param) const -> scalar_type
 Calculate the regularization term.
 
auto residual_norm (const scalar_type &param) const -> scalar_type
 Calculate the squared norm of the residual.
 
auto second_derivative_of_regularization_term (const scalar_type &param) const -> scalar_type
 Calculate the send-order derivative of the Regularization term.
 
auto second_derivative_of_residual_norm (const scalar_type &param) 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 &param, data_type &solution) const
 Solve for a regularization parameter.
 
auto sum_of_filter_factor (const scalar_type &param) const -> scalar_type
 Calculate the sum of filter factors.
 
- Public Member Functions inherited from num_collect::regularization::explicit_regularized_solver_base< full_gen_tikhonov< Coeff, Data >, Data >
auto first_derivative_of_regularization_term (const scalar_type &param) const -> scalar_type
 Calculate the first-order derivative of the Regularization term.
 
auto first_derivative_of_residual_norm (const scalar_type &param) const -> scalar_type
 Calculate the first-order derivative of the squared norm of the residual.
 
auto gcv (const scalar_type &param) const -> scalar_type
 Calculate GCV function.
 
auto l_curve_curvature (const scalar_type &param) const
 Calculate the curvature of L-curve.
 
auto regularization_term (const scalar_type &param) const -> scalar_type
 Calculate the regularization term.
 
auto residual_norm (const scalar_type &param) const -> scalar_type
 Calculate the squared norm of the residual.
 
auto second_derivative_of_regularization_term (const scalar_type &param) const -> scalar_type
 Calculate the send-order derivative of the Regularization term.
 
auto second_derivative_of_residual_norm (const scalar_type &param) const -> scalar_type
 Calculate the second-order derivative of the squared norm of the residual.
 
void solve (const scalar_type &param, data_type &solution) const
 Solve for a regularization parameter.
 
auto sum_of_filter_factor (const scalar_type &param) const -> scalar_type
 Calculate the sum of filter factors.
 
- Public Member Functions inherited from num_collect::regularization::regularized_solver_base< full_gen_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 &param, 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

Coeff coeff_actual_solution_ {}
 Coefficient matrix to calculate actual solution.
 
Data offset_actual_solution_ {}
 Offset vector to calculate actual solution.
 
tikhonov< coeff_type, data_typetikhonov_ {}
 Object to perform Tikhonov regularization.
 

Additional Inherited Members

- Protected Member Functions inherited from num_collect::regularization::explicit_regularized_solver_base< full_gen_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< full_gen_tikhonov< Coeff, Data >, Data >
 regularized_solver_base (logging::log_tag_view tag)
 Constructor.
 
auto derived () const noexcept -> const full_gen_tikhonov< Coeff, Data > &
 Access derived object.
 
auto derived () noexcept -> full_gen_tikhonov< Coeff, Data > &
 Access derived object.
 

Detailed Description

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
class num_collect::regularization::full_gen_tikhonov< Coeff, Data >

Class to perform generalized Tikhonov regularization on the condition that the matrix in the regularization term which have full row rank [4], [11].

Template Parameters
CoeffType of coefficient matrices.
DataType of data vectors.

Definition at line 52 of file full_gen_tikhonov.h.

Member Typedef Documentation

◆ base_type

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
using num_collect::regularization::full_gen_tikhonov< Coeff, Data >::base_type

◆ coeff_type

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
using num_collect::regularization::full_gen_tikhonov< Coeff, Data >::coeff_type = Coeff

Type of coefficient matrices.

Definition at line 64 of file full_gen_tikhonov.h.

Constructor & Destructor Documentation

◆ full_gen_tikhonov()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
num_collect::regularization::full_gen_tikhonov< Coeff, Data >::full_gen_tikhonov ( )
inline

Constructor.

Definition at line 73 of file full_gen_tikhonov.h.

Member Function Documentation

◆ compute()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
void num_collect::regularization::full_gen_tikhonov< Coeff, Data >::compute ( const coeff_type & coeff,
const data_type & data,
const coeff_type & reg_coeff )
inline

Compute internal matrices.

This generate arranged problem of Tikhonov regularization as in [4], [11].

Parameters
[in]coeffCoefficient matrix.
[in]dataData vector.
[in]reg_coeffCoefficient matrix for the regularization term.

Definition at line 85 of file full_gen_tikhonov.h.

◆ data_size()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::data_size ( ) const -> index_type
inlinenodiscard

Get the size of data.

Returns
Size of data.

Definition at line 198 of file full_gen_tikhonov.h.

◆ first_derivative_of_regularization_term()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::first_derivative_of_regularization_term ( const scalar_type & param) const -> scalar_type
inlinenodiscard

Calculate the first-order derivative of the Regularization term.

Parameters
[in]paramRegularization parameter.
Returns
Result.

Definition at line 174 of file full_gen_tikhonov.h.

◆ first_derivative_of_residual_norm()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::first_derivative_of_residual_norm ( const scalar_type & param) const -> scalar_type
inlinenodiscard

Calculate the first-order derivative of the squared norm of the residual.

Parameters
[in]paramRegularization parameter.
Returns
Result.

Definition at line 168 of file full_gen_tikhonov.h.

◆ internal_solver()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::internal_solver ( ) const -> const tikhonov<coeff_type, data_type>&
inlinenodiscard

Access to the internal solver (for debug).

Returns
Internal solver.

Definition at line 213 of file full_gen_tikhonov.h.

◆ param_search_region()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::param_search_region ( ) const -> std::pair<scalar_type, scalar_type>
inlinenodiscard

Get the default region to search for the optimal regularization parameter.

Returns
Pair of minimum and maximum regularization parameters.

Definition at line 203 of file full_gen_tikhonov.h.

◆ regularization_term()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::regularization_term ( const scalar_type & param) const -> scalar_type
inlinenodiscard

Calculate the regularization term.

Parameters
[in]paramRegularization parameter.
Returns
Result.

Definition at line 162 of file full_gen_tikhonov.h.

◆ residual_norm()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::residual_norm ( const scalar_type & param) const -> scalar_type
inlinenodiscard

Calculate the squared norm of the residual.

Parameters
[in]paramRegularization parameter.
Returns
Result.

Definition at line 156 of file full_gen_tikhonov.h.

◆ second_derivative_of_regularization_term()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::second_derivative_of_regularization_term ( const scalar_type & param) const -> scalar_type
inlinenodiscard

Calculate the send-order derivative of the Regularization term.

Parameters
[in]paramRegularization parameter.
Returns
Result.

Definition at line 186 of file full_gen_tikhonov.h.

◆ second_derivative_of_residual_norm()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::second_derivative_of_residual_norm ( const scalar_type & param) const -> scalar_type
inlinenodiscard

Calculate the second-order derivative of the squared norm of the residual.

Parameters
[in]paramRegularization parameter.
Returns
Result.

Definition at line 180 of file full_gen_tikhonov.h.

◆ singular_values()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::singular_values ( ) const -> const typename Eigen::BDCSVD<coeff_type>::SingularValuesType&
inlinenodiscard

Get the singular values.

Returns
Singular values.

Definition at line 150 of file full_gen_tikhonov.h.

◆ solve()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
void num_collect::regularization::full_gen_tikhonov< Coeff, Data >::solve ( const scalar_type & param,
data_type & solution ) const
inline

Solve for a regularization parameter.

Parameters
[in]paramRegularization parameter.
[out]solutionSolution.

Definition at line 138 of file full_gen_tikhonov.h.

◆ sum_of_filter_factor()

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
auto num_collect::regularization::full_gen_tikhonov< Coeff, Data >::sum_of_filter_factor ( const scalar_type & param) const -> scalar_type
inlinenodiscard

Calculate the sum of filter factors.

Parameters
[in]paramRegularization parameter.
Returns
Result.

Definition at line 192 of file full_gen_tikhonov.h.

Member Data Documentation

◆ coeff_actual_solution_

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
Coeff num_collect::regularization::full_gen_tikhonov< Coeff, Data >::coeff_actual_solution_ {}
private

Coefficient matrix to calculate actual solution.

Definition at line 223 of file full_gen_tikhonov.h.

◆ offset_actual_solution_

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
Data num_collect::regularization::full_gen_tikhonov< Coeff, Data >::offset_actual_solution_ {}
private

Offset vector to calculate actual solution.

Definition at line 226 of file full_gen_tikhonov.h.

◆ tikhonov_

template<base::concepts::dense_matrix Coeff, base::concepts::dense_matrix Data>
tikhonov<coeff_type, data_type> num_collect::regularization::full_gen_tikhonov< Coeff, Data >::tikhonov_ {}
private

Object to perform Tikhonov regularization.

Definition at line 220 of file full_gen_tikhonov.h.


The documentation for this class was generated from the following file: