1.1 Nature of Scientific Computing
PART 1. MAPLE (OR MATHEMATICA) BY DOING
Chapter 2. Getting Started with Maple
2.1 Setting Up Your Work Space
2.2 Maple’s Problem-Solving Environment
Chapter 3. Numbers, Expressions, Functions; Rocket Golf
3.1 Problem: Viewing Rocket Golf
3.2 Theory: Einstein’s Special Relativity
3.3 Math: Integer, Rational and Irrational Numbers
3.4 CS: Floating-Point Numbers
3.12 CS: Overflow, Underflow, and Round-Off Error
3.13 Solution: Viewing Rocket Golf
Chapter 4. Visualizing Data, Abstract Types; Electric Fields
4.2 Problem: Stable Points in Electric Fields
4.3 Theory: Stability Criteria and Potential Energy
4.5 Compound (Abstract) Data Types: [Lists] and {Sets}
4.6 3-D (Surface) Plots of Analytic Functions
4.7 Solution: Dipole and Quadrupole Fields
4.9 Extension: Yet More Plot Types*
4.10 Visualizing Numerical Data
4.11 Plotting a Matrix: matrixplot*
Chapter 5. Solving Equations, Differentiation; Towers
5.1 Problem: Maximum Height of a Tower
5.3 Math: Equations as Challenges
5.4 Solving a Single Equation: solve, fsolve
5.5 Solving Simultaneous Equations (Sets)
5.7 Differentiation: limit, diff, D
5.9 Alternate Solution: Maximum Tower Height
5.10 Assessment and Exploration
5.11 Auxiliary Problem: Nonlinear Oscillations
Chapter 6. Integration; Power and Energy Usage (Also 14)
6.1 Problem: Relating Power and Energy Usage
6.3 Theory: Power and Energy Definitions
6.4 Maple: Tools for Integration
6.5 Problem Solution: Energy from Power
Chapter 7. Matrices and Vectors; Rotation
7.1 Problem: Rigid-Body Rotation
7.2 Math: Vectors and Matrices
7.3 Theory: Angular Momentum Dynamics
7.4 Maple: Linear Algebra Tools
7.5 Matrix Arithmetic and Operations
7.6 Solution: Rotating Rigid Bodies
7.7 Exploration: Principal Axes of Rotation*
Chapter 8. Searching, Programming; Dipsticks
8.1 Problem: Volume of Liquid in Spherical Tanks
8.3 Algorithm: Bisection Searches
8.5 Solution: Volume from Dipstick Height
PART 2. JAVA (OR FORTRAN90) BY DOING
Chapter 9. Getting Started with Java
9.3 Entering and Running Your First Program
Chapter 10. Data Types, Limits, Methods; Rocket Golf
10.1 Problem and Theory (Same as Chapter 3)
10.2 Java’s Primitive Data Types
10.3 Methods (Functions) and Modular Programming
10.4 Solution: Viewing Rocket Golf
10.5 Your Problem: Modify Golf.java
10.6 Coercion and Overloading*
Chapter 11. Visualization with Java, Classes, Packages
11.1 2-D Graphs within Java: PtPlot
11.2 Installing PtPlot: See Appendix C*
Chapter 12. Flow Control via Logic; Projectiles
12.1 Problem: Frictionless Projectile Motion
12.3 Computer Science: Designing Structured Programs
12.5 Implementation: Projectile.java
12.6 Solution: Projectile Trajectories
Chapter 13. Java Input and Output*
13.2 Streams: Standard Output, Input, and Error
13.3 I/O Exceptions: FileCatchThrow.java
13.4 Automatic Code Documentation: javadoc
13.5 Nonstandard Formatted Output: printf
Chapter 14. Numerical Integration; Power and Energy Usage
14.1 Problem (Same as Chapter 6): Power and Energy
14.2 Algorithms: Trapezoid and Simpson’s Rules
14.3 Assessment: Which Rule Is Better?
Chapter 15. Differential Equations with Java and Maple*
15.1 Problem: Projectile Motion with Drag
15.2 Model: Velocity-Dependent Drag
15.3 Algorithm: Numerical Differentiation
15.4 Math: Solving Differential Equations
15.5 Assessment: Balls Falling Out of the Sky?
15.6 Maple: Differential-Equation Tools
15.7 Maple Solution: Drag ∝ Velocity
15.11 Exploration: Planetary Motion*
Chapter 16. Object-Oriented Programming; Complex Currents
16.1 Problem: Resonance in RLC Circuit
16.3 Theory: Resistance Becomes Impedance
16.4 CS: Abstract Data Types, Objects
16.5 Java Solution: Complex Currents
16.6 Maple Solution: Complex Currents
16.7 Explorations: OOP Worked Examples*
Chapter 17. Arrays: Vectors, Matrices; Rigid-Body Rotations
17.1 Problem: Rigid-Body Rotations
17.2 Theory: Angular-Momentum Dynamics
17.3 CS, Math: Arrays, Vectors, and Matrices
17.4 Implementation: Inertia.java, Inertia3D.java
17.5 Jama: Java Matrix Library*
Chapter 18. Advanced Objects; Baton Projectiles*
18.1 Problem: Trajectory of Thrown Baton
18.2 Theory: Combined Translation and Rotation
Chapter 19. Discrete Math, Arrays as Bins; Bug Dynamics*
19.1 Problem: Variability of Bug Populations
19.2 Theory: Self-Limiting Growth, Discrete Maps
19.3 Assessment: Properties of Nonlinear Maps
19.4 Exploration: Bifurcation Diagram, BugSort.java*
19.5 Exploration: Other Discrete Maps*
Chapter 20. 2-D Arrays: File I/O, PDEs; Realistic Capacitor
20.1 Problem: Field of Realistic Capacitor
20.2 Theory and Model: Electrostatics and PDEs
20.3 Algorithm: Finite Differences
20.4 Implementation: Laplace.java
20.5 Exploration: 2-D Capacitor
20.6 Exploration: 3-D Capacitor*
Chapter 21. Web Computing, Applets, Primitive Graphics
21.2 Implementation: Get This to Work First
21.3 Exploration: Modify Applet1.java
21.4 Extension: PtPlot as Applet*
21.5 Extension: Applet with Button Input*
21.6 Extension: AWT, JFC, and Swing*
21.7 Example: Baton Applet, Jparabola.java*
22.3 Sample Input File (Sample.tex)
23.1 Entering Mathematics: Math Mode
23.2 Mathematical Symbols and Greek
23.4 Superscripts and Subscripts
23.12 Matrices and Math Arrays
23.14 Exercise: Putting It All Together
Appendix B. Maple Quick Reference, Debugging Help
Appendix C. Java Quick Reference and Installing Software
C.2 Transferring Files from the CD
C.3 Using our Maple Worksheets
C.5 Installing PtPlot (or Other) Packages