We use cookies to distinguish you from other users and to provide you with a better experience on our websites. Close this message to accept cookies or find out how to manage your cookie settings.
To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure [email protected]
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Can you trust results from modeling and simulation? This text provides a framework for assessing the reliability of and uncertainty included in the results used by decision makers and policy makers in industry and government. The emphasis is on models described by PDEs and their numerical solution. Procedures and results from all aspects of verification and validation are integrated with modern methods in uncertainty quantification and stochastic simulation. Methods for combining numerical approximation errors, uncertainty in model input parameters, and model form uncertainty are presented in order to estimate the uncertain response of a system in the presence of stochastic inputs and lack of knowledge uncertainty. This new edition has been extensively updated, including a fresh look at model accuracy assessment and the responsibilities of management for modeling and simulation activities. Extra homework problems and worked examples have been added to each chapter, suitable for course use or self-study.
In modern computer science, there exists no truly sequential computing system; and most advanced programming is parallel programming. This is particularly evident in modern application domains like scientific computation, data science, machine intelligence, etc. This lucid introductory textbook will be invaluable to students of computer science and technology, acting as a self-contained primer to parallel programming. It takes the reader from introduction to expertise, addressing a broad gamut of issues. It covers different parallel programming styles, describes parallel architecture, includes parallel programming frameworks and techniques, presents algorithmic and analysis techniques and discusses parallel design and performance issues. With its broad coverage, the book can be useful in a wide range of courses; and can also prove useful as a ready reckoner for professionals in the field.
CUDA is now the dominant language used for programming GPUs, one of the most exciting hardware developments of recent decades. With CUDA, you can use a desktop PC for work that would have previously required a large cluster of PCs or access to a HPC facility. As a result, CUDA is increasingly important in scientific and technical computing across the whole STEM community, from medical physics and financial modelling to big data applications and beyond. This unique book on CUDA draws on the author's passion for and long experience of developing and using computers to acquire and analyse scientific data. The result is an innovative text featuring a much richer set of examples than found in any other comparable book on GPU computing. Much attention has been paid to the C++ coding style, which is compact, elegant and efficient. A code base of examples and supporting material is available online, which readers can build on for their own projects.
The unique feature of this compact student's introduction to Mathematica® and the Wolfram Language™ is that the order of the material closely follows a standard mathematics curriculum. As a result, it provides a brief introduction to those aspects of the Mathematica® software program most useful to students. Used as a supplementary text, it will help bridge the gap between Mathematica® and the mathematics in the course, and will serve as an excellent tutorial for former students. There have been significant changes to Mathematica® since the second edition, and all chapters have now been updated to account for new features in the software, including natural language queries and the vast stores of real-world data that are now integrated through the cloud. This third edition also includes many new exercises and a chapter on 3D printing that showcases the new computational geometry capabilities that will equip readers to print in 3D.
Maple is a powerful symbolic computation system that is widely used in universities around the world. This short introduction gives readers an insight into the rules that control how the system works, and how to understand, fix, and avoid common problems. Topics covered include algebra, calculus, linear algebra, graphics, programming, and procedures. Each chapter contains numerous illustrative examples, using mathematics that does not extend beyond first-year undergraduate material. Maple worksheets containing these examples are available for download from the author's personal website. The book is suitable for new users, but where advanced topics are central to understanding Maple they are tackled head-on. Many concepts which are absent from introductory books and manuals are described in detail. With this book, students, teachers and researchers will gain a solid understanding of Maple and how to use it to solve complex mathematical problems in a simple and efficient way.
Essentials of Programming in Mathematica® provides an introduction suitable for readers with little or no background in the language as well as for those with some experience using programs such as C, Java, or Perl. The author, an established authority on Mathematica® programming, has written an example-driven text that covers the language from first principles, as well as including material from natural language processing, bioinformatics, graphs and networks, signal analysis, geometry, computer science, and many other applied areas. The book is appropriate for self-study or as a text for a course in programming in computational science. Readers will benefit from the author's tips, which provide insight and suggestions on small and large points. He also provides more than 350 exercises from novice through to advanced level with all of the solutions available online.
The Seismic Analysis Code (SAC) is one of the most widely used analysis packages for regional and teleseismic seismic data. For the first time, this book provides users at introductory and advanced levels with a complete guide to SAC. It leads new users of SAC through the steps of learning basic commands, describes the SAC processing philosophy, and presents its macro language in full, supported throughout with example inputs and outputs from SAC. For more experienced practitioners, the book describes SAC's many hidden features, including advanced graphics aspects, its file structure, how to write independent programs to access and create files, and much more. Tutorial exercises engage users with newly acquired skills, providing data and code to implement the standard methods of teleseismic shear-wave splitting and receiver function analysis. Methodical and authoritative, this is a key resource for researchers and graduate students in global seismology, earthquake seismology and geophysics.
Numerical algorithms, modern programming techniques, and parallel computing are often taught serially across different courses and different textbooks. The need to integrate concepts and tools usually comes only in employment or in research - after the courses are concluded - forcing the student to synthesise what is perceived to be three independent subfields into one. This book provides a seamless approach to stimulate the student simultaneously through the eyes of multiple disciplines, leading to enhanced understanding of scientific computing as a whole. The book includes both basic as well as advanced topics and places equal emphasis on the discretization of partial differential equations and on solvers. Some of the advanced topics include wavelets, high-order methods, non-symmetric systems, and parallelization of sparse systems. The material covered is suited to students from engineering, computer science, physics and mathematics.
Fundamental arithmetic operations support virtually all of the engineering, scientific, and financial computations required for practical applications, from cryptography, to financial planning, to rocket science. This comprehensive reference provides researchers with the thorough understanding of number representations that is a necessary foundation for designing efficient arithmetic algorithms. Using the elementary foundations of radix number systems as a basis for arithmetic, the authors develop and compare alternative algorithms for the fundamental operations of addition, multiplication, division, and square root with precisely defined roundings. Various finite precision number systems are investigated, with the focus on comparative analysis of practically efficient algorithms for closed arithmetic operations over these systems. Each chapter begins with an introduction to its contents and ends with bibliographic notes and an extensive bibliography. The book may also be used for graduate teaching: problems and exercises are scattered throughout the text and a solutions manual is available for instructors.
Advances in scientific computing have made modelling and simulation an important part of the decision-making process in engineering, science, and public policy. This book provides a comprehensive and systematic development of the basic concepts, principles, and procedures for verification and validation of models and simulations. The emphasis is placed on models that are described by partial differential and integral equations and the simulations that result from their numerical solution. The methods described can be applied to a wide range of technical fields, from the physical sciences, engineering and technology and industry, through to environmental regulations and safety, product and plant safety, financial investing, and governmental regulations. This book will be genuinely welcomed by researchers, practitioners, and decision makers in a broad range of fields, who seek to improve the credibility and reliability of simulation results. It will also be appropriate either for university courses or for independent study.
Starting from first principles, this book covers all of the foundational material needed to develop a clear understanding of the Mathematica language, with a practical emphasis on solving problems. Concrete examples throughout the text demonstrate how Mathematica can be used to solve problems in science, engineering, economics/finance, computational linguistics, geoscience, bioinformatics, and a range of other fields. The book will appeal to students, researchers and programmers wishing to further their understanding of Mathematica. Designed to suit users of any ability, it assumes no formal knowledge of programming so it is ideal for self-study. Over 290 exercises are provided to challenge the reader's understanding of the material covered and these provide ample opportunity to practice using the language. Mathematica notebooks containing examples, programs and solutions to exercises are available from www.cambridge.org/wellin.
The Foundations of Computational Mathematics meetings are a platform for cross-fertilisation between numerical analysis, mathematics and computer science. This volume is a collection of articles based on plenary presentations, given at the 2011 meeting, by some of the world's foremost authorities in computational mathematics. The topics covered reflect the breadth of research within the area as well as the richness of interactions between seemingly unrelated branches of pure and applied mathematics. As a result this volume will be of interest to researchers in the field of computational mathematics and also to non-experts who wish to gain some insight into the state of the art in this active and significant field.
The world is awash with digital data from social networks, blogs, business, science and engineering. Data-intensive computing facilitates understanding of complex problems that must process massive amounts of data. Through the development of new classes of software, algorithms and hardware, data-intensive applications can provide timely and meaningful analytical results in response to exponentially growing data complexity and associated analysis requirements. This emerging area brings many challenges that are different from traditional high-performance computing. This reference for computing professionals and researchers describes the dimensions of the field, the key challenges, the state of the art and the characteristics of likely approaches that future data-intensive problems will require. Chapters cover general principles and methods for designing such systems and for managing and analyzing the big data sets of today that live in the cloud and describe example applications in bioinformatics and cybersecurity that illustrate these principles in practice.
From its earliest days, the Fortran programming language has been designed with computing efficiency in mind. The latest standard, Fortran 2008, incorporates a host of modern features, including object-orientation, array operations, user-defined types, and provisions for parallel computing. This tutorial guide shows Fortran programmers how to apply these features in twenty-first-century style: modular, concise, object-oriented, and resource-efficient, using multiple processors. It offers practical real-world examples of interfacing to C, memory management, graphics and GUIs, and parallel computing using MPI, OpenMP, and coarrays. The author also analyzes several numerical algorithms and their implementations and illustrates the use of several open source libraries. Full source code for the examples is available on the book's website.
Numerical Methods in Engineering with Python is a text for engineering students and a reference for practicing engineers, especially those who wish to explore the power and efficiency of Python. Examples and applications were chosen for their relevance to real world problems, and where numerical solutions are most efficient. Numerical methods are discussed thoroughly and illustrated with problems involving both hand computation and programming. Computer code accompanies each method and is available on the book web site. This code is made simple and easy to understand by avoiding complex bookkeeping schemes, while maintaining the essential features of the method. Python was chosen as the example language because it is elegant, easy to learn and debug, and its facilities for handling arrays are unsurpassed. Moreover, it is an open-source software package; free and available to all students and engineers. Explore numerical methods with Python, a great language for teaching scientific computation.
The interaction between computer and mathematics is becoming more and more important at all levels as computers become more sophisticated. This book shows how simple programs can be used to do significant mathematics. The purpose of this book is to give those with some mathematical background a wealth of material with which to appreciate both the power of the microcomputer and its relevance to the study of mathematics. The authors cover topics such as number theory, approximate solutions, differential equations and iterative processes, with each chapter self-contained. Many exercises and projects are included giving ready made material for demonstrating mathematical ideas. Only a fundamental knowledge of mathematics is assumed and programming is restricted to 'basic BASIC' which will be understood by any microcomputer. The book may be used as a textbook for algorithmic mathematics at several levels, with all the topics covered appearing in any undergraduate mathematics course.
This book is a short, focused introduction to MATLAB, a comprehensive software system for mathematics and technical computing. It should be useful to both beginning and experienced users. It contains concise explanations of essential MATLAB commands, as well as easily understood instructions for using MATLAB's programming features, graphical capabilities, and desktop interface. It also includes an introduction to SIMULINK, a companion to MATLAB for system simulation. Written for MATLAB 6, this book can also be used with earlier (and later) versions of MATLAB. This book contains worked-out examples of applications of MATLAB to interesting problems in mathematics, engineering, economics, and physics. In addition, it contains explicit instructions for using MATLAB's Microsoft Word interface to produce polished, integrated, interactive documents for reports, presentations, or on-line publishing. This book explains everything you need to know to begin using MATLAB to do all these things and more. Intermediate and advanced users will find useful information here, especially if they are making the switch to MATLAB 6 from an earlier version.
Computing developed as a branch of mathematics, only to drift away from this home as computer science diverged towards more general topics such as the theory of how a computer works. Recently the emphasis has become more mathematical and the new disciplines of software engineering and information technology have emerged. This book is designed to form the basis of a one year course in discrete mathematics for first year computer scientists or software engineers. The material presented covers much of undergraduate algebra with a particular bias towards the computing applications. Topics covered include mathematical logic, set theory, finite and infinite relations and mappings, graphs, graphical algorithms and axiom systems. It concludes with implementations of many of the algorithms in Modula-2 to illustrate how the mathematics may be turned into concrete calculations. Numerous examples and exercises are included with selected solutions to the problems appearing in the appendix. Discrete mathematics is the basic language which every student of computing should take pride in mastering and this book should prove an essential tool in this aim.
The unique feature of this compact student's introduction is that it presents concepts in an order that closely follows a standard mathematics curriculum, rather than structure the book along features of the software. As a result, the book provides a brief introduction to those aspects of the Mathematica software program most useful to students. The second edition of this well loved book is completely rewritten for Mathematica 6 including coverage of the new dynamic interface elements, several hundred exercises and a new chapter on programming. This book can be used in a variety of courses, from precalculus to linear algebra. Used as a supplementary text it will aid in bridging the gap between the mathematics in the course and Mathematica. In addition to its course use, this book will serve as an excellent tutorial for those wishing to learn Mathematica and brush up on their mathematics at the same time.
Numerical Mathematics is a unique textbook which presents rudimentary numerical mathematics in conjunction with computational laboratory assignments. No previous knowledge of calculus or linear algebra is presupposed, and thus the book is tailor-made for undergraduate students, as well as prospective mathematics teachers. The material in the book emphasises algorithmic aspects of mathematics, which are made viable through numerical assignments, in which the traditional 'chalk-and-talk' lecturer turns, in part, into a laboratory instructor. The book is not a numerical methods book, containing ready-made computational recipes. Rather, it guides the student to create the algorithm required for any given assignment - expressed in whichever programming language is used - on the basis of the underlying mathematics. The computational assignments cover iterative processes, area approximations, solution of linear systems, acceleration of series summation, interpolative approximations, and construction of computer-library functions. Throughout the book, strong emphasis is being put upon vital concepts such as error bounds, precision control, numerical efficiency, computational complexity, as well as round off errors and numerical stability. It is the authors' belief that the material presented in this book is part and parcel of the mathematical foundations that should be acquired by a student in the microcomputer era.