3 ms·
Yes, the coefficient part is not great, though main thing though is getting candidates of the function form, from that using differentiation could be useful in
by ChrisRackauckas 5y ago
Yes, the coefficient part is not great, though main thing though is getting candidates of the function form, from that using differentiation could be useful in re-deriving the coefficients. The fact that a tolerance is introduced into a symbolic method is a major downside to this approach. Using some alternative symbolic regression methods (i.e. https://datadriven.sciml.ai/dev/solvers/symbolic_regression/ https://datadriven.sciml.ai/dev/solvers/symbolic_regression/) could decrease this issue, though sparse regression finding the sparsest possible result is in general a hard problem.
But note that our plan is not to use this in isolation. I think the final solution will make use of a polyalgorithm. Sparse regression is in the low-medium cost of cheapness, so a polyalgorithm that does simple rules, then if that fails this sparse regression, then if that fails a larger rule set (maybe through e-graphs), then if that fails use the Risch algorithm. That could be a robust algorithm that attempts to take some fast outs before progressively falling back to the slowest form. Tests just require differentiation and checking equality.
- mppm 5y ago> Tests just require differentiation and checking equality. Is that not implemented yet? I was wondering how a result with such an obviously incommensurate functional form could be produced.
- ChrisRackauckas 5y agoDifferentiation and equality checking through e-graphs/simplification is already supported. But it's not done automatically with the symbolic-numeric integration: you'd have to call it after the integration to check which terms are necessary. We could probably improve the algorithm by doing this automatically and then doing more trimming of some sort.