# Chebfun

Developer(s) The Chebfun team, University of Oxford v4.2 / March 2012 MATLAB Numerical software BSD www.maths.ox.ac.uk/chebfun

Chebfun is a free/open-source software system written in MATLAB for numerical computation with functions of a real variable. It is based on the idea of overloading MATLAB's commands for vectors and matrices to analogous commands for functions and operators. Thus, for example, whereas the SUM command in MATLAB adds up the elements of a vector, the SUM command in Chebfun evaluates a definite integral. Similarly the backslash command in MATLAB becomes a Chebfun command for solving differential equations.[1][2][3][4][5]

The mathematical basis of Chebfun is numerical algorithms involving piecewise polynomial interpolants and Chebyshev polynomials, and this is where the name "Cheb" comes from. The package aims to combine the feel of symbolic computing systems like Maple and Mathematica with the speed of floating-point numerics.[2][3]

The Chebfun project is based in the Mathematical Institute at the University of Oxford and was initiated in 2002 by Lloyd N. Trefethen and his student Zachary Battles.[1] The most recent stable version, Version 4.2, was released in March 2012.

On the 4th of March 2013 Chebfun2, a software system that extends Chebfun to two dimensions, was made publicly available.[5]

## Features

• Approximation of functions
• Rootfinding
• 1D global optimisation
• Ordinary differential equations
• Partial differential equations
• Approximation of smooth bivariate functions (Chebfun2)
• Bivariate rootfinding
• Vector calculus

## Example usage

A user may begin by initialising the variable x, on the interval [0,10], say.

```>> x = chebfun('x',[0,10]);
```

This variable can now be used to perform further computations, for example, computing and plotting roots of a function:

```>> f = sin(x) + sin(x.^2);  plot(f)
>> r = roots(f); hold on, plot(r,f(r),'.r'), hold off
```

The definite integral can be computed with:

```>> sum(f)
ans
= 2.422742429006079
```

## References

1. ^ a b Battles, Z.; Trefethen, L. N. (2004). "An Extension of MATLAB to Continuous Functions and Operators". SIAM Journal on Scientific Computing 25 (5): 1743. doi:10.1137/S1064827503430126.
2. ^ a b Trefethen, L. N. (2007). "Computing Numerically with Functions Instead of Numbers". Mathematics in Computer Science 1: 9–19. doi:10.1007/s11786-007-0001-y.
3. ^ a b Pachon, R.; Platte, R. B.; Trefethen, L. N. (2009). "Piecewise-smooth chebfuns". IMA Journal of Numerical Analysis 30 (4): 898. doi:10.1093/imanum/drp008.
4. ^ Driscoll, T. A.; Bornemann, F.; Trefethen, L. N. (2008). "The chebop system for automatic solution of differential equations". BIT Numerical Mathematics 48 (4): 701. doi:10.1007/s10543-008-0198-4.
5. ^ a b Townsend, A.; Trefethen, L. N. (2013). "An Extension of Chebfun to Two Dimensions". SIAM Journal on Scientific Computing 35 (6): C495. doi:10.1137/130908002.