Updates and Corrections to the Third Edition

  1. Page 19, Exercise 2.6(a). The equation reference in the first line of the code should be to (2.10), not (2.9). We thank Scott Robison for finding this typo.
  2. Page 20, Table 2.1, line 1. The first column should be ++, --.
  3. Page 40, Exercise 2.20(a). How many subclasses are there between JFrame and PlotFrame?" Correction in italics. We thank Mikhail Lipovsky for finding this typo.
  4. Page 46, Problem 3.1 (c), last sentence. Euler-Comer should be Euler-Cromer. Thanks again to Mikhail Lipovsky.
  5. Page 48. In the PlotFunction code listing the correct statement should be
    frame.append(0,x,f.evaluate(x));
    The deprecated frame.show() should be replaced by frame.setVisible(true).
  6. Page 60. The captions for Figures 3.1 (b) and (c) should be switched. (b) is for upward motion and (c) is for downward motion. We thank David Veneziano for pointing out this error.
  7. Pages 62-63. Problem 3.8 The fall of a coffee filter. Parts of this problem could be more clearly stated. Part of the difficulty is that the timer didn't start exactly when the filter was dropped. So we don't know when t = 0. The easiest way to analyze the fall of the coffee filter is to determine the velocity v from part (a) and take it to be the initial velocity at t = 0.2302 with height y = 0.4164. Take the time difference between the different measurements to be 0.0247 or 0.0248; the difference is not significant.
  8. Page 65, Eq. (318b). C-2 should be C2. We thank Chris Martin for pointing out this typo.
  9. Page 66. A reference is made to an article by Lichtenberg and Wills, but the article is not referenced at the end of Chapter 3. The reference is D. B. Lichtenberg and J. G. Wills, "Maximizing the range of the shot put," Am. J. Phys. 46 (5), 546-549 (1978).
  10. Page 80. The right-hand side of (3.61g) should be multiplied by Δt and in (3.61h) k3x should be k3v. We thank Steven Gottlieb for pointing out this error.
  11. Page 106. the factor of 0.01 in Eq. (4.31c) should be replaced by 0.1. Equation (4.31f) is for βh, not βm.
  12. Page 112, Section 5.5, last sentence of second paragraph should read: For example, an increase in a from 0.24 to 1, an increase of approximately 4, yields an increase in a of approximately 2.5. We thank Mikhail Lipovsky for finding this typo.
  13. Page 180. In the caption of Figure 6.13 the initial conditions are for (q1, q2, p2), not (q1, q2, p1). We thank Richard Gonsalves for pointing out the problem with the figure.
  14. Page 182, Table 6.2. The following two entries should replace those in the text.
    m sm
    4 0.888660216
    5 0.891666845
    We thank Steven Gottlieb for pointing out these corrections.
  15. Page 188. The right-hand side of Eq. (6.66c) should be k5B - k6C. We thank Larry Engelhardt for pointing out this error.
  16. Page 210, Problem 7.10, Part (a): The phrase "where D is the self-diffusion coefficient in the absence of traps" should be augmented to read "where D is the self-diffusion coefficient in the absence of traps (see (7.29))."
  17. Page 212. Last line of Problem 7.12(a). Rutter should be Ruttor.
  18. Page 212, Problem 7.14: The integral on line 4 should be over f(a) not p(a) and the sentence "Note that the bin width Δa is one of the input parameters" should be changed to "Note that the bin width Δx is one of the input parameters." This sentence should be moved to the end of part (a).
  19. Page 223, Eq. (7.37a). The left-hand side should be <x> rather than <c>.
  20. Page 234, Problem 7.33, line 6. site[x(i]] should be site[x[i]]. We thank Igor Partola for finding this typo.
  21. Pages 238-239. Starting on the last line of page 238, a should be 231 and m should be 65,549, instead of the other way around. We thank Steve Gottlieb for pointing out this error.
  22. Page 253. In the Prellberg and Krawczyk reference "The authors discusses …" should be "The authors discuss …"
  23. Page 260, Exercise 8.2b. return x < 0 ? x\%L+L: x\%L; should be return x < 0 ? x%L+L: x%L;. We thank Larry Engelhardt for pointing out this error.
  24. Page 267. The getHeatCapacity() method in LJParticles.java has been corrected. In Eq. (8.11), after the equals sign, the first appearance of N should be 1/N and in Eq. (8.12) after the minus sign 1/N should be N. We thank Mike Cooke for pointing out this error.
  25. Page 282. In the listing for normalizeRDF, the statement for shellArea should be
    double r = bin*dr;
    double shellArea = Math.PI*(Math.pow(r+dr,2) - Math.pow(r,2));
    
    In dataRDF.append, g should be replaced by RDF.
  26. Page 289. In the listing for pressure(), the denominator should not include the area factor. Thus, this line should be
    return 1 + virialSum/(2*t*N*temperature);
    We thank Amy Bug for pointing out this error.
  27. Page 306, Eq. (8.59). The subscript for r in the denominator should be ij not ii. We thank Chris Martin for pointing out this typo.
  28. Page 317. In OscillatorsMode.java (Listing 9.2), Math.sin(mode*Math.PI/N/2) should be Math.sin(mode*Math.PI/(2*(N+1))). We thank Larry Engelhardt for pointing out this error.
  29. Page 329, in Eqs. (9.34)-(9.37) the lower limits of the integrals and the summations are each missing a minus sign. We thank Larry Engelhardt for pointing out this error.
  30. Page 341. On the right-hand side of Eq. (9.56), the term "u(x + Delta x, t)" appears twice. One of these should be replaced with "u(x - Delta x, t)". We thank Larry Engelhardt for pointing out this error.
  31. Page 347. In Eq. (9.62) the minus sign on the right-hand side should be a plus sign. We thank Larry Engelhardt for pointing out this error.
  32. Page 369, Problem 10.1(b), AbstractAnimation should be AbstractSimulation.
  33. Page 381. First line of code listing should be
    gridSize = control.getInt("size");
  34. Page 403. In current(double t), J[mid+i][mid][mid][0] should be J[0][mid+i][mid][mid]
  35. Page 405. In plotField(), E[i][j][mid][0] and E[i][j][mid][1] should be E[0][i][j][mid] and E[1][i][j][mid], respectively.
  36. Page 407-408. Project 10.26 Multigrid method. The word "prolongation" should be replaced by "restriction" and the word "restriction" should be replaced by "prolongation". We thank Steve Gottlieb for finding this error.
  37. Page 443. The upper limit of the sum over α in both (11.78) and (11.79) should be m not n.
  38. Page 489, last line: Advances Complex Systems should be Advances in Complex Systems. Thanks to Mike Viotti for his careful reading.
  39. Page 533, Problem 14.1, first line. Replace 33 >> 1 by 33 >>> 1. Thanks to Mikhail Lipovsky for his careful reading.
  40. Page 534, Problem 14.2, second line of part (a). Listing 14.2 should be Listing 14.1. Thanks again to Mikhail Lipovsky.
  41. Page 549, Problem 14.9, last line of part (c). "See Rundle et al." refers to the series of papers by W. Klein and J. B. Rundle and collaborators listed on page 587.
  42. Page 552. The sum in Eq. (14.4) be over α not s.
  43. Page 581. In Eq. (14.9) the quantity on the right-hand side should be divided by the number of iterations, Nstep, and in the next line, "… all iterations of …" should be replaced by "… all Nstep iterations of …" We thank Steve Gottlieb for pointing out this error.
  44. Page 583. In Eq. (14.14b) the subscript should be 1 not 0 on the right-hand side.
  45. Page 594. idealGas.N = control.getInt("number of spins N"); should be
    idealGas.N = control.getInt("number of particles N");
  46. Page 595. control.setValue("Number of spins N", 40); should be
    control.setValue("Number of particles N", 40);
  47. Page 603. The last row in Fig. 5.2 is incorrect. It should be the same as the first row in the center cell. Thanks to Mikhail Lipovsky for his careful reading.
  48. Page 611. To allow the temperature to be changed in the middle of a simulation the following method should be added to class Ising:
    public void changeTemperature(double newTemperature) {
       temperature = newTemperature;
       w[8] = Math.exp(-8.0/temperature);
       w[4] = Math.exp(-4.0/temperature);
    }
    
  49. Page 636. Equation (15.58) is ambigious as written and is better written as
    F(E) = -kT ln[g(E)e-βE].
  50. Page 647. Equation (15.80) should read
    p eβJ e-6βJ = p (1-p)6eβJ e6βJ
  51. Page 671, Chapter 15. Corrected reference. N. Metropolis, A. W. Rosenbluth, M. N. Rosenbluth, A. H. Teller, and E. Teller, Equation of state calculations for fast computing machines, J. Chem. Phys. 21, 1087-1092 (1953). We thank Louis Colonna-Romano for pointing out this error.
  52. Page 707, Eq. (16.75). The argument of Ψ should be Ψ(x',0). We thank Jacques Bloch for pointing out this error.
  53. Page 708, Eq. (16.82). The denominator of the exponential should be 4DΔτ instead of 4D.
  54. Page 713, step 3. The trial displacement should be x'j, and in the first line of Eq. (16.103), xj should be x'j. We thank Viktor Nilsson for finding this error.
  55. Page 736, near the bottom. Equation (17.23) … should be Eq. (17.22) …
  56. Page 740. In Eq. (17.31) (q0,q) (p0,p) should be (p0,p)(q0,q).
  57. Page 744. In Eqs. (17.43) and (17.44) the last term should be multiplied by Δt. Also, the argument of the last term in Eq. (17.44) should be t, instead of t + Δt/2.
  58. Page 760. The first row of the matrix in Eq. (17.57) should be [1 0 0], not [0 0 1].
  59. Page 761. In Eq. (17.60d) sinθ/2 should be cosθ/2 .
  60. Page 791 index. algorithm, 3, see stability; see stability should be deleted.
  61. Page 794 index, phase transition. Replace firt-order by first-order
Updated 30 November 2015 by Jan Tobochnik.