There is no fun like Chebfun |nicK tReFethen (PROFESSOR OF NUMERICAL ANALYSIS)
have imagined such a thing? Centuries later came another great discovery of discreteness in biology: that the designs of plants and animals are encoded in an alphabet. Your personal blueprint is written in three billion letters AACAGGTATGAA …. Darwin never knew this. In mathematics, two great crises turned on discrete and continuous. The Greeks imagined that every number must be a discrete integer or a ratio of two integers. What a shock when it was proved that some numbers, like √2, don’t fit that pattern! Two millennia later, Cantor proved that the continuum of all numbers is infinitely bigger than the discrete subset of rationals in a precise mathematical sense. This discovery upset everybody and changed mathematics permanently. And then we have computers and technology. I grew up analogue, i.e. continuous (Kodak film, radios with wires and capacitors inside), but my kids were born into the world of discrete pixels and megabytes. The sounds we hear and images we see nowadays have mostly been digitised. (‘Reality is 80 million polygons per second’, proclaimed animation pioneer Alvy Ray Smith.) Civilisation got along well with analogue technology for a long time, but in the end, digital wins. And this doesn’t just apply to electronics. Manufacturers used to cut and melt and bend
Continuous
Discrete
Pafnuty Chebyshev
and drill, but now there is digital 3D printing. Next in line will be nanotechnology and the manaufacture of objects atom by atom. Somewhere in this sweep of history fits our Chebfun software project. The figure above shows a mathematical function – a curve f(x) – and its discretisation by 100 points. This example comes from solving a certain differential equation. The concept of a mathematical function is continuous, like the upper curve. And yet, to calculate functions on computers, scientists and engineers have long been taught to discretise, as in the lower image. A function becomes a discrete vector and a differential equation becomes a
sara Kerens
Discrete or continuous? This polarity is as old as philosophy and science, and for the past ten years, it has been daily business for me and the rest of the Chebfun team based in the Mathematical Institute in Oxford, including Balliol graduate students Anthony Austin and Hadrien Montanelli. In physics, the most important fact of all (according to the great Richard Feynman) is that everything is made of atoms. Our world may look and feel like a continuum, but it is discrete. Planet Earth has about 1050 atoms, and a pint of beer about the square root of that number. Vibrating and bouncing atoms can explain almost everything in our humanscaled physical world, such as how the pressure in a balloon increases if you compress it, as was figured out by Boyle and Hooke in Oxford in the 1660s. In chemistry, one might have imagined that the substances we live with would be drawn from a continuum: that a metal, say, might have pretty much any density, stiffness, or conductivity. But no, that’s not the set-up. There are just 90 or so discrete chemical elements, arrayed famously in Mendeleev’s periodic table. An element can have this property, or that, but nothing in between. In biology, Hooke discovered that plants and animals are made of discrete cells: your body has about 1013 of them. Who would
Professor Trefethen
discrete matrix. Millions of scientists and engineers carry out such calculations with the programming language MATLAB, which makes vectors and matrices easy. (I am proud to have been the very first MATLAB customer, in 1985. There’s a plaque on my wall.) The Chebfun project, now with thousands of users, aims to rebuild MATLAB as continuous instead of discrete, with discrete implementations hidden away like those bouncing atoms that implement the laws of physics. To achieve this, each MATLAB command is overloaded (as the objectoriented programmers say) to a continuous analogue. For example, in MATLAB, sum(v) adds up the entries of a vector, while in Chebfun it computes the integral of a function. The name Chebfun comes from ‘function’ coupled with Pafnuty Chebyshev, the great Russian mathematician of the 19th century, on whose ideas we rely. Chebyshev worked at St Petersburg State University, where Mendeleev joined him as a tenured professor in the same year that Robert Browning became an Honorary Fellow of Balliol. Our team of ten spent a thrilling year leading up to June 2014 working on a complete rewrite of the software, Chebfun Version 5 – 100,000 lines of code. We are now an open-source, freely available BSDlicensed project hosted on GitHub (if you don’t know what these words mean, your kids do). If you have MATLAB, you can download Chebfun and start playing immediately. For a demonstration, take a look at my three-minute video at www.chebfun.org/docs/videos. A 60th birthday conference will be held in Professor Trefethen’s honour in August 2015, with a banquet in Balliol Hall: see www2.maths.ox.ac.uk/ new.direction2015/.
i s s u e n o. 2 1 m aY 2 0 1 5
25