Using Sage as a powerful calculator

A practical example: analysing experimental data

Time for action – fitting the standard curve

Time for action – plotting experimental data

Time for action – fitting a growth model

Installing a binary version of Sage on Windows

Installing a binary version of Sage on OS X

Installing a binary version of Sage on GNU/Linux

Starting Sage from the command line

Time for action – doing calculations on the command line

Time for action – doing calculations with the notebook interface

Displaying results of calculations

Time for action – using strings

Time for action – defining callable symbolic expressions

Time for action – calling functions

Time for action – defining and using your own functions

Time for action – defining a function with keyword arguments

Time for action – working with objects

Sequence types: lists, tuples, and strings

Time for action – creating lists

Time for action – accessing items in a list

Time for action – returning multiple values from a function

Time for action – working with strings

Time for action – iterating over lists

Time for action – computing a solution to the diffusion equation

Time for action – using a list comprehension

Time for action – saving data in a text file

Time for action – reading data from a text file

If statements and conditional expressions

Time for action – defining and accessing dictionaries

Time for action – using lambda to create an anonymous function

Vectors, Matrices, and Linear Algebra

Time for action – working with vectors

Time for action – manipulating elements of vectors

Time for action – solving a system of linear equations

Time for action – accessing elements and parts of a matrix

Time for action – manipulating matrices

Time for action – matrix algebra

Time for action – trying other matrix methods

Time for action – computing eigenvalues and eigenvectors

Time for action – computing the QR factorization

Time for action – computing the singular value decomposition

Time for action – creating NumPy arrays

Time for action – working with NumPy arrays

Time for action – creating matrices in NumPy

Confusion alert: Sage plots and matplotlib

Time for action – plotting symbolic expressions

Time for action – plotting a function with a pole

Time for action – plotting a parametric function

Time for action – making a polar plot

Time for action – plotting a vector field

Time for action – making a scatter plot

Time for action – plotting a list

Time for action – plotting with graphics primitives

Time for action – plotting functions with matplotlib

Time for action – getting the matplotlib figure object

Time for action – improving polar plots

Time for action – making a bar chart

Time for action – making a pie chart

Time for action – plotting a histogram

Time for action – make an interactive 3D plot

Time for action – parametric plots in 3D

Time for action – making some contour plots

Making Symbolic Mathematics Easy

Time for action – defining callable symbolic expressions

Time for action – defining relational expressions

Time for action – relational expressions with assumptions

Time for action – manipulating expressions

Time for action – working with rational functions

Time for action – substituting symbols in expressions

Time for action – expanding and factoring polynomials

Time for action – manipulating trigonometric expressions

Time for action – simplifying expressions

Solving equations and finding roots

Time for action – solving equations

Time for action – finding roots

Differential and integral calculus

Time for action – calculating limits

Time for action – calculating derivatives

Time for action – calculating integrals

Time for action – computing sums of series

Time for action – finding Taylor series

Time for action – computing Laplace transforms

Solving ordinary differential equations

Time for action – solving an ordinary differential equation

Solving equations and finding roots numerically

Time for action – finding roots of a polynomial

Finding minima and maxima of functions

Time for action – minimizing a function of one variable

Time for action – minimizing a function of several variables

Numerical approximation of derivatives

Time for action – approximating derivatives with differences

Time for action – computing gradients

Time for action – numerical integration

Time for action – numerical integration with NumPy

Time for action – computing discrete Fourier transforms

Time for action – plotting window functions

Solving ordinary differential equations

Time for action – solving a first-order ODE

Time for action – solving a higher-order ODE

Time for action – alternative method of solving a system of ODEs

Time for action – linear programming

Time for action – least squares fitting

Time for action – a constrained optimization problem

Time for action – accessing probability distribution functions

Learning Advanced Python Programming

Time for action – defining a class that represents a tank

Time for action – making the tanks move

Time for action – creating your first module

Time for action – creating a vehicle base class

Time for action – creating a combat simulation package

Potential pitfalls when working with classes and instances

Time for action – using class and instance attributes

Time for action – more about class and instance attributes

Time for action – creating empty classes and functions

Time for action – raising and handling exceptions

Time for action – creating custom exception types

Time for action – creating unit tests for the Tank class

Typesetting equations with LaTeX

Time for action – PDF output from the notebook interface

Time for action – working with LaTeX markup in the notebook interface

Time for action – putting it all together

Time for action – detecting collisions between spheres

Time for action – detecting collisions: command-line version

Time for action – faster collision detection

Time for action – optimizing collision detection with Cython

Time for action – calling Sage from a Python script

Time for action – introducing the Python decorator