# Software for the course

## Chebfun, ATAP, and SMM codes

Trefethen’s book “Approximation Theory and Approximation Practice” (ATAP) was
written using the Matlab “publish” facility and all of the files can be
downloaded from the
ATAP website. See Exercise
1.2 in the book for instructions on using these files.

The Matlab scripts embedded in these files make heavy use of
Chebfun, which contains tools for
working with Chebyshev polynomial approximations and overloads many Matlab
functions with versions that work on functions defined in this manner.

The book “Spectral Methods in Matlab” (SMM) has associated Matlab m-files
that can be downloaded from the
SMM website.

You should download *Chebfun* and the files for the books and make sure
you can run them in Matlab.

## Matlab

Matlab is available on the Applied Mathematics computing system for students
in this department. Note that you can log into a departmental machine using
*ssh* in order to use Matlab remotely, e.g. from a Linux or Mac

ssh -X netid@americano.amath.washington.edu
$ matlab

This should open a Matlab window on your own computer. Interacting with
this Matlab interface may be slow, so you may prefer:

which gives you the Matlab prompt in the terminal window instead.

Matlab is also available in the
Arts and Sciences Instructional Computing Lab located in Communications B-022, and
also available via their terminal server.

The Student Version of Matlab
is available at the bookstore. This may be worth buying if you
think you will use Matlab regularly.

## Python

Some of the work required for this class can be done in Python rather than
Matlab, but many assignments will require using *Chebfun* and/or the m-files
that accompany the books and so will be hard to replicate in Python.

Much of the functionality of *Chebfun* has been replicated in Python in the
package pychebfun.
Scroll to the bottom of that page for installation instructions.
See also this notebook for more
examples.

To use Python effectively you will need numpy
(which supports arrays and
many mathematical operations), matplotlib
(matlab-style plotting). The
IPython shell and/or
IPython notebook
are highly recommended for interactive work.
The Anaconda Python Distribution
is one easy way to get everything you need.