常用算法程序集(C++描述)(第6版)pdf下载pdf下载

常用算法程序集(C++描述)(第6版)百度网盘pdf下载

作者:
简介:本篇主要提供常用算法程序集(C++描述)(第6版)pdf下载
出版社:
出版时间:2019-03
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

内容简介

本书是针对工程中常用的行之有效的算法而编写的,其主要内容包括封装的四个基本运算类(复数运算类、实系数与复系数多项式运算类以及产生随机数类),矩阵运算,矩阵特征值与特征向量的计算,线性代数方程组,非线性方程与方程组的求解,插值与逼近,数值积分,常微分方程组的求解,数据处理,极值问题的求解,数学变换与滤波,特殊函数的计算,排序等。

书中所有的算法程序均用C++描述,源代码可从清华大学出版社网站(www.tup.com.cn)下载。

本书可供广大科研人员、工程技术人员及管理工作者阅读使用,也可作为高等院校师生的参考书。


目录

目录

第1章基本运算类1

1.1复数运算类1

1.2实系数多项式运算类9

1.3复系数多项式运算类14

1.4产生随机数类18

第2章矩阵运算23

2.1矩阵相乘23

2.2矩阵求逆27

2.3对称正定矩阵的求逆33

2.4托伯利兹矩阵求逆的特兰持方法35

2.5求一般行列式的值39

2.6求矩阵的秩42

2.7对称正定矩阵的乔里斯基分解44

2.8矩阵的三角分解46

2.9一般实矩阵的QR分解50

2.10一般实矩阵的奇异值分解54

2.11求广义逆的奇异值分解法66

第3章矩阵特征值与特征向量的计算70

3.1约化对称矩阵为对称三对角阵的豪斯荷尔德变换法70

3.2求对称三对角阵的全部特征值与特征向量75

3.3约化一般实矩阵为赫申伯格矩阵的初等相似变换法79

3.4求赫申伯格矩阵全部特征值的QR方法82

3.5求实对称矩阵特征值与特征向量的雅可比法89

3.6求实对称矩阵特征值与特征向量的雅可比过关法95

3.7乘幂法99

第4章线性代数方程组104

4.1求解方程组的全选主元高斯消去法104〖1〗〖2〗常用算法程序集(C++描述)(第6版)〖1〗目录4.2求解方程组的全选主元高斯约当消去法109

4.3求解三对角线方程组的追赶法114

4.4求解一般带型方程组117

4.5求解对称方程组的分解法123

4.6求解对称正定方程组的平方根法127

4.7求解托伯利兹方程组的列文逊方法130

4.8高斯赛德尔迭代法135

4.9求解对称正定方程组的共轭梯度法138

4.10求解线性最小二乘问题的豪斯荷尔德变换法141

4.11求解线性最小二乘问题的广义逆法144

4.12求解病态方程组147

第5章非线性方程与方程组的求解151

5.1求非线性方程实根的对分法151

5.2求非线性方程一个实根的牛顿迭代法154

5.3求非线性方程一个实根的埃特金迭代法157

5.4求非线性方程一个实根的试位法159

5.5求非线性方程一个实根的连分式法162

5.6求实系数代数方程全部根的QR方法166

5.7求代数方程全部根的牛顿下山法168

5.8求非线性方程组一组实根的梯度法176

5.9求非线性方程组一组实根的拟牛顿法180

5.10求非线性方程组最小二乘解的广义逆法185

5.11求非线性方程一个实根的蒙特卡罗法191

5.12求实函数或复函数方程一个复根的蒙特卡罗法194

5.13求非线性方程组一组实根的蒙特卡罗法198

第6章插值与逼近202

6.1拉格朗日插值202

6.2连分式插值204

6.3埃尔米特插值208

6.4埃特金逐步插值211

6.5光滑插值213

6.6三次样条函数插值、微商与积分220

6.7二元插值230

6.8最小二乘曲线拟合233

6.9切比雪夫曲线拟合239

6.10最佳一致逼近的里米兹方法243

6.11矩形域的最小二乘曲面拟合248

第7章数值积分256

7.1变步长梯形求积法256

7.2变步长辛卜生求积法258

7.3自适应梯形求积法261

7.4龙贝格求积法264

7.5计算一维积分的连分式法266

7.6高振荡函数求积法271

7.7勒让德高斯求积法275

7.8拉盖尔高斯求积法278

7.9埃尔米特高斯求积法280

7.10切比雪夫求积法282

7.11计算一维积分的蒙特卡罗法285

7.12变步长辛卜生二重积分法287

7.13计算二重积分的连分式法291

7.14计算多重积分的高斯方法295

7.15计算多重积分的蒙特卡罗法299

第8章常微分方程组的求解302

8.1积分一步的变步长欧拉方法302

8.2积分一步的变步长龙格库塔方法306

8.3积分一步的变步长基尔方法309

8.4积分一步的变步长默森方法314

8.5积分一步的连分式法319

8.6积分一步的变步长特雷纳方法325

8.7积分一步的变步长维梯方法331

8.8全区间积分的双边法335

8.9全区间积分的阿当姆斯预报校正法339

8.10全区间积分的哈明方法343

8.11积分刚性方程组的吉尔方法347

8.12求解二阶初值问题的欧拉方法361

8.13求解二阶初值问题的连分式法366

8.14求解二阶边值问题的差分法371

8.15求解二阶边值问题的试射法374

8.16求解二阶边值问题的连分式法379

第9章数据处理386

9.1随机样本分析386

9.2一元线性回归分析391

9.3多元线性回归分析394

9.4逐步回归分析399

9.5半对数数据相关409

9.6对数数据相关412

第10章极值问题的求解416

10.1一维极值连分式法416

10.2n维极值连分式法419

10.3不等式约束线性规划问题424

10.4求n维极值的单形调优法429

10.5求约束条件下n维极值的复形调优法435

第11章数学变换与滤波444

11.1傅里叶级数逼近444

11.2快速傅里叶变换447

11.3快速沃什变换454

11.4五点三次平滑456

11.5离散随机线性系统的卡尔曼滤波459

11.6αβγ滤波465

第12章特殊函数的计算469

12.1伽马函数469

12.2不完全伽马函数471

12.3误差函数475

12.4第一类整数阶贝塞尔函数476

12.5第二类整数阶贝塞尔函数482

12.6变形第一类整数阶贝塞尔函数487

12.7变形第二类整数阶贝塞尔函数491

12.8不完全贝塔函数495

12.9正态分布函数498

12.10t分布函数500

12.11χ2分布函数502

12.12F分布函数503

12.13正弦积分505

12.14余弦积分507

12.15指数积分509

12.16第一类椭圆积分512

12.17第二类椭圆积分515

12.18特殊函数类517

第13章排序538

13.1冒泡排序538

13.2快速排序540

13.3希尔排序544

13.4堆排序546

13.5数据排序类549

参考文献555


精彩书摘

第5章非线性方程与方程组的求解

〖1〗5.1求非线性方程实根的对分法

【功能】

用对分法搜索方程f(x)=0在区间\[a,b\]内的实根。

【方法说明】

从区间左端点x=a开始,以h为步长,逐步往后进行搜索。

对于在搜索过程中遇到的每一个子区间\[xk,xk+1\](其中xk+1=xk+h)做如下处理:

若f(xk)=0,则xk为一个实根,且从xk+h/2开始往后再搜索;

若f(xk+1)=0,则xk+1为一个实根,且从xk+1+h/2开始往后再搜索;

若f(xk)f(xk+1)>0,则说明在当前子区间内无实根或h选得过大,放弃本子区间,从xk+1开始往后再搜索;

若f(xk)f(xk+1)<0,则说明在当前子区间内有实根,此时利用对分法,直到求得一个实根为止,然后从xk+1开始往后再搜索。

上述过程一直进行到区间右端点b为止。

特别要注意,在根的搜索过程中,要合理选择步长,尽量避免根的丢失。

【函数语句与形参说明】

int dhrt(double a, double b, double h, double eps, double x\[\],

int m, double (f)(double))形参与函数类型参 数 意 义doublea求根区间的左端点doubleb求根区间的右端点doubleh搜索求根时采用的步长doubleeps控制精度要求doublex\[m\]返回在区间\[a,b\]内的实根。实根个数由函数值返回〖1〗〖2〗常用算法程序集(C++描述)(第6版)〖1〗第5章非线性方程与方程组的求解续表

形参与函数类型参 数 意 义intm在区间\[a,b\]内实根个数的预估值double(f)()指向计算方程左端函数f(x)值的函数名(由用户自编)intdhrt()函数返回在区间\[a,b\]内实际搜索到的实根个数。若此值等于m,则有可能没有搜索完计算方程左端函数f(x)值的函数形式为doublef(double x)

{ doublez;

z=f(x)的表达式;

return(z);

}【函数程序】

//方程求根对分法.cpp

#include

#include

using namespace std;

//a求根区间的左端点

//b求根区间的右端点

//h搜索求根所采用的步长

//eps控制精度要求

//x\[m\]存放返回的实根。实根个数由函数值返回

//m实根个数的预估值

//f方程左端函数f(x)的函数名

//函数返回搜索到的实根个数。若此值等于m,则可能没有搜索完

int dhrt(double a, double b, double h, double eps, double x\[\],

int m, double (f)(double))

{


前言/序言

前言

在本次修订中,所有的算法程序均采用C++语言描述,并逐个进行了重新调试,对原来的程序做了较大的修改。对于有些问题,为了便于读者直接使用,在使用面向过程的C++语言描述基础上,还使用了面向对象的C++语言描述,将若干同类算法封装在一个类中。例如,在本书的第1章中,分别将复数运算封装成一个类,实系数多项式运算封装成一个类,复系数多项式运算封装成一个类,产生随机数运算封装成一个类;在第12章和第13章中分别将特殊函数与数据排序封装成类。由于在第1章中定义了复数运算类,因此在2.1节中矩阵相乘包括了实矩阵与复矩阵的相乘,2.2节中的矩阵求逆包括了实矩阵与复矩阵的求逆。

本书是针对工程中常用的行之有效的算法而编写的,并且根据算法的分类以及使用特点做了精心的组织和安排。本书具有以下特点。

(1) 书中除收集了传统的算法外,还根据作者的工作经验和近年来数值计算的发展,选取了一些新的、实用的算法。可以说,书中各章几乎都有一些新的算法。

(2) 书中所有的算法程序都经过认真的调试(在Visual C++ 6.0环境下)。

(3) 书中收集的算法都是行之有效的,基本可以满足解决工程中各种实际问题的需要。

限于作者水平,书中难免有疏漏之处,恳请读者批评指正。


作者

2018年3月