.. ChenFliessSeries.jl documentation master file.
.. raw:: html
Fast and Numerical Chen–Fliess Series in Julia
A lightweight, high‑performance Julia package for computing iterated integrals,
Lie derivatives, and truncated Chen–Fliess expansions for nonlinear control‑affine systems.
Features at a glance
------------------------
.. raw:: html
Iterated integrals
Compute all iterated integrals up to a chosen word length using recursive schemes based on Chen’s identity.
Lie derivatives
Generate Lie derivatives indexed by words in the free monoid, symbolically or numerically.
Truncated Chen–Fliess series
Assemble truncated series and compare them against ODE simulations for validation and benchmarking.
Minimal dependencies
Built on top of Symbolics.jl and LinearAlgebra for a lean, composable stack.
.. sidebar:: What are Chen–Fliess series?
Chen–Fliess series provide an input–output representation of analytic
nonlinear control‑affine systems.
They express the output as a formal power series whose coefficients are
Lie derivatives of the output function and whose terms are iterated
integrals of the input.
Formally:
.. math::
F_c[u](t) = \sum_{\eta \in X^*} (c,\eta)\, E_\eta[u](t),
where:
- :math:`\eta` is a word over the alphabet :math:`X = \{x_0,\ldots,x_m\}`,
- :math:`(c,\eta)` is the coefficient given by a Lie derivative,
- :math:`E_\eta[u](t)` is the iterated integral associated with :math:`\eta`.
These series play a central role in nonlinear control theory, system
approximation, and operator‑theoretic analysis.
Overview
--------
**ChenFliessSeries.jl** implements efficient numerical and symbolic tools for:
- generating all iterated integrals indexed by words up to a chosen length,
- computing Lie derivatives associated with words in the free monoid,
- assembling truncated Chen–Fliess series,
- validating approximations against ODE simulations.
The implementation is based on Chen’s identity, which provides recursive
relations between iterated integrals and Lie derivatives, significantly
reducing redundant computation.
This package is the first publicly available open‑source implementation of
these tools in the Julia ecosystem, relying only on `Symbolics.jl` and
`LinearAlgebra.jl` for minimal and efficient dependencies.
Why Julia?
----------------
**ChenFliessSeries.jl** is written in Julia to leverage:
- **High performance**: JIT compilation and type specialization enable
tight inner loops for iterated integrals and Lie derivatives.
- **Multiple dispatch**: Natural expression of different system types,
vector field representations, and numeric backends.
- **Symbolic–numeric synergy**: Seamless integration with `Symbolics.jl`
for symbolic Lie derivatives and `LinearAlgebra` for efficient evaluation.
- **Interactive workflows**: Notebooks and REPL‑driven exploration make
it easy to prototype, visualize, and benchmark Chen–Fliess expansions.
Citing this package
------------------------
If you use **ChenFliessSeries.jl** in academic work, please cite it as:
.. code-block:: bibtex
@misc{ChenFliessSeriesJL,
title = {ChenFliessSeries.jl: A Julia package for computing Chen-Fliess series},
author = {Perez Avellaneda, Ivan},
year = {2026},
url = {https://github.com/iperezav/ChenFliessSeries.jl},
note = {Julia package version 1.0.0}
}
A `CITATION.bib <_static/CITATION.bib>`_ file is also included in the repository.
Example gallery
-------------------
.. raw:: html