Description
Efnisyfirlit
- Half title
- Title
- Copyright
- Contents
- Preface
- 1 Introduction
- 1.1 Scientific software
- 1.2 The plan of this book
- 1.3 Can Python compete with compiled languages?
- 1.4 Limitations of this book
- 1.5 Installing Python and add-ons
- 2 Getting started with IPython
- 2.1 Generalities
- 2.2 Tab completion
- 2.3 Introspection
- 2.4 History
- 2.5 Magic commands
- 2.6 The magic %run command
- 3 A short Python tutorial
- 3.1 Typing Python
- 3.2 Objects and identifiers
- 3.3 Numbers
- 3.3.1 Integers
- 3.3.2 Real numbers
- 3.3.3 Boolean numbers
- 3.3.4 Complex numbers
- 3.4 Namespaces and modules
- 3.5 Container objects
- 3.5.1 Lists
- 3.5.2 List indexing
- 3.5.3 List slicing
- 3.5.4 List mutability
- 3.5.5 Tuples
- 3.5.6 Strings
- 3.5.7 Dictionaries
- 3.6 Python if statements
- 3.7 Loop constructs
- 3.7.1 The Python for loop
- 3.7.2 The Python continue statement
- 3.7.3 The Python break statement
- 3.7.4 List comprehensions
- 3.7.5 Python while loops
- 3.8 Functions
- 3.8.1 Syntax and scope
- 3.8.2 Positional arguments
- 3.8.3 Keyword arguments
- 3.8.4 Variable number of positional arguments
- 3.8.5 Variable number of keyword arguments
- 3.8.6 The Python print function
- 3.8.7 Anonymous functions
- 3.9 Introduction to Python classes
- 3.10 The structure of Python
- 3.11 Prime numbers: a worked example
- 4 Numpy
- 4.1 One-dimensional arrays
- 4.1.1 Ab initio constructors
- 4.1.2 Look alike constructors
- 4.1.3 Arithmetical operations on vectors
- 4.1.4 Ufuncs
- 4.1.5 Logical operations on vectors
- 4.2 Two-dimensional arrays
- 4.2.1 Broadcasting
- 4.2.2 Ab initio constructors
- 4.2.3 Look alike constructors
- 4.2.4 Operations on arrays and ufuncs
- 4.3 Higher-dimensional arrays
- 4.4 Domestic input and output
- 4.4.1 Discursive output and input
- 4.4.2 Numpy text output and input
- 4.4.3 Numpy binary output and input
- 4.5 Foreign input and output
- 4.5.1 Small amounts of data
- 4.5.2 Large amounts of data
- 4.6 Miscellaneous ufuncs
- 4.6.1 Maxima and minima
- 4.6.2 Sums and products
- 4.6.3 Simple statistics
- 4.7 Polynomials
- 4.7.1 Converting data to coefficients
- 4.7.2 Converting coefficients to data
- 4.7.3 Manipulating polynomials in coefficient form
- 4.8 Linear algebra
- 4.8.1 Basic operations on matrices
- 4.8.2 More specialized operations on matrices
- 4.8.3 Solving linear systems of equations
- 4.9 More numpy and beyond
- 4.9.1 Scipy
- 4.9.2 Scikits
- 5 Two-dimensional graphics
- 5.1 Introduction
- 5.2 Getting started: simple figures
- 5.2.1 Front-ends
- 5.2.2 Back-ends
- 5.2.3 A simple figure
- 5.2.4 Interactive controls
- 5.3 Cartesian plots
- 5.3.1 The matplotlib plot function
- 5.3.2 Curve styles
- 5.3.3 Marker styles
- 5.3.4 Axes, grid, labels and title
- 5.3.5 A not-so-simple example: partial sums of Fourier series
- 5.4 Polar plots
- 5.5 Error bars
- 5.6 Text and annotations
- 5.7 Displaying mathematical formulae
- 5.7.1 Non-LATEX users
- 5.7.2 LATEX users
- 5.7.3 Alternatives for LATEX users
- 5.8 Contour plots
- 5.9 Compound figures
- 5.9.1 Multiple figures
- 5.9.2 Multiple plots
- 5.10 Animations
- 5.10.1 In situ animations
- 5.10.2 Movies
- 5.11 Mandelbrot sets: a worked example
- 6 Three-dimensional graphics
- 6.1 Introduction
- 6.1.1 Three-dimensional data sets
- 6.1.2 The reduction to two dimensions
- 6.2 Visualization software
- 6.3 A three-dimensional curve
- 6.3.1 Visualizing the curve with mplot3d
- 6.3.2 Visualizing the curve with mlab
- 6.4 A simple surface
- 6.4.1 Visualizing the simple surface with mplot3d
- 6.4.2 Visualizing the simple surface with mlab
- 6.5 A parametrically defined surface
- 6.5.1 Visualizing Enneper?s surface using mplot3d
- 6.5.2 Visualizing Enneper?s surface using mlab
- 6.6 Three-dimensional visualization of a Julia set
- 7 Ordinary differential equations
- 7.1 Initial value problems
- 7.2 Basic concepts
- 7.3 The odeint function
- 7.3.1 Theoretical background
- 7.3.2 Practical usage
- 7.4 Two-point boundary value problems
- 7.4.1 Introduction
- 7.4.2 Formulation of the boundary value problem
- 7.4.3 A simple example
- 7.4.4 A linear eigenvalue problem
- 7.4.5 A non-linear boundary value problem
- 7.5 Delay differential equations
- 7.5.1 A model equation
- 7.5.2 More general equations and their numerical solution
- 7.5.3 The logistic equation
- 7.5.4 The Mackey-Glass equation
- 7.6 Stochastic differential equations
- 7.6.1 The Wiener process
- 7.6.2 The It? calculus
- 7.6.3 It? and Stratanovich stochastic integrals
- 7.6.4 Numerical solution of stochastic differential equations
- 8 Partial differential equations: a pseudospectral approach
- 8.1 Initial-boundary value problems
- 8.2 Method of lines
- 8.3 Spatial derivatives via finite differencing
- 8.4 Spatial derivatives by spectral techniques for periodic problems
- 8.5 The IVP for spatially periodic problems
- 8.6 Spectral techniques for non-periodic problems
- 8.7 An introduction to f2py
- 8.7.1 Simple examples with scalar arguments
- 8.7.2 Vector arguments
- 8.7.3 A simple example with multi-dimensional arguments
- 8.7.4 Undiscussed features of f2py
- 8.8 A real-life f2py example
- 8.9 Worked example: Burgers? equation
- 8.9.1 Boundary conditions: the traditional approach
- 8.9.2 Boundary conditions: the penalty approach
- 9 Case study: multigrid
- 9.1 The one-dimensional case
- 9.1.1 Linear elliptic equations
- 9.1.2 Smooth and rough modes
- 9.2 The tools of multigrid
- 9.2.1 Relaxation methods
- 9.2.2 Residual and error
- 9.2.3 Prolongation and restriction
- 9.3 Multigrid schemes
- 9.3.1 The two-grid algorithm
- 9.3.2 The V-cycle scheme
- 9.3.3 The full multigrid scheme (FMG)
- 9.4 A simple Python multigrid implementation
- 9.4.1 Utility functions
- 9.4.2 Smoothing functions
- 9.4.3 Multigrid functions
- Appendix A Installing a Python environment
- A.1 Installing Python packages
- A.2 Communicating with Python
- A.2.1 Editors for programming
- A.2.2 The IPython-editor interaction
- A.2.3 The two windows approach
- A.2.4 Calling the editor from within IPython
- A.2.5 Calling IPython from within the editor
- A.2.6 The IPython pager
- A.3 The Python Package Index
- Appendix B Fortran77 subroutines for pseudospectral methods
- References
- Index
Reviews
There are no reviews yet.