| |
Functional
Automatic Differentiation with Dirac Impulses
Henrik Nilsson
Abstract
Functional Reactive Programming (FRP) is a framework for reactive programming
in a functional setting. FRP has been applied to a number of domains,
such as graphical animation, graphical user interfaces, robotics, and
computer vision. Recently, we have been interested in applying FRP-like
principles to hybrid modeling and simulation of physical systems. As
a step in that direction, we have extended an existing FRP implementation,
Yampa, in two new ways that make it possible to express certain models
in a very natural way, and reduces the amount of work needed to put
modeling equations into a suitable form for simulation. First, we have
added Dirac impulses that allow certain types of discontinuities to
be handled in an easy yet rigorous manner. Second, we have adapted automatic
differentiation to the setting of Yampa, and generalized it to work
correctly with Dirac impulses. This allows derivatives of piecewise
continuous signals to be well-defined at all points. This paper reviews
the basic ideas behind automatic differentiation, in particular Jerzy
Karczmarczuk's elegant version for a lazy functional language with overloading,
and then considers the integration with Yampa and the addition of Dirac
impulses.
@InProceedings{Nilsson2003b, author = "Henrik Nilsson", title = "Functional Automatic Differentiation with Dirac Impulses", booktitle = "Proceedings of the Eighth {ACM} {SIGPLAN} International Conference on Functional Programming", pages = "153--164", year = 2003, address = "Uppsala, Sweden", month = aug, publisher = "{ACM} Press" }
Download
|