Célestin Wafo Soh

We propose and implement an algorithm for solving an overdetermined system of partial differential equations in one unknown. Our approach relies on the BourMayer method to determine compatibility conditions via JacobiMayer brackets. We solve compatible systems recursively by imitating what one would do with pen and paper: Solve one equation, substitute its solution into the remaining equations, and iterate the process until the equations of the system are exhausted. The method we employ for assessing the consistency of the underlying system differs from the traditional use of differential Gröbner bases, yet seems more efficient and straightforward to implement.


The search of solutions of many problems leads to overdetermined systems of partial differential equations (PDEs). These problems comprise the computation of discrete symmetries of differential equations [1], the calculation of differential invariants [2] and the determination of generalized Casimir operators of a finite-dimensional Lie algebra [3]. In this article, we focus solely on the integration of simultaneous systems of scalar first-order PDEs; that is, our systems have at least two equations, one dependent variable (the unknown function) and several independent variables. Our ultimate goal is to automate the search of general symbolic solutions of these systems. The approach we adopt uses the BourMayer method [4] to find compatibility conditions (i.e. obstructions to the integrability) of the underlying system of PDEs and to iteratively prepend these compatibility conditions to the system until a consistent or an inconsistent system is found. This differs from the traditional approach, which uses differential Gröbner bases [5] to discover compatibility conditions. When applicable, it has the advantage of being easy to implement and efficient. Recently, using machinery from differential geometry, Kruglikov and Lychagin [6] have extended the BourMayer method to systems of PDEs in several dependent and independent variables of mixed orders (i.e. the orders of the individual equations in the system can be different). In our approach, for the situation where the completion process leads to a consistent system, we solve the latter by imitating what one would do with pen and paper: Solve one equation, substitute it into the next equation, and continue the process until the equations of the system are exhausted.

To fix ideas, consider a system of PDEs


where to are the independent variables, is the partial derivative of the unknown function with respect to , and the rank of the Jacobian matrix is . In the sequel, we will say that a property holds locally if it is true on an open ball of its domain of validity. The system of equations (1) is integrable (i.e. admits a locally smooth solution) provided the expressions to derived from it locally satisfy the conditions


To see this, consider a solution of the system of equations (1). Then, locally, . Thus, the latter differential form is locally exact. So, in particular, it is locally closed. Therefore, its exterior differential vanishes; that is, , or equivalently, after some calculations, , which implies (2). Conversely, if the system of equations (2) is locally satisfied, then the differential form is locally closed and by Poincarés lemma, it is also locally exact. Hence, for some locally smooth function . Therefore is locally defined by , where is an arbitrary constant.

Bour and Mayer (see e.g. [4]) showed that (1), subject to the condition on the Jacobian matrix of the with respect to the , is integrable if and only if the JacobiMayer


whenever (1) is satisfied. From now on, abbreviate the phrase whenever (1) is satisfied to .

For a given system of equations (1) satisfying the nondegeneracy condition mentioned, four cases arise.

The first case is when and all the JacobiMayer brackets vanish whenever (1) is satisfied. In this case, we can solve (1) for to . The solution of the system is then obtained by integrating the exact differential form .

The second case is when there are distinct indices and such that . Then (1) is incompatible and there are no solutions.

In the third case, , and all the JacobiMayer brackets vanish in (1). We must supplement (1) with additional equations until we get to the first or second case. These equations are obtained by solving the system of linear first-order PDEs , where and . For example, we get the additional equation , where is an arbitrary constant, by solving the system of linear first-order PDEs , where . The solution of the completed system depends on arbitrary constants. We obtain the general solution of the initial system of equations (1) by expressing one of the arbitrary constants as a function of the remaining ones, then eliminating the remaining constant between the resulting equations and their first-order partial derivatives with respect to the arbitrary constants.

In the fourth and final case, some brackets are zero in (1) and other brackets have the form , where the depend at least on some . In this case, we must prepend the equations to the equations in (1) and proceed as in the third case.

The procedure just described is the essence of the BourMayer approach to the solution of (1). One has to solve overdetermined systems of linear scalar PDEs and ensure that the equations one adds to the initial system are compatible with them and that the equations of the resulting systems are linearly independent. In our implementation of the BourMayer approach, we complete the initial system of equations (1) by prepending to it the appropriate compatibility constraints prescribed by JacobiMayer brackets until we obtain either a compatible or an incompatible system. Starting from compatibility constraints, we iteratively solve the compatible system obtained by using the built-in function . The remainder of this article is devoted to the implementation and testing of this approach.

Implementation and Tests

Here we focus on the coding of the algorithm described in the introduction. Specifically, we start by iteratively solving a system of consistent first-order PDEs in one dependent variable. Then we implement the test of consistency of a system of first-order PDEs in one unknown. Finally, we couple the last two programs in such a way that a single function is used to compute the general solution of the input system when it exists or to indicate that it is inconsistent.

Iterative Solution of a Consistent System of First-Order PDEs in a Single Unknown

Our program for iteratively solving a compatible system of scalar first-order PDEs is made of the main function and three helper functions, , and .

is a recursive function that takes as input the system to be solved, the dependent variable , the list of independent variables , a container for the list of successive solutions, a list of equations that could not be solved, a string that is used as a root to form the names of intermediate dependent variables, and a variable that is used to count and name intermediate dependent variables. The output of is a list of rules and a list of unsolved equations.

The function mimics what one would do by hand when solving a system of first-order PDEs in one unknown: Solve an equation, substitute its solution into the remaining equations, and continue as long as possible. At each stage, the number of independent variables is reduced by one and it is necessary to rename the variables before proceeding. Also, the dependent variables are curried functions that must be undone to ensure that the chain rule is applied properly during substitution into the remaining PDEs. This is perhaps the trickiest part of our implementation.

The function takes the output of and converts it into the solution of the system to be solved. The helper function converts an expression depending on several variables into a pure function of these variables. Finally, the function composes and to solve a compatible system of scalar PDEs. Its inputs are like those of and its output is formatted like that of .

Compatibility Test and Completion

This subsection implements the compatibility test provided by the BourMayer method as described in the introduction using . The input to is the underlying system of PDEs , the dependent variable and the list of independent variables ; outputs a pair: the first element indicates whether the system is compatible and the second element gives the completed system.

The function computes the pairwise JacobiMayer brackets of a system of PDEs according to equation (3) and in these brackets replaces some first-order partial derivatives of the unknown function obtained from the underlying system of PDEs. The function checks whether an expression contains a derivative of the unknown function.

Putting Everything Together

Here we use the functions defined so far to solve an overdetermined system of first-order PDEs in one unknown. The function takes as arguments the system to be solved, , and its dependent and independent variables, and . The function verifies whether a given rule gives a solution of a system of first-order PDEs in one unknown.


This subsection is chiefly concerned with examples taken from various specified sources. For convenience, warnings are suppressed with the built-in function . Undefined global variables (, , , etc.) are used, so make sure there are no conflicts from your own session.

Test 1

The examples presented here arise in the search of differential invariants of hyperbolic PDEs [2].

  • Example 1
  • Except for example 9, gives for all systems, so it is only shown once here.

  • Example 2
  • Example 3
  • Test 2
  • Example 4
  • Test 3

    Examples 5 and 6 come from Saltykow [7].

  • Example 5
  • Example 6
  • Test 4

    The two systems of PDEs treated here are in Mansion [4].

  • Example 7
  • Example 8
  • Example 9
  • The second entry of shows that there are two PDEs that were not solved. It is straightforward to separate these PDEs with respect to and to obtain new PDEs that are easily solved using the built-in function . The separation can be done automatically through the following one-liner.

    Test 5
  • Example 10
  • Example 11
  • Example 12
  • The last example is due to Boole [8].

  • Example 13
  • Conclusion

    This article has introduced and implemented an algorithm based on the BourMayer method for solving an overdetermined system of PDEs in one unknown. We have demonstrated the efficiency of our approach through the consideration of 13 examples.


    I gratefully acknowledge partial financial support from the DST-NRF Centre of Excellence in Mathematical and Statistical Sciences, School of Computer Science and Applied Mathematics, University of the Witwatersrand, Johannesburg, South Africa. I thank Prof. F. M. Mahomed for securing the necessary funds and his team for the hospitality during my visit last summer. This article is dedicated to my daughter Katlego on her sixteenth birthday.


    [1] P. E. Hydon, How to Construct the Discrete Symmetries of Partial Differential Equations, European Journal of Applied Mathematics, 11(5), 2000 pp. 515527.
    [2] I. K. Johnpillai, F. M. Mahomed and C. Wafo Soh, Basis of Joint Invariants for () Linear Hyperbolic Equations, Journal of Nonlinear Mathematical Physics, 9(Supplement 2), 2002
    pp. 4959. doi:10.2991/jnmp.2002.9.s2.5.
    [3] J. C. Ndogmo and P. Winternitz, Generalized Casimir Operators of Solvable Lie Algebras with Abelian Nilradicals, Journal of Physics A: Mathematical and General, 27(8), 1994
    pp. 27872800. iopscience.iop.org/article/10.1088/0305-4470/27/8/016/meta.
    [4] P. Mansion, Théorie des équations aux dérivées partielles du premier ordre, Paris: Gauthier-Villars, 1875.
    [5] B. Buchberger and F. Winkler, Gröbner Bases and Applications, Cambridge: Cambridge University Press, 1998.
    [6] B. Kruglikov and V. Lychagin, Compatibility, Multi-brackets and Integrability of Systems of PDEs, Acta Applicandæ Mathematicæ, 109(1), 2010 pp. 151196.
    [7] N. Saltykow, Méthodes classiques dintégration des équations aux dérivées partielles du premier ordre à une fonction inconnu, Mémorial des sciences mathématiques, 50, 1931
    pp. 172. www.numdam.org/item?id=MSM_ 1931__ 50__ 1_ 0.
    [8] G. Boole, On Simultaneous Differential Equations of the First Order in Which the Number of the Variables Exceeds by More Than One the Number of the Equations, Philosophical Transactions of the Royal Society of London, 152(5), 1862 pp. 437454. doi:10.1098/rstl.1862.0023.
    C. W. Soh, Symbolic Solutions of Simultaneous First-Order PDEs in One Unknown, The Mathematica Journal, 2018. dx.doi.org/doi:10.3888/tmj.20-2.

    About the Author

    Dr. C. Wafo Soh is currently an associate professor of mathematics at Jackson State University and a visiting associate professor of applied mathematics at the University of the Witwatersrand. He is the cofounder of the South African startup Recursive Thinking Consulting, which specializes in process mining.

    Célestin Wafo Soh^(1, 2)
    Department of Mathematics and Statistical Science
    JSU Box 1760, Jackson State University
    1400 JR Lynch Street
    Jackson, MS 39217

    DST-NRF Centre of Excellence in Mathematical and Statistical Sciences
    School of Computer Science and Applied Mathematics, University of the Witwatersrand
    Johannesburg, Wits 2050, South Africa