《VC++和BC++数值分析类库》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:粟塔山编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302119430
  • 页数:249 页
图书介绍:根据多年的工作实践,作者尝试做出了这个C++环境下的数值分析类库(存放在随书附带的光盘中)。此类库覆盖了数值分析领域的大部分常见问题,还兼有线性和非线性最优化问题的多种算法以及概率统计的基本问题。各项功能在Visual C++6.0和Borland C++ Builder 5.0环境下经过了多次测试,并与MATLAB的进行结果进行了比较,结果准确无误,效率不相上下。本书是该数值分析类库的使用手册,它对数值类库的每一项功能作了详尽的解释并给出了调用方法的示例。本书可供经常利用计算机进行数值计算的科学工作者、工程技术人员及理工类学生阅读和参考。

目录 1

前言 1

第1章 矩阵的操作 1

1.1 矩阵的定义、元素访问、重置、销毁与显示 1

1.1.1 动态矩阵及元素的访问 1

1.1.2 关于矩阵的作用域 2

1.1.3 空矩阵与矩阵尺寸的重新设置 3

1.1.4 矩阵的提前销毁 3

1.1.5 矩阵的显示 4

如何使用C++数值分析类库 5

1.2 矩阵的整体赋值与均匀分布随机矩阵 5

1.2.1 使用初始化函数 5

1.2.2 用另一矩阵初始化或整体赋值 6

1.2.3 初始化(或调整)为单位矩阵 7

1.2.4 让矩阵元素服从[a,b]区间上的均匀分布 8

1.2.5 产生整数值随机矩阵 9

1.3 矩阵的加法、减法、乘法、转置、反号和置零 9

1.3.1 矩阵相加 9

1.3.2 矩阵的累加 11

1.3.3 矩阵相减 12

1.3.4 矩阵的累减 12

1.3.5 矩阵相乘 13

1.3.6 矩阵的累乘 14

1.3.7 矩阵乘以标量 15

1.3.8 矩阵累乘标量 16

1.3.9 矩阵倍加另一个矩阵 17

1.3.10 矩阵的转置 18

1.3.12 矩阵置零 19

1.3.13 去除矩阵的垃圾元素 19

1.3.11 矩阵反号 19

1.4 矩阵的初等变换 20

1.4.1 矩阵交换两行 20

1.4.2 矩阵交换两列 21

1.4.3 矩阵倍乘一行 22

1.4.4 矩阵倍乘一列 23

1.4.5 矩阵行倍加 23

1.4.6 矩阵列倍加 24

1.5 矩阵行、列的添加、插入和删除 25

1.5.1 矩阵添加一零行 25

1.5.2 矩阵添加一零列 25

1.5.3 矩阵插入一零行 26

1.5.4 矩阵插入一零列 27

1.5.6 矩阵删除一列 28

1.5.5 矩阵删除一行 28

1.5.7 获取矩阵的行、列数 29

1.6 矩阵取子块与矩阵拼接 29

1.6.1 取矩阵的任意子块 29

1.6.2 取矩阵的四角块 30

1.6.3 取矩阵的连续若干行 32

1.6.4 取矩阵的连续若干列 33

1.6.5 矩阵的填补(1) 34

1.6.6 矩阵的填补(2) 35

1.6.7 矩阵的横向拼接(1) 36

1.6.8 矩阵的横向拼接(2) 37

1.6.9 矩阵的竖向拼接(1) 38

1.6.10 矩阵的竖向拼接(2) 39

1.7 矩阵的存盘与读取 40

1.7.1 矩阵存储为磁盘文件 40

1.7.2 读取磁盘文件矩阵 41

1.8.1 矩阵串行为C/C++数组 44

1.8 矩阵与C/C++数组交换数据 44

1.8.2 C/C++数组排列成矩阵 45

1.9 其他 46

1.9.1 方阵的对角线加常量 46

1.9.2 矩阵的所有元素加常量 47

1.9.3 方阵的迹 47

1.9.4 矩阵元素的平均值 48

1.9.5 由一个矩阵产生的协方差矩阵 49

1.9.6 矩阵的绝对值最大元素及定位 50

1.9.7 矩阵的最大元素及定位 51

1.9.8 矩阵的绝对值最小元素及定位 52

1.9.9 矩阵的最小元素及定位 53

第2章 向量的操作 55

2.1 向量的定义、元素访问、重置、销毁与显示 55

2.1.1 向量的定义、元素访问及作用域 55

2.1.3 向量的提前销毁 56

2.1.2 空向量与向量长度的重置 56

2.1.4 向量的显示 57

2.2 向量的整体赋值与随机向量 58

2.2.1 使用初始化函数 58

2.2.2 用另一向量初始化或整体赋值 59

2.2.3 将向量初始化或设置为单位向量 59

2.2.4 使向量的所有元素都相同 60

2.2.5 使向量的元素为区间的等分点 61

2.2.6 一元函数在若干坐标点上的值构成的向量 61

2.2.7 [a,b]上均匀分布的随机数构成的向量 63

2.2.8 [-|N|,|N|]范围内的随机整数值构成的向量 63

2.2.9 服从正态分布的随机数构成的向量 64

2.2.10 服从Γ分布的随机数构成的向量 64

2.2.11 服从β分布的随机数构成的向量 65

2.3.1 向量相加 66

2.2.12 向量数据的频率 66

2.3 向量的加、减、乘运算及置零 66

2.3.2 向量的累加 67

2.3.3 向量相减 68

2.3.4 向量的累减 69

2.3.5 向量的内积 69

2.3.6 向量乘以标量 69

2.3.7 向量累乘标量 70

2.3.8 向量每个元素加上同一标量 71

2.3.9 向量倍加另一向量 72

2.3.10 向量置零 73

2.3.11 两向量的欧氏距离 73

2.3.12 去除向量的垃圾元素 73

2.4 向量元素的添加、插入和删除 74

2.4.1 向量添加一元素 74

2.4.2 向量插入一元素 75

2.4.3 向量删除一元素 76

2.4.4 获取向量的维数 77

2.5  向量的拼接、截取和填补 77

2.5.1 向量的拼接(1) 77

2.5.2 向量的拼接(2) 78

2.5.3 截取向量的左段 79

2.5.4 截取向量的中段 80

2.5.5 截取向量的右段 80

2.5.6 向量的填补 81

2.6 向量的存盘与读取 82

2.6.1 向量存储为磁盘文件 82

2.6.2 读取磁盘文件向量 84

2.7 向量与C/C++数组交换数据 86

2.7.1 向量转换为C/C++数组 86

2.7.2 C/C++数组转换成向量 87

2.8 其他 88

2.8.1 向量元素的均值 88

2.8.2 向量元素的方差 88

2.8.3 向量的绝对值最大元素及定位 88

2.8.4 向量的绝对值最小元素及定位 89

2.8.5 向量的最大元素及定位 90

2.8.6 向量的最小元素及定位 91

2.8.7 向量元素按升序排列 91

2.8.8 向量元素按降序排列 92

2.8.9 一个实数的区间定位 93

2.8.10 计算n次二项展开式的系数 94

2.8.11 向量的逆转 95

2.8.12 向量的移位 96

3.1.1 矩阵添加指定行 98

3.1 矩阵添加和插入指定的行、列 98

第3章 矩阵与向量的关联操作 98

3.1.2 矩阵添加指定列 99

3.1.3 矩阵插入指定行 99

3.1.4 矩阵插入指定列 100

3.2 矩阵行、列的设置与提取 101

3.2.1 替换矩阵的一行 101

3.2.2 替换矩阵的一列 102

3.2.3 提取矩阵的一行 103

3.2.4 提取矩阵的一列 103

3.3 矩阵与向量相乘 104

3.3.1 列向量右乘矩阵 104

3.3.2 行向量左乘矩阵 105

3.3.3 行、列向量同时左右乘矩阵 106

3.3.4 两向量相乘产生矩阵 107

3.4.1 产生一系列多维正态随机向量 108

3.4 其他 108

3.4.2 提取方阵的对角线构成向量 109

3.4.3 设置方阵的对角线 110

3.4.4 方阵的对角线加向量 111

3.4.5 方阵的对角线减向量 111

3.4.6 矩阵的各行累加构成向量 112

3.4.7 矩阵的各列累加构成向量 112

3.4.8 矩阵的元素串行成向量 113

3.4.9 向量排列成矩阵 113

第4章 矩阵的数值分析 115

4.1 矩阵的行列式、秩、值空间和核空间、范数及条件数 115

4.1.1 方阵的行列式 115

4.1.2 矩阵的秩 116

4.1.3 矩阵的值空间 117

4.1.4 矩阵的核空间 118

4.1.5 矩阵的1-范数 119

4.1.6 矩阵的∞-范数 119

4.1.7 矩阵的2-范数 119

4.1.8 矩阵的条件数 120

4.2 矩阵分解 121

4.2.1 对称正定矩阵的楚列斯基分解 121

4.2.2 一般对称矩阵的强迫正定楚列斯基分解 123

4.2.3 “高型”矩阵的QR分解 125

4.2.4 任意矩阵的奇异值分解 127

4.3 矩阵的特征值和特征向量 129

4.3.1 对称矩阵的所有特征值及特征向量 129

4.3.2 一般方阵的所有特征值(包括复特征值) 131

4.3.3 指定方阵的一个实特征值,求相应的一个实特征向量 133

4.3.4 指定方阵的一个复特征值,求相应的一个复特征向量 134

4.4.1 矩阵求逆或者判断不可逆 135

4.4 矩阵的逆与伪逆(广义逆) 135

4.4.2 矩阵的伪逆(广义逆) 137

4.5 解线性方程组 138

4.5.1 系数矩阵为三对角矩阵(追赶法) 138

4.5.2 系数矩阵为对称正定矩阵(平方根法) 140

4.5.3 系数矩阵为一般的非奇异矩阵(高斯法,高斯-塞德尔迭代法) 141

4.5.4 系数矩阵非方阵的最小二乘解或最小范数解 143

4.5.5 系数矩阵为任意矩阵的广义解 146

第5章 函数的数值分析 149

5.1 一元函数的基本问题 149

5.1.1 绘制一元函数曲线 149

5.1.2 一元函数的一阶导数、二阶导数 152

5.1.3 一元函数的零点 153

5.1.4 一元函数的定积分(龙贝格法,高斯法) 155

5.1.5 一元函数的含参变量积分(带单参数) 157

5.1.6 一元函数的含参变量积分(带多参数) 160

5.1.7 一元函数的局部极小点 162

5.2 一元实系数多项式 164

5.2.1 多项式的表示与求值、求导、求积分 164

5.2.2 多项式的加法、减法和乘法 166

5.2.3 多项式的除法 167

5.2.4 多项式的所有根(包括复根) 168

5.2.5 已知多项式的所有根(包括复根),求多项式系数 169

5.2.6 多项式在闭区间上的最大值点和最小值点 170

5.2.7 矩阵多项式 171

5.2.8 四种著名的正交多项式 173

5.3 样条插值、离散数据的求导和求积分 175

5.3.1 样条函数与插值 175

5.3.2 离散数据求导 178

5.3.3 离散数据求积分 180

5.4.1 连续函数的多项式最佳平方逼近 182

5.4 函数逼近、离散数据最小二乘拟合、快速傅里叶变换和向量卷积 182

5.4.2 连续函数的多项式最佳一致逼近 185

5.4.3 离散数据的多项式最小二乘拟合 187

5.4.4 快速傅里叶变换 190

5.4.5 两个向量的线性卷积 192

5.5 常微分方程和方程组、线性定常系统及二阶线性边值问题 194

5.5.1 一阶常微分方程 194

5.5.2 一阶常微分方程组 196

5.5.3 线性定常系统 200

5.5.4 二阶线性微分方程的边值问题 202

5.6 多元函数的梯度、二阶导数矩阵及雅可比矩阵 205

5.6.1 多元函数在指定点的梯度 205

5.6.2 多元函数在指定点的二阶导数矩阵 206

5.6.3 一组多元函数在指定点的雅可比矩阵 208

5.7.1 线性规划 209

5.7 最优化计算 209

5.7.2 非线性无约束优化(10种算法) 212

5.7.3 非线性约束优化(乘子法、约束变尺度法) 220

附录1 Visual C++编程环境入门 225

1 初识Visual C++ 225

2 键盘输入、屏幕输出 232

2.1 用cin输入 232

2.2 用cout输出 233

3 内联(inline)函数取代含参数宏 236

4 随时随地定义变量 237

5 变量的引用 238

6 函数的默认参数 241

7 函数重载 243

8 用new和delete动态分配和回收内存 245

附录2 注意事项 248

参考文献 249