Most numerical solvers used to determine the free variables of dynamical systems rely on firstorder derivatives of the state of the system with respect to the free variables. The number of free variables can be fairly large. One of the approaches to obtaining these derivatives is the integration of the derivatives simultaneously with the dynamical equations, which is best done with automatic differentiation techniques. Even though there exist many automatic differentiation tools, none has been found to be scalable and usable for practical purposes of modeling dynamical systems. Landau is a Turing incomplete statically typed domain-specific language aimed to fill this gap. The Turing incompleteness allows for a sophisticated source code analysis and, as a result, a highly optimized compiled code. Among other things, the language syntax supports functions, compile-time ranged for loops, if/else branching constructions, real variables and arrays, and allows for manually discarding calculations where the automatic derivative values are expected to be negligibly small. In spite of reasonable restrictions, the language is rich enough to express and differentiate any cumbersome equation with practically no effort. Bibliography: 11 titles.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
A. Abad, R. Barrio, M. Marco-Buzunariz, and M. Rodríguez, “Automatic implementation of the numerical Taylor series method: A Mathematica and Sage approach,” Appl. Math. Comput., 268, 227–245 (2015).
Ch. Bischof, A. Carle, G. Corliss, A. Griewank, and P. Hovland, “ADIFOR–generating derivative codes from Fortran programs,” Sci. Programming, 1, No. 1, 11–29 (1992).
Ch. Bischof, L. Roh, and A. J. Mauer-Oats, “ADIC: an extensible automatic differentiation tool for ANSI-C,” Software: Practice and Experience, 27, No. 12, 1427–1456 (1997).
F. C. Botelho, R. Pagh, and N. Ziviani, “Simple and space-efficient minimal perfect hash functions,” in: Workshop on Algorithms and Data Structures (2007), pp. 139–150.
T. F. Coleman and A. Verma, “ADMAT: An automatic differentiation toolbox for MATLAB,” in: Proceedings of the SIAM Workshop on Object Oriented Methods for Inter- Operable Scientific and Engineering Computing, 2, SIAM, Philadelphia (1998).
M. Felleisen, R. B. Findler, M. Flatt, Sh. Krishnamurthi, E. Barzilay, J. McCarthy, and S. Tobin-Hochstadt, “A programmable programming language,” Comm. ACM, 61, No. 3, 62–71 (2018).
A. Griewank, D. Juedes, and J. Utke, “Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++,” ACM Trans. Math. Software, 22, No. 2, 131–167 (1996).
Á. Jorba and M. Zou, “A software package for the numerical integration of ODEs by means of high-order Taylor methods,” Experiment. Math., 14, No. 1, 99–117 (2005).
J. M. Siskind and B. A. Pearlmutter, “Nesting forward-mode AD in a functional framework,” Higher-Order Symbol. Comput., 21, No. 4, 361–376 (2008).
J. M. Siskind and B. A. Pearlmutter, “Efficient implementation of a higher-order language with built-in AD,” in: 7th International Conference on Algorithmic Differentiation, Oxford (2016).
M. Tadjouddine, Sjh. A. Forth, and J. D. Pryce, “AD tools and prospects for optimal AD in CFD flux Jacobian calculations,” in: Automatic Differentiation of Algorithms, Springer (2002), pp. 255–261.
Author information
Authors and Affiliations
Corresponding author
Additional information
Published in Zapiski Nauchnykh Seminarov POMI, Vol. 485, 2019, pp. 78–89.
Rights and permissions
About this article
Cite this article
Dolgakov, I., Pavlov, D. Landau: A Language for Dynamical Systems with Automatic Differentiation. J Math Sci 251, 354–362 (2020). https://doi.org/10.1007/s10958-020-05096-2
Received:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10958-020-05096-2