具体描述
This book introduces the beginner to FORTRAN. To help the reader develop analysis skills while learning programming, engineering computations are incorporated with sound programming practices. Eight major Programming Assignments sections, each with a sample and solved model, illustrate the methods of preceding chapters, as well as introduce discussions concerning engineering orientation. This second edition successfully integrates numerous advanced topics in numerical methods as they relate to computational procedures in order to reinforce their application in other courses such as calculus and physics. Topics especially tailored to the beginning user include matrix equations, root of functions, curve-fitting, series expansions, integration and differentiation, and differential equations.
作者简介
Dr. Garold (Gary) Joseph Borse (1940-2019) was born in Detroit, Michigan, and graduated from St. Rita's High School in 1958. Gary received his B.S. in Physics and Mathematics in 1962. Gary attended the University of Virginia on a National Defense Scholarship and received his M.S. in Physics in 1964 and Ph.D. in Physics in 1966. Gary began his career at Lehigh University as an assistant professor of physics in 1966 and spent the summer of 1967 and 1968 as a visiting scientist in the Department of Physics at Case Western Reserve University. He was promoted to associate professor at Lehigh University in 1971 and to full professor in 1976. He served as associate chairman and chairman of the department during his long tenure. Gary was a lifelong learner and had a passion for teaching. He delivered guest lectures at his children's schools and various other organizations sharing his love of the sciences. Gary always sought out adventure and was nominated by the National Academy of Sciences to the Czechoslovak Academy of Sciences as an exchange scientist from 1972 to 1973. He spent much of that year at the ČSAV Nuclear Research Institute at Řež (near Prague). Gary was a member of the American Physical Society and a contributing editor to PWS Publishing Company. He started his research career in theoretical structure of the nuclei and later developed an expertise in the area of mathematical and computational physics. He expanded his interests into computer programming and wrote several texts books about FORTRAN 77 and MATLAB. Gary was a contributing author to at least 25 research articles.
目录信息
1. Computer Operations
1.1 Introduction
1.2 Operational Principles of Digital Computers
1.3 Communicating with the Computer
1.4 Computer Operating Systems: Getting Started on the Computer
1.5 Program ZERO
Summary
Problems
2. Fundamentals of FORTRAN
2.1 Introduction
2.2 Constants in FORTRAN
2.3 FORTRAN Variables
2.4 Arithmetic Expressions
2.5 More Complicated Arithmetic Expressions
2.6 Assignment Statement
2.7 Program ZERO
2.8 Translating Algebra into FORTRAN
2.9 Elementary Input and Output in FORTRAN Programs
Summary
Problems
3. Flow-Control Structures and Program Design
3.1 Introduction
3.2 Using Flowcharts and Pseudocode in Program Design
3.3 Decision Structures in FORTRAN
3.4 Loop Structures in FORTRAN
3.5 Good Programming Style
3.6 Additional Control Statements
Summary
Problems
A. Programming Assignment
A.1 Introduction
A.2 Sample Program
□ Civil Engineering: Pressure Drop in a Fluid Flowing through a Pipe
A.3 Programming Problems
□ Engineering Career Choices: Mechanical Engineering
□ A-A: Mechanical Engineering: Most Cost-Effective Steam Pipe Insulation
□ Engineering Career Choices: Civil Engineering
□ A-B: Civil Engineering: Oxygen Deficiency of a Polluted Stream
□ Engineering Career Choices: Industrial Engineering
□ A-C: Industrial Engineering: Cost Comparisons for Purchasing a Fleet of Cars
4. Elementary Programming Techniques
4.1 Introduction
4.2 Statement Function
4.3 Finding the Minimum and Maximum of a Set of Numbers
4.4 Performing a Summation
4.5 Bisection Technique for Finding Roots of Equation
4.6 Using Data Files and Data Statements
4.7 Using Direct-Access (DAM) Files
Summary
Problems
5. Subroutines and Functions
5.1 Introduction
5.2 Review of Statement Functions
5.3 Subroutine Subprograms
5.4 Function Subprograms
5.5 Sample Programs Using Functions and Subroutines
5.6 Constructing Modular Programs
5.7 Additional Features Available for Subprograms
Summary
Problems
B. Programming Assignment
B.1 Sample Program
□ Engineering Career Choices: Chemical Engineering
□ Sample Programming Problem: Separation of Two Liquids by Differential Distillation
B.2 Programming Problems
□ Engineering Career Choices: Materials Science and Metallurgical Engineering
□ B-A: Metallurgical Engineering: Carburization
□ Engineering Career Choices: Electrical Engineering
□ B-B: Electrical Engineering: Comparative Impedance of Two Transition Lines
□ B-C: Chemical Engineering/Chemistry: Coexistence of Liquids and Gases
6. Elementary Formatted Input-Output
6.1 Introduction
6.2 Formatted I/O Statements
6.3 FORMAT Statements
6.4 Using FORMAT Statements for Reading Data
6.5 Elementary Input and Output of Text
6.6 Additional Input/Output Features
Summary
Problems
7. Arrays and Subscripted Variables
7.1 Introduction
7.2 Array-Declaration Statements
7.3 Internal Storage of Arrays
7.4 Implied DO Loops
7.5 Arrays as Elements of an Argument List
7.6 Programming Techniques Using Arrays
Summary
Problems
C. Programming Assignment
C.1 Sample Problem
□ Industrial Engineering: Minimizing Repair Costs
C.2 Programming Problems
□ C-A: Chemical Engineering: Compressibility Factors for Real Gases
□ C-B: Minimum of a Multidimensional Array or Function
□ C-C: Mechanical Engineering: Cooling Fins on a Steam Pipe
□ C-D: Nim
8. Nonnumerical Applications: Character Variables
8.1 Introduction
8.2 Review of Character Variables
8.3 Character Substrings
8.4 Intrinsic Functions Used in Character Substring Operations
8.5 Character Expressions: Concatenation
8.6 Comparing Character Strings
Summary
Problems
9. Additional FORTRAN Features
9.1 Introduction
9.2 Additional Data Types Available in FORTRAN
9.3 Initializing Variables at Compilation Time
9.4 Order of FORTRAN Statements
9.5 DoWhile Structure in Extended FORTRAN
9.6 Additional FORTRAN Intrinsic Functions
9.7 Conclusion
Summary
Problems
D. Programming Assignment
D.1 Sample Program
□ Engineering Career Choices: Aeronautical/Aerospace Engineering
□ Sample Problem: Range of a Constant Thrust Rocket
D.2 Programming Problems
□ D-A: Chemical Engineering: Optimum Depth of a Fluidized-Bed Reactor
□ D-B: Electrical Engineering: A Double-Precision Root Solver
□ D-C: Electrical Engineering: Complex Numbers and AC Circuits
10. Taylor Series and Numerical Differentiation
10.1 Introduction
10.2 Taylor Series
10.3 Numerical Differentiation
10.4 Interpolation
Summary
Problems
11. Roots of Equations
11.1 Introduction
11.2 Refinement of the Bisection Method
11.3 Newton's Method for Root Solving
11.4 Rate of Convergence
11.5 Secant Method
11.6 Root-Solving Procedures for Polynomials
11.7 Comparison of Root-Solving Methods
Summary
Problems
E. Programming Assigngment
E.1 Sample Program
□ Mechanical Engineering: Cooling Curve for Transfer Ladle Cars
E.2 Programming Problems
□ E-A: Civil Engineering and Mechanics: Buckling of a Tall Mast
□ E-B: General Engineering: Functions Describing Diffusion
□ E-C: Chemistry/Chemical Engineering: Determining the Diffusion Constant
12. Linear Simultaneous Equations: Matrices
12.1 Introduction
12.2 Notation of Matrices
12.3 Determinants
12.4 Cramer's Rule
12.5 Gauss-Jordan Method of Solving Simultaneous Linear Equations
12.6 Matrix Inversion by the Gauss-Jordan Method
12.7 Relative Speed and Accuracy of the Various Matrix Algorithms
12.8 Iterative Techniques for Solving Simultaneous Equations
12.9 Miscellaneous FORTRAN Codes Relating to Matrices
Summary
Problems
F. Programming Assignment
F.1 Sample Program
□ Civil Engineering: Fluid Flow through a Plumbing Network
F.2 Programming Problems
□ F-A: Civil Engineering: Model of a Stress Calculation for a Bridge
□ F-B: Electrical Engineering: Currents in an Electrical Network
□ F-C: Calculating a Trajectory with Air Drag
13. Least Squares Curve Fitting
13.1 Introduction
13.2 Principles of Least Squares Analysis
13.3 Minimum or Maximum of a Function of Two Variables
13.4 Minimization of the Sum of the Squared Deviations
13.5 Least Squares Fit of a Polynomial
13.6 Validity of Fit
13.7 FORTRAN Code for a Polynomial Least Squares Curve Fit
13.8 Example of a Least Squares Polynomial Fit
13.9 Limitations of the Least Squares Procedures
13.10 Cubic Spline Fits
Summary
Problems
G. Programming Assignment
G.1 Sample Program
□ Chemistry/Chemical Engineering: Empirical Heat Capacities of Gases
G.2 Programming Problems
□ G-A: Aerodynamics: Free Fall in Air
□ G-B: Record Times for the Mile Run
14. Numerical Integration
14.1 Introduction
14.2 Trapezoidal Rule
14.3 Simpson's Rule Approximation for an Integral
14.4 Beyond Simpson's Rule
14.5 Romberg Integration
14.6 Gauss Quadrature
14.7 Improper Integrals
14.8 Double Integrals
14.9 Conclusion
Summary
Problems
H. Programming Assignment
H.1 Sample Program
□ Mechanical/Aeronautical Engineering: Shear Force on an Airplane Wing
H.2 Programming Problems
□ H-A: Nuclear Engineering: Shielding a Nuclear Reactor (Integration of Noisy Data)
□ H-B: Mechanical Engineering/Physics: Total Heat Radiation from a Hot Bar
□ H-C: Geology/Petroleum Engineering: Shape of the Earth, Curve Fitting with Legendre Polynomials
15. Numerical Solutions to Differential Equations
15.1 Introduction
15.2 Meaning of a Differential Equation
15.3 Computational Errors: A Question of Trade-Offs
15.4 Euler's Method
15.5 Improvements to Euler's Method
15.6 Method of Runge-Kutta
15.7 Predictor-Corrector Methods
15.8 Second-Order Differential Equations
15.9 Boundary-Value Problems
15.10 Conclusion
Summary
Problems
16. Error Analysis
16.1 Introduction
16.2 Review of Definitions Relating to Error Analysis
16.3 Types of Error
16.4 Round-Off Errors
16.5 Approximation Errors: Discretization and Truncation
16.6 Experimental Errors
16.7 Conclusion
Problems
Appendix: Summary of FORTRAN Statements and Grammar Rules
A.1 Procedure Statements
A.2 Specification Statements
A.3 Assignment and Program Control Statements
A.4 Flow-Control Statements
A.5 FORTRAN File-Directive Statements
A.6 Input/Output Statements
References
Answers and Solutions to Odd-Numbered Problems
Index
· · · · · · (收起)
读后感
用户评价
这本书给我的整体感觉是,作者在编撰过程中,充分考虑到了目标读者(工程师)在学习 FORTRAN 77 和数值方法时可能遇到的困难和挑战。在讲解 FORTRAN 77 的一些相对复杂的概念时,比如过程、文件I/O等,书中都提供了清晰易懂的解释,并且立即附上了能够体现这些概念在工程计算中应用的代码示例。我发现,作者在介绍数值方法时,非常注重算法的稳定性、精度和效率的权衡,并且会引导读者思考在不同的工程场景下,应该选择哪种算法更为合适。这种深入的分析和权衡,对于提升读者的工程计算思维至关重要。书中还包含了一些高级的数值技术,比如数值积分的复合法则,以及常微分方程的多种求解方法,这些内容对于处理更复杂的工程问题来说,是必不可少的。我特别期待能够掌握这些技术,并将其应用到我的工作中,以期获得更精确、更可靠的计算结果。这本书的逻辑结构非常流畅,从基础到进阶,层层递进,让我在学习过程中能够逐步建立起扎实的知识体系。
当我开始深入研读这本书的章节时,我逐渐发现作者在讲解 FORTRAN 77 语言特性的时候,始终紧密围绕着工程应用的实际需求。例如,在讲解数组和循环结构时,书中并不是简单地列举语法规则,而是立即展示了如何利用这些工具来高效地处理大量工程数据,比如求解大型矩阵的运算,或者模拟复杂的物理过程。我注意到,作者在引入新的数值算法时,往往会先从其在工程领域中的应用场景入手,让读者在有实际需求驱动的情况下,再去学习其背后的数学原理和 FORTRAN 77 的实现方式。这种“需求驱动,原理支撑”的学习路径,对于我来说,比那些枯燥地先讲理论再讲应用的教材更加吸引人。而且,书中对 FORTRAN 77 的一些特性,比如固有函数以及块数据等,进行了细致的讲解,并结合了实际的工程问题,让我看到了这些“老牌”语言特性在现代工程计算中依然有着不可替代的作用。我迫不及待地想尝试书中提供的那些示例代码,看看它们是如何在我的开发环境中运行,并帮助我解决实际工程中的计算难题。
这本书的封面设计,简洁而又不失专业感。深蓝色封面上,金色的书名“FORTRAN 77 and Numerical Methods for Engineers”显得格外醒目,字体设计一丝不苟,给人一种严谨、可靠的第一印象。封底则是一段简短却极具吸引力的内容介绍,勾勒出了这本书的核心价值:它不仅仅是一本关于FORTRAN 77编程语言的指南,更是将这一经典语言与工程领域常用的数值方法巧妙地结合起来。我特别欣赏这种将理论与实践紧密联系的编排方式,试想一下,能够直接用FORTRAN 77来解决实际的工程问题,那将是多么高效且富有成就感的事情!这本书的排版也相当用心,字体大小适中,段落清晰,重要的概念和代码示例都通过醒目的方式呈现,这对于需要长时间阅读和学习的读者来说,无疑大大减轻了视觉疲劳。我期待着能从中学习到如何构建健壮、高效的FORTRAN程序,并运用它们来解决那些困扰我许久的工程难题。书中的插图和图表,虽然在封面简介中并未详述,但我相信它们也会以清晰、直观的方式辅助理解抽象的数学概念和复杂的算法。总而言之,仅从这本书的外在呈现,我就已经感受到了它蕴含的深厚知识和作者的严谨态度。
阅读这本书的过程,给我最大的感受就是一种“知其然,更知其所以然”的学习体验。作者并非简单地罗列 FORTRAN 77 的语法,而是将它与一系列实用的工程数值方法深度融合。例如,在讲解如何用 FORTRAN 77 实现矩阵的LU分解时,书中不仅给出了完整的代码,还详细阐述了LU分解的原理、步骤以及其在求解线性方程组中的优势,并分析了不同规模矩阵的求解效率。这种深度的解析,让我对 FORTRAN 77 的编程技巧和数值方法的内在机理都有了更深刻的理解。我发现,书中对于各种数值方法的局限性和适用范围也进行了细致的讨论,这对于我进行工程计算时做出明智的选择非常有帮助。书中还涉及了一些关于数值稳定性和误差传播的讨论,这在我看来是高级工程计算中非常关键的一环。我非常欣赏作者在讲解过程中所体现出的严谨性和深度,这使得这本书不仅仅是一本技术手册,更是一本能够帮助读者提升工程计算能力的宝贵资源。
初次翻阅这本书,我立刻被其内容涵盖的广度和深度所折服。它并非仅仅停留在 FORTRAN 77 语言的基础语法层面,而是更进一步,深入剖析了许多在工程计算中不可或缺的数值方法。从误差分析、线性方程组的求解,到非线性方程的求根,再到曲线拟合与插值,以及最基本的微积分数值方法,这些内容都以一种非常系统且易于理解的方式呈现。我尤其感兴趣的是书中关于如何将这些数值方法用 FORTRAN 77 的语法实现的部分,这不仅能帮助我巩固 FORTRAN 77 的编程技巧,更能让我深刻理解这些算法背后的原理。作者在讲解过程中,似乎非常注重理论与实践的结合,通过大量的工程实例来阐释抽象的数学概念,这对于我这样的工程背景的读者来说,简直是福音。阅读过程中,我常常会停下来思考,书中提供的代码片段是否能直接应用于我目前正在进行的研究项目,并产生积极的反馈。这种实用性导向的写作风格,让我觉得这本书不仅仅是一本教材,更像是一位经验丰富的导师,一步步地引导我掌握解决工程问题的利器。