# brainpy.analysis.highdim.SlowPointFinder#

class brainpy.analysis.highdim.SlowPointFinder(f_cell, f_type='continuous', f_loss_batch=None, verbose=True)[source]#

Find fixed/slow points by numerical optimization.

• optimize to find the closest fixed points / slow points

• exclude any fixed points whose fixed point loss is above threshold

• exclude any non-unique fixed points according to a tolerance

• exclude any far-away “outlier” fixed points

This model implementation is inspired by https://github.com/google-research/computation-thru-dynamics.

Parameters
• f_cell (callable, function) – The function to compute the recurrent units.

• f_type (str) –

The system’s type: continuous system or discrete system.

• ’continuous’: continuous derivative function, denotes this is a continuous system, or

• ’discrete’: discrete update function, denotes this is a discrete system.

• f_loss_batch (callable, function) – The function to compute the loss.

• verbose (bool) – Whether print the optimization progress.

__init__(f_cell, f_type='continuous', f_loss_batch=None, verbose=True)[source]#

Methods

 `__init__`(f_cell[, f_type, f_loss_batch, verbose]) `compute_jacobians`(points) Compute the jacobian matrices at the points. `decompose_eigenvalues`(matrices[, sort_by, ...]) Compute the eigenvalues of the matrices. `exclude_outliers`([tolerance]) Exclude points whose closest neighbor is further than threshold. `filter_loss`([tolerance]) Filter fixed points whose speed larger than a given tolerance. `find_fps_with_gd_method`(candidates[, ...]) Optimize fixed points with gradient descent methods. `find_fps_with_opt_solver`(candidates[, ...]) Optimize fixed points with nonlinear optimization solvers. `keep_unique`([tolerance]) Filter unique fixed points by choosing a representative within tolerance.

Attributes

 `fixed_points` The final fixed points found. `losses` Losses of fixed points. `selected_ids` The selected ids of candidate points.