《C数值算法 第2版》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:(美)WilliamH.PressSaulA.TeukolskyWilliamT.Vetterlong等著;傅祖芸,赵梅娜,丁岩石等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2004
  • ISBN:750538709X
  • 页数:738 页
图书介绍:本书编写了300多种实用而有效的数值算法C语言程序。其内容包括:线性方程组的求解;逆矩阵、行列式计算;多项式和有理函数的内插与外推;函数的积分和估值;特殊函数的数值计算;随机数的产生;非线性方程求解;傅里叶变换和FFT;谱分析和小波变化;统计检验和数据的拟合;常微分方程和偏微分方程求解;线性预测和线性预测编码;数字滤波;格雷码和算术码等。全书内容丰富,层次分明,叙述清晰,是一本不可多得的有关数值计算的C语言程序大全。本书每章中都论述了有关专题的数学分析、算法的讨论与比较,以及算法实施的技巧,并给出了标准C语言实用程序。这些程序可在不同计算机的C语言编程环境下运行。

目 录 1

第1章绪论 1

1.0引言 1

1.0.1计算环境和程序有效性 2

1.0.2和本书第一版的兼容性 2

1.0.3关于参考文献 3

1.1程序组织和控制结构 3

1.1.1控制结构 5

1.1.2标准结构目录 7

1.1.3关于“深入讨论” 10

1.2科学计算的C约定 11

1.2.1函数原型和头文件 12

1.2.2向量和一维数组 13

1.2.3矩阵和二维数组 14

1.2.4复数运算 16

1.2.5浮点数到双精度数的隐式转换 17

1.2.6一些技巧 17

1.3误差、准确性和稳定性 19

第2章线性代数方程组求解 22

2.0引言 22

2.0.1非奇异与奇异方程组 22

2.0.2矩阵 22

2.0.3线性代数数值计算的任务 23

2.0.4标准程序包 24

2.1 Gauss-Jordan消去法 24

2.1.1列增广矩阵消去法 25

2.1.2选主元法 26

2.1.3深入讨论:行和列消去法策略 27

2.2代过程的高斯消去法 28

2.2.1回代过程 28

2.3 LU分解法及其应用 29

2.3.1进行LU分解 30

2.3.2矩阵的求逆 33

2.3.3矩阵的行列式 34

2.3.4深入讨论:复数系统方程 34

2.4三对角及带状对角系统方程 35

2.4.1深入讨论:带状对角系统 36

2.5线性方程组解的迭代改进 39

2.5.1深入讨论:关于解的迭代改进的更多讨论 40

2.6奇异值分解 42

2.6.1方阵的SVD 43

2.6.2方程个数少于未知数个数的SVD 46

2.6.3方程个数多于未知数个数的SVD 46

2.6.4构造标准正交基 46

2.6.5矩阵的近似 47

2.6.6 SVD算法 47

2.7稀疏线性方程组 50

2.7.1 Sherman-Morrison公式 52

2.7.2周期三对角方程组 53

2.7.3深入讨论:Woodbury公式 54

2.7.4分区求逆 55

2.7.5深入讨论:稀疏矩阵的索引存储 55

2.7.6深入讨论:共轭梯度法求解稀疏方程组 61

2.8 Vandermonde矩阵和Toeplitz矩阵 66

2.8.1深入讨论:Vandermonde矩阵 66

2.8.2深入讨论:Toeplitz矩阵 68

2.9深入讨论:Cholesky分解 71

2.10深入讨论:QR分解 73

2.10.1深入讨论:更新QR分解 75

2.11矩阵求逆是否是N3阶运算 76

第3章内插法和外推法 79

3.0引言 79

3.1多项式内插法和外推法 81

3.2有理函数内插法和外推法 83

3.3三次样条插值 85

3.4搜索有序表的方法 87

3.4.1用相关数值进行搜索 88

3.4.2写在Hunt之后 89

3.5插值多项式的系数 90

3.5.1其他方法 91

3.6二维或高维插值 92

3.6.1用更高的阶获得高精度 93

3.6.2用更高的阶获得高平滑度:双三次插值 93

3.6.3用更高的阶获得高平滑度:双三次样条 95

第4章函数积分 97

4.0引言 97

4.1坐标等距划分的经典公式 98

4.1.1 Newton-Cotes闭型公式 98

4.1.3扩展公式(闭型) 99

4.1.2单个区间的外推公式 99

4.1.4扩展公式(开型与半开型) 100

4.2基本算法 101

4.3龙贝格积分 104

4.4广义积分 105

4.5高斯求积法与正交多项式 109

4.5.1坐标点和权的计算 111

4.5.2深入讨论:递推式已知时的情况 116

4.5.3深入讨论:具有非经典权的正交多项式 117

4.5.4高断积分推广 119

4.6多维积分 120

5.1.1 加速级数收敛 124

5.1级数与其收敛性 124

5.0 引 言 124

第5章函数求值 124

5.2连分式求值 126

5.2.1连分式处理 128

5.3多项式和有理函数 129

5.3.1有理函数 131

5.4复数运算 132

5.5递推关系及Clenshaw递推公式 133

5.5.1递推式的稳定性 133

5.5.2 Clenshaw递推公式 135

5.6 二次方程和三次方程 136

5.7数值求导 137

5.8切比雪夫逼近 140

5.9切比雪夫逼近函数的微分和积分 143

5.9.1深入讨论:Clenshaw-Curtis积分法 144

5.10切比雪夫系数的多项式逼近 145

5.1 1深入讨论:幂级数化简 146

5.12深入讨论:帕德逼近 148

5.13深入讨论:有理切比雪夫逼近 150

5.14线积分求函数值 154

第6章特殊函数 156

6.0 引言 156

6.1 Γ函数、B函数、阶乘、二项式系数 156

6.2 不完全г函数、误差函数、x2概率函数、累积泊松函数 159

6.2.1 误差函数 162

6.2.3x2概率函数 163

6.3指数积分 163

6.2.2累积泊松概率函数 163

6.4 不完全B函数、学生分布、F分布、累积二项式分布 166

6.4.1学生分布概率函数 169

6.4.2 F分布概率函数 169

6.4.3累积二项式概率分布 169

6.5整数阶贝塞尔函数 170

6.6修正的整数阶贝塞尔函数 175

6.7深入讨论:分数阶贝塞尔函数、艾里函数、球面贝塞尔函数 179

6.7.1 一般贝塞尔函数 179

6.7.2修正贝塞尔函数 184

6.7.3艾里函数 188

6.7.4球面贝塞尔函数 189

6.8球面调和函数 190

6.9.1菲涅耳积分 192

6.9菲涅耳积分、余弦和正弦积分 192

6.9.2余弦和正弦积分 194

6.10 Dawson积分 195

6.11椭圆积分和雅可比椭圆函数 197

6.11.1雅可比椭圆函数 204

6.12超几何函数 206

第7章随机数 209

7.0引言 209

7.1一致偏离 209

7.1.1系统提供的随机数生成程序 210

7.1.2可移植的随机数生成程序 212

7.1.3深入讨论:快速而略有缺陷的生成程序 217

7.1.4深入讨论:更快的生成程序 217

7.2变换方法:指数偏离和正态偏离 219

7.1.5相对的执行时间和建议 219

7.2.1指数偏离 220

7.2.2 正态(高斯)偏离 221

7.3拒绝方法:伽马偏离、泊松偏离、二项偏离 223

7.3.1伽马分布 224

7.3.2泊松偏离 225

7.3.3二项偏离 227

7.4随机位的生成 228

7.5深入讨论:基于数据加密的随机序列 231

7.6简单的蒙特卡罗积分 235

7.7准随机序列 239

7.8.1重要取样 244

7.7.1拉丁超立方 244

7.8深入讨论:自适应及递归蒙特卡罗方法 244

7.8.2分层取样 245

7.8.3混合策略 246

7.8.4自适应蒙特卡罗:VEGAS 247

7.8.5递归分层取样 251

第8章排序 252

8.0引言 252

8.1直接插入法和Shell方法 253

8.1.1 Shell方法 253

8.2快速排序法 254

8.3堆积排序法 257

8.4索引和分秩 259

8.5挑选第M大的元素 261

8.6深入讨论:等价类的确定 264

第9章求根与非线性方程组 266

9.0引言 266

9.1划界与二分 268

9.1.1二分法 270

9.2弦截法、试位法和Ridders方法 271

9.2.1 Ridders方法 274

9.3 Van Wijngaarden-Dekker-Brent方法 275

9.4利用导数的Newton-Raphson方法 277

9.4.1 Newton-Raphson方法和分形 281

9.5多项式的根 282

9.5.1多项式的降阶 283

9.5.3拉盖尔方法 284

9.5.2 Muller方法 284

9.5.4本征值方法 287

9.5.5其他可靠的求根方法 288

9.5.6根修正的技巧 288

9.6非线性方程系统的Newton-Raphson方法 290

9.6.1牛顿法与极小化 292

9.7非线性方程系统的全局收敛法 293

9.7.1深入讨论:线性搜索和回溯 293

9.7.2深入讨论:多维弦截法——Broyden方法 298

9.7.3深入讨论:更先进的实现 301

第10章函数的极值 303

10.0引言 303

10.1一维黄金分割搜索 305

10.1.1确定初始划界为极小的例程 306

10.1.2黄金分割搜索方法的例程 308

10.2抛物线内插和一维Brent方法 308

10.3使用一阶导数的一维搜索方法 311

10.4多维下降单纯形法 313

10.5多维情况下的方向集(Powell)方法 316

10.5.1共轭方向 317

10.5.2 Powell二次收敛方法 318

10.5.3舍弃函数值下降最多的方向 319

10.5.4线性极小化的实现 320

10.6多维共轭梯度法 322

10.6.1有关利用导数的线性极小化之说明 324

10.7多维变度量法 326

10.7.1深入讨论:变度量法的进一步实现 329

10.8.1线性规划基本定理 330

10.8线性规划和单纯形法 330

10.8.2关于约束标准形式的单纯形法 332

10.8.3将一般问题转化为约束标准形式 334

10.8.4单纯形法的例程实现 335

10.8.5其他线性规划方法简述 339

10.9模拟退火法 340

10.9.1组合极小化:旅行推销员问题 341

10.9.2模拟退火法在连续极小化问题中的应用 346

第11章特征系统 350

11.0引言 350

11.0.1定义和基本事实 350

11.0.3矩阵的对角化 351

11.0.2左特征向量和右特征向量 351

11.0.4成品化特征系统程序的特征系统软件包 352

11.0.5广义的和非线性特征值问题 353

11.1对称矩阵的雅可比变换 354

11.2将对称矩阵简化为三对角形式:Givens约化和Householder约化 358

11.2.1 Givens方法 359

11.2.2 Householder方法 359

11.3三对角矩阵的特征值和特征向量 363

11.3.1特征多项式的赋值 363

11.3.2 QR和QL算法 363

11.3.3具有隐含位移的QL算法 364

11.4埃尔米特矩阵 367

11.5.1配平 368

11.5将一般矩阵化为Hessenberg形式 368

11.5.2约化成Hessenberg形式 369

11.6实Hessenberg矩阵的QR算法 371

11.7用逆迭代法改进特征值并寻找特征向量 376

第12章快速傅里叶变换 378

12.0引言 378

12.1离散样本数据的傅里叶变换 381

12.1.1取样定理与混叠现象 381

12.1.2离散傅里叶变换 381

12.2快速傅里叶变换(FFT) 383

12.2.1其他FFT算法 386

12.3实函数的FFT、正弦变换和余弦变换 387

12.3.2单个实函数的FFT 388

12.3.1两个实函数同时变换 388

12.3.3快速正弦和余弦变换 390

12.4二维或多维的FFT 396

12.5二维和三维实数据的傅里叶变换 398

12.6深入讨论:外部存储和局部内存的FFT 404

第13章傅里叶和谱的应用 408

13.0引言 408

13.1使用FFT做卷积和解卷积 408

13.1.1用零元填充的终端效应处理 409

13.1.2 FFT对卷积的使用 410

13.1.3大型数据集的卷积和解卷积 412

13.2使用FFT做相关和自相关 413

13.3具有FFT的最佳(维纳)滤波 414

13.4使用FFT做功率谱估计 416

13.4.1数据开窗 418

13.5深入讨论:时域中的数字滤波 422

13.5.1线性滤波 423

13.5.2 FIR(非递推)滤波 423

13.5.3 IIR(递推)滤波 424

13.6线性预测和线性预测编码 426

13.6.1与最佳滤波的联系 427

13.6.2线性预测 428

13.6.3除掉线性预测的偏差 431

13.6.4线性预测编码(LPC) 431

13.7深入讨论:用最大熵(全极)方法的功率谱估计 432

13.8深入讨论:非均匀取样数据的谱分析 434

13.8.1 Lomb周期图快速计算 439

13.9深入讨论:使用FFT计算傅里叶积分 442

13.10小波变换 448

13.10.1Daubechies小波滤波系数 448

13.10.2离散小波变换 449

13.10.3小波特性 453

13.10.4傅里叶域中的小波滤波 454

13.10.5被截小波近似 455

13.10.6多维小波变换 456

13.10.7图像压缩 456

13.10.8线性系统的快速求解 457

13.11深入讨论:取样定理的数值应用 459

14.0引言 462

第14章数据的统计描述 462

14.1分布的矩:均值、方差、偏斜度等 463

14.1.1深入讨论:半不变量 465

14.1.2中位数和众数 465

14.2两种分布的均值和方差 466

14.2.1对于显著不同均值的学生t检验 466

14.2.2对于显著不同方差的F检验 468

14.3两种分布是否不同 469

14.3.1x2检验 470

14.3.2 K-S检验 471

14.3.3深入讨论:K-S检验的变形 474

14.4两种分布的列联表分析 475

14.4.1基于x2的关联测度 476

14.4.2基于熵的关联测度 478

14.5线性相关 481

14.6非参数相关或秩相关 483

14.6.1 Spearman秩阶相关系数 484

14.6.2 Kendall的τ 486

14.7深入讨论:二维分布 488

14.8深入讨论:Savitzky-Golay平滑滤波器 492

第15章数据建模 497

15.0引言 497

15.1最大似然估计的最小二乘方法 497

15.1.1 x2拟合 499

15.2拟合数据成直线 500

15.3深入讨论:两个坐标数据都有误差的直线拟合 504

15.4.1利用正规方程组求解 508

15.4一般的线性最小二乘方 508

15.4.2运用奇异值分解法求解 511

15.4.3示例 514

15.4.4多维拟合 515

15.5非线性模型 515

15.5.1梯度和黑塞矩阵的计算 516

15.5.2 Levenberg-Marquardt方法 517

15.5.3示例 520

15.5.4非线性最小二乘方法的更先进方法 521

15.6被估模型参数的置信界限 521

15.6.1合成数据集的蒙特卡罗模拟 522

15.6.2快速粗糙的蒙特卡罗方法:靴带法 522

15.6.3置信界限 523

15.6.4常数x2边界作为置信界限 524

15.6.5正态情况下参数的概率分布 525

15.6.6奇异值分解下的置信界限 527

15.7稳健估计 528

15.7.1用局部M估计法估计参数 529

15.7.2 M估计的数值计算 531

15.7.3通过极小化绝对偏差拟合直线 531

15.7.4其他的稳健估计方法 533

第16章常微分方程的积分 534

16.0引言 534

16.1 Runge-Kutta方法 536

16.2 Runge-Kutta方法的自适应步长控制 539

16.3修正中点法 545

16.4 Richardson外推法和Bulirsch-Stoer方法 546

16.5深入讨论:二阶守恒方程组 553

16.6方程的刚性集 555

16.6.1深入讨论:Rosenbrock方法 557

16.6.2深入讨论:半隐式外推算法 562

16.7多步法、多值法和预测-校正法 567

第17章两点边界值问题 570

17.0引言 570

17.0.1能用标准边界值问题求解的问题 571

17.1 打靶法 572

17.2射向某一拟合点 574

17.3深入讨论:松弛法 576

17.4实例:球体调和函数 584

17.3.1微分方程的“代数困难”集 584

17.4.1松弛法 586

17.4.2打靶法 590

17.4.3射向某一拟合点 591

17.5深入讨论:网格点的自动分配 592

17.6深入讨论:内部边界条件或奇异点的处理 594

第18章积分方程和反演理论 597

18.0引言 597

18.1第二类Fredholm方程 599

18.2 Volterra方程 601

18.3深入讨论:具有奇异核的积分方程 602

18.3.1具有任意权的均匀网格上的积分 603

18.3.2实例:对角奇异核 605

18.4反演问题与先验信息的利用 608

18.4.1零阶正则化反演问题 609

18.5线性正则化方法 611

18.5.1二维问题和迭代方法 614

18.5.2确定性约束:凸集投影 615

18.6 Backus-Gilbert方法 616

18.7最大熵图像恢复 618

18.7.1 MEM特性 620

18.7.2 MEM的算法 621

18.7.3“Bayes”与“历史性”的最大熵 622

第19章偏微分方程 624

19.0引言 624

19.0.1初值问题 624

19.0.2边界值问题 625

19.0.3有限差分以外的众多方法 628

19.1通量守恒的初值问题 629

19.1.1von Neumann稳定性分析 630

19.1.2 Lax方法 631

19.1.3其他种类的误差 633

19.1.4时间域上的二阶精确度 634

19.1.5含有激波的流体动力学 637

19.2扩散初值问题 637

19.2.1薛定谔方程 641

19.3多维的初值问题 642

19.3.1通量守恒方程的Lax方法 643

19.3.2多维的扩散问题 644

19.3.3一般算子分裂法 644

19.4边界值问题的傅里叶方法和循环约简法 645

19.4.1傅里叶变换法 646

19.4.2循环约简法 648

19.4.3 FACR方法 649

19.5边界值问题的松弛法 649

19.5.1逐次超松弛法 651

19.5.2交替方向隐式法 654

19.6边界值问题的多重网格法 655

19.6.1从一网格,到两网格,再到多网格 655

19.6.2光滑、限制及拓展算子 657

19.6.3完全多重网格算法 659

19.6.4深入讨论:非线性多重网格,FAS算法 663

20.0引言 670

20.1诊断机器的参数 670

第20章非典型的数值算法 670

20.2格雷码 674

20.3循环冗余度校验和其他种类的校验和式 675

20.3.1其他种类的校验和式 679

20.4霍夫曼编码与数据压缩 680

20.4.1游程编码 685

20.5算术编码 685

20.6任意精度的运算 689

附录A原型声明表 699

附录B实用例程 708

附录C复数运算 715

参考文献 717

程序从属表 721

各章节的计算机程序 734