Chebfun: numerical computing with functions.
Matlab Other
Latest commit ea5c51a Feb 23, 2017 @oliviersete oliviersete committed on GitHub Merge pull request #2062 from chebfun/fix-plot-grayed-legends
Use NaN data for the dummy plot in chebfun.plot().
Permalink
Failed to load latest commit information.
+cheb bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@adchebfun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@adchebfun2 bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@blockCoeff bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@blockFunction bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@bndfun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebcolloc bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebcolloc1 bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebcolloc2 bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebdouble bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebfun Merge pull request #2062 from chebfun/fix-plot-grayed-legends Feb 23, 2017
@chebfun2 bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebfun2v bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebfun3 bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebfun3t bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebfun3v bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebfunpref bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebgui bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebguiController bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebguiExporter bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebguiExporterBVP bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebguiExporterEIG bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebguiExporterIVP bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebguiExporterPDE bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebmatrix bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebop bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebop2 bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@cheboppref bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebpref bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebtech added a comment Dec 29, 2016
@chebtech1 bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@chebtech2 bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@classicfun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@coeffsDiscretization bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@deltafun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@diskfun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@diskfunv bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@domain bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@expint Add tests and fix a bug in STARTMULTISTEP. Jan 20, 2017
@fun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@functionalBlock bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@imex Extend SPINSPHERE to systems of PDEs. Jan 12, 2017
@linBlock bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@linop bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@linopConstraint bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@mapping bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@onefun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@opDiscretization bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@operatorBlock bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@separableApprox minor cosmetic changes Feb 22, 2017
@singfun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@smoothfun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@spherefun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@spherefunv bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@spinop Improve the plotting. Jan 13, 2017
@spinop2 Improve the plotting. Jan 13, 2017
@spinop3 Improve the plotting. Jan 13, 2017
@spinoperator Fix a bug in SOLVEPDE. Jan 20, 2017
@spinopsphere Modify GL example. Jan 20, 2017
@spinpref Initial commit. Jan 4, 2017
@spinpref2 Modify NLS demo. Add COLORMAP option. Jan 11, 2017
@spinpref3 Modify NLS demo. Add COLORMAP option. Jan 11, 2017
@spinpreference Initial commit. Jan 4, 2017
@spinprefsphere Modify NLS demo. Add COLORMAP option. Jan 11, 2017
@spinscheme Code IMEX/ONESTEP and IMEX/COMPUTECOEFFS. Also code the graphics for … Jan 5, 2017
@stringParser bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@treeVar bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@trigcolloc bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@trigspec bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@trigtech bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@ultraS bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@unbndfun bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
@valsDiscretization bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebguiDemos Fix Lane-Emden to use a global solver. Dec 2, 2015
tests Merge pull request #2065 from chebfun/feature-rational-remez Feb 22, 2017
.gitignore Add entry for .DS_Store files to .gitignore. Jun 9, 2014
ATAPformats.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
CONTRIBUTING.md Add bare-bones CONTRIBUTING.md. Nov 10, 2015
CoastData.mat Minor fix to get the Coast line data file to load. Feb 8, 2016
Contents.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
LICENSE.txt bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
ODEformats.m 3 unpolished items needed to teach from "Exploring ODEs" Sep 3, 2016
README.md Update Contents.m with new revision number. Aug 29, 2014
aaa.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
abstractQR.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
arrowplot.m 3 unpolished items needed to teach from "Exploring ODEs" Sep 3, 2016
arrowplotnl.m 3 unpolished items needed to teach from "Exploring ODEs" Sep 3, 2016
bary.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
baryWeights.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
barymat.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
besselroots.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
blowup.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
cheb2jac.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
cheb2leg.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
cheb2logo.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebcoeffs2chebvals.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebcoeffs2legcoeffs.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebcoeffs2legvals.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebfun2eps.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebfun3eps.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebfuneps.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebfunroot.m Fix typo. Jun 16, 2014
chebguiEdit.fig Renaming chebguiedit to chebguiEdit. Jun 3, 2014
chebguiEdit.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebguiWindow.fig Renaming of menu options to reflect new cheboppref. Jul 7, 2015
chebguiWindow.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebkind.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
cheblogo.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebpoly.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebpolyplot.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebpolyval.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebpolyvalm.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebpts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebpts2.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebpts3.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebsnake.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebsnake2.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebtest.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebvals2chebcoeffs.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebvals2legcoeffs.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebvals2legvals.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
chebvar.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
cumsummat.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
diffmat.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
diffrow.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
explain.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
fov.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
gridsample.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
hermpoly.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
hermpts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
intmat.m new commands diffrow.m, intmat.m, introw.m gridsample.m. Aug 25, 2016
introw.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
isSubset.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
jac2cheb.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
jac2jac.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
jacpoly.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
jacpts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
lagpoly.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
lagpts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
lebesgue.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
leg2cheb.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
legcoeffs2chebcoeffs.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
legcoeffs2chebvals.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
legcoeffs2legvals.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
legpoly.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
legpts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
legvals2chebcoeffs.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
legvals2chebvals.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
legvals2legcoeffs.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
lobpts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
outerProd.m correct outerProd and chebfun2eig Sep 30, 2016
padeapprox.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
paduapts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
pdeset.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
quasimatrix.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
radaupts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
randnfun.m changing DT to DX in randnfun/randnfuntrig Feb 14, 2017
randnfuntrig.m changing DT to DX in randnfun/randnfuntrig Feb 14, 2017
ratinterp.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
resampling.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
scribble.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
scribble2.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
seedRNG.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
sing.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
spin.m Improve documentation and do not plot axes in MOVIE mode. Jan 13, 2017
spin2.m Improve documentation and do not plot axes in MOVIE mode. Jan 13, 2017
spin3.m Improve documentation and do not plot axes in MOVIE mode. Jan 13, 2017
spincomp.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
spinsphere.m Oops. Jan 20, 2017
splitting.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
standardChop.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
trigBary.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
trigBaryWeights.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
trigdouble.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
trigpoly.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
trigpts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
trigratinterp.m removing a bug and extensive testing for both the cases m < n, m >= n Jan 9, 2017
ultracoeffs.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
ultrapoly.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016
ultrapts.m bumping up the year to 2017 before v5.6.0 release Dec 16, 2016

README.md

About

Chebfun is an open-source software system for numerical computing with functions. The mathematical basis of Chebfun is piecewise polynomial interpolation implemented with what we call “Chebyshev technology”. The foundations are described, with Chebfun examples, in the book Approximation Theory and Approximation Practice. Chebfun has extensive capabilities for dealing with linear and nonlinear differential and integral operators, and it also includes continuous analogues of linear algebra notions like QR and singular value decomposition. The Chebfun2 extension works with functions of two variables defined on a rectangle in the x-y plane. To get a sense of the breadth and power of Chebfun, a great place to start is by looking at our Examples.

Installation and requirements

Chebfun is compatible with MATLAB 7.8 (R2009a) and later.

To install, you can either clone the directory with Git or download a .zip file. Note that a call to clear classes is required if you had a previous version of Chebfun installed.

Option 1: Download .zip file

Download a .zip of Chebfun from

After unzipping, you will need to add Chebfun to the MATLAB path. You can do this either (a) by typing

addpath(chebfunroot), savepath

where chebfunroot is the path to the unzipped directory, (b) by selecting the chebfun directory with the pathtool command, or (c) though the File > Set Path... dialog from the MATLAB menubar.

Option 2: Clone with Git

To clone the Chebfun repository, first navigate in a terminal to where you want the repository cloned, then type

git clone https://github.com/chebfun/chebfun.git

To use Chebfun in MATLAB, you will need to add the chebfun directory to the MATLAB path as above.

Getting started

We recommend taking a look at the Chebfun Guide and the Examples collection. The Guide is an in-depth tour of Chebfun's mathematical capabilities. The Examples, which number well over one hundred, illustrate everything from rootfinding to optimization to nonlinear differential equations and vector calculus. Many users use the Examples as templates for their own problems.

To get a taste of what computing with Chebfun is like, type

x = chebfun('x');

and start playing. The variable x is a chebfun and can be manipulated in a way that feels symbolic, although everything Chebfun does is numeric. So try, for instance:

f = sin(12*x).*exp(-x);         % A function on [-1, 1]
g = max(f, 1./(x+2));           % The max of f and 1./(x+2)
plot(g)                         % A function with discontinuous derivative
sum(g)                          % The integral of g
plot(diff(g))                   % The derivative of g
h = g + x - .8;                 % A function with several roots in [-1, 1]
rr = roots(h);                  % Compute the roots of h
plot(h, 'k', rr, h(rr), 'ro')   % Plot h and its roots

License

See LICENSE.txt for Chebfun's licensing information.