Skip to content

Constrained SR3

Compare
Choose a tag to compare
@briandesilva briandesilva released this 09 Dec 03:05
· 1042 commits to master since this release

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 and SR3 optimizers
  • Added some fancy plots to the differentiation notebook
  • Minor bug fixes