Personal tools
You are here: Home / Former Research Projects / Calculus Of Variations

Calculus Of Variations

The calculus of variations (also called variational calculus) is roughly speaking a mathematical methodology that determines necessary conditions for certain functions in order to extremize a given functional. The derived conditions are formulated in terms of partial differential equations and boundary conditions. Several physical problems are equipped with a variational principle (as e.g. the Hamiltonian principle) and thus their equations of motion can be determined by means of calculus of variations. Here we introduce a Maple package, that derives these conditions on the bases of jet manifolds. The applied theory is not limited with respect to system dimensions or system order.


This work has been done in the context of the European sponsored project GeoPlex with reference code IST200134166.

Theoretical Background

The theoretical background of the Maple package can be found in the Ph.D. thesis of Helmut Ennsbrunner entitled "Infinite-dimensional Euler -Lagrange and Port Hamiltonian Systems". It contains a rough introduction to the used mathematical framework and referes to the corresponding literature.
This thesis is freely available under: PhDThesisEnnsbrunner.pdf
If you have any questions concerning the stated theory please let me know: helmutennsbrunner1(a2t)*


The developed Maple package is called JetVariationalCalculus and subdivided in the following modules

  • MyLieSymm
  • Jets
  • JetVariationalCalculus
  • MapleTo20simModelGen.

The MyLieSymm module envelopes the Maple package liesymm. By means of this construction it is possible to handle several instances of liesymm
objects during a single session. It is worth mentioning, that the actual implementation is a workaround and future activities should completely replace
the standard liesymm package.

The Jets module provides all necessary methods for the manipulation of objects formulated on jet manifolds. It handles local independent, dependent
and jet coordinates. Additionally contact forms and total derivative vector fields are provided. This module represents the basis for the manipulations
carried out during the calculus of variations.

The JetVariationalCalculus module determines the domain and boundary conditions determined by calculus of variations according to a given Lagrangian
density. Two methods are implemented - the well known Euler-Lagrange operator and a solution based on Cartan forms. It is remarkable, that the
Cartan form solution enables not only the determination of the domain conditions, but also the determination of the boundary conditions.

The MapleTo20simModelGen module supports the generation of models for 20sim, that are derived by the JetVariationalCalculus package.


The subsequent collection of examples is intended to illustrate the applicability of the devoloped package. Several modelling problems of finite
and infinite dimensional systems are presented.

  • A mass-spring-damper system
  • The ball on wheel model
  • The car on beam model
  • The Bernoulli-Euler beam (PDEs+BC, Ritz approximaton)
  • The Timoshenko beam
  • The Kirchhoff plate
  • The Mindlin plate
  • Piezoelectric beam model

Additional example from the user community are wellcome (send them to software.regpro1(a2t) or helmutennsbrunner1(a2t)!

Download & Installation

The package and several examples are available at: JetVariationalCalculus download
The whole package comes along with a standard Maple help!

Before installing the package one has to determine the "libname" variable of your Maple installation. To do so simply enter "libname;" in a Maple sheet.
After that please unzip the provided file to your local hard disk "libname/../Libregpro" and extend the Maple variable "libname" by "libname:=cat(libname,`/../Libregpro`),libname;" in your Maple sheet.
After this extention, all packages can be added to the workspace by using the with() command. If you have any question concerning a certain method, you can use the standard Maple help.

Support & Bug report

The package is freeware and no warranty concerning correctness or stability can be given!

« September 2017 »