ReviewsGordon (Ohio State Univ.) and Guilfoos (Ohio Supercomputer Center) provide a practical introduction to the techniques involved in developing computer models and simulating those models. The emphasis in the text is on engineering applications, but natural and social science applications are addressed as well. The presentation is purposely constrained to a depth of coverage suitable for a first undergraduate course in the subject, with useful pointers for students who wish to visit the subject more deeply. The authors do a good job of introducing two computing environments for developing models and simulating them: the MATLAB commercial product and the freely available Python programming language. By judicious choice of Python libraries, the presentation of the two environments are virtually identical, leaving the choice of environment up to the instructor (or student). Readers using Python will need to correct minor errors in the text regarding how to set up the recommended Anaconda environment. Or, they might profitably choose simply to use the standard command line and code editor interface for that language. --C. Vickery, Queens College of CUNY (CHOICE)
IllustratedYes
Table Of ContentINTRODUCTION TO COMPUTATIONAL MODELING The Importance of Computational Science How Modeling Has Contributed to Advances in Science and Engineering The Modeling Process Exercises References INTRODUCTION TO PROGRAMMING ENVIRONMENTS The MATLAB Programming Environment The Python Environment DETERMINISTIC LINEAR MODELS Selecting a Mathematical Representation for a Model Linear Models and Linear Equations Linear Interpolation Systems of Linear Equations Limitations of Linear Models Exercises References ARRAY MATHEMATICS IN MATLAB AND PYTHON Introduction to Arrays and Matrices Brief Overview of Matrix Mathematics Matrix Operations in MATLAB Matrix Operations in Python Exercises PLOTTING Plotting in MATLAB Plotting in Python Exercises PROBLEM SOLVING Overview Bottle Filling Example Tools for Program Development Bottle Filling Example continued Exercises CONDITIONAL STATEMENTS Relational Operators Logical Operators Conditional Statements Exercises ITERATION AND LOOPS For Loops While Loops Control Statements Exercises NON-LINEAR AND DYNAMIC MODELS Modeling Complex Systems Systems Dynamics Modeling Physical and Social Phenomena References ESTIMATING MODELS FROM EMPIRICAL DATA Using Data to Build Forecasting Models Fitting a Mathematical Function to Data Exercises References STOCHASTIC MODELS Introduction Creating a Stochastic Model Random Number Generators in MATLAB and Python A Simple Code Example Examples of Larger Scale Stochastic Models Exercises References FUNCTIONS MATLAB Functions Python Functions Exercises VERIFICATION, VALIDATION, AND ERRORS Introduction Errors Verification and Validation Exercises References CAPSTONE PROJECTS Introduction Project Goals Project Descriptions
SynopsisIntroduction to Modeling and Simulation with MATLAB and Python is intended for students and professionals in science, social science, and engineering that wish to learn the principles of computer modeling, as well as basic programming skills. The book content focuses on meeting a set of basic modeling and simulation competencies that were developed as part of several National Science Foundation grants. Even though computer science students are much more expert programmers, they are not often given the opportunity to see how those skills are being applied to solve complex science and engineering problems and may also not be aware of the libraries used by scientists to create those models. The book interleaves chapters on modeling concepts and related exercises with programming concepts and exercises. The authors start with an introduction to modeling and its importance to current practices in the sciences and engineering. They introduce each of the programming environments and the syntax used to represent variables and compute mathematical equations and functions. As students gain more programming expertise, the authors return to modeling concepts, providing starting code for a variety of exercises where students add additional code to solve the problem and provide an analysis of the outcomes. In this way, the book builds both modeling and programming expertise with a "just-in-time" approach so that by the end of the book, students can take on relatively simple modeling example on their own. Each chapter is supplemented with references to additional reading, tutorials, and exercises that guide students to additional help and allows them to practice both their programming and analytical modeling skills. In addition, each of the programming related chapters is divided into two parts - one for MATLAB and one for Python. In these chapters, the authors also refer to additional online tutorials that students can use if they are having difficulty with any of the topics. The book culminates with a set of final project exercise suggestions that incorporate both the modeling and programming skills provided in the rest of the volume. Those projects could be undertaken by individuals or small groups of students. The companion website at http://www.intromodeling.com provides updates to instructions when there are substantial changes in software versions, as well as electronic copies of exercises and the related code. The website also offers a space where people can suggest additional projects they are willing to share as well as comments on the existing projects and exercises throughout the book. Solutions and lecture notes will also be available for qualifying instructors., Introduction to Modeling and Simulation with MATLAB and Python is intended for students and professionals in science, social science, and engineering that wish to learn the principles of computer modeling, as well as basic programming skills. The book content focuses on meeting a set of basic modeling and simulation competencies that were developed as part of several National Science Foundation grants. Even though computer science students are much more expert programmers, they are not often given the opportunity to see how those skills are being applied to solve complex science and engineering problems and may also not be aware of the libraries used by scientists to create those models. The book interleaves chapters on modeling concepts and related exercises with programming concepts and exercises. The authors start with an introduction to modeling and its importance to current practices in the sciences and engineering. They introduce each of the programming environments and the syntax used to represent variables and compute mathematical equations and functions. As students gain more programming expertise, the authors return to modeling concepts, providing starting code for a variety of exercises where students add additional code to solve the problem and provide an analysis of the outcomes. In this way, the book builds both modeling and programming expertise with a "just-in-time" approach so that by the end of the book, students can take on relatively simple modeling example on their own. Each chapter is supplemented with references to additional reading, tutorials, and exercises that guide students to additional help and allows them to practice both their programming and analytical modeling skills. In addition, each of the programming related chapters is divided into two parts - one for MATLAB and one for Python. In these chapters, the authors also refer to additional online tutorials that students can use if they are having difficulty with any of the topics. The book culminates with a set of final project exercise suggestions that incorporate both the modeling and programming skills provided in the rest of the volume. Those projects could be undertaken by individuals or small groups of students. The companion website at http: //www.intromodeling.com provides updates to instructions when there are substantial changes in software versions, as well as electronic copies of exercises and the related code. The website also offers a space where people can suggest additional projects they are willing to share as well as comments on the existing projects and exercises throughout the book. Solutions and lecture notes will also be available for qualifying instructors.