SimPEG.utils.eigenvalue_by_power_iteration#
- SimPEG.utils.eigenvalue_by_power_iteration(combo_objfct, model, n_pw_iter=4, fields_list=None, seed=None)[source]#
- Estimate largest eigenvalue in absolute value using power iteration. - Uses the power iteration approach to estimate the largest eigenvalue in absolute value for a single - SimPEG.BaseObjectiveFunctionor a combination of objective functions stored in a- SimPEG.ComboObjectiveFunction.- Parameters:
- combo_objfctSimPEG.BaseObjectiveFunction
- Objective function or a combo objective function 
- modelnumpy.ndarray
- Current model 
- n_pw_iterint
- Number of power iterations used to estimate the highest eigenvalue 
- fields_listlist(optional)
- listof fields objects for each data misfit term in combo_objfct. If none given, they will be evaluated within the function. If combo_objfct mixs data misfit and regularization terms, the list should contains SimPEG.fields for the data misfit terms and None for the regularization term.
- seedint
- Random seed for the initial random guess of eigenvector. 
 
- combo_objfct
- Returns:
- float
- Estimated value of the highest eigenvalue in absolute value 
 
 - Notes - After k power iterations, the largest eigenvalue in absolute value is approximated by the Rayleigh quotient: \[\lambda_k = \frac{\mathbf{x_k^T A x_k}}{\mathbf{x_k^T x_k}}\]- where \(\mathfb{A}\) is our matrix and \(\mathfb{x_k}\) is computed recursively according to: \[\mathbf{x_{k+1}} = \frac{\mathbf{A x_k}}{\| \mathbf{Ax_k} \|}\]- The elements of the initial vector \(\mathbf{x_0}\) are randomly selected from a uniform distribution.