Shampine, Allen, Pruess - Fundamentals of Numerical Computing (523185)
Текст из файла
Home NextFUNDAMENTALS OFNUMERICAL COMPUTINGL. F. ShampineSouthern Methodist UniversityR. C. Allen, Jr.Sandia National LaboratoriesS. PruessColorado School of MinesJOHN WILEY & SONS, INC.New York Chichester Brisbane Toronto SingaporeAcquisitions EditorEditorial AssistantMarketing ManagerSenior Production ManagerSenior Production EditorManufacturing ManagerCover DesignerBarbara HollandCindy RhoadsCathy FaduskaLucille BuonocoreNancy PrinzMurk CirilloSteve JenkinsThis book was set in Times Roman, and was printed and bound by R.R. Donnelley &Sons Company, Crawfordsville. The cover was printed by The Lehigh Press, Inc.Recognizing the importance of preserving what has been written, it is apolicy of John Wiley & Sons, Inc.
to have books of enduring value publishedin the United States printed on acid-free paper, and we exert our bestefforts to that end.The paper in this book was manufactured by a mill whose forest management programsinclude sustained yield harvesting of its timberlands. Sustained yield harvestingprinciples ensure that the number of trees cut each year does not exceed the amount ofnew growth.Copyright © 1997, by John Wiley & Sons, Inc.All rights reserved. Published simultaneously in Canada.Reproduction or translation of any part ofthis work beyond that permitted by Sections107 and 108 of the 1976 United States CopyrightAct without the permission of the copyrightowner is unlawful. Requests for permissionor further information should be addressed tothe Permissions Department, John Wiley & Sons, Inc.Library of Congress Cataloging-in-Publication Data:Shampine, LawrenceFundamentals of numerical computing / Richard Allen, StevePruess, Lawrence Shampine.p.
cm.Includes bibliographical reference and index.ISBN 0-471-16363-5 (cloth : alk. paper)1. Numerical analysis-Data processing. I. Pruess, Steven.II. Shampine, Lawrence F. III. Title.QA297.A52 1997519.4’0285’51—dc20Printed in the United States of America10 9 8 7 6 5 4 3 2 196-22074CIPPRELIMINARIESThe purpose of this book is to develop the understanding of basic numerical methods and their implementations as software that are necessary for solving fundamentalmathematical problems by numerical means. It is designed for the person who wantsto do numerical computing. Through the examples and exercises, the reader studies thebehavior of solutions of the mathematical problem along with an algorithm for solving the problem.
Experience and understanding of the algorithm are gained throughhand computation and practice solving problems with a computer implementation. Itis essential that the reader understand how the codes provided work, precisely whatthey do, and what their limitations are. The codes provided are powerful, yet simpleenough for pedagogical use. The reader is exposed to the art of numerical computingas well as the science.The book is intended for a one-semester course, requiring only calculus and amodest acquaintance with FORTRAN, C, C++, or MATLAB. These constraints ofbackground and time have important implications: the book focuses on the problemsthat are most common in practice and accessible with the background assumed.
Byconcentrating on one effective algorithm for each basic task, it is possible to developthe fundamental theory in a brief, elementary way. There are ample exercises, andcodes are provided to reduce the time otherwise required for programming and debugging. The intended audience includes engineers, scientists, and anyone else interestedin scientific programming. The level is upper-division undergraduate to beginninggraduate and there is adequate material for a one semester to two quarter course.Numerical analysis blends mathematics, programming, and a considerable amountof art.
We provide programs with the book that illustrate this. They are more than mereimplementations in a particular language of the algorithms presented, but they are notproduction-grade software. To appreciate the subject fully, it will be necessary to studythe codes provided and gain experience solving problems first with these programs andthen with production-grade software.Many exercises are provided in varying degrees of difficulty. Some are designedto get the reader to think about the text material and to test understanding, while othersare purely computational in nature.
Problem sets may involve hand calculation, algebraic derivations, straightforward computer solution, or more sophisticated computingexercises.The algorithms that we study and implement in the book are designed to avoidsevere roundoff errors (arising from the finite number of digits available on computersand calculators), estimate truncation errors (arising from mathematical approximations), and give some indication of the sensitivity of the problem to errors in the data.In Chapter 1 we give some basic definitions of errors arising in computations andstudy roundoff errors through some simple but illuminating computations.
Chapter 2deals with one of the most frequently occurring problems in scientific computation,the solution of linear systems of equations. In Chapter 3 we deal with the problem ofVviPRELIMINARIESinterpolation, one of the most fundamental and widely used tools in numerical computation. In Chapter 4 we study methods for finding solutions to nonlinear equations.Numerical integration is taken up in Chapter 5 and the numerical solution of ordinarydifferential equations is examined in Chapter 6. Each chapter contains a case studythat illustrates how to combine analysis with computation for the topic of that chapter.Before taking up the various mathematical problems and procedures for solvingthem numerically, we need to discuss briefly programming languages and acquisitionof software.PROGRAMMING LANGUAGESThe FORTRAN language was developed specifically for numerical computation andhas evolved continuously to adapt it better to the task.
Accordingly, of the widelyused programming languages, it is the most natural for the programs of this book. TheC language was developed later for rather different purposes, but it can be used fornumerical computation.At present FORTRAN 77 is very widely available and codes conforming to theANSI standard for the language are highly portable, meaning that they can be movedto another hardware/software configuration with very little change.
We have chosento provide codes in FORTRAN 77 mainly because the newer Fortran 90 is not in wideuse at this time. A Fortran 90 compiler will process correctly our FORTRAN 77programs (with at most trivial changes), but if we were to write the programs so asto exploit fully the new capabilities of the language, a number of the programs wouldbe structured in a fundamentally different way. The situation with C is similar, butin our experience programs written in C have not proven to be nearly as portable asprograms written in standard FORTRAN 77.
As with FORTRAN, the C language hasevolved into C++, and as with Fortran 90 compared to FORTRAN 77, exploiting fullythe additional capabilities of C++ (in particular, object oriented programming) wouldlead to programs that are completely different from those in C. We have opted for amiddle ground in our C++ implementations.In the last decade several computing environments have been developed. Popularones familiar to us are MATLAB [l] and Mathematica [2]. MATLAB is very much inkeeping with this book, for it is devoted to the solution of mathematical problems bynumerical means.
It integrates the formation of a mathematical model, its numericalsolution, and graphical display of results into a very convenient package. Many of thetasks we study are implemented as a single command in the MATLAB language. AsMATLAB has evolved, it has added symbolic capabilities. Mathematica is a similarenvironment, but it approaches mathematical problems from the other direction. Originally it was primarily devoted to solving mathematical problems by symbolic means,but as it has evolved, it has added significant numerical capabilities.
In the book werefer to the numerical methods implemented in these widely used packages, as wellas others, but we mention the packages here because they are programming languagesin their own right. It is quite possible to implement the algorithms of the text in theselanguages. Indeed, this is attractive because the environments deal gracefully with anumber of issues that are annoying in general computing using languages like FORTRAN or C.SOFTWAREviiAt present we provide programs written in FORTRAN 77, C, C++, and MATLABthat have a high degree of portability.
Quite possibly in the future the programs willbe made available in other environments (e.g., Fortran 90 or Mathematica.)SOFTWAREIn this section we describe how to obtain the source code for the programs that accompany the book and how to obtain production-grade software. It is assumed that thereader has available a browser for the World Wide Web, although some of the softwareis available by ftp or gopher.The programs that accompany this book are currently available by means of anonymous ftp (log in as anonymous or as ftp) atftp.wiley.comin subdirectories of public/college/math/sapcodes for the various languages discussedin the preceding section.The best single source of software is the Guide to Available Mathematical Software (GAMS) developed by the National Institute of Standards and Technology (NIST).It is an on-line cross-index of mathematical software and a virtual software repository.Much of the high-quality software is free.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.