Projects

Hanspeter Schmid has become a member of the SymPy development team

6. April 2023

SymPy is a Python library for doing symbolic mathematics. It is developed by many volounteers, led by a core team. Hanspeter Schmid, an analog-IC and signal-processing professor at ISE, was asked to become part of the core team of SymPy.

There are several commercial software packages that can do symbolic mathematics, but all of them are expensive. We from FHNW/ISE believe that engineers also need to be educated for using appropriate tools, and then should be able to use these tools without high cost for their career, so we use and support open-source software wherever we can.

SymPy is such a free (under BSD license) Python library for doing symbolic mathematics.

SymPy Logo

Prof. Dr. Hanspeter Schmid is actually an analog-IC designer, and also teaches signal processing. In signal processing, the integral transforms (Laplace and Fourier transforms) are quite important. During teaching, students told him that the results of inverse Laplace transforms in commercial packages were not consistent with what he was teaching, nor were they consistent with what was written in textbooks. So he started talking to the development teams of two of the commercial suppliers, only to find that they were not really willing to change what their software was doing. The reason for this is that commercial software suppliers are more interested in having each individual part well controllable, and less interested in having different integral transforms and other mathematical parts like convolution work together in an overall consistent and seamless way.

Then he noticed that the development team of SymPy was interested in overall consistency. So he started to work on the Laplace transform. He particularly enjoys that what is needed is comparatively little programming with a lot of mathematical background – which he feels is much more enjoyable than application programming.

His work on the Laplace transform caused the two heads of SymPy development to invite him into the member team of SymPy, which he gladly accepted. In this function, he now also reviews and merges other developers’s contributions, manages issue reports, and moderates discussions, all related to mathematical aspects of signal processing and electronics.

Originally, SymPy made Laplace transforms by integrating only. Hanspeter’s main contribution to SymPy up to date is a complete rewrite of the Laplace transform to use known rules of that transform. It is actually amazing how many Laplace transform rules are known! At FHNW/ISE, we give our Bachelor students a table with two pages of transform rules and transform pairs. When we show them a modern textbook like Polyanin’s “Handbook of Mathematics for Engineers and Scientists”, they are amazed that it contains 20 pages of rules and transform pairs. However, this is still a short table. Bateman’s two volumes of integral transforms contain almost 200 pages of Laplace rules and pairs. Bateman’s books are digitally available online through the Bateman manuscript project (https://en.wikipedia.org/wiki/Bateman_Manuscript_Project). Unfortunately, the modern engineer’s reaction to not knowing a Laplace transform is not to search a 1954 book somewhere online, but to use software. So our idea in SymPy is to rewrite the Laplace transform (and the other integral transforms) such that they use the huge knowledge preserved in these old books, lest they be forgot by future engineers and mathematicians.

One example for Hanspeter’s recent work was to write an algorithm for the Laplace transform of products of trigonometric functions. The code segment

gives a rather complicated rational fraction with a polynomial of degree 81 in the denominator.

In SymPy version 10.1, this did not even give a result after 100 minutes run time (at which point he gave up), in SymPy 12, which is being released now, it will take less than two seconds.  In case you are interested in the result, it is

Contact: Prof. Dr. Hanspeter Schmid

Tags: Laplace transform, Python, signal processing, SymPy

back to all articles

Comments

No comment posted about Hanspeter Schmid has become a member of the SymPy development team

New comment

×