The one-line program to be written in a text editor must have
`t**2`

and not `t^2`

.

... \( v_0 \) in mathematics becomes `v0`

in the program. (Not `v_0`

.)

`%0xd`

is not an integer padded with `x`

leading zeros, but an integer written
with a minimum field width of `x`

, where any leading spaces are replaced
by zeros.

The printout does not correspond to the show code. The correct printout is

Jan: 56.6 Feb: 72.7 Mar: 116.5 Apr: 153.2 May: 191.1 Jun: 198.5 Jul: 193.8 Aug: 184.3 Sep: 138.3 Oct: 104.6 Nov: 67.4 Dec: 52.4

The code can also be simplified

```
monthly_mean = []
n = len(data) # no of years
for m in range(12): # counter for month indices
s = 0 # sum
for y in data: # loop over "rows" (first index) in data
s += y[m] # add value for month m
monthly_mean.append(s/n)
```

In the program `c2f.py`

, the `print`

statement has a wrong formatting
of the `F(C)`

value: `%.51f`

must read `%5.1f`

, i.e., the same formatting
as used for the `C`

value.

Heading in Section 3.1.5 should be *Function argument or global variable?*
(*or* instead of *of*).

In Exercise 3.6, Equation (3.10), the sum must be \( \sum_{i=0}^{n-1} \).

The terminal output for the integral \( \int_0^{\pi/2}\sin x\,dx \) should read
`1`

, not `0.583009`

.

In the `mymod.py`

module, an `import sys`

is needed in the test block before
`print add1(float(sys.argv[1]))`

.

The last code showing the test block of the `interest`

module needs two
corrections: division by 365 if the expression for `years`

and an `f`

in the `print`

statement:

```
if __name__ == '__main__':
import sys
p = float(sys.argv[1])
years = days(1, 2, p)/365.0
print 'With p=%.2f it takes %.f1 years to double' % (p, years)
```

The computational example in this section involves the parameters
`A0=2`

and `A=1`

, but it should be the other way around: `A0=1`

and `A=2`

(otherwise the interest rate becomes negative).

```
export PYTH=$HOME/software/lib/pymodules:$PATH
```

should be

```
export PATH=$HOME/software/lib/pymodules:$PATH
```

In Exercise 4.17, the reference to the program `user_formula.py`

should be `integrate.py`

. The name of the resulting program is
then better named `integrate2.py`

than `user_formula2.py`

.

In the first code block, `x3 = mat(x).transpose()`

should be
`x3 = mat(x1).transpose()`

.

End of first paragraph: `Sun`

is to be replaced by `Apple`

.

Last code block,

```
station = line.split('</strong>')[0].split('<strong>')[0]
```

must be

```
station = line.split('</strong>')[0].split('<strong>')[1]
```

The argument in the `raise ValueError`

call, after `if c*d <= 0`

, needs
a final `% other`

.

The title of the chapter should be *Random numbers and simple games*.

Exercise 8.13: Since \( 4\leq n\leq 10 \) balls are drawn, one must investigate cases where \( n\in [4,10] \), say \( n=4,7.10 \) (and not \( n=1,5,10,20 \) which does not make sense).

The last line of the `integrate_ode.py`

program should not contain
`u'(t)=t**3`

, but read

```
print "Numerical solution of u'(t)=%s: %.4f" % \
(f_formula, integrate(T, n, u0))
```

The four terminal output sessions below are then also wrong: instead of
`u'(t)=t**3`

it should be `u'(t)=t**exp(t**2)`

.

Exercise E.1: The exact solution is \( u(t)=0.2e^{0.1t} \).

== Page 768 ===

Exercise E.24: The first constant on the right-hand sides of equations (E.70) and (E.72) must be 3 and 4, not 2 and 3.

Below the equation with \( I(t+\Delta t) \), it must read \( \Delta t\rightarrow 0 \) (not \( \infty \)).

Exercise E.42: The last element of the returned list in the
`ProblemSIR.__call__`

method should not have a minus sign; it should
be `self.nu(t)*I`

.

Exercise E.46: A value for \( I(0) \) is not given. Set \( I(0)=0 \).

The text says "The import statements can actually be dropped since
functions from `numpy`

and `matplotlib`

are imported by default when
running the notebook in the browser or by supplying the command-line
argument `--pylab`

when starting notebooks locally on your
machine.". Now, the use of `--pylab`

is discouraged. Also, the
functions from `numpy`

and `matplotlib`

are not any longer
automatically imported - you have to do that explicitly.

The recommended way of using IPython notebooks with `numpy`

and
`matplotlib`

is to do

```
import numpy as np
import matplotlib.pyplot as plt
%matplitlib inline
```

If you want the notebook to behave more as Matlab and not use
the `np`

and `plt`

interface, you can instead write

```
%pylab
```

To succesfully execute the `c2f.py`

program, `cmd`

must be `python c2f.y 21`

or `./c2f.py 21`

(if `c2f.py`

is an executable file) unless `.`

is in
the user's `PATH`

variable.

Under **Split file or folder name**, the directory name `user`

in the text
should be replaced by `/home/hpl`

according to the interactive session.