  We present a method of discovering governing differential equations from data
without the need to specify a priori the terms to appear in the equation. The
input to our method is a dataset (or ensemble of datasets) corresponding to a
particular solution (or ensemble of particular solutions) of a differential
equation. The output is a human-readable differential equation with parameters
calibrated to the individual particular solutions provided. The key to our
method is to learn differentiable models of the data that subsequently serve as
inputs to a genetic programming algorithm in which graphs specify computation
over arbitrary compositions of functions, parameters, and (potentially
differential) operators on functions. Differential operators are composed and
evaluated using recursive application of automatic differentiation, allowing
our algorithm to explore arbitrary compositions of operators without the need
for human intervention. We also demonstrate an active learning process to
identify and remedy deficiencies in the proposed governing equations.
