Skip to content

virati/autoLie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

autoLie

A library built on top of autograd that enables Lie derivatives and brackets on arbitrary numpy functions

Overview of Lie Analyses

Setting up a network of regions, each with its own dynamics, in order to do Lie-based analysis that can tell us the optimal readout and optimal control locations given a predefinec objective function. For a more detailed mathematical treatment head on over to the overview notebook

Installation

Do the standard thing. Point yourselves towards the main file "lie_lib.py" and add it to your path. From there, import the primary classes and methods

from lie_lib import *

from dyn_lib import *

lie_lib is the main library for lie analyses. dyn_lib is the main library for various dynamics functions

Required Libraries

We use autograd, numpy, and mayavi to have the whole package running.

More math details

For more details of the math behind Lie Controllability and autoLie, head on over to the Jupyter Notebook

Jump into hands-on

Run interact_lie.py to start seeing how vector fields interact with each other. This script builds off of the autoLie library with an interactive GUI frontend to tweak with certain parameters and observe the effects on a dynamics field immediately.

Examples and pretty pictures

Below is a simple example using two vector-valued functions $f$ and $g$

The vector fields are seen as quivers and the lie-derivative calculated at each point of the meshgrid is seen as spheres/point3d dots.

Example Directional Derivatives

Another example, this one with the rotational components of a dynamics field a little more apparent

Example rotational field

Check out example notebook here

Controls by Analogy

Dynamics is the study of change. Imagine standing somewhere in the city you live. Where are you going to be in one minute?

Well, it depends. Where are you going (target)? What's the quickest way to get there (optimal trajectory)? Quick meaning time or quick meaning distance (objective function)? What vehicle are you in (controller)?

To help visualize how dynamics and control interact this library has a set of 3D tools. We can work with dynamics of various forms (linear, rotational, etc.) and see how various control couplings interact with these dynamics.

A linear field with no rotation A Linear field with no rotation

A rotational field A rotational field

About

Lie derivatives and brackets on top of Autograd

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published