|
![]() |
|||
|
||||
OverviewIntroduction 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. Full Product DetailsAuthor: Steven I. Gordon (Ohio State University, Columbus, USA) , Brian Guilfoos (Ohio Supercomputer Center, Columbus, USA)Publisher: Taylor & Francis Inc Imprint: Chapman & Hall/CRC Weight: 0.430kg ISBN: 9781498773874ISBN 10: 1498773877 Pages: 192 Publication Date: 17 July 2017 Audience: College/higher education , General/trade , Tertiary & Higher Education , General Format: Hardback Publisher's Status: Active Availability: In Print ![]() This item will be ordered in for you from one of our suppliers. Upon receipt, we will promptly dispatch it out to you. For in store availability, please contact us. Table of ContentsChapter 1 ◾ Introduction to Computational Modeling 1.1 THE IMPORTANCE OF COMPUTATIONAL SCIENCE 1.2 HOW MODELING HAS CONTRIBUTED TO ADVANCES IN SCIENCE AND ENGINEERING 1.2.1 Some Contemporary Examples 1.3 THE MODELING PROCESS 1.3.1 Steps in the Modeling Process 1.3.2 Mathematical Modeling Terminology and Approaches to Simulation 1.3.3 Modeling and Simulation Terminology 1.3.4 Example Applications of Modeling and Simulation EXERCISES REFERENCES Chapter 2 ◾ Introduction to Programming Environments 2.1 THE MATLAB® PROGRAMMING ENVIRONMENT 2.1.1 The MATLAB® Interface 2.1.2 Basic Syntax 2.1.2.1 Variables and Operators 2.1.2.2 Keywords 2.1.2.3 Lists and Arrays 2.1.3 Common Functions 2.1.4 Program Execution 2.1.5 Creating Repeatable Code 2.1.6 Debugging 2.2 THE PYTHON ENVIRONMENT 2.2.1 Recommendations and Installation 2.2.2 The Spyder Interface 2.2.3 Basic Syntax 2.2.3.1 Variables and Operators 2.2.3.2 Keywords 2.2.3.3 Lists and Arrays 2.2.4 Loading Libraries 2.2.5 Common Functions 2.2.6 Program Execution 2.2.7 Creating Repeatable Code 2.2.8 Debugging EXERCISES Chapter 3 ◾ Deterministic Linear Models 3.1 SELECTING A MATHEMATICAL REPRESENTATION FOR A MODEL 3.2 LINEAR MODELS AND LINEAR EQUATIONS 3.3 LINEAR INTERPOLATION 3.4 SYSTEMS OF LINEAR EQUATIONS 3.5 LIMITATIONS OF LINEAR MODELS EXERCISES REFERENCES Chapter 4 ◾ Array Mathematics in MATLAB® and Python 4.1 INTRODUCTION TO ARRAYS AND MATRICES 4.2 BRIEF OVERVIEW OF MATRIX MATHEMATICS 4.3 MATRIX OPERATIONS IN MATLAB® 4.4 MATRIX OPERATIONS IN PYTHON EXERCISES Chapter 5 ◾ Plotting 5.1 PLOTTING IN MATLAB® 5.2 PLOTTING IN PYTHON EXERCISES Chapter 6 ◾ Problem Solving 6.1 OVERVIEW 6.2 BOTTLE FILLING EXAMPLE 6.3 TOOLS FOR PROGRAM DEVELOPMENT 6.3.1 Pseudocode 6.3.2 Top–Down Design 6.3.3 Flowcharts 6.4 BOTTLE FILLING EXAMPLE CONTINUED EXERCISES Chapter 7 ◾ Conditional Statements 7.1 RELATIONAL OPERATORS 7.2 LOGICAL OPERATORS 7.3 CONDITIONAL STATEMENTS 7.3.1 MATLAB® 7.3.2 Python EXERCISES Chapter 8 ◾ Iteration and Loops 8.1 FOR LOOPS 8.1.1 MATLAB® Loops 8.1.2 Python Loops 8.2 WHILE LOOPS 8.2.1 MATLAB® While Loops 8.2.2 Python While Loops 8.3 CONTROL STATEMENTS 8.3.1 Continue 8.3.2 Break EXERCISES Chapter 9 ◾ Nonlinear and Dynamic Models 9.1 MODELING COMPLEX SYSTEMS 9.2 SYSTEMS DYNAMICS 9.2.1 Components of a System 9.2.2 Unconstrained Growth and Decay 9.2.2.1 Unconstrained Growth Exercises 9.2.3 Constrained Growth 9.2.3.1 Constrained Growth Exercise 9.3 MODELING PHYSICAL AND SOCIAL PHENOMENA 9.3.1 Simple Model of Tossed Ball 9.3.2 Extending the Model 9.3.2.1 Ball Toss Exercise REFERENCES Chapter 10 ◾ Estimating Models from Empirical Data 10.1 USING DATA TO BUILD FORECASTING MODELS 10.1.1 Limitations of Empirical Models 10.2 FITTING A MATHEMATICAL FUNCTION TO DATA 10.2.1 Fitting a Linear Model 10.2.2 Linear Models with Multiple Predictors 10.2.3 Nonlinear Model Estimation 10.2.3.1 Limitations with Linear Transformation 10.2.3.2 Nonlinear Fitting and Regression 10.2.3.3 Segmentation EXERCISES FURTHER READINGS REFERENCES Chapter 11 ◾ Stochastic Models 11.1 INTRODUCTION 11.2 CREATING A STOCHASTIC MODEL 11.3 RANDOM NUMBER GENERATORS IN MATLAB® AND PYTHON 11.4 A SIMPLE CODE EXAMPLE 11.5 EXAMPLES OF LARGER SCALE STOCHASTIC MODELS EXERCISES FURTHER READINGS REFERENCES Chapter 12 ◾ Functions 12.1 MATLAB® FUNCTIONS 12.2 PYTHON FUNCTIONS 12.2.1 Functions Syntax in Python 12.2.2 Python Modules EXERCISES Chapter 13 ◾ Verification, Validation, and Errors 13.1 INTRODUCTION 13.2 ERRORS 13.2.1 Absolute and Relative Error 13.2.2 Precision 13.2.3 Truncation and Rounding Error 13.2.4 Violating Numeric Associative and Distributive Properties 13.2.5 Algorithms and Errors 13.2.5.1 Euler’s Method 13.2.5.2 Runge–Kutta Method 13.2.6 ODE Modules in MATLAB® and Python 13.3 VERIFICATION AND VALIDATION 13.3.1 History and Definitions 13.3.2 Verification Guidelines 13.3.3 Validation Guidelines 13.3.3.1 Quantitative and Statistical Validation Measures 13.3.3.2 Graphical Methods EXERCISES REFERENCES Chapter 14 ◾ Capstone Projects 14.1 INTRODUCTION 14.2 PROJECT GOALS 14.3 PROJECT DESCRIPTIONS 14.3.1 Drug Dosage Model 14.3.2 Malaria Model 14.3.3 Population Dynamics Model 14.3.4 Skydiver Project 14.3.5 Sewage Project 14.3.6 Empirical Model of Heart Disease Risk Factors 14.3.7 Stochastic Model of Traffic 14.3.8 Other Project Options REFERENCEReviewsGordon (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) Gordon (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) Gordon (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) Gordon (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) Author InformationDr. Steven I Gordon is a Professor Emeritus at The Ohio State University in the City and Regional Planning and Environmental Science Programs. He also serves as the Senior Education Lead at the Ohio Supercomputer Center. In that and other roles at OSC, he has focused primarily on the integration of computational science into the curricula at higher education institutions in Ohio and throughout the U.S. He has worked with multiple institutions through a variety of grants from the National Science Foundation including the XSEDE and Blue Waters Projects. Dr. Gordon is also one of the founders and first chair of the Association of Computing Machinery SIGHPC Education Chapter and serves as a presentative of the SIGHPC on the ACM Education Council. He has published extensively on topics related to environmental planning and the applications of modeling and simulation in education and research. He earned a bachelor’s degree from the University of Buffalo in 1966 and a PhD from Columbia University in 1977. Brian Guilfoos serves as the HPC Client Services manager for the Ohio Supercomputer Center (OSC). Guilfoos leads the HPC Client Services Group, which provides training and user support to facilitate the use of computational science by the center's user communities. Guilfoos also works directly with OSC clients to help convert computer codes, develop batch scripting, compiling and code development so that these researchers can efficiently use the center's supercomputers and licensed software. Guilfoos developed and delivered training in MATLAB as a part of the U.S. Department of Defense High Performance Computing Modernization Program support. Prior to joining OSC, he was contracted by the Air Force Research Laboratory to focus on software development in support of unmanned aerial vehicle (UAV) interface research. He was a key technical member of a team that was awarded the 2004 Scientific and Technological Achievement Award by the AFRL Human Effectiveness Directorate. He earned a master's degree in public policy and administration in 2014 and a bachelor's degree in electrical engineering in 2000, both from The Ohio State University. Tab Content 6Author Website:Countries AvailableAll regions |