A while ago, I wrote about the Chebfun Project. At the time, version 3 had recently come out. I recently visited Nick Trefethen and Nick Hale, part of the Chebfun team, and they showed me the latest and greatest version 4.
As I said in my earlier post, the package is designed to have syntax very much like regular vector notation in MATLAB, though
the entities represent functions.
Here's a description from the Chebfun website:
Chebfun is a collection of algorithms and a software
system in object-oriented MATLAB which extends familiar powerful methods
of numerical computation involving numbers to continuous or
piecewise-continuous functions. It also implements continuous analogues
of linear algebra notions like the QR decomposition and the SVD, and
solves ordinary differential equations. The mathematical basis of the
system combines tools of Chebyshev expansions, fast Fourier transform,
barycentric interpolation, recursive zerofinding, and automatic
One recent addition includes being able to use nonlinear operators more naturally. So, to solve a nonlinear system, guess
what?! You get to use the MATLAB operator \! See Chapter 7 of the Chebfun Guide for a nice example.
Nick and Nick ran the GUI for Chebfun (and have since). You can use it to formulate your problems. In addition, you can
use it to access the demos and examples. Find a problem similar to on your want to solve, select it in the GUI where it will
populate all the required fields, and you are ready to run the code or tinker.
Here is a full list of examples. You can get the code, or the example in PDF or HTML form.
I'll mention just a few of my favorites to show you the breadth of possible problems that Chebfun can solve.
- Orr-Somerfield eigenvalues (hydrodynamic stability)
- Carrier equation (ode: boundary value problem)
- Double well Schrodinger eigenstates (quantum mechanics)
- Coupled system of reaction-diffusion equations
And that's just the tip of the iceberg.
Many people use splines as basis functions for approximations, solving differential equations, and so on. Some people use
wavelets for similar purposes. The package discussed here relies on Chebyshev functions. I hope from the examples you can
see the broad applicability of the Chebfun project. What do you use? And why? Let me know here.
Published with MATLAB® 7.12