Skip to content

A set of base classes and solver for dynamical systems of differential equations. Written in C#/.NET.

License

Notifications You must be signed in to change notification settings

duckmaestro/dynamical-systems-net

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Dynamical Systems Net

A set of base classes and solver for simulating a distributed, graphical, dynamical system of differential equations. Includes a sparse, variable-indexed vector class, and one 4th Runga-Kutta solver. An abstract interface for solvers exists to enable other numerical implementations. Variable dependencies are expressed as weighted connections in the graph, making this suitable for dynamical machine learning models as well as simpler ODE models. Written in C# and targeting .NET Framework 4.0 (using System.Numerics).

Base Classes

The base class design is composed principally of DynamicalNode, DynamicalSystem, IIntegrator, NodeLink, and VectorOI.

To define your derivative dy_i/dt you simply subclass and implement virtual method DynamicalNode.F(t, y), and instantiate it with name e.g. "y_i". Dependencies on other variables are explicitly definable via access to the mutable list of incoming node edges.

This convention assumes your system of equations is of the form { dy_i/dt = F(t, y, ext) } | i:[1,n] where dy_i/dt is the rate of change of one variable y_i, y is the state of all variables in the system, n is the number of variables in the system, t is the current time, and ext is some external state.

Example Project

The examples project includes:

  • A sine-wave generator system.
  • A linear-coupled two variable oscillating system.
  • Two (2) gradient-frequency neural network (GFNN) systems.
  • A Hebbian-learning example, forming connection weights atop of a GFNN system.

Original Motivation

This project comes from efforts toward recreating a cognitive model of musical perception and tonality learning, for course CSE 258A at U.C. San Diego. The final report on this effort is available below.

[Exploring a Neurological Model for Cross-Cultural Consonance and Dissonance in Music Perception: CSE 258A Project Final Report] (http://www.scribd.com/doc/148918615/Exploring-a-Neurological-Model-for-Cross-Cultural-Consonance-and-Dissonance-in-Music-Perception-CSE-258A-Project-Final-Report)

About

A set of base classes and solver for dynamical systems of differential equations. Written in C#/.NET.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages