科学工程C源程序范例解
原始文件:科学工程C源程序范例解.pdf 页数:230页(扫描版PDF) 出版社:清华大学出版社(推测,基于OCR内容) 主题:数值分析与科学工程C编程
核心概述
本书是一本面向科学家和工程师的数值分析C语言编程指南,重点讲解如何将数值计算方法实现为可复用的C程序库。书中提供了大量源代码示例,帮助读者理解和应用数值分析算法。
章节结构
第一部分:数值分析基础
-
第1章 数值分析概述
- §1.1 本章目的:讨论有限精度计算、误差分析、稳定性(robustness)和复杂度分析
- §1.2 介绍:计算机解决问题能力的局限性,精度限制和算法不完美的现实
- §1.3 有限精度计算:浮点数表示、双精度(double)类型、有效数字规则
- §1.4 误差分析:前馈(forward)和后馈(backware)方法
- §1.5 稳健性(Robustness):获得好解答的可能性,“防弹”程序
- §1.6 复杂性分析:算法效率评估,汉谱曼(von Neumann)结构机制
-
第2章 科学和工程C语言
- §2.1 如何使用这本书:源代码作为最佳算法描述
- §2.2 为什么要使用C:可移植性、系统接口、递归支持
- §2.3 用C处理数字:复数计算、预处理器应用
- §2.4 转换FORTRAN程序为C程序:数组索引、存储顺序差异
- §2.5 Debug C程序的8点提示:数组下标、指针传递、scanf不可靠等
核心概念
数值分析基础
-
有限精度计算
- 计算机使用浮点数表示,而非”理想”分析
- C语言double类型占用64位,精度约10
- 有效数字规则:加法和减法可能损失精度
-
误差类型
- 舍入(roundoff)误差:计算结果的四舍五入
- 截断(truncation)误差:无限过程截断为有限步骤
-
稳健性(Robustness)
- 获得好解答的可能性(或确定无解)
- “防弹”程序:检查参数有效性
- 对误差反应迟钝的方法(如支点pivoting)
C语言编程要点
-
与FORTRAN的差异
- C数组从0开始,FORTRAN从1开始
- C按行存储,FORTRAN按列存储
- C函数参数按值传递,需指针才能修改
-
常见陷阱
- 数组越界(array[10]是非法的)
- 函数参数不被调用子程序改变
- getc()/getchar()返回整型而非字符
- 局部变量在两次调用间丢失值
-
可移植性
- C是移植性最好的语言之一
- 编译器特性差异需考虑(如while(0) vs while(1-1))
- 标准库函数行为可能不同
应用案例
- 统计计算函数(第三章)
- 微分方程系统求解(第十一章、第十二章)
- 复数计算(预处理器实现)
- FORTRAN到C的代码转换
学习建议
- 初学者:先掌握数值分析基础概念(第1章)
- 有C基础者:重点学习调试技巧(§2.5)
- FORTRAN程序员:仔细阅读§2.4的转换要点
- 实践建议:直接阅读并运行书中源代码
笔记提取自前10页OCR内容,完整书籍共230页,包含大量C语言数值计算源代码。