Constrained SR3
Major changes
This release introduces the ConstrainedSR3
optimizer. This is an enhanced version of the SR3
optimizer which allows one to specify linear equality constraints on the learned coefficients.
For example, if you know that the equations you are trying to learn look like
x' = a + by
y' = c - bx
(i.e. that the coefficient on y should be the negative of the coefficient on x), you could enforce that constraint using ConstrainedSR3
.
Additionally, ConstrainedSR3
allows you to specify a different threshold parameter for each library function coefficient. This is an improvement on our other optimizers which all take a fixed regularization constant that is applied uniformly to all coefficients. You can use this feature to choose a higher threshold for, say, quadratic interaction terms like x*x
or x*y
than you do for linear terms, for example.
We also have added a notebook demonstrating these new features on a real world plasma dataset.
Other Updates
- Fix bug with extrapolating control inputs outside of original time domain with
SINDy.simulate
- It is now possible to specify an initial guess for coefficients with the
STLSQ
andSR3
optimizers - Added some fancy plots to the differentiation notebook
- Minor bug fixes