- class brainpy.analysis.highdim.SlowPointFinder(f_cell, f_type='continuous', f_loss_batch=None, verbose=True)#
Find fixed/slow points by numerical optimization.
This class can help you:
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.
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)#
__init__(f_cell[, f_type, f_loss_batch, verbose])
Compute the jacobian matrices at the points.
decompose_eigenvalues(matrices[, sort_by, ...])
Compute the eigenvalues of the matrices.
Exclude points whose closest neighbor is further than threshold.
Filter fixed points whose speed larger than a given tolerance.
Optimize fixed points with gradient descent methods.
Optimize fixed points with nonlinear optimization solvers.
Filter unique fixed points by choosing a representative within tolerance.
The final fixed points found.
Losses of fixed points.
The selected ids of candidate points.