Professor John Pryce
My research interests for most of my professional life have been in mathematical software engineering—developing algorithms for hard problems in real analysis, analysing their theory and converting them into reliable software.
Since 1996 I have worked especially on the numerical solution of differential-algebraic equation systems (DAEs), helped by grant awards from The Leverhulme Trust, for several personal Fellowships and a recently finished PhD Project Grant. Since 2002 I have collaborated in this work with Prof Ned Nedialkov of McMaster University, Canada. We use so called structural analysis methods, that derive efficient algorithms by analysing a DAE's sparsity—the pattern of which variables occur, how often differentiated, in which equations. See my Research section for our current exciting work on Lagrangians.
In the period Sep 2015 – Jan 2017 much of my effort has been as coordinator of MANDAE, a consortium with industrial and academic partners in UK, Canada, Ecuador, France, Germany and Spain bidding to run an EU H2020 Innovative Training Network. Its research aim is to create a new infrastructure for equation-based modeling software, based on languages such as Modelica, that is used to simulate the time evolution of complex physical systems. Mathematically it maps such a system to a DAE, so this is a project about combining expertise from many people and countries to make modern DAE theory and algorithms into a powerful industrial and research tool.
Some other topics in the area of mathematical software engineering that I have contributed to are:
- I was senior technical editor of the working group that produced the 2015 IEEE Standard 1788 for Interval Arithmetic: an international collaboration from some fifteen countries that took seven years to bring to fruition and now has implementations in several widely used languages.
- I co-authored, with W. Govaerts in Gent, theory and software of a simplified method for stably solving the kind of linear equation systems that occur in the numerical analysis of bifurcation problems. This, the BEMW algorithm, is now widely used.
- I wrote the NAG library codes for numerical solution of classical second-order Sturm-Liouville problems, and an Oxford University monograph on the subject.
- BA – Mathematics, Cambridge, 1962.
- PhD – Pure Mathematics, Newcastle upon Tyne, 1965.
- Cert Ed – Bristol, 1966.
- Teacher, Abingdon School, 1966-68.
- Lecturer, Aberdeen University 1968–75.
- Lecturer, Bristol University 1975–88.
- Sabbatical year, University of Toronto, 1982–83.
- Lecturer/Senior Lecturer, Cranfield University Shrivenham campus, 1988 – 2006. (Royal Military College of Science, now Defence College of Management and Technology).
- Tutor, Open University, 1998 – 2002.
- Senior Member of the Institute of Electrical and Electronic Engineers, SMIEEE.
- Chartered Scientist, CSci.
- Chartered Mathematician, CMath.
- Fellow of the Institute of Mathematics and Applications, FIMA.
Undergraduate - Spring semester
After joining Cardiff I initially taught the first year module in Numerical Analysis. When this ceased owing to syllabus restructuring I moved to first year Elementary Number Theory for several years, a new topic for me that proved extremely enjoyable, and has even led to a joint research article with our current senior number theorist, Dr Lettington. Recent restructuring has moved this module to one in Year 2 that I am scheduled to teach. My undergraduate teaching this year has been
- MA2701 Year 2 Numerical Analysis (22 lectures)
- Supervising a third year Project
The project, "A new proof of a theorem of Banach and Zarecki" is an interesting foray into classical analysis and measure theory, significantly above typical Year 3 level.
Postgraduate - Spring semester
For a number of years I have given
- MAGIC062 Introductory Functional Analysis (20 lectures)
as part of the remotely-taught portfolio of courses of the MAGIC consortium of 21 UK universities.
My main scientific contributions and research interests in the last fifteen years have been
- Differential-Algebraic Equations (DAEs). For over 15 years I have been collaborating with Ned Nedialkov (McMaster University) on structural-analysis-based methods for the numerical solution of DAEs—their theory, algorithms and software. We are joint authors of DAETS, a fast C++ code for high-index DAE initial value problems, and DAESA, an interactive structural analyser for DAEs, written in MATLAB.
- The theory and use of Automatic Differentiation (AD, aka Algorithmic Differentiation) in numerical computation. AD is the science of differentiating program code without symbolic methods (such as in a computer algebra system), basically by repeatedly applying the chain rule at run time. The speed of DAETS comes from its efficient AD software infrastructure, recently optimised by Nedialkov's team.
- Validated Computation by Interval Arithmetic. I was Senior Technical Editor of the IEEE Working Group that from 2008 to 2015 produced IEEE Std 1788™-2015 "IEEE Standard for Interval Arithmetic". This powerful but somewhat technical standard has been supplemented by the forthcoming, shorter, 1788.1 "IEEE Basic Standard for Interval Arithmetic" edited by Nedialkov, which is suited to teaching interval computation at undergraduate level. At least three 1788-compliant implementations of interval arithmetic already exist as well as a 1788.1-compliant one.
The structural analysis approach pre-dates us, but our way of doing it is especially simple. It doesn't work for all DAEs, but always works for several kinds important in applications. In particular for constrained mechanical systems, such as describe the motion of robot manipulators and many other mechanisms. Currently Nedialkov and I are working, in cooperation with the Department of Mechatronics in University of Rostock, Germany, on using our numerical solver DAETS to solve the motion of such systems directly from a Lagrangian or Hamiltonian formulation of the system. This often gives simpler modeling than direct use of Newton's laws of motion. This approach is already used but traditionally involves symbolic manipulation in a computer algebra system, often giving large cumbersome expressions even for small problems. We do it directly by automatic differentiation at run time; this is transparent to the user, does not give big expressions, and in our tests to date has consistently given extremely fast numerical solution.
This example animation shows friction-free motion of a mass sliding horizontally, connected by a spring to a fixed point, and with a wiggly chain of ten uniform heavy rods hung off it. Mathematically it is an index 3 DAE of size 31. To integrate it to the shown 5 seconds of simulation time took under 0.4 seconds on my laptop, and the core code defining the model is 11 lines of C++ that directly transcribe the mathematics.
Animations of other models integrated by our DAETS Lagrangian facility are shown here.