Introduction to the Tools of Scientific Computing


Book Description

The book provides an introduction to common programming tools and methods in numerical mathematics and scientific computing. Unlike widely used standard approaches, it does not focus on any particular language but aims to explain the key underlying concepts. In general, new concepts are first introduced in the particularly user-friendly Python language and then transferred and expanded in various scientific programming environments from C / C ++, Julia and MATLAB to Maple. This includes different approaches to distributed computing. The fact that different languages are studied and compared also makes the book useful for mathematicians and practitioners trying to decide which programming language to use for which purposes.




An Introduction to High-performance Scientific Computing


Book Description

Designed for undergraduates, An Introduction to High-Performance Scientific Computing assumes a basic knowledge of numerical computation and proficiency in Fortran or C programming and can be used in any science, computer science, applied mathematics, or engineering department or by practicing scientists and engineers, especially those associated with one of the national laboratories or supercomputer centers. This text evolved from a new curriculum in scientific computing that was developed to teach undergraduate science and engineering majors how to use high-performance computing systems (supercomputers) in scientific and engineering applications. Designed for undergraduates, An Introduction to High-Performance Scientific Computing assumes a basic knowledge of numerical computation and proficiency in Fortran or C programming and can be used in any science, computer science, applied mathematics, or engineering department or by practicing scientists and engineers, especially those associated with one of the national laboratories or supercomputer centers. The authors begin with a survey of scientific computing and then provide a review of background (numerical analysis, IEEE arithmetic, Unix, Fortran) and tools (elements of MATLAB, IDL, AVS). Next, full coverage is given to scientific visualization and to the architectures (scientific workstations and vector and parallel supercomputers) and performance evaluation needed to solve large-scale problems. The concluding section on applications includes three problems (molecular dynamics, advection, and computerized tomography) that illustrate the challenge of solving problems on a variety of computer architectures as well as the suitability of a particular architecture to solving a particular problem. Finally, since this can only be a hands-on course with extensive programming and experimentation with a variety of architectures and programming paradigms, the authors have provided a laboratory manual and supporting software via anonymous ftp. Scientific and Engineering Computation series




Introduction to Scientific and Technical Computing


Book Description

Created to help scientists and engineers write computer code, this practical book addresses the important tools and techniques that are necessary for scientific computing, but which are not yet commonplace in science and engineering curricula. This book contains chapters summarizing the most important topics that computational researchers need to know about. It leverages the viewpoints of passionate experts involved with scientific computing courses around the globe and aims to be a starting point for new computational scientists and a reference for the experienced. Each contributed chapter focuses on a specific tool or skill, providing the content needed to provide a working knowledge of the topic in about one day. While many individual books on specific computing topics exist, none is explicitly focused on getting technical professionals and students up and running immediately across a variety of computational areas.




Introduction to Scientific Programming with Python


Book Description

This open access book offers an initial introduction to programming for scientific and computational applications using the Python programming language. The presentation style is compact and example-based, making it suitable for students and researchers with little or no prior experience in programming. The book uses relevant examples from mathematics and the natural sciences to present programming as a practical toolbox that can quickly enable readers to write their own programs for data processing and mathematical modeling. These tools include file reading, plotting, simple text analysis, and using NumPy for numerical computations, which are fundamental building blocks of all programs in data science and computational science. At the same time, readers are introduced to the fundamental concepts of programming, including variables, functions, loops, classes, and object-oriented programming. Accordingly, the book provides a sound basis for further computer science and programming studies.




Introduction to Scientific Computing


Book Description

Unique in content and approach, this book covers all the topics that are usually covered in an introduction to scientific computing--but folds in graphics and matrix-vector manipulation in a way that gets readers to appreciate the "connection" between continuous mathematics and computing. "MATLAB 5" is used "throughout" to encourage experimentation, and each chapter focuses on a different important theorem--allowing readers to appreciate the rigorous side of scientific computing. In addition to standard topical coverage, each chapter includes 1) a sketch of a "hard" problem that involves ill-conditioning, high dimension, etc.; 2)at least one theorem with both a rigorous proof and a "proof by MATLAB" experiment to bolster intuition; 3)at least one recursive algorithm; and 4)at least one connection to a real-world application. The book revolves around examples that are packaged in 200+ M-files, which, collectively, communicate all the key mathematical ideas and an appreciation for the subtleties of numerical computing. Power Tools of the Trade. Polynomial Interpolation. Piecewise Polynomial Interpolation. Numerical Integration. Matrix Computations. Linear Systems. The QR and Cholesky Factorizations. Nonlinear Equations and Optimization. The Initial Value Problem. For engineers and mathematicians.




A Gentle Introduction to Scientific Computing


Book Description

Scientific Computation has established itself as a stand-alone area of knowledge at the borderline between computer science and applied mathematics. Nonetheless, its interdisciplinary character cannot be denied: its methodologies are increasingly used in a wide variety of branches of science and engineering. A Gentle Introduction to Scientific Computing intends to serve a very broad audience of college students across a variety of disciplines. It aims to expose its readers to some of the basic tools and techniques used in computational science, with a view to helping them understand what happens "behind the scenes" when simple tools such as solving equations, plotting and interpolation are used. To make the book as practical as possible, the authors explore their subject both from a theoretical, mathematical perspective and from an implementation-driven, programming perspective. Features Middle-ground approach between theory and implementation. Suitable reading for a broad range of students in STEM disciplines. Could be used as the primary text for a first course in scientific computing. Introduces mathematics majors, without any prior computer science exposure, to numerical methods. All mathematical knowledge needed beyond Calculus (together with the most widely used Calculus notation and concepts) is introduced in the text to make it self-contained.




Scientific Computing


Book Description

This book differs from traditional numerical analysis texts in that it focuses on the motivation and ideas behind the algorithms presented rather than on detailed analyses of them. It presents a broad overview of methods and software for solving mathematical problems arising in computational modeling and data analysis, including proper problem formulation, selection of effective solution algorithms, and interpretation of results.? In the 20 years since its original publication, the modern, fundamental perspective of this book has aged well, and it continues to be used in the classroom. This Classics edition has been updated to include pointers to Python software and the Chebfun package, expansions on barycentric formulation for Lagrange polynomial interpretation and stochastic methods, and the availability of about 100 interactive educational modules that dynamically illustrate the concepts and algorithms in the book. Scientific Computing: An Introductory Survey, Second Edition is intended as both a textbook and a reference for computationally oriented disciplines that need to solve mathematical problems.




Introduction to the Tools of Scientific Computing


Book Description

The book provides an introduction to common programming tools and methods in numerical mathematics and scientific computing. Unlike standard approaches, it does not focus on any specific language, but aims to explain the underlying ideas. Typically, new concepts are first introduced in the particularly user-friendly Python language and then transferred and extended in various programming environments from C/C++, Julia and MATLAB to Maple and Mathematica. This includes various approaches to distributed computing. By examining and comparing different languages, the book is also helpful for mathematicians and practitioners in deciding which programming language to use for which purposes. At a more advanced level, special tools for the automated solution of partial differential equations using the finite element method are discussed. On a more experimental level, the basic methods of scientific machine learning in artificial neural networks are explained and illustrated.




Introduction to Computational Science


Book Description

The essential introduction to computational science—now fully updated and expanded Computational science is an exciting new field at the intersection of the sciences, computer science, and mathematics because much scientific investigation now involves computing as well as theory and experiment. This textbook provides students with a versatile and accessible introduction to the subject. It assumes only a background in high school algebra, enables instructors to follow tailored pathways through the material, and is the only textbook of its kind designed specifically for an introductory course in the computational science and engineering curriculum. While the text itself is generic, an accompanying website offers tutorials and files in a variety of software packages. This fully updated and expanded edition features two new chapters on agent-based simulations and modeling with matrices, ten new project modules, and an additional module on diffusion. Besides increased treatment of high-performance computing and its applications, the book also includes additional quick review questions with answers, exercises, and individual and team projects. The only introductory textbook of its kind—now fully updated and expanded Features two new chapters on agent-based simulations and modeling with matrices Increased coverage of high-performance computing and its applications Includes additional modules, review questions, exercises, and projects An online instructor's manual with exercise answers, selected project solutions, and a test bank and solutions (available only to professors) An online illustration package is available to professors




Elements of Scientific Computing


Book Description

Science used to be experiments and theory, now it is experiments, theory and computations. The computational approach to understanding nature and technology is currently flowering in many fields such as physics, geophysics, astrophysics, chemistry, biology, and most engineering disciplines. This book is a gentle introduction to such computational methods where the techniques are explained through examples. It is our goal to teach principles and ideas that carry over from field to field. You will learn basic methods and how to implement them. In order to gain the most from this text, you will need prior knowledge of calculus, basic linear algebra and elementary programming.