Skip to main content

Release of Chebfun Version 2

Posted:

We are delighted to announce the release of Version 2 of the chebfun system, whose aim is computation "with the feel of symbolics and the speed of numerics". In chebfun computing, the usual Matlab operations for vectors are overloaded for functions on an interval [a,b]. You can also work with "quasimatrices" whose columns are chebfuns and compute their condition number, QR factorization, SVD, etc. All this is built on representing piecewise smooth functions by polynomial interpolants through Chebyshev points, with the number of points automatically determined to achieve close to 16-digit precision. The "chebop" extension extends the same kind of computing to the solution of integral and differential equations.

Here are four examples:

  • What's the integral of exp(-sqrt(x)) from 0 to 10?
    >>x = chebfun('x',[0 10]); sum(exp(-sqrt(x)))
    ans = 1.647628069579947
  • What's the maximum of sin(x)+sin(x^2) over the same interval?
    >>max(sin(x)+sin(x.^2))
    ans = 1.985446580874099
  • How many roots does J0(x) have between 0 and 1000?
    >>length(roots(chebfun(@(x) besselj(0,x),[0 1000])))
    ans = 318
  • What is the first eigenvalue of the Laplacian on [0,pi]?
    >>L = -diff(domain(0,pi),2) & 'dirichlet'; eigs(L,1)
    ans = 1.00000000000002

The software is available at http://www.comlab.ox.ac.uk/chebfun/, where you can also browse a user's guide with many more examples.

We are eager to hear from users! If you like Matlab, you will probably like chebfuns. Please give them a try and send us an M-file if you find a particularly interesting application. We will be happy to post some of our favorites on the web. We also look forward to seeing some of you at the chebfun minisymposium on Tuesday 8 July at the SIAM Annual Meeting in San Diego.

- The Chebfun Team (chebfun@comlab.ox.ac.uk): Toby Driscoll, Ricardo Pachon, Rodrigo Platte, Nick Trefethen

(With thanks also to Chebfun Version 1 maestro Zachary Battles and chebop collaborator Folkmar Bornemann.)

Rodrigo Platte
Nick Trefethen