数值分析:矩阵求逆-奇异性、条件数

http://blog.csdn.net/pipisorry/article/details/52241141

本blog主要内容有:矩阵的奇异性、条件数与病态矩阵、矩阵求逆。

奇异矩阵和非奇异矩阵singular matrix&nonsingular matrix

概念和定义

若n阶矩阵A的行列式不为零,即 |A|≠0,则称A为非奇异矩阵或满秩矩阵,否则称A为奇异矩阵或降秩矩阵。

奇异矩阵是线性代数的概念,就是对应的行列式等于0的方阵。

奇异矩阵和非奇异矩阵的判断和性质

奇异矩阵一定是方阵吗

首先,看这个矩阵是不是方阵(即行数和列数相等的矩

阵。若行数和列数不相等,那就谈不上奇异矩阵和非奇异矩阵)。

不过限定在某个知识范围内是指方阵,例如线性代数当中只对方阵进行奇异矩阵的定义。正常来讲是不限定必须是方阵的,比如在奇异值分解当中,用作估计的时候会定义奇异值矩阵不满秩的矩阵为奇异阵,当然就不再限定是方阵。这种情况下矩阵不可求广义逆,即使求莫奈伪逆也要用特殊的方法,另外这种矩阵如果有物理意义的话,往往不满足正交核函数分解的条件。


一个矩阵A非奇异当且仅当:(等价的概念)
A的所有特征值都不为零(lambda=0则|A|=0,只要矩阵A有一个特征值为零,一定是奇异矩阵。即零特征值反映矩阵的奇异性)
或A的行列式不为零,即 |A|≠0(A 为可逆矩阵,也即A的行列式不为零)
或A可逆
或A的秩为n(非奇异矩阵 A满秩,Rank(A)=n;奇异矩阵 A的秩Rank(A)<n)
或A的列向量线性无关
或矩阵方程AX=b有唯一非零解(如果A为奇异矩阵,则AX=b有无穷解或者无解)
或矩阵方程AX=0有且仅有零解(如果A为奇异矩阵,则AX=0有无穷解)
一个非奇异矩阵可表示成若干个初等矩阵之积。
一个矩阵非奇异当且仅当它代表的线性变换是个自同构。Note: 若A为非奇异矩阵,其顺序主子阵Ai(i=1,...,n-1)不一定均非奇异。
如果n 阶方阵A奇异,则一定存在一个n*1阶非零向量X使: X'AX=0;成立。
[更详细的描述ref:张贤达: 矩阵分析与应用 1.7逆矩阵与伪逆矩阵]

注意事项

计量经济学中,当样本容量太少或是当变量间存在完全相关性时会提示“near singular matrix”,意为“近奇异矩阵”。
在信号处理中,当信号协方差矩阵不是奇异矩阵时,则信号不相关或者部分相关。


优化有两大难题,一是:局部最小值,二是:ill-condition病态问题。前者俺就不说了,大家都懂吧,我们要找的是全局最小值,如果局部最小值太多,那我们的优化算法就很容易陷入局部最小而不能自拔,这很明显不是观众愿意看到的剧情。那下面我们来聊聊ill-condition。

条件数condition number与病态矩阵

ill-condition对应的是well-condition,分别代表什么?

假设我们有个方程组AX=b,我们需要求解X。如果A或者b稍微的改变,会使得X的解发生很大的改变,那么这个方程组系统就是ill-condition的,反之就是well-condition的。

举个例子

       左边的那个。第一行假设是我们的AX=b,第二行我们稍微改变下b,得到的x和没改变前的差别很大。第三行我们稍微改变下系数矩阵A,可以看到结果的变化也很大。换句话来说,这个系统的解对系数矩阵A或者b太敏感了。又因为一般我们的系数矩阵A和b是从实验数据里面估计得到的,所以它是存在误差的,如果我们的系统对这个误差是可以容忍的就还好,但系统对这个误差太敏感了,以至于我们的解的误差更大,那这个解就太不靠谱了。所以这个方程组系统就是ill-conditioned病态的,不正常不稳定有问题的。

    右边那个就叫well-condition的系统了。

     对于一个ill-condition的系统,输入稍微改变下,输出就发生很大的改变,这表明我们的系统不能实用。例如对于一个回归问题y=f(x),我们是用训练样本x去训练模型f,使得y尽量输出我们期待的值,例如0。那假如我们遇到一个样本x’,这个样本和训练样本x差别很小,面对他,系统本应该输出和上面的y差不多的值的,例如0.00001,最后却给我输出了一个0.9999,这很明显不对呀。就好像,你很熟悉的一个人脸上长了个青春痘,你就不认识他了,那你大脑就太差劲了,哈哈。

奇异的本质原因在于矩阵有0特征值,x在对应特征向量的方向上运动不改变Ax的值。如果一个特征值比其它特征值在数量级上小很多,x在对应特征向量方向上很大的移动才能产生b微小的变化,这就解释了为什么这个矩阵为什么会有大的条件数,事实上,正规阵在二范数下的条件数就可以表示成 abs(最大特征值/最小特征值)。

病态的衡量标准:条件数condition number

所以如果一个系统是ill-conditioned病态的,我们就会对它的结果产生怀疑。那到底要相信它多少呢?我们得找个标准来衡量吧,因为有些系统的病没那么重,它的结果还是可以相信的。终于回来了,上面的condition number就是拿来衡量ill-condition系统的可信度的。

condition number的定义

条件数是线性方程组Ax=b的解对b中的误差或不确定度的敏感性的度量。数学定义为矩阵A的条件数等于A的范数与A的逆的范数的乘积,即cond(A)=‖A‖·‖A的逆‖,对应矩阵的3种范数,相应地可以定义3种条件数。

condition number衡量的是输入发生微小变化的时候,输出会发生多大的变化。也就是系统对微小变化的敏感度。

从线性代数的分析可知,矩阵的条件数总是大于1,正交矩阵的条件数等于1,奇异矩阵的条件数为无穷大,而病态矩阵的条件数则为比较大的数据(远大于1)。也就是说奇异矩阵一定是病态的!

如果方阵A是非奇异的,那么A的conditionnumber定义为:

也就是矩阵A的norm乘以它的逆的norm。所以具体的值是多少,就要看你选择的norm是什么了。

如果方阵A是奇异的,那么A的condition number就是正无穷大了

实际上,每一个可逆方阵都存在一个condition number。但如果要计算它,我们需要先知道这个方阵的norm(范数)和Machine Epsilon(机器的精度)。

当然,这个定义依赖于范数的选取。

  • \|\cdot \| l_2 矩阵范数
\kappa(A) = \frac{\sigma_{max}(A)}{\sigma_{min}(A)} 其中 \sigma_{max}(A)\sigma_{min}(A)分别是 A的极大和极小 奇异值。因此
  • A是正规矩阵则
\kappa(A) = \left|\frac{\lambda_{max}(A)}{\lambda_{min}(A)}\right| ( \lambda_{max}(A),\ \lambda_{min}(A)分别是 A的极大和极小(根据模数) 特征值
  • A是酉矩阵则
\kappa(A) = 1
  • \|\cdot \| l_{\infty} 矩阵范数A是下三角矩阵,非奇异(也即 a_{ii} \ne 0 \; \forall i)则:\kappa(A) \geq \frac{\max_i(|a_{ii}|)}{\min_i(|a_{ii}|)}

其它意义下的条件数

奇异值分解,多项式求根,特征值和其它许多问题的条件数也可以有定义。

通常,如果一个数值问题是适定的,它可以表达为一个函数f映射它的数据(一个实数的m元组x)到它的解(一个实数的n元组y)。

它的条件数则定义为解中的相对误差的半径和数据中的相对误差的比的最大值,取遍整个问题的定义域:

\max \left\{ \left| \frac{f(x) - f(x^*)}{f(x)} \right| \left/ \left| \frac{x - x^*}{x} \right| \right. : |x - x^*| < \epsilon \right\}

其中\epsilon 是问题中的数据的偏差的某个合理的小数值。

如果f也是可微的,这可以近似的表示为

\left| \frac{ f'(x) }{ f(x) } \right|. \left| x \right| .

为什么要范数?

范数就相当于衡量一个矩阵的大小,我们知道矩阵是没有大小的,但上面不是要衡量一个矩阵A或者向量b变化的时候,我们的解x变化的大小吗?所以肯定得要有一个东西来度量矩阵和向量的大小吧?它就是范数,表示矩阵大小或者向量长度。对于AX=b,我们可以有以下的结论:

也就是我们的解x的相对变化和A或者b的相对变化是有像上面那样的关系的,其中k(A)的值就相当于倍率,相当于x变化的界。

一句话总结:condition number是一个矩阵(或者它所描述的线性系统)的稳定性或者敏感度的度量,如果一个矩阵的condition number在1附近,那么它就是well-conditioned的,如果远大于1,那么它就是ill-conditioned的,如果一个系统是ill-conditioned的,它的输出结果就不要太相信了。

[wikipedia: 条件数]

皮皮blog



矩阵求逆

非奇异正方矩阵A的逆矩阵A-1

m*n(m!=n)的长方形满列秩矩阵的左伪逆矩阵(A^HA)^-1A^H, 满行秩矩阵的右伪逆矩阵A^H(AA^H)^-1

秩亏缺矩阵的逆矩阵:Moore-Penrose逆矩阵

[张贤达: 矩阵分析与应用 1.7逆矩阵与伪逆矩阵]

奇异矩阵/病态矩阵的求逆

 L2范数有助于处理条件数 condition number不好的情况下矩阵求逆很困难的问题。

如将下面的奇异矩阵XTX改造一下再求逆:

 

[最优化方法:范数和规则化 ]

还有SVD分解的方法?Moore-Penrose逆矩阵?

皮皮blog

from: http://blog.csdn.net/pipisorry/article/details/52241141

ref: [张贤达: 矩阵分析与应用]


  • 16
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配书光盘Readme文件 C 语言通用范例开发金典 第1章 据结构. 1 1.1 组和字符串 2 1.1.1 一维组的倒置 2 范例1-1 一维组的倒置 2 ∷相关函:fun函 1.1.2 一维组应用 3 范例1-2 一维组应用 3 1.1.3 一维组的高级应用 5 范例1-3 一维组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函:c函 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维组的表示 14 范例1-6 三维组的表示 14 ∷相关函:InitArray函 1.1.7 多项式的组表示 17 范例1-7 多项式组的表示 17 1.1.8 查找矩阵的马鞍点 19 范例1-8 查找矩阵的马鞍点 19 ∷相关函:Get_Saddle函 1.1.9 对角矩阵建立 21 范例1-9 对角矩阵建立 21 ∷相关函:Store函 1.1.10 三对角矩阵的建立 22 范例1-10 三对角矩阵的建立 22 ∷相关函:Store函 1.1.11 三角矩阵建立 24 范例1-11 三角矩阵建立 24 ∷相关函:Store函 1.1.12 对称矩阵的建立 25 范例1-12 对称矩阵的建立 25 ∷相关函:store函 1.1.13 字符串长度的计算 28 范例1-13 字符串长度的计算 28 ∷相关函:strlen函 1.1.14 字符串的复制 29 范例1-14 字符串的复制 29 ∷相关函:strcpy函 1.1.15 字符串的替换 31 范例1-15 字符串的替换 31 ∷相关函:strrep函 1.1.16 字符串的删除 33 范例1-16 字符串的删除 33 ∷相关函:strdel函 1.1.17 字符串的比较 35 范例1-17 字符串的比较 35 ∷相关函:strcmp函 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函:substr函 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函:partition 1.1.20 字符串的插入 40 范例1-20 字符串的插入 40 ∷相关函:insert函 1.1.21 字符串的匹配 42 范例1-21 字符串的匹配 42 ∷相关函:nfind函 1.1.22 字符串的合并 43 范例1-22 字符串的合并 43 ∷相关函:catstr函 1.1.23 文本编辑 45 范例1-23 文本编辑 45 ∷相关函:StrAssign函 1.2 栈和队列 54 1.2.1 用组仿真堆栈 54 范例1-24 用组仿真堆栈 54 ∷相关函:push函 pop函 1.2.2 用链表仿真堆栈 57 范例1-25 用链表仿真堆栈 57 ∷相关函:push函 pop函 1.2.3 顺序栈公用 59 范例1-26 顺序栈公用 59 ∷相关函:push函 pop函 1.2.4 进制转换问题 61 范例1-27 进制转换问题 61 ∷相关函:MultiBaseOutput函 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函:push函 pop函 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函:EnQueue函 DeQueue函 1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函:push函 pop函 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函:EnQueue函 DeQueue函 DancePartner函 1.3 链表 75 1.3.1 头插法建立单链表 75 范例1-32 头插法建立单链表 75 ∷相关函:createlist函 1.3.2 限制链表长度建立单链表 77 范例1-33 限制链表长度建立长单链表 77 ∷相关函:createlist函 1.3.3 尾插法建立单链表 79 范例1-34 尾插法建立单链表 79 ∷相关函:createlist函 1.3.4 按序号查找单链表 80 范例1-35 按序号查找单链表 80 ∷相关函:getnode函 1.3.5 按值查找单链表 82 范例1-36 按值查找单链表 82 ∷相关函:locatenode函 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函:insertnode函 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函:deletelist函 1.3.8 归并两个单链表 88 范例1-39 归并两个单链表 88 ∷相关函:concatenate函 1.3.9 动态堆栈 90 范例1-40 动态堆栈 90 ∷相关函:push函 Pop函 1.3.10 动态队列 93 范例1-41 动态队列 93 ∷相关函:Enqueue函 1.3.11 初始化单循环链表 95 范例1-42 初始化单循环链表 95 ∷相关函:ListLength_CL函 1.3.12 查询元素的前驱和后继 98 范例1-43 查询元素的前驱和后继 98 ∷相关函:PriorElem_CL函 NextElem_CL函 1.3.13 单循环链表中元素的删除 101 范例1-44 单循环链表中元素的删除 101 ∷相关函:ListDelete_CL函 1.3.14 单循环链表的清除和销毁 107 范例1-45 单循环链表的清除和销毁 107 ∷相关函:DestroyList函 1.3.15 仅设表尾指针循环链表的合并 110 范例1-46 仅设表尾指针循环链表的合并 110 ∷相关函:MergeList_CL函 1.3.16 正序输出双向链表 113 范例1-47 正序输出双向链表 113 ∷相关函:ListInsert函 ListTraverse函 1.3.17 逆向输出双向链表 116 范例1-48 三角矩阵建立 116 ∷相关函:ListTraverseBack函 1.3.18 删除双向链表中的节点 121 范例1-49 删除双向链表中的节点 121 ∷相关函:ListDelete函 1.3.19 双向链表的元素个 124 范例1-50 双向链表的元素个 124 ∷相关函:ListLength函 1.3.20 判断双向链表是否为空 126 范例1-51 判断双向链表是否为空 126 ∷相关函:ListEmpty函 1.3.21 双向链表元素值的查询 129 范例1-52 双向链表元素值的查询 129 ∷相关函:GetElemP函 1.3.22 稀疏矩阵的建立 136 范例1-53 稀疏矩阵的建立 136 ∷相关函:Create函 1.3.23 稀疏矩阵的删除 138 范例1-54 稀疏矩阵的删除 138 ∷相关函:erase函 1.4 树和二叉树 141 1.4.1 获得二叉树的深度和根(顺序结构) 141 范例1-55 获得二叉树的深度和根 141 ∷相关函:BiTreeDepth函 Root函 1.4.2 获得二叉树的深度和根(链表结构) 144 范例1-56 获得二叉树的深度和根 144 ∷相关函:BiTreeDepth函 Root函 1.4.3 树的插入(顺序结构) 147 范例1-57 树的插入 147 ∷相关函:InsertChild函 1.4.4 节点的修改(顺序结构) 150 范例1-58 节点的修改 150 ∷相关函:Assign函 1.4.5 节点的修改(链式结构) 154 范例1-59 节点的修改 154 ∷相关函:Assign函 1.4.6 双亲、孩子和兄弟节点的查询(顺序结构) 158 范例1-60 双亲、孩子和兄弟节点的查询 158 ∷相关函:Parent函 LeftChild函 RightChild函 LeftSibling函 RightSibling函 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函:Parent函 LeftChild函 RightChild函 LeftSibling函 RightSibling函 1.4.8 中序遍历二叉树(顺序结构) 169 范例1-62 中序遍历二叉树 169 ∷相关函:InOrderTraverse函 1.4.9 中序遍历二叉树(链式结构) 171 范例1-63 中序遍历二叉树 171 ∷相关函:InOrderTraverse函 1.4.10 中序递归遍历二叉树(链式结构)(1) 174 范例1-64 中序递归遍历二叉树 174 ∷相关函:InOrderTraverse函 1.4.11 中序递归遍历二叉树(链式结构)(2) 177 范例1-65 中序递归遍历二叉树 177 ∷相关函:InOrderTraverse2函 1.4.12 后序遍历二叉树(顺序结构) 180 范例1-66 后序遍历二叉树 180 ∷相关函:PostOrderTraverse函 1.4.13 后序遍历二叉树(链式结构) 183 范例1-67 后序遍历二叉树 183 ∷相关函:PostOrderTraverse函 1.4.14 层次遍历二叉树(顺序结构) 186 范例1-68 层次遍历二叉树 186 ∷相关函:LevelOrderTraverse函 1.4.15 层次遍历二叉树(链式结构) 188 范例1-68 层次遍历二叉树 188 ∷相关函:LevelOrderTraverse函 1.4.16 树的合并 191 范例1-70 树的合并 191 ∷相关函:Find函 Union 1.4.17 树的二叉链表存储的基本操作 193 范例1-71 树的二叉链表存储的基本操作 193 ∷相关函:LevelOrderTraverse函 1.4.18 二叉树的三叉链表存储的基本操作 201 范例1-72 二叉树的三叉链表存储表示 201 ∷相关函:CreateBiTree函 1.4.19 二叉树的二叉线索存储的基本操作 212 范例1-73 二叉树的二叉线索存储 212 ∷相关函:CreateBiThrTree函 1.4.20 树的双亲表存储的基本操作 215 范例1-74 树的双亲表存储的基本操作 215 ∷相关函:CreateTree函 1.4.21 哈夫曼编码(1) 223 范例1-75 哈夫曼编码(1) 223 ∷相关函:HuffmanCoding函 1.4.22 哈夫曼编码(2) 226 范例1-76 哈夫曼编码(2) 226 ∷相关函:HuffmanCoding函 1.5 排序 229 1.5.1 直接插入排序 229 范例1-77 直接插入排序 229 ∷相关函:InsertSort函 1.5.2 折半插入排序(顺序结构) 231 范例1-78 折半插入排序(顺序结构) 231 ∷相关函:BInsertSort函 1.5.3 2—路插入排序(顺序结构) 233 范例1-79 2—路插入排序(顺序结构) 233 ∷相关函:P2_InsertSort函 1.5.4 折半插入排序(链式结构) 235 范例1-80 折半插入排序(链式结构) 235 ∷相关函:Arrange函 1.5.5 2—路插入排序(链式结构) 238 范例1-81 2—路插入排序(链式结构) 238 ∷相关函:Rearrange函 1.5.6 希尔排序 241 范例1-82 希尔排序 241 ∷相关函:ShellSort函 1.5.7 冒泡排序 243 范例1-83 冒泡排序 243 ∷相关函:bubble_sort函 1.5.8 一趟快速排序 246 范例1-84 一趟快速排序 246 ∷相关函:QSort函 1.5.9 一趟快速排序的改进算法 248 范例1-85 一趟快速排序的改进算法 248 ∷相关函:QuickSort函 1.5.10 简单选择排序 250 范例1-86 简单选择排序 250 ∷相关函:SelectSort函 1.5.11 箱子排序 252 范例1-87 箱子排序 252 ∷相关函:sort函 1.5.12 树型选择排序 254 范例1-88 树型选择排序 254 ∷相关函:TreeSort函 1.5.13 堆排序 256 范例1-89 堆排序 256 ∷相关函:HeapSort函 1.5.14 归并排序 258 范例1-90 归并排序 258 ∷相关函:MergeSort函 1.5.15 多路平衡归并排序 260 范例1-91 多路平衡归并排序 260 ∷相关函:K_Merge函 1.5.16 置换—选择排序 265 范例1-92 置换—选择排序 265 ∷相关函:Replace_Selection 1.5.17 文件的归并 269 范例1-93 文件的归并 269 ∷相关函:K_Merge函 1.6 查找 272 1.6.1 顺序表的查找 273 范例1-94 顺序表的查找 273 ∷相关函:Search_Seq函 1.6.2 静态树表的查找 276 范例1-95 静态树表的查找 276 ∷相关函:Search_SOSTree函 1.6.3 二叉排序树的基本操作 280 范例1-96 二叉排序树的基本操作 280 ∷相关函:InsertBST函 1.6.4 平衡二叉树的基本操作 285 范例1-97 平衡二叉树的基本操作 285 ∷相关函:SearchBST函 1.6.5 B树的基本操作 290 范例1-98 B树的基本操作 290 ∷相关函:SearchBTree函 1.6.6 按关键字符串的遍历双链键树 295 范例1-99 按关键字符串遍历双链键树 295 ∷相关函:SearchDLTree函 1.6.7 按关键字符串的遍历Trie树 301 范例1-100 按关键字符串遍历Trie树 301 ∷相关函:SearchTrie函 1.6.8 哈希表的基本操作 306 范例1-101 哈希表的基本操作 306 ∷相关函:SearchHash函 1.7 图 311 1.7.1 图的邻接矩阵存储表示 311 范例1-102 图的邻接矩阵存储表示 ∷相关函:CreateFAG函 CreateDG函 1.7.2 图的邻接表存储表示 324 范例1-103 图的邻接表存储表示 324 ∷相关函:CreateFAG函 1.7.3 有向图的十字链表存储表示 335 范例1-104 有向图的十字链表存储表示 335 ∷相关函:CreateDG函 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函:CreateGraph函 1.7.5 最小生成树 355 范例1-106 最小生成树 355 ∷相关函:MiniSpanTree_PRIM函 1.7.6 关节点和重连通分量 359 范例1-107 关节点和重连通分量 359 ∷相关函:FindArticul函 1.7.7 拓扑排序 366 范例1-108 拓扑排序 366 ∷相关函:TopologicalSort函 1.7.8 关键路径 374 范例1-109 关键路径 374 ∷相关函:CriticalPath函 1.7.9 最短路径 383 范例1-110 最短路径 383 ∷相关函:ShortestPath_DIJ函 1.7.10 每一对顶点之间的最短路径 387 范例1-111 每一对顶点之间的最短路径 387 ∷相关函:ShortestPath_FLOYD函 1.8 本章小结 395 第2章 值计算 397 2.1 常见的学函 398 2.1.1 求整的绝对值 398 范例2-1 求整的绝对值 398 ∷相关函:abs函 2.1.2 求长整型整的绝对值 399 范例2-2 求长整型整的绝对值 399 ∷相关函:labs函 2.1.2 求浮点的绝对值 400 范例2-2 求浮点的绝对值 400 ∷相关函:fabs函 2.1.4 求反余弦 400 范例2-4 求反余弦 400 ∷相关函:acos函 2.1.5 求反正弦 401 范例2-5 求反正弦 401 ∷相关函:asin函 2.1.6 求反正切 402 范例2-6 求反正切 402 ∷相关函:atan函 2.1.7 对浮点进行舍入 403 范例2-7 对浮点进行舍入 403 ∷相关函:ceil函 2.1.8 求余弦 404 范例2-8 求余弦 404 ∷相关函:cos函 2.1.9 求双曲余弦 405 范例2-9 求双曲余弦 405 ∷相关函:cosh函 2.1.10 求正弦 406 范例2-10 求正弦 406 ∷相关函:sin函 2.1.11 求双曲正弦 406 范例2-11 求双曲正弦 406 ∷相关函:sinh函 2.1.12 求正切 407 范例2-12 求正切 407 ∷相关函:tan函 2.1.13 求双曲正切 408 范例2-13 求双曲正切 408 ∷相关函:tanh函 2.1.14 获得整相除的商和余 409 范例2-14 获得整相除的商和余 409 ∷相关函:div函 2.1.15 求ex 410 范例2-15 求ex 410 ∷相关函:exp函 2.1.16 获取浮点相除的余 411 范例2-16 获取浮点相除的余 411 ∷相关函:fmod函 2.1.17 获取浮点的尾和指 412 范例2-17 获取浮点的尾和指 412 ∷相关函:frexp函 2.1.18 求x2exponent 413 范例2-18 一维多项式求值 413 ∷相关函:ldexp函 2.1.19 求自然对 413 范例2-19 求自然对 413 ∷相关函:log 函 2.1.20 求lgx 414 范例2-20 求lgx 414 ∷相关函:log10函 2.1.21 获取浮点的整部分和小部分 415 范例2-21 第二类椭圆积分 415 ∷相关函:modf函 2.1.22 求xy 416 范例2-22 求xy 416 ∷相关函:pow函 2.1.23 求10x 417 范例2-23 求10x 417 ∷相关函:pow10函 2.1.24 获取随机 418 范例2-24 获取随机 418 ∷相关函:rand函 2.1.25 设置随机生成器初值 418 范例2-25 设置随机生成器初值 418 ∷相关函:srand函 2.1.26 获取最大值和最小值 419 范例2-26 获取最大值和最小值 419 ∷相关函:max函 min函 2.1.27 求直角三角形的斜边长 421 范例2-27 求直角三角形的斜边长 421 ∷相关函:hypot函 2.1.28 获取多项式的值 421 范例2-28 获取多项式的值 421 ∷相关函:poly函 2.2 多项式的计算 422 2.2.1 一维多项式求值 422 范例2-29 一维多项式求值 422 ∷相关函:polyval函 2.2.2 二维多项式求值 424 范例2-30 二维多项式求值 424 ∷相关函:tdpolyval函 2.2.3 复系一维多项式求值 425 范例2-31 复系一维多项式求值 425 ∷相关函:cppolyval函 2.2.4 多项式相乘 427 范例2-32 多项式相乘 427 ∷相关函:polymul函 2.2.5 复系多项式相乘 428 范例2-33 复系多项式相乘 428 ∷相关函:cppolymul函 2.2.6 多项式除法 430 范例2-34 多项式除法 430 ∷相关函:polydiv函 2.2.7 复多项式相除 432 范例2-35 复多项式相除 432 ∷相关函:cppolydiv函 2.3 复运算 435 2.3.1 复乘法 435 范例2-36 复乘法 435 ∷相关函:cpmul函 2.3.2 复除法 436 范例2-37 复除法 436 ∷相关函:cpdiv函 2.3.3 复乘幂 437 范例2-38 复乘幂 437 ∷相关函:cppower函 2.3.4 复的n次方根 439 范例2-39 复乘法 439 ∷相关函:cproot函 2.3.5 复 441 范例2-40 复 441 ∷相关函:polyval函 2.3.6 复 442 范例2-41 复 442 ∷相关函:cplog函 2.3.7 复正弦 443 范例2-42 复正弦 443 ∷相关函:cpsin函 2.3.8 复余弦 444 范例2-43 复余弦 444 ∷相关函:cpcos函 2.4 随机的产生 445 2.4.1 产生0~1之间均匀分布的随机 446 范例2-44 0~1之间均匀分布的随机 446 ∷相关函:edisrnd函 2.4.2 产生0~1之间均匀分布的随机序列 447 范例2-45 0~1之间均匀分布的随机序列 447 ∷相关函:edisrndsq函 2.4.3 产生任意区间内均匀分布的随机 448 范例2-46 产生任意区间内均匀分布的随机 448 ∷相关函:itervalrnd函 2.4.4 产生任意区间内均匀分布的随机序列 450 范例2-47 产生任意区间内均匀分布的随机序列 450 ∷相关函:itervalrndsq函 2.4.5 产生任意均值与方差的正态分布的随机 451 范例2-48 任意均值与方差的正态分布的随机 451 ∷相关函:nordisrnd函 2.4.6 产生任意均值与方差的正态分布的随机序列 453 范例2-49 任意均值与方差的正态分布随机序列 453 ∷相关函:nordisrndsq函 2.5 矩阵运算 454 2.5.1 实矩阵相乘 454 范例2-50 实矩阵相乘 454 ∷相关函:matrixmul函 2.5.2 复矩阵相乘 456 范例2-51 复矩阵相乘 456 ∷相关函:cpmatrixmul函 2.5.3 一般实矩阵求逆 458 范例2-52 一般实矩阵求逆 458 ∷相关函:matrix_inverse函 2.5.4 一般复矩阵求逆 462 范例2-53 一般复矩阵求逆 462 ∷相关函:multi_matrix_inverse函 2.5.5 对称正定矩阵的求逆 465 范例2-54 对称正定矩阵的求逆 465 ∷相关函:symmetric_positive_definite_matrix函 2.5.6 托伯利兹矩阵求逆的特兰持方法 467 范例2-55 托伯利兹矩阵求逆的特兰持方法 467 ∷相关函:toeplitz_inv函 2.5.7 求一般行列式的值 470 范例2-56 求一般行列式的值 470 ∷相关函:determinant_value函 2.5.8 求矩阵的秩 472 范例2-57 求矩阵的秩 472 ∷相关函:determinant_rank函 2.5.9 对称正定矩阵的乔里斯基分解与行列式求值 474 范例2-58 对称正定矩阵的乔里斯基分解 474 ∷相关函:cholesky_method函 2.5.10 矩阵的三角分解 476 范例2-59 矩阵的三角分解 476 ∷相关函:triangular_decomposition 2.5.11 一般实矩阵的QR分解 478 范例2-60 一般实矩阵的QR分解 478 ∷相关函:qr_decomposition 2.5.12 求广义逆的奇异值分解法 480 范例2-61 求广义逆的奇异值分解法 480 ∷相关函:singular_value_decomposition generalized_inverses函 2.6 矩阵特征值与特征向量的计算 489 2.6.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 489 范例2-62 约化对称矩阵为对称三对角阵 489 ∷相关函:Householder_method函 2.6.2 求对称三对角阵的全部特征值与特征向量 492 范例2-63 求对称三对角阵的全部特征值 492 ∷相关函:def_qr函 2.6.3 约化一般实矩阵为赫申伯格矩阵的初等相似变换法 496 范例2-64 约化实矩阵为赫申伯格矩阵 496 ∷相关函:trans_hessenbreg函 2.6.4 求赫申伯格矩阵全部特征值的QR方法 498 范例2-65 求赫申伯格矩阵全部特征值 498 ∷相关函:hessenbreg_qr函 2.6.5 求实对称矩阵特征值与特征向量的雅可比法 502 范例2-66 雅可比法求特征值与特征向量 502 ∷相关函:jacobi_method函 2.6.6 求实对称矩阵特征值与特征向量的雅可比过关法 505 范例2-67 雅可比过关法 505 ∷相关函:jacobi_clearance函 2.7 线方程组的求解 507 2.7.1 求解实系方程组的全选主元高斯消去法 508 范例2-68 全选主元高斯消去法 508 ∷相关函:gauss_elimination 2.7.2 求解实系方程组的全选主元高斯—约当消去法 510 范例2-69 全选主元高斯—约当消去法 510 ∷相关函:gauss_jordan_elimination 2.7.3 求解复系方程组的全选主元高斯消去法 513 范例2-70 求解复系方程组(方法一) 513 ∷相关函:plu_gauss函 2.7.4 求解复系方程组的全选主元高斯—约当消去法 516 范例2-71 求解复系方程组(方法二) 516 ∷相关函:plu_gauss_jordan函 2.7.5 求解三对角线方程组的追赶法 519 范例2-72 求解三对角线方程组的追赶法 519 ∷相关函:tridiagonal_chase函 2.7.6 求解一般带型方程组 521 范例2-73 求解一般带型方程组 521 ∷相关函:principal_gauss函 2.7.7 求解对称方程组的分解法 523 范例2-74 求解对称方程组的分解法 523 ∷相关函:equations_decomposition 2.7.8 求解对称正定方程组的平方根法 526 范例2-75 求解对称正定方程组的平方根法 526 ∷相关函:equations_square_root函 2.7.9 求解大型稀疏方程组 528 范例2-76 求解大型稀疏方程组 528 ∷相关函:sparse_gauss_jordan函 2.7.10 求解托伯利兹方程组的列文逊方法 531 范例2-77 求解托伯利兹方程组 531 ∷相关函:toeplitz_levinson函 2.7.11 高斯—赛德尔迭代法 533 范例2-78 高斯—赛德尔迭代法 533 ∷相关函:gauss_seidel_iteration 2.7.12 求解对称正定方程组的共轭梯度法 535 范例2-79 求解对称正定方程组的共轭梯度法 535 ∷相关函:conjugate_gradient_method函 2.7.13 求解线最小二乘问题的豪斯荷尔德变换法 537 范例2-80 求解线最小二乘问题 537 ∷相关函:least_square_householder函 2.7.14 求解线最小二乘问题的广义逆法 540 范例2-81 求解线最小二乘问题的广义逆法 540 ∷相关函:least_squares_reversion 2.7.15 求解病态方程组 549 范例2-82 求解病态方程组 549 ∷相关函:morbid_equations函 2.8 线方程与方程组的求解 553 2.8.1 求线方程一个实根的对分法 553 范例2-83 对分法 553 ∷相关函:nonlinear_dichotomy函 2.8.2 求线方程一个实根的牛顿法 555 范例2-84 牛顿法 555 ∷相关函:newton_iterative函 2.8.3 求线方程一个实根的埃特金迭代法 557 范例2-85 埃特金迭代法 557 ∷相关函:aitken_iterative函 2.8.4 求线方程一个实根的连分式法 558 范例2-86 连分式法 558 ∷相关函:continued_fraction 2.8.5 求实系方程全部根的QR方法 560 范例2-87 QR方法 560 ∷相关函:qr_all函 2.8.6 求实系方程全部根的牛顿下山法 563 范例2-88 求实系方程全部根的牛顿下山法 563 ∷相关函:newton_descent_all函 2.8.7 求复系方程全部根的牛顿下山法 568 范例2-89 求复系方程全部根的牛顿下山法 568 ∷相关函:newton_descent_complex函 2.8.8 求线方程组一组实根的梯度法 572 范例2-90 求线方程组一组实根的梯度法 572 ∷相关函:gradient_nonlinear函 2.8.9 求线方程组一组实根的拟牛顿法 574 范例2-91 求线方程组一组实根的拟牛顿法 574 ∷相关函:quasi_newton_nonlinear函 2.8.10 求线方程一个实根的蒙特卡洛法 577 范例2-92 求线方程的蒙特卡洛法 577 ∷相关函:monte_carlo_nonlinear函 2.8.11 求实函或复函方程一个复根的蒙特卡洛法 579 范例2-93 第二类椭圆积分 579 ∷相关函:monte_carlo_realplex函 2.8.12 求线方程组一组实根的蒙特卡洛法 581 范例2-94 第二类椭圆积分 581 ∷相关函:monte_carlo_equation 2.9 插值与逼近 583 2.9.1 一元全区间插值 583 范例2-95 一元全区间插值 583 ∷相关函:interpolation_total函 2.9.2 一元三点插值 585 范例2-96 一元三点插值 585 ∷相关函:interpolation_three函 2.9.3 连分式插值 586 范例2-97 连分式插值 586 ∷相关函:interpolation_continued函 2.9.4 埃尔米特插值 588 范例2-98 埃尔米特插值 588 ∷相关函:interpolation_hermite函 2.9.5 埃特金逐步插值 590 范例2-99 第二类椭圆积分 590 ∷相关函:interpolation_aitken函 2.9.6 光滑插值 592 范例2-100 光滑插值 592 ∷相关函:interpolation_akima函 2.9.7 第一种边界条件的三次样条函插值、微商与积分 595 范例2-101 第一种边界条件的三次样条函 595 ∷相关函:cubic_spline_first函 2.9.8 第二种边界条件的三次样条函插值、微商与积分 598 范例2-102 第二种边界条件的三次样条函 598 ∷相关函:cubic_spline_second函 2.9.9 第三种边界条件的三次样条函插值、微商与积分 600 范例2-103 第三种边界条件的三次样条函 600 ∷相关函:cubic_spline_third函 2.9.10 二元三点插值 604 范例2-104 二元三点插值 604 ∷相关函:interpolation_point函 2.9.11 二元全区间插值 606 范例2-105 二元全区间插值 606 ∷相关函:interpolation_total函 2.9.12 最小二乘曲线拟合 608 范例2-106 最小二乘曲线拟合 608 ∷相关函:least_squares_fitting函 2.9.13 切比雪夫曲线拟合 611 范例2-107 切比雪夫曲线拟合 611 ∷相关函:chebyshev_fitting函 2.9.14 最佳一致逼近的里米兹方法 614 范例2-108 最佳一致逼近的里米兹方法 614 ∷相关函:remez_method函 2.9.15 矩形域的最小二乘曲面拟合 616 范例2-109 矩形域的最小二乘曲面拟合 616 ∷相关函:rec_fitting函 2.10 值积分 621 2.10.1 变步长梯形求积法 621 范例2-110 变步长梯形求积法 621 ∷相关函:integration_ladder函 2.10.2 变步长辛卜生求积法 623 范例2-111 变步长辛卜生求积法 623 ∷相关函:integration_simpson函 2.10.3 自适应梯形求积法 624 范例2-112 自适应梯形求积法 624 ∷相关函:integration_self_adaptive函 2.10.4 龙贝格求积法 626 范例2-113 龙贝格求积法 626 ∷相关函:integration_romberg函 2.10.5 计算一维积分的连分式法 627 范例2-114 计算一维积分的连分式法 627 ∷相关函:continued_fractions函 2.10.6 高振荡函求积法 629 范例2-115 高振荡函求积法 629 ∷相关函:higher_oscillatory_integration 2.10.7 勒让德—高斯求积法 631 范例2-116 勒让德—高斯求积法 631 ∷相关函:legendre_gauss函 2.10.8 拉盖尔—高斯求积法 633 范例2-117 拉盖尔—高斯求积法 633 ∷相关函:laguerre_gauss函 2.10.9 埃尔米特—高斯求积法 634 范例2-118 埃尔米特—高斯求积法 634 ∷相关函:hermite_gauss函 2.10.10 切比雪夫求积法 635 范例2-119 切比雪夫求积法 635 ∷相关函:chebyshev函 2.10.11 计算一维积分的蒙特卡洛法 637 范例2-120 计算一维积分的蒙特卡洛法 637 ∷相关函:monte_carlo函 2.10.12 变步长辛卜生二重积分法 638 范例2-121 变步长辛卜生二重积分法 638 ∷相关函:simpson函 2.10.13 计算多重积分的高斯方法 640 范例2-122 计算多重积分的高斯方法 640 ∷相关函:gauss函 2.10.14 计算二重积分的连分式法 643 范例2-123 计算二重积分的连分式法 643 ∷相关函:continued_fractions_dual函 2.10.15 计算多重积分的蒙特卡洛法 645 范例2-124 计算多重积分的蒙特卡洛法 645 ∷相关函:monte_carlo_multi函 2.11 常微分方程组的求解 647 2.11.1 全区间积分的定步长欧拉方法 647 范例2-125 全区间积分的定步长欧拉方法 647 ∷相关函:euler_step函.. 2.11.2 积分一步的变步长欧拉方法 649 范例2-126 积分一步的变步长欧拉方法 649 ∷相关函:euler_variable函 2.11.3 全区间积分的维梯方法 651 范例2-127 全区间积分的维梯方法 651 ∷相关函:witty函 2.11.4 全区间积分的定步长龙格—库塔方法 653 范例2-128 全区间积分的定步长龙格—库塔方法实例位置 653 ∷相关函:runge_kutta函 2.11.5 积分一步的变步长龙格—库塔方法 655 范例2-129 积分一步的变步长龙格—库塔方法实例位置 655 ∷相关函:runge_kutta_steps函 2.11.6 积分一步的变步长基尔方法 657 范例2-130 积分一步的变步长基尔方法 657 ∷相关函:gill函 2.11.7 全区间积分的变步长默森方法 659 范例2-131 全区间积分的变步长默森方法 659 ∷相关函:merson函 2.11.8 积分一步的连分式法 662 范例2-132 积分一步的连分式法 662 ∷相关函:continued_step函 2.11.9 全区间积分的双边法 665 范例2-133 全区间积分的双边法 665 ∷相关函:bilateral函 2.11.10 全区间积分的阿当姆斯预报校正法 668 范例2-134 阿当姆斯预报校正法 668 ∷相关函:adams函 2.11.11 全区间积分的哈明方法 671 范例2-135 全区间积分的哈明方法 671 ∷相关函:hamming函 2.11.12 积分一步的特雷纳方法 675 范例2-136 积分一步的特雷纳方法 675 ∷相关函:treanor函 2.11.13 二阶微分方程边值问题的值解法 678 范例2-137 二阶微分方程边值问题的值解法 678 ∷相关函:finite_difference函 2.12 据处理与回归分析 680 2.12.1 随机样本分析 680 范例2-138 随机样本分析 680 ∷相关函:rndsplanalysis函 2.12.2 一元线回归分析 683 范例2-139 一元线回归分析 683 ∷相关函:liregression 2.12.3 多元线回归分析 685 范例2-140 多元线回归分析 685 ∷相关函:mulliregression 2.12.4 半对据相关 688 范例2-141 半对据相关 688 ∷相关函:fittinglogt函 2.12.5 对据相关 690 范例2-142 对据相关 690 ∷相关函:fittingln函 2.13 极值问题的求解 691 2.13.1 一维极值连分式法 691 范例2-143 一维极值连分式法 691 ∷相关函:extremum函 2.13.2 n维极值连分式法 693 范例2-144 n维极值连分式法 693 ∷相关函:nextremum函 2.13.3 不等式约束线规划问题 696 范例2-145 不等式约束线规划问题 696 ∷相关函:linearprogram函 2.14 学变换与滤波 700 2.14.1 傅里叶级逼近 700 范例2-146 傅里叶级逼近 700 ∷相关函:seriesfour函 2.14.2 快速傅里叶变换 702 范例2-147 快速傅里叶变换 702 ∷相关函:quickfft函 2.14.3 快速沃什变换 705 范例2-148 快速沃什变换 705 ∷相关函:quickfwt函 2.14.4 五点三次平滑 706 范例2-149 五点三次平滑 706 ∷相关函:smoothness函 2.14.5 卡尔曼滤波 708 范例2-150 卡尔曼滤波 708 ∷相关函:kalfilter函 2.14.6 α-β-γ滤波 713 范例2-151 α-β-γ滤波 713 ∷相关函:alphabgfilter函 2.15 特殊函 714 2.15.1 Gamma函 715 范例2-152 Gamma函 715 ∷相关函:Gamma函 2.15.2 不完全Gamma函 716 范例2-153 不完全Gamma函 716 ∷相关函:incomgam函 2.15.3 误差函 719 范例2-154 误差函 719 ∷相关函:errorfun函 2.15.4 第一类整Bessel函 721 范例2-155 第一类整Bessel函 721 ∷相关函:bessel1函 2.15.5 第二类整Bessel函 724 范例2-156 第二类整Bessel函 724 ∷相关函:bessel2函 2.15.6 变形第一类整Bessel函 727 范例2-157 变形第二类整Bessel函 727 ∷相关函:varbessel1函 2.15.7 变形第二类整Bessel函 729 范例2-158 变形第二类整Bessel函 729 ∷相关函:varbessel2函 2.15.8 不完全Beta函 734 范例2-159 不完全Beta函 734 ∷相关函:beta函 2.15.9 正态分布函 736 范例2-160 正态分布函 736 ∷相关函:gauss函 2.15.10 t-分布函 739 范例2-161 t-分布函 739 ∷相关函:tdistribution 2.15.11 2-分布函 742 范例2-162 2-分布函 742 ∷相关函:xdistribution 2.15.12 F-分布函 744 范例2-163 F-分布函 744 ∷相关函:fdistribution 2.15.13 正弦积分 747 范例2-164 正弦积分 747 ∷相关函:sinintegral函 2.15.14 余弦积分 749 范例2-165 余弦积分 749 ∷相关函:cosintegral函 2.15.15 指积分 750 范例2-166 指积分 750 ∷相关函:expintegral函 2.15.16 第一类椭圆积分 752 范例2-167 第一类椭圆积分 752 ∷相关函:ellipseintegral1函 2.15.17 第二类椭圆积分 754 范例2-168 第二类椭圆积分 754 ∷相关函:ellipseintegral2函 2.16 本章小结 756 第3章 图形图像处理 757 3.1 字符屏幕 758 3.1.1 文本的输入与输出 758 范例3-1 文本的输入与输出 758 ∷相关函:printf函 scanf函 3.1.2 outtext、outtextxy函输出 759 范例3-2 outtext, outtextxy函输出 759 ∷相关函:outtext函 outtextxy函 3.1.3 设置文本格式 761 范例3-3 设置文本格式 761 ∷相关函:settextstyle函 3.1.4 设置图形文本排列方式 763 范例3-4 设置图形文本排列方式 763 ∷相关函:settextjustify函 3.1.5 设置用户字符比例 765 范例3-5 设置用户字符比例 765 ∷相关函:setusercharsize函 3.1.6 控制文本的明暗度 766 范例3-6 控制文本的明暗度 766 ∷相关函:highvideo函 normvideo函 lowvideo函 3.1.7 设置文本的前景色和背景色 767 范例3-7 设置文本的前景色和背景色 767 ∷相关函:textcolor函 textbackground函 3.1.8 字符窗口 770 范例3-8 字符窗口 770 ∷相关函:clrscr函 window函 gotoxy函 3.1.9 清除光标行尾字符 772 范例3-9 清除光标行尾字符 772 ∷相关函:clreol函 3.1.10 插入与删除行 773 范例3-10 插入与删除行 773 ∷相关函:insline函 delline函 3.1.11 屏幕参检测 774 范例3-11 屏幕参检测 774 ∷相关函:getgraphmode函 getmaxx函 getmaxy函 getmaxcolor函 cleardevice函 3.2 图形图像处理基础 777 3.2.1 绘制像素点 777 范例3-12 绘制像素点 777 ∷相关函:putpixel函 3.2.2 绘制直线 778 范例3-13 绘制直线 778 ∷相关函:line函 lineto函 linerel函 moveto函 moverel函 3.2.3 绘制矩形 780 范例3-14 绘制矩形 780 ∷相关函:rectangle函 3.2.4 绘制多边形 781 范例3-15 绘制多边形 781 ∷相关函:drawpoly函 3.2.5 绘制圆 783 范例3-16 绘制圆 783 ∷相关函:circle函 3.2.6 绘制椭圆 784 范例3-17 绘制椭圆 784 ∷相关函:ellipse函 fillellipse函 3.2.7 绘制圆弧 786 范例3-18 绘制圆弧 786 ∷相关函:arc函 3.2.8 绘制扇区 787 范例3-19 绘制扇区 787 ∷相关函:pieslice函 sector函 3.2.9 绘制条块 788 范例3-20 绘制条块 788 ∷相关函:bar函 bar3d函 3.2.10 图设置线型 790 范例3-21 设置线型 790 ∷相关函:Setlinestyle函 3.2.11 绘制填充矩形 792 范例3-22 绘制填充矩形 792 ∷相关函:setfillstyle函 floodfill函 3.2.12 填充多边形 795 范例3-23 填充多边形 795 ∷相关函:fillpoly函 3.2.14 设置用户图样 796 范例3-24 设置用户图样 796 ∷相关函:setfillpattern函 3.3 图形图像处理进阶 798 3.3.1 绘制彩色点云 798 范例3-25 绘制彩色点云 798 ∷相关函:rand函 kbhit函 3.3.2 绘制正多边形 799 范例3-26 绘制正多边形 799 ∷相关函:sin函 cos函 3.3.3 图形法绘制圆 801 范例3-27 图形法绘制圆 801 ∷相关函:drawCircle函 3.3.4 图形法绘制椭圆 803 范例3-28 图形法绘制椭圆 803 ∷相关函:ellipse1函 3.3.5 绘制正弦曲线 805 范例3-29 绘制正弦曲线 805 ∷相关函:lineto函 3.3.6 绘制抛物样条曲线 806 范例3-30 绘制抛物样条曲线 806 ∷相关函:parspl函 marking函 3.3.7 绘制布朗曲线 809 范例3-31 绘制布朗曲线 809 ∷相关函:CreateFractalImage函 Gauss函 3.3.8 动态绘制256色线条 811 范例3-32 动态绘制256色线条 811 ∷相关函:int86函 3.3.9 三原色亮度渐变 813 范例3-33 三原色亮度渐变 813 ∷相关函:geninterrupt函 3.3.10 三视图模拟 815 范例3-34 三视图模拟 815 ∷相关函:front_view函 top_view函 left_view函 perspective_view函 3.3.11 空间椭球模拟 817 范例3-35 空间椭球模拟 817 ∷相关函:trans函 draw函 3.3.12 百叶窗效果 820 范例3-36 百叶窗效果 820 ∷相关函:putpoint函 3.3.13 视觉欺骗 822 范例3-37 视觉欺骗 822 ∷相关函:dot函 circ函 bulb函 3.3.14 三维建筑物 824 范例3-38 三维建筑物 824 ∷相关函:liner函 rightlead函 leftlead函 shadow函 identifier函 3.4 组合图案绘制 830 3.4.1 一箭穿心图案 830 范例3-39 重新打开文件流 830 ∷相关函:draw函 arrow函 3.4.2 六叶图案 832 范例3-40 六叶图案 832 ∷相关函:arc函 3.4.3 花瓣形图案 833 范例3-41 花瓣形图案 833 ∷相关函:line函 3.4.4 雪花图案 835 范例3-42 雪花图案 835 ∷相关函:setviewport函 3.4.5 布艺图案 837 范例3-43 布艺图案 837 ∷相关函:fractal函 3.4.6 飘带图案 838 范例3-44 飘带图案 838 ∷相关函:line函 3.4.7 金刚石图案 840 范例3-45 金刚石图案 840 ∷相关函:line函 3.4.8 圆环图案 841 范例3-46 圆环图案 841 ∷相关函:circles函 3.4.9 肾型图案 843 范例3-47 肾型图案 843 ∷相关函:circle函 3.4.10 心脏型图案 844 范例3-48 心脏型图案 844 ∷相关函:circle函 3.4.11 鱼网图案 846 范例3-49 重新打开文件流 846 ∷相关函:arc函 3.4.12 沙丘图案 848 范例3-50 沙丘图案 848 ∷相关函:lineto函 3.4.13 正六边形螺旋图案 849 范例3-51 正六边形螺旋图案 849 ∷相关函:polygonc函 3.4.14 正方形螺旋拼块图案 851 范例3-52 正方形螺旋拼块图案 851 ∷相关函:polygonc函 block函 3.4.15 递归法绘制三角形图案 853 范例3-53 递归法绘制三角形图案 853 ∷相关函:elli函 3.4.16 玫瑰图案 855 范例3-54 玫瑰图案 855 ∷相关函:elli函 draw函 3.4.17 天空图案 859 范例3-55 天空图案 859 ∷相关函:int86函 3.4.18 Mandelbrot分形图案 864 范例3-56 Mandelbrot分形图案 864 ∷相关函:mandelbrot函 iterate函 3.5 窗体界面与报表设计 866 3.5.1 窗体设计 866 范例3-57 窗体设计 866 ∷相关函:mainform函 windowborder函 controls函 3.5.2 简单菜单设计 871 范例3-58 简单菜单设计 871 ∷相关函:initm函 showItems函 process 函 process3函 process1函 3.5.3 制作表格 877 范例3-59 制作表格 877 ∷相关函:putpixel函 3.5.4 折线图 878 范例3-60 折线图 878 ∷相关函:itoa函 settextjustify函 3.5.5 饼状图 880 范例3-61 饼状图 880 ∷相关函:pieslice函 3.5.6 柱状图 881 范例3-62 柱状图 881 ∷相关函:Funscore函 Drowxy 函 Fundrow函 3.6 动画制作 884 3.6.1 旋转的立体椭球 884 范例3-63 旋转的立体椭球 884 ∷相关函:setactivepage函 setvisualpage函 3.6.2 小球碰撞演示 887 范例3-64 小球碰撞演示 887 ∷相关函:imagsize函 getimage函 putimage函 3.6.3 飘动的旗帜 889 范例3-65 飘动的旗帜 889 ∷相关函:hor_wave_line函 ver_wave_line函 3.6.4 行驶中的小车 891 范例3-66 行驶中的小车 891 ∷相关函:imagsize函 getimage函 putimage函 3.6.5 不停动嘴巴的头 893 范例3-67 不停动嘴巴的头 893 ∷相关函:getaspectratio函 setaspectratio函 setactivepage函 setvisualpage函 3.6.6 旋转的太极图 898 范例3-68 旋转的太极图 898 ∷相关函:getpalette函 sector函 3.6.7 螺旋运动的圆斑 901 范例3-69 螺旋运动的圆斑 901 ∷相关函:drawgoal函 3.6.8 闪动的彩色圆斑 903 范例3-70 闪动的彩色圆斑 903 ∷相关函:drawgoal函 3.6.9 奔跑的小人 904 范例3-71 奔跑的小人 904 ∷相关函:line函 circle函 3.6.10 发射火箭 907 范例3-72 发射火箭 907 ∷相关函:DrawStar函 DrawGun函 DrawPlan函 3.6.11 擦玻璃 911 范例3-73 擦玻璃 911 ∷相关函:pieslice函 bioskey函 3.6.12 流星球 914 范例3-74 流星球 914 ∷相关函:getimage函 putimage函 3.6.13 简单时钟 916 范例3-75 简单时钟 916 ∷相关函:gettime函 3.6.14 立体时钟 918 范例3-76 立体时钟 918 ∷相关函:time函 3.6.15 飘雪 920 范例3-77 飘雪 920 ∷相关函:DrawSnow函 Pr函 3.6.16 制作火焰 923 范例3-78 制作火焰 923 ∷相关函:outportb函 pokeb函 3.6.17 天体系统 926 范例3-79 天体系统 926 ∷相关函:init_start函 roll函 3.6.18 扇动翅膀的蝴蝶 935 范例3-80 扇动翅膀的蝴蝶 935 ∷相关函:putpixel函 3.6.19 米奇 936 范例3-81 重新打开文件流 936 ∷相关函:imagsize函 getimage函 putimage函 3.7 本章小结 940 第4章 磁盘、目录和文件的操作 941 4.1 磁盘的操作 942 4.1.1 获取当前盘驱动器 942 范例4-1 获取当前盘驱动器 942 ∷相关函:getdisk函 4.1.2 设置当前驱动器 943 范例4-2 设置当前驱动器 943 ∷相关函:setdisk函 4.1.3 获取磁盘的可用空间 945 范例4-3 获取磁盘的可用空间 945 ∷相关函:getdfree函 4.1.4 测试软驱是否可用 946 范例4-4 测试软驱是否可用 946 ∷相关函:biosdisk函 4.2 目录的操作 948 4.2.1 创建目录 948 范例4-5 创建目录 948 ∷相关函:mkdir函 4.2.2 改变当前目录 950 范例4-6 改变当前目录 950 ∷相关函:chdir函 4.2.3 删除目录 952 范例4-7 删除目录 952 ∷相关函:rmdir函 4.3 文件的操作 953 4.3.1 用fopen函打开文件 953 范例4-8 用fopen函打开文件 953 ∷相关函:fopen函 4.3.2 打开系统temp目录中的文件 955 范例4-9 打开系统temp目录中的文件 955 ∷相关函:getenv函 4.3.2 使用低级函打开和关闭文件 957 范例4-10 使用低级函打开和关闭文件 957 ∷相关函:open函 close函 4.3.3 用fclose函关闭文件 959 范例4-11 用fclose函关闭文件 959 ∷相关函:fclose函 4.3.4 一次关闭所有被打开的文件 961 范例4-12 一次关闭所有被打开的文件 961 ∷相关函:fcloseall函 4.3.5 以字符为单位读写文件 963 范例4-13 以字符为单位读写文件 963 ∷相关函:fgetc函 fputc函 4.3.6 以字为单位读写文件 965 范例4-14 以字为单位读写文件 965 ∷相关函:getw函 putw函 4.3.7 以低级的方式读写文件 967 范例4-15 以低级的方式读写文件 967 ∷相关函:read函 write函 4.3.8 按结构读写文件 969 范例4-16 按结构读写文件 969 ∷相关函:read函 write函 4.3.9 格式化写文件 971 范例4-17 格式化写文件 971 ∷相关函:fprintf函 4.3.10 格式化读文件 972 范例4-18 格式化读文件 972 ∷相关函:fscanf函 4.3.11 以行为单位写文件 974 范例4-19 以行为单位写文件 974 ∷相关函:fputs函 4.3.12 以行为单位读文件 975 范例4-20 以行为单位读文件 975 ∷相关函:fgets函 4.3.13 将缓冲区内容写入文件 977 范例4-21 将缓冲区内容写入文件 977 ∷相关函:setbuf函 4.3.14 用lseek函定位文件指针 978 范例4-22 用lseek函定位文件指针 978 ∷相关函:lseek函 4.3.15 获取文件流的文件句柄 980 范例4-23 获取文件流的文件句柄 980 ∷相关函:fileno函 4.3.16 从文件流指针中导出文件句柄 982 范例4-24 从文件流指针中导出文件句柄 982 ∷相关函:fopen函 4.3.17 利用eof函判断文件是否结束 984 范例4-25 利用eof函判断文件是否结束 984 ∷相关函:eof函 4.3.18 利用feof函判断文件结尾 986 范例4-26 利用feof函判断文件结尾 986 ∷相关函:feof函 4.3.19 刷新I/O流 988 范例4-27 刷新I/O流 988 ∷相关函:fflush函 4.3.20 利用tmpnam函创建临时文件名 990 范例4-28 利用tmpnam函创建临时文件名 990 ∷相关函:tmpnam函 4.3.21 创建真正的临时文件 992 范例4-29 创建真正的临时文件 992 ∷相关函:tmpfile函 4.3.22 创建文件 993 范例4-30 创建文件 993 ∷相关函:creat函 4.3.23 在指定目录中创建唯一文件 995 范例4-31 在指定目录中创建唯一文件 995 ∷相关函:creattemp函 4.3.24 利用creatnew函创建新文件 996 范例4-32 利用creatnew函创建新文件 996 ∷相关函:creatnew函 4.3.25 删除文件 998 范例4-33 删除文件 998 ∷相关函:remove函 4.3.26 查找文件获取文件的路径 1000 范例4-34 查找文件获取文件的路径 1000 ∷相关函:searchpath函 4.3.27 分解文件路径 1001 范例4-35 分解文件路径 1001 ∷相关函:fnsplit函 4.3.28 建立文件完全路径名 1003 范例4-36 建立文件完全路径名 1003 ∷相关函:fnmerge 函 4.3.29 读取文件分配表信息 1005 范例4-37 读取文件分配表信息 1005 ∷相关函:getfat函 getfatd函 4.3.30 判断读写所在的文件的位置 1007 范例4-38 判断读写所在的文件的位置 1007 ∷相关函:ftell函 4.3.31 重命名文件 1009 范例4-39 重命名文件 1009 ∷相关函:rename函 4.3.32 判断访问文件的模式 1011 范例4-40 判断访问文件的模式 1011 ∷相关函:access函 4.3.34 设置文件访问模式 1013 范例4-41 设置文件访问模式 1013 ∷相关函:chmod函 4.3.35 显示文件的属 1015 范例4-42 显示文件的属 1015 ∷相关函:_chmod函 4.3.36 检测文件流的错误 1017 范例4-43 检测文件流的错误 1017 ∷相关函:ferror函 4.3.37 判断文件的长度 1019 范例4-44 判断文件的长度 1019 ∷相关函:filelength函 4.3.38 通过句柄设置打开文件的方式 1022 范例4-45 通过句柄设置打开文件的方式 1022 ∷相关函:setmode函 4.3.39 读取文件的时间和日期标记 1023 范例4-46 读取文件的时间和日期标记 1023 ∷相关函:getftime函 4.3.40 设置文件的时间和日期标记 1026 范例4-47 设置文件的时间和日期标记 1026 ∷相关函:setftimet函 4.3.41 改变文件的长度 1028 范例4-48 改变文件的长度 1028 ∷相关函:chsize函 4.3.42 控制文件打开操作的读写模式 1029 范例4-49 控制文件打开操作的读写模式 1029 ∷相关函:umask函 4.3.43 复制文件句柄 1032 范例4-50 复制文件句柄 1032 ∷相关函:dup函 4.3.44 强制复制文件句柄 1033 范例4-51 强制复制文件句柄 1033 ∷相关函:dup2函 4.3.45 用句柄判断读写所在的文件的位置 1036 范例4-52 用句柄判断当前文件指针的位置 1036 ∷相关函:tell函 4.3.46 根据当前位置定位文件指针 1038 范例4-53 根据当前位置定位文件指针 1038 ∷相关函:fseek函 4.3.47 获取文件句柄的信息 1039 范例4-54 获取文件句柄的信息 1039 ∷相关函:fstat函 4.3.48 重新打开文件流 1041 范例4-55 重新打开文件流 1041 ∷相关函:freopen函 4.4 本章小结 1043 第5章 系统调用 1045 5.1 时间和日期的操作 1046 5.1.1 获取当前的时间和日期 1046 范例5-1 获取当前时间和日期 1046 ∷相关函:time函 5.1.2 让程序延时指定的时间段 1047 范例5-2 让程序延时指定的时间段 1047 ∷相关函:delay函 5.1.3 比较两个时间 1048 范例5-3 比较两个时间 1048 ∷相关函:difftime函 5.1.4 读BIOS计时器 1050 范例5-4 读BIOS计时器 1050 ∷相关函:biostime函 5.1.5 比较两个时间获取当地时间 1051 范例5-5 获取当地时间 1051 ∷相关函:localtime函 5.1.6 获取格林威治平时 1052 范例5-6 获取格林威治平时 1052 ∷相关函:gmtime函 5.1.7 获取DOS系统时间 1054 范例5-7 获取DOS系统时间 1054 ∷相关函:gettime函 5.1.8 获取DOS系统日期 1055 范例5-8 获取DOS系统日期 1055 ∷相关函:getdate函 5.1.9 设置DOS系统时间 1057 范例5-9 设置DOS系统时间 1057 ∷相关函:settime函 5.1.10 设置DOS系统日期 1059 范例5-10 设置DOS系统日期 1059 ∷相关函:setdate函 5.1.11 获取时区信息 1061 范例5-11 获取时区信息 1061 ∷相关函:ftime函 5.2 BIOS的操作 1062 5.2.1 利用BIOS获取打印机的状态 1062 范例5-12 利用BIOS获取打印机的状态 1062 ∷相关函:biosprint函 5.2.2 获取Ctrl+Break信息 1064 范例5-13 获取CTRL+BREAK信息 1064 ∷相关函:getcbrk函 5.2.3 暂时挂起程序 1066 范例5-14 暂时挂起程序 1066 ∷相关函:sleep函 5.2.4 控制声音 1067 范例5-15 控制声音 1067 5.2.5 利用bdos函访问DOS服务 1068 范例5-16 利用bdos函访问DOS服务 1068 ∷相关函:bdos函 5.2.6 获取BIOS常规内存量 1071 范例5-17 获取BIOS常规内存量 1071 ∷相关函:biosmemory函 5.2.7 获取寄存器设置信息 1072 范例5-18 获取寄存器设置信息 1072 ∷相关函:segread函 5.3 内存的操作 1074 5.3.1 给内存区域赋值 1074 范例5-19 给内存区域赋值 1074 ∷相关函:memset函 5.3.2 获取时区信息复制内存区域 1076 范例5-20 复制内存区域 1076 5.3.3 复制内存区域指定的字节 1078 范例5-21 复制内存区域指定的字节 1078 ∷相关函:memccpy函 5.3.4 获取时区信息 1080 范例5-22 比较两个无符号字符组 1080 5.3.5 交换字符串的两个相邻字节内容 1082 范例5-23 交换字符串的两个相邻字节内容 1082 ∷相关函:swab函 5.3.6 利用brk函改变堆的大小 1084 范例5-24 利用brk函改变堆的大小 1084 ∷相关函:brk函 5.3.7 获取指定内存单元内容 1086 范例5-25 获取指定内存单元内容 1086 5.3.8 设置指定内存单元内容 1088 范例5-26 设置指定内存单元内容 1088 5.4 本章小结 1090
实用学手册以高等学为主,注重应用,内容分为三部分:初等学(3章),基础学(11章),应用学(14章)。本手册的特点是:内容比较全面而又突出重点,不庞杂;文字简明准确但又不是公式堆砌;除学基础理论外,还收入各种应用领域的常用的学工具和方法,如理统计、数值分析、最优化理论与方法、有限元方法、运筹学、图论、信息论等;注意编排技巧,并附有便于读者检索的比较详尽的索引。 近年来,学的应用领域越来越广泛,广大科技工作者、工程技术人员以及理工科大学生迫切需要一本内容简明、准确可靠、注重应用的中小型学手册。本手册就是为这个目的编写的。 本手册可供广大科技工作者、工程技术人员以及理工科大学生查阅参考。 目录 Ⅰ 初等学 第一章 代学 1·1 代运算 1·2 列 1·3 排列、组合与二项式定理 1·4 一元多项式 1·5 二阶、三阶行列式与代方程 第二章 几何学 2·1 平面几何学 2·2 立体几何学 2·3 证题法概述 第三章 三角学 3·1 平面三角 3·2 球面三角 Ⅱ 基础学 第四章 解析几何学 4·1 笛卡儿直角坐标系 4·2 曲线方程与曲面方程 4·3 平面上的直线 4·4 二次曲线 4·5 常用的平面曲线 4·6 平面、空间中的直线 4·7 二次曲面 第五章 线学 5·1 行列式 5·2 矩阵 5·3 线方程组 5·4 线空间 5·5 线变换 5·6 若尔当标准形 5·7 二次型 5·8 欧几里得空间 第六章 微积分学 6·1 分析基础 6·2 微分学 6·3 微分学的应用 6·4 不定积分 6·5 定积分 6·6 重积分 6·7 定积分与重积分的应用 6·8 斯蒂尔杰斯积分 6·9 曲线积分与曲面积分 6·10 级 6·11 广义积分 6·12 含参变量积分 第七章 复变函论 7·1 复平面 7·2 复变函 7·3 全纯函.柯西-黎曼方程 7·4 初等复函 7·5 复积分.柯西积分定理与柯西积分公式 7·6 全纯函的级表示 7·7 孤立奇点与留 7·8 亚纯函.整函 7·9 解析开拓 7·10 保角映射 7·11 解析函在解平面狄利克雷问题中的应用 7·12 解析函在流体力学中的应用 7·13 解析函在电磁学与热学中的应用 7·14 解析函在平面弹理论中的应用 第八章 常微分方程论 8·1 一般概念 8·2 一阶微分方程 8·3 高阶微分方程 8·4 高阶线微分方程 8·5 二阶微分方程 8·6 线微分方程组 8·7 定理论与稳定理论初步 8·8 微分方程在力学、电学中的应用 第九章 偏微分方程论 9·1 一般概念 9·2 一阶偏微分方程 9·3 一阶线偏微分方程组 9·4 二阶线偏微分方程的分类 9·5 三类曲型的二阶线偏微分方程 9·6 偏微分方程的分离变量法 9·7 拉普拉斯方程的格林函法 9·8 拉普拉斯方程的位势方法 9·9 偏微分方程的积分变换法 9·10 δ函和基本解 9·11 定解问题的适定 9·12 偏微分方程的差分解法 第十章 微分几何学 10·1 平面曲线 10·2 空间曲线 10·3 曲面的参表示 10·4 曲面的第一、第二基本形式 10·5 曲面上的曲率 10·6 曲面的球面表示.第三基本形式 10·7 直纹曲面.可展曲面 10·8 曲面论的基本定理 10·9 测地曲率.测地线 10·10 曲面上向量的平行移动 10·11 曲面的一些整体质 第十一章 积分方程论 11·1 一般概念 11·2 弗雷德霍姆定理 11·3 退化核的积分方程 11·4 逐次逼近法.叠核和预解核 11·5 对于任何λ的弗雷德霍姆方程 11·6 对称核 11·7 K(x,t)/|x-t|型无界核.奇异积分方程 11·8 沃尔泰拉方程 11·9 积分方程的近似解法 第十二章 变分法 12·1 一般概念 12·2 固定边界的变分问题 12·3 泛函极值的充分条件 12·4 可动边界的变分问题 12·5 条件变分问题 12·6 变分问题的直接法 12·7 力学中的变分原理 第十三章 概率论 13·1 基本概念 13·2 一维随机变量及其分布 13·3 多维随机变量及其分布 13·4 一维随机变量的学特征 13·5 随机向量的字特征 13·6 母函与特征函 13·7 常用分布简表 13·8 极限定理 附录 第十四章 纯粹学选题 14·1 集论 14·2 代结构 14·3 一般拓扑学 14·4 勒贝格积分 14·5 泛函分析 14·6 微分流形 Ⅲ 应用学 第十五章 向量分析.张量分析 15·1 向量代 15·2 向量函的微积分 15·3 量场 15·4 向量场 15·5 场论中的量在正交曲线坐标系中的表示式 15·6 向量分析在运动学中的应用 15·7 向量分析在动力学中的应用 15·8 向量分析在电磁学中的应用 15·9 张量 15·10 共变微分 15·11 黎曼空间中的张量分析 15·12 张量分析在离散质点系力学中的应用 15·13 张量分析在连续介质力学中的应用 15·14 张量分析在相对论中的应用 第十六章 积分变换 16·1 傅里叶积分与傅里叶变换 16·2 傅里叶正弦变换与傅里叶余弦变换 16·3 傅里叶核 16·4 有限傅里叶变换 16·5 离散傅里叶变换 16·6 快速傅里叶变换 16·7 拉普拉斯变换 16·8 汉克尔变换.有限汉克尔变换 16·9 梅林变换.希尔伯特变换 16·10 积分变换简表 第十七章 特殊函 17·1 Γ函 17·2 B函 17·3 误差函.菲涅耳积分 17·4 指积分.对积分.正弦积分.余弦积分 17·5 勒让德函.勒让德多项式 17·6 贝塞尔函 17·7 埃尔米特函与埃尔米特多项式 17·8 拉盖尔函与拉盖尔多项式 17·9 切比雪夫多项式 17·10 超几何函 17·11 合流超几何函 17·12 椭圆积分与椭圆函 第十八章 数值分析 18·1 误差和有效字 18·2 插值法 18·3 值逼近 18·4 值微分 18·5 值积分 18·6 常微分方程的值解法 18·7 方程的近似解 18·8 解线方程组的直接方法 18·9 解线方程组的迭代法 18·10 矩阵的特征值与特征向量计算 第十九章 组合论 19·1 生成函 19·2 复合函的高阶导 19·3 斯特林与拉赫 19·4 伯努利与贝尔 19·5 伯努利多项式.贝尔多项式.求和公式 19·6 反演公式 19·7 容斥原理 19·8 递归关系 19·9 (0,1)矩阵 19·10 线秩和项秩 第二十章 图论 20·1 基本概念 20·2 通路与回路 20·3 E图与H图 20·4 树与割集 20·5 图的矩阵表示 20·6 平面图 20·7 网络流 第二十一章 随机过程论 21·1 随机过程的概念 21·2 马尔科夫过程 21·3 平稳随机过程 第二十二章 理统计 22·1 抽样分布 22·2 参估计 22·3 假设检验 22·4 线模型 第二十三章 运筹学 23·1 排队论 23·2 决策论 23·3 对策论 23·4 存贮论 第二十四章 控制理论 24·1 基本概念 24·2 线状态方程的解 24·3 线系统的完全能控与完全能观测 24·4 动态规划方法 24·5 最小值原理 24·6 随机系统的最优控制 第二十五章 最优化方法 25·1 线规划 25·2 线规划 第二十六章 有限元方法 26·1 用有限元方法解题的过程 26·2 插值与基函 26·3 板的弯曲问题 26·4 定常问题的有限元解法 第二十七章 计算机基本知识 27·1 电子计算机原理 27·2 计算机语言 27·3 据结构 27·4 编译原理 27·5 操作系统 27·6 据库 27·7 软件工程学 第二十八章 信息论 28·1 信源和信息熵 28·2 信道与信道容量 学家译名表 索引
资源简介 第1章 据结构. 1 1.1 组和字符串 2 1.1.1 一维组的倒置 2 范例1-1 一维组的倒置 2 ∷相关函:fun函 1.1.2 一维组应用 3 范例1-2 一维组应用 3 1.1.3 一维组的高级应用 5 范例1-3 一维组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函:c函 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维组的表示 14 范例1-6 三维组的表示 14 ∷相关函:InitArray函 1.1.7 多项式的组表示 17 范例1-7 多项式组的表示 17 1.1.8 查找矩阵的马鞍点 19 范例1-8 查找矩阵的马鞍点 19 ∷相关函:Get_Saddle函 1.1.9 对角矩阵建立 21 范例1-9 对角矩阵建立 21 ∷相关函:Store函 1.1.10 三对角矩阵的建立 22 范例1-10 三对角矩阵的建立 22 ∷相关函:Store函 1.1.11 三角矩阵建立 24 范例1-11 三角矩阵建立 24 ∷相关函:Store函 1.1.12 对称矩阵的建立 25 范例1-12 对称矩阵的建立 25 ∷相关函:store函 1.1.13 字符串长度的计算 28 范例1-13 字符串长度的计算 28 ∷相关函:strlen函 1.1.14 字符串的复制 29 范例1-14 字符串的复制 29 ∷相关函:strcpy函 1.1.15 字符串的替换 31 范例1-15 字符串的替换 31 ∷相关函:strrep函 1.1.16 字符串的删除 33 范例1-16 字符串的删除 33 ∷相关函:strdel函 1.1.17 字符串的比较 35 范例1-17 字符串的比较 35 ∷相关函:strcmp函 1.1.18 字符串的抽取 36 范例1-18 字符串的抽取 36 ∷相关函:substr函 1.1.19 字符串的分割 38 范例1-19 字符串的分割 38 ∷相关函:partition 1.1.20 字符串的插入 40 范例1-20 字符串的插入 40 ∷相关函:insert函 1.1.21 字符串的匹配 42 范例1-21 字符串的匹配 42 ∷相关函:nfind函 1.1.22 字符串的合并 43 范例1-22 字符串的合并 43 ∷相关函:catstr函 1.1.23 文本编辑 45 范例1-23 文本编辑 45 ∷相关函:StrAssign函 1.2 栈和队列 54 1.2.1 用组仿真堆栈 54 范例1-24 用组仿真堆栈 54 ∷相关函:push函 pop函 1.2.2 用链表仿真堆栈 57 范例1-25 用链表仿真堆栈 57 ∷相关函:push函 pop函 1.2.3 顺序栈公用 59 范例1-26 顺序栈公用 59 ∷相关函:push函 pop函 1.2.4 进制转换问题 61 范例1-27 进制转换问题 61 ∷相关函:MultiBaseOutput函 1.2.5 顺序队列操作 64 范例1-28 顺序队列操作 64 ∷相关函:push函 pop函 1.2.6 循环队列 66 范例1-29 循环队列 66 ∷相关函:EnQueue函 DeQueue函 1.2.7 链队列的入队、出队 69 范例1-30 链队列入队、出队 69 ∷相关函:push函 pop函 1.2.8 舞伴问题 71 范例1-31 舞伴问题 71 ∷相关函:EnQueue函 DeQueue函 DancePartner函 1.3 链表 75 1.3.1 头插法建立单链表 75 范例1-32 头插法建立单链表 75 ∷相关函:createlist函 1.3.2 限制链表长度建立单链表 77 范例1-33 限制链表长度建立长单链表 77 ∷相关函:createlist函 1.3.3 尾插法建立单链表 79 范例1-34 尾插法建立单链表 79 ∷相关函:createlist函 1.3.4 按序号查找单链表 80 范例1-35 按序号查找单链表 80 ∷相关函:getnode函 1.3.5 按值查找单链表 82 范例1-36 按值查找单链表 82 ∷相关函:locatenode函 1.3.6 链表的插入 84 范例1-37 链表的插入 84 ∷相关函:insertnode函 1.3.7 链表的删除 86 范例1-38 链表的删除 86 ∷相关函:deletelist函 1.3.8 归并两个单链表 88 范例1-39 归并两个单链表 88 ∷相关函:concatenate函 1.3.9 动态堆栈 90 范例1-40 动态堆栈 90 ∷相关函:push函 Pop函 1.3.10 动态队列 93 范例1-41 动态队列 93 ∷相关函:Enqueue函 1.3.11 初始化单循环链表 95 范例1-42 初始化单循环链表 95 ∷相关函:ListLength_CL函 1.3.12 查询元素的前驱和后继 98 范例1-43 查询元素的前驱和后继 98 ∷相关函:PriorElem_CL函 NextElem_CL函 1.3.13 单循环链表中元素的删除 101 范例1-44 单循环链表中元素的删除 101 ∷相关函:ListDelete_CL函 1.3.14 单循环链表的清除和销毁 107 范例1-45 单循环链表的清除和销毁 107 ∷相关函:DestroyList函 1.3.15 仅设表尾指针循环链表的合并 110 范例1-46 仅设表尾指针循环链表的合并 110 ∷相关函:MergeList_CL函 1.3.16 正序输出双向链表 113 范例1-47 正序输出双向链表 113 ∷相关函:ListInsert函 ListTraverse函 1.3.17 逆向输出双向链表 116 范例1-48 三角矩阵建立 116 ∷相关函:ListTraverseBack函 1.3.18 删除双向链表中的节点 121 范例1-49 删除双向链表中的节点 121 ∷相关函:ListDelete函 1.3.19 双向链表的元素个 124 范例1-50 双向链表的元素个 124 ∷相关函:ListLength函 1.3.20 判断双向链表是否为空 126 范例1-51 判断双向链表是否为空 126 ∷相关函:ListEmpty函 1.3.21 双向链表元素值的查询 129 范例1-52 双向链表元素值的查询 129 ∷相关函:GetElemP函 1.3.22 稀疏矩阵的建立 136 范例1-53 稀疏矩阵的建立 136 ∷相关函:Create函 1.3.23 稀疏矩阵的删除 138 范例1-54 稀疏矩阵的删除 138 ∷相关函:erase函 1.4 树和二叉树 141 1.4.1 获得二叉树的深度和根(顺序结构) 141 范例1-55 获得二叉树的深度和根 141 ∷相关函:BiTreeDepth函 Root函 1.4.2 获得二叉树的深度和根(链表结构) 144 范例1-56 获得二叉树的深度和根 144 ∷相关函:BiTreeDepth函 Root函 1.4.3 树的插入(顺序结构) 147 范例1-57 树的插入 147 ∷相关函:InsertChild函 1.4.4 节点的修改(顺序结构) 150 范例1-58 节点的修改 150 ∷相关函:Assign函 1.4.5 节点的修改(链式结构) 154 范例1-59 节点的修改 154 ∷相关函:Assign函 1.4.6 双亲、孩子和兄弟节点的查询(顺序结构) 158 范例1-60 双亲、孩子和兄弟节点的查询 158 ∷相关函:Parent函 LeftChild函 RightChild函 LeftSibling函 RightSibling函 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函:Parent函 LeftChild函 RightChild函 LeftSibling函 RightSibling函 1.4.8 中序遍历二叉树(顺序结构) 169 范例1-62 中序遍历二叉树 169 ∷相关函:InOrderTraverse函 1.4.9 中序遍历二叉树(链式结构) 171 范例1-63 中序遍历二叉树 171 ∷相关函:InOrderTraverse函 1.4.10 中序递归遍历二叉树(链式结构)(1) 174 范例1-64 中序递归遍历二叉树 174 ∷相关函:InOrderTraverse函 1.4.11 中序递归遍历二叉树(链式结构)(2) 177 范例1-65 中序递归遍历二叉树 177 ∷相关函:InOrderTraverse2函 1.4.12 后序遍历二叉树(顺序结构) 180 范例1-66 后序遍历二叉树 180 ∷相关函:PostOrderTraverse函 1.4.13 后序遍历二叉树(链式结构) 183 范例1-67 后序遍历二叉树 183 ∷相关函:PostOrderTraverse函 1.4.14 层次遍历二叉树(顺序结构) 186 范例1-68 层次遍历二叉树 186 ∷相关函:LevelOrderTraverse函 1.4.15 层次遍历二叉树(链式结构) 188 范例1-68 层次遍历二叉树 188 ∷相关函:LevelOrderTraverse函 1.4.16 树的合并 191 范例1-70 树的合并 191 ∷相关函:Find函 Union 1.4.17 树的二叉链表存储的基本操作 193 范例1-71 树的二叉链表存储的基本操作 193 ∷相关函:LevelOrderTraverse函 1.4.18 二叉树的三叉链表存储的基本操作 201 范例1-72 二叉树的三叉链表存储表示 201 ∷相关函:CreateBiTree函 1.4.19 二叉树的二叉线索存储的基本操作 212 范例1-73 二叉树的二叉线索存储 212 ∷相关函:CreateBiThrTree函 1.4.20 树的双亲表存储的基本操作 215 范例1-74 树的双亲表存储的基本操作 215 ∷相关函:CreateTree函 1.4.21 哈夫曼编码(1) 223 范例1-75 哈夫曼编码(1) 223 ∷相关函:HuffmanCoding函 1.4.22 哈夫曼编码(2) 226 范例1-76 哈夫曼编码(2) 226 ∷相关函:HuffmanCoding函 1.5 排序 229 1.5.1 直接插入排序 229 范例1-77 直接插入排序 229 ∷相关函:InsertSort函 1.5.2 折半插入排序(顺序结构) 231 范例1-78 折半插入排序(顺序结构) 231 ∷相关函:BInsertSort函 1.5.3 2—路插入排序(顺序结构) 233 范例1-79 2—路插入排序(顺序结构) 233 ∷相关函:P2_InsertSort函 1.5.4 折半插入排序(链式结构) 235 范例1-80 折半插入排序(链式结构) 235 ∷相关函:Arrange函 1.5.5 2—路插入排序(链式结构) 238 范例1-81 2—路插入排序(链式结构) 238 ∷相关函:Rearrange函 1.5.6 希尔排序 241 范例1-82 希尔排序 241 ∷相关函:ShellSort函 1.5.7 冒泡排序 243 范例1-83 冒泡排序 243 ∷相关函:bubble_sort函 1.5.8 一趟快速排序 246 范例1-84 一趟快速排序 246 ∷相关函:QSort函 1.5.9 一趟快速排序的改进算法 248 范例1-85 一趟快速排序的改进算法 248 ∷相关函:QuickSort函 1.5.10 简单选择排序 250 范例1-86 简单选择排序 250 ∷相关函:SelectSort函 1.5.11 箱子排序 252 范例1-87 箱子排序 252 ∷相关函:sort函 1.5.12 树型选择排序 254 范例1-88 树型选择排序 254 ∷相关函:TreeSort函 1.5.13 堆排序 256 范例1-89 堆排序 256 ∷相关函:HeapSort函 1.5.14 归并排序 258 范例1-90 归并排序 258 ∷相关函:MergeSort函 1.5.15 多路平衡归并排序 260 范例1-91 多路平衡归并排序 260 ∷相关函:K_Merge函 1.5.16 置换—选择排序 265 范例1-92 置换—选择排序 265 ∷相关函:Replace_Selection 1.5.17 文件的归并 269 范例1-93 文件的归并 269 ∷相关函:K_Merge函 1.6 查找 272 1.6.1 顺序表的查找 273 范例1-94 顺序表的查找 273 ∷相关函:Search_Seq函 1.6.2 静态树表的查找 276 范例1-95 静态树表的查找 276 ∷相关函:Search_SOSTree函 1.6.3 二叉排序树的基本操作 280 范例1-96 二叉排序树的基本操作 280 ∷相关函:InsertBST函 1.6.4 平衡二叉树的基本操作 285 范例1-97 平衡二叉树的基本操作 285 ∷相关函:SearchBST函 1.6.5 B树的基本操作 290 范例1-98 B树的基本操作 290 ∷相关函:SearchBTree函 1.6.6 按关键字符串的遍历双链键树 295 范例1-99 按关键字符串遍历双链键树 295 ∷相关函:SearchDLTree函 1.6.7 按关键字符串的遍历Trie树 301 范例1-100 按关键字符串遍历Trie树 301 ∷相关函:SearchTrie函 1.6.8 哈希表的基本操作 306 范例1-101 哈希表的基本操作 306 ∷相关函:SearchHash函 1.7 图 311 1.7.1 图的邻接矩阵存储表示 311 范例1-102 图的邻接矩阵存储表示 ∷相关函:CreateFAG函 CreateDG函 1.7.2 图的邻接表存储表示 324 范例1-103 图的邻接表存储表示 324 ∷相关函:CreateFAG函 1.7.3 有向图的十字链表存储表示 335 范例1-104 有向图的十字链表存储表示 335 ∷相关函:CreateDG函 1.7.4 无向图的邻接多重表存储表示 344 范例1-105 无向图的邻接多重表存储表示 344 ∷相关函:CreateGraph函 1.7.5 最小生成树 355 范例1-106 最小生成树 355 ∷相关函:MiniSpanTree_PRIM函 1.7.6 关节点和重连通分量 359 范例1-107 关节点和重连通分量 359 ∷相关函:FindArticul函 1.7.7 拓扑排序 366 范例1-108 拓扑排序 366 ∷相关函:TopologicalSort函 1.7.8 关键路径 374 范例1-109 关键路径 374 ∷相关函:CriticalPath函 1.7.9 最短路径 383 范例1-110 最短路径 383 ∷相关函:ShortestPath_DIJ函 1.7.10 每一对顶点之间的最短路径 387 范例1-111 每一对顶点之间的最短路径 387 ∷相关函:ShortestPath_FLOYD函 1.8 本章小结 395 第2章 值计算 397 2.1 常见的学函 398 2.1.1 求整的绝对值 398 范例2-1 求整的绝对值 398 ∷相关函:abs函 2.1.2 求长整型整的绝对值 399 范例2-2 求长整型整的绝对值 399 ∷相关函:labs函 2.1.2 求浮点的绝对值 400 范例2-2 求浮点的绝对值 400 ∷相关函:fabs函 2.1.4 求反余弦 400 范例2-4 求反余弦 400 ∷相关函:acos函 2.1.5 求反正弦 401 范例2-5 求反正弦 401 ∷相关函:asin函 2.1.6 求反正切 402 范例2-6 求反正切 402 ∷相关函:atan函 2.1.7 对浮点进行舍入 403 范例2-7 对浮点进行舍入 403 ∷相关函:ceil函 2.1.8 求余弦 404 范例2-8 求余弦 404 ∷相关函:cos函 2.1.9 求双曲余弦 405 范例2-9 求双曲余弦 405 ∷相关函:cosh函 2.1.10 求正弦 406 范例2-10 求正弦 406 ∷相关函:sin函 2.1.11 求双曲正弦 406 范例2-11 求双曲正弦 406 ∷相关函:sinh函 2.1.12 求正切 407 范例2-12 求正切 407 ∷相关函:tan函 2.1.13 求双曲正切 408 范例2-13 求双曲正切 408 ∷相关函:tanh函 2.1.14 获得整相除的商和余 409 范例2-14 获得整相除的商和余 409 ∷相关函:div函 2.1.15 求ex 410 范例2-15 求ex 410 ∷相关函:exp函 2.1.16 获取浮点相除的余 411 范例2-16 获取浮点相除的余 411 ∷相关函:fmod函 2.1.17 获取浮点的尾和指 412 范例2-17 获取浮点的尾和指 412 ∷相关函:frexp函 2.1.18 求x2exponent 413 范例2-18 一维多项式求值 413 ∷相关函:ldexp函 2.1.19 求自然对 413 范例2-19 求自然对 413 ∷相关函:log 函 2.1.20 求lgx 414 范例2-20 求lgx 414 ∷相关函:log10函 2.1.21 获取浮点的整部分和小部分 415 范例2-21 第二类椭圆积分 415 ∷相关函:modf函 2.1.22 求xy 416 范例2-22 求xy 416 ∷相关函:pow函 2.1.23 求10x 417 范例2-23 求10x 417 ∷相关函:pow10函 2.1.24 获取随机 418 范例2-24 获取随机 418 ∷相关函:rand函 2.1.25 设置随机生成器初值 418 范例2-25 设置随机生成器初值 418 ∷相关函:srand函 2.1.26 获取最大值和最小值 419 范例2-26 获取最大值和最小值 419 ∷相关函:max函 min函 2.1.27 求直角三角形的斜边长 421 范例2-27 求直角三角形的斜边长 421 ∷相关函:hypot函 2.1.28 获取多项式的值 421 范例2-28 获取多项式的值 421 ∷相关函:poly函 2.2 多项式的计算 422 2.2.1 一维多项式求值 422 范例2-29 一维多项式求值 422 ∷相关函:polyval函 2.2.2 二维多项式求值 424 范例2-30 二维多项式求值 424 ∷相关函:tdpolyval函 2.2.3 复系一维多项式求值 425 范例2-31 复系一维多项式求值 425 ∷相关函:cppolyval函 2.2.4 多项式相乘 427 范例2-32 多项式相乘 427 ∷相关函:polymul函 2.2.5 复系多项式相乘 428 范例2-33 复系多项式相乘 428 ∷相关函:cppolymul函 2.2.6 多项式除法 430 范例2-34 多项式除法 430 ∷相关函:polydiv函 2.2.7 复多项式相除 432 范例2-35 复多项式相除 432 ∷相关函:cppolydiv函 2.3 复运算 435 2.3.1 复乘法 435 范例2-36 复乘法 435 ∷相关函:cpmul函 2.3.2 复除法 436 范例2-37 复除法 436 ∷相关函:cpdiv函 2.3.3 复乘幂 437 范例2-38 复乘幂 437 ∷相关函:cppower函 2.3.4 复的n次方根 439 范例2-39 复乘法 439 ∷相关函:cproot函 2.3.5 复 441 范例2-40 复 441 ∷相关函:polyval函 2.3.6 复 442 范例2-41 复 442 ∷相关函:cplog函 2.3.7 复正弦 443 范例2-42 复正弦 443 ∷相关函:cpsin函 2.3.8 复余弦 444 范例2-43 复余弦 444 ∷相关函:cpcos函 2.4 随机的产生 445 2.4.1 产生0~1之间均匀分布的随机 446 范例2-44 0~1之间均匀分布的随机 446 ∷相关函:edisrnd函 2.4.2 产生0~1之间均匀分布的随机序列 447 范例2-45 0~1之间均匀分布的随机序列 447 ∷相关函:edisrndsq函 2.4.3 产生任意区间内均匀分布的随机 448 范例2-46 产生任意区间内均匀分布的随机 448 ∷相关函:itervalrnd函 2.4.4 产生任意区间内均匀分布的随机序列 450 范例2-47 产生任意区间内均匀分布的随机序列 450 ∷相关函:itervalrndsq函 2.4.5 产生任意均值与方差的正态分布的随机 451 范例2-48 任意均值与方差的正态分布的随机 451 ∷相关函:nordisrnd函 2.4.6 产生任意均值与方差的正态分布的随机序列 453 范例2-49 任意均值与方差的正态分布随机序列 453 ∷相关函:nordisrndsq函 2.5 矩阵运算 454 2.5.1 实矩阵相乘 454 范例2-50 实矩阵相乘 454 ∷相关函:matrixmul函 2.5.2 复矩阵相乘 456 范例2-51 复矩阵相乘 456 ∷相关函:cpmatrixmul函 2.5.3 一般实矩阵求逆 458 范例2-52 一般实矩阵求逆 458 ∷相关函:matrix_inverse函 2.5.4 一般复矩阵求逆 462 范例2-53 一般复矩阵求逆 462 ∷相关函:multi_matrix_inverse函 2.5.5 对称正定矩阵的求逆 465 范例2-54 对称正定矩阵的求逆 465 ∷相关函:symmetric_positive_definite_matrix函 2.5.6 托伯利兹矩阵求逆的特兰持方法 467 范例2-55 托伯利兹矩阵求逆的特兰持方法 467 ∷相关函:toeplitz_inv函 2.5.7 求一般行列式的值 470 范例2-56 求一般行列式的值 470 ∷相关函:determinant_value函 2.5.8 求矩阵的秩 472 范例2-57 求矩阵的秩 472 ∷相关函:determinant_rank函 2.5.9 对称正定矩阵的乔里斯基分解与行列式求值 474 范例2-58 对称正定矩阵的乔里斯基分解 474 ∷相关函:cholesky_method函 2.5.10 矩阵的三角分解 476 范例2-59 矩阵的三角分解 476 ∷相关函:triangular_decomposition 2.5.11 一般实矩阵的QR分解 478 范例2-60 一般实矩阵的QR分解 478 ∷相关函:qr_decomposition 2.5.12 求广义逆的奇异值分解法 480 范例2-61 求广义逆的奇异值分解法 480 ∷相关函:singular_value_decomposition generalized_inverses函 2.6 矩阵特征值与特征向量的计算 489 2.6.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 489 范例2-62 约化对称矩阵为对称三对角阵 489 ∷相关函:Householder_method函 2.6.2 求对称三对角阵的全部特征值与特征向量 492 范例2-63 求对称三对角阵的全部特征值 492 ∷相关函:def_qr函 2.6.3 约化一般实矩阵为赫申伯格矩阵的初等相似变换法 496 范例2-64 约化实矩阵为赫申伯格矩阵 496 ∷相关函:trans_hessenbreg函 2.6.4 求赫申伯格矩阵全部特征值的QR方法 498 范例2-65 求赫申伯格矩阵全部特征值 498 ∷相关函:hessenbreg_qr函 2.6.5 求实对称矩阵特征值与特征向量的雅可比法 502 范例2-66 雅可比法求特征值与特征向量 502 ∷相关函:jacobi_method函 2.6.6 求实对称矩阵特征值与特征向量的雅可比过关法 505 范例2-67 雅可比过关法 505 ∷相关函:jacobi_clearance函 2.7 线方程组的求解 507 2.7.1 求解实系方程组的全选主元高斯消去法 508 范例2-68 全选主元高斯消去法 508 ∷相关函:gauss_elimination 2.7.2 求解实系方程组的全选主元高斯—约当消去法 510 范例2-69 全选主元高斯—约当消去法 510 ∷相关函:gauss_jordan_elimination 2.7.3 求解复系方程组的全选主元高斯消去法 513 范例2-70 求解复系方程组(方法一) 513 ∷相关函:plu_gauss函 2.7.4 求解复系方程组的全选主元高斯—约当消去法 516 范例2-71 求解复系方程组(方法二) 516 ∷相关函:plu_gauss_jordan函 2.7.5 求解三对角线方程组的追赶法 519 范例2-72 求解三对角线方程组的追赶法 519 ∷相关函:tridiagonal_chase函 2.7.6 求解一般带型方程组 521 范例2-73 求解一般带型方程组 521 ∷相关函:principal_gauss函 2.7.7 求解对称方程组的分解法 523 范例2-74 求解对称方程组的分解法 523 ∷相关函:equations_decomposition 2.7.8 求解对称正定方程组的平方根法 526 范例2-75 求解对称正定方程组的平方根法 526 ∷相关函:equations_square_root函 2.7.9 求解大型稀疏方程组 528 范例2-76 求解大型稀疏方程组 528 ∷相关函:sparse_gauss_jordan函 2.7.10 求解托伯利兹方程组的列文逊方法 531 范例2-77 求解托伯利兹方程组 531 ∷相关函:toeplitz_levinson函 2.7.11 高斯—赛德尔迭代法 533 范例2-78 高斯—赛德尔迭代法 533 ∷相关函:gauss_seidel_iteration 2.7.12 求解对称正定方程组的共轭梯度法 535 范例2-79 求解对称正定方程组的共轭梯度法 535 ∷相关函:conjugate_gradient_method函 2.7.13 求解线最小二乘问题的豪斯荷尔德变换法 537 范例2-80 求解线最小二乘问题 537 ∷相关函:least_square_householder函 2.7.14 求解线最小二乘问题的广义逆法 540 范例2-81 求解线最小二乘问题的广义逆法 540 ∷相关函:least_squares_reversion 2.7.15 求解病态方程组 549 范例2-82 求解病态方程组 549 ∷相关函:morbid_equations函 2.8 线方程与方程组的求解 553 2.8.1 求线方程一个实根的对分法 553 范例2-83 对分法 553 ∷相关函:nonlinear_dichotomy函 2.8.2 求线方程一个实根的牛顿法 555 范例2-84 牛顿法 555 ∷相关函:newton_iterative函 2.8.3 求线方程一个实根的埃特金迭代法 557 范例2-85 埃特金迭代法 557 ∷相关函:aitken_iterative函 2.8.4 求线方程一个实根的连分式法 558 范例2-86 连分式法 558 ∷相关函:continued_fraction 2.8.5 求实系方程全部根的QR方法 560 范例2-87 QR方法 560 ∷相关函:qr_all函 2.8.6 求实系方程全部根的牛顿下山法 563 范例2-88 求实系方程全部根的牛顿下山法 563 ∷相关函:newton_descent_all函 2.8.7 求复系方程全部根的牛顿下山法 568 范例2-89 求复系方程全部根的牛顿下山法 568 ∷相关函:newton_descent_complex函 2.8.8 求线方程组一组实根的梯度法 572 范例2-90 求线方程组一组实根的梯度法 572 ∷相关函:gradient_nonlinear函 2.8.9 求线方程组一组实根的拟牛顿法 574 范例2-91 求线方程组一组实根的拟牛顿法 574 ∷相关函:quasi_newton_nonlinear函 2.8.10 求线方程一个实根的蒙特卡洛法 577 范例2-92 求线方程的蒙特卡洛法 577 ∷相关函:monte_carlo_nonlinear函 2.8.11 求实函或复函方程一个复根的蒙特卡洛法 579 范例2-93 第二类椭圆积分 579 ∷相关函:monte_carlo_realplex函 2.8.12 求线方程组一组实根的蒙特卡洛法 581 范例2-94 第二类椭圆积分 581 ∷相关函:monte_carlo_equation 2.9 插值与逼近 583 2.9.1 一元全区间插值 583 范例2-95 一元全区间插值 583 ∷相关函:interpolation_total函 2.9.2 一元三点插值 585 范例2-96 一元三点插值 585 ∷相关函:interpolation_three函 2.9.3 连分式插值 586 范例2-97 连分式插值 586 ∷相关函:interpolation_continued函 2.9.4 埃尔米特插值 588 范例2-98 埃尔米特插值 588 ∷相关函:interpolation_hermite函 2.9.5 埃特金逐步插值 590 范例2-99 第二类椭圆积分 590 ∷相关函:interpolation_aitken函 2.9.6 光滑插值 592 范例2-100 光滑插值 592 ∷相关函:interpolation_akima函 2.9.7 第一种边界条件的三次样条函插值、微商与积分 595 范例2-101 第一种边界条件的三次样条函 595 ∷相关函:cubic_spline_first函 2.9.8 第二种边界条件的三次样条函插值、微商与积分 598 范例2-102 第二种边界条件的三次样条函 598 ∷相关函:cubic_spline_second函 2.9.9 第三种边界条件的三次样条函插值、微商与积分 600 范例2-103 第三种边界条件的三次样条函 600 ∷相关函:cubic_spline_third函 2.9.10 二元三点插值 604 范例2-104 二元三点插值 604 ∷相关函:interpolation_point函 2.9.11 二元全区间插值 606 范例2-105 二元全区间插值 606 ∷相关函:interpolation_total函 2.9.12 最小二乘曲线拟合 608 范例2-106 最小二乘曲线拟合 608 ∷相关函:least_squares_fitting函 2.9.13 切比雪夫曲线拟合 611 范例2-107 切比雪夫曲线拟合 611 ∷相关函:chebyshev_fitting函 2.9.14 最佳一致逼近的里米兹方法 614 范例2-108 最佳一致逼近的里米兹方法 614 ∷相关函:remez_method函 2.9.15 矩形域的最小二乘曲面拟合 616 范例2-109 矩形域的最小二乘曲面拟合 616 ∷相关函:rec_fitting函 2.10 值积分 621 2.10.1 变步长梯形求积法 621 范例2-110 变步长梯形求积法 621 ∷相关函:integration_ladder函 2.10.2 变步长辛卜生求积法 623 范例2-111 变步长辛卜生求积法 623 ∷相关函:integration_simpson函 2.10.3 自适应梯形求积法 624 范例2-112 自适应梯形求积法 624 ∷相关函:integration_self_adaptive函 2.10.4 龙贝格求积法 626 范例2-113 龙贝格求积法 626 ∷相关函:integration_romberg函 2.10.5 计算一维积分的连分式法 627 范例2-114 计算一维积分的连分式法 627 ∷相关函:continued_fractions函 2.10.6 高振荡函求积法 629 范例2-115 高振荡函求积法 629 ∷相关函:higher_oscillatory_integration 2.10.7 勒让德—高斯求积法 631 范例2-116 勒让德—高斯求积法 631 ∷相关函:legendre_gauss函 2.10.8 拉盖尔—高斯求积法 633 范例2-117 拉盖尔—高斯求积法 633 ∷相关函:laguerre_gauss函 2.10.9 埃尔米特—高斯求积法 634 范例2-118 埃尔米特—高斯求积法 634 ∷相关函:hermite_gauss函 2.10.10 切比雪夫求积法 635 范例2-119 切比雪夫求积法 635 ∷相关函:chebyshev函 2.10.11 计算一维积分的蒙特卡洛法 637 范例2-120 计算一维积分的蒙特卡洛法 637 ∷相关函:monte_carlo函 2.10.12 变步长辛卜生二重积分法 638 范例2-121 变步长辛卜生二重积分法 638 ∷相关函:simpson函 2.10.13 计算多重积分的高斯方法 640 范例2-122 计算多重积分的高斯方法 640 ∷相关函:gauss函 2.10.14 计算二重积分的连分式法 643 范例2-123 计算二重积分的连分式法 643 ∷相关函:continued_fractions_dual函 2.10.15 计算多重积分的蒙特卡洛法 645 范例2-124 计算多重积分的蒙特卡洛法 645 ∷相关函:monte_carlo_multi函 2.11 常微分方程组的求解 647 2.11.1 全区间积分的定步长欧拉方法 647 范例2-125 全区间积分的定步长欧拉方法 647 ∷相关函:euler_step函.. 2.11.2 积分一步的变步长欧拉方法 649 范例2-126 积分一步的变步长欧拉方法 649 ∷相关函:euler_variable函 2.11.3 全区间积分的维梯方法 651 范例2-127 全区间积分的维梯方法 651 ∷相关函:witty函 2.11.4 全区间积分的定步长龙格—库塔方法 653 范例2-128 全区间积分的定步长龙格—库塔方法实例位置 653 ∷相关函:runge_kutta函 2.11.5 积分一步的变步长龙格—库塔方法 655 范例2-129 积分一步的变步长龙格—库塔方法实例位置 655 ∷相关函:runge_kutta_steps函 2.11.6 积分一步的变步长基尔方法 657 范例2-130 积分一步的变步长基尔方法 657 ∷相关函:gill函 2.11.7 全区间积分的变步长默森方法 659 范例2-131 全区间积分的变步长默森方法 659 ∷相关函:merson函 2.11.8 积分一步的连分式法 662 范例2-132 积分一步的连分式法 662 ∷相关函:continued_step函 2.11.9 全区间积分的双边法 665 范例2-133 全区间积分的双边法 665 ∷相关函:bilateral函 2.11.10 全区间积分的阿当姆斯预报校正法 668 范例2-134 阿当姆斯预报校正法 668 ∷相关函:adams函 2.11.11 全区间积分的哈明方法 671 范例2-135 全区间积分的哈明方法 671 ∷相关函:hamming函 2.11.12 积分一步的特雷纳方法 675 范例2-136 积分一步的特雷纳方法 675 ∷相关函:treanor函 2.11.13 二阶微分方程边值问题的值解法 678 范例2-137 二阶微分方程边值问题的值解法 678 ∷相关函:finite_difference函 2.12 据处理与回归分析 680 2.12.1 随机样本分析 680 范例2-138 随机样本分析 680 ∷相关函:rndsplanalysis函 2.12.2 一元线回归分析 683 范例2-139 一元线回归分析 683 ∷相关函:liregression 2.12.3 多元线回归分析 685 范例2-140 多元线回归分析 685 ∷相关函:mulliregression 2.12.4 半对据相关 688 范例2-141 半对据相关 688 ∷相关函:fittinglogt函 2.12.5 对据相关 690 范例2-142 对据相关 690 ∷相关函:fittingln函 2.13 极值问题的求解 691 2.13.1 一维极值连分式法 691 范例2-143 一维极值连分式法 691 ∷相关函:extremum函 2.13.2 n维极值连分式法 693 范例2-144 n维极值连分式法 693 ∷相关函:nextremum函 2.13.3 不等式约束线规划问题 696 范例2-145 不等式约束线规划问题 696 ∷相关函:linearprogram函 2.14 学变换与滤波 700 2.14.1 傅里叶级逼近 700 范例2-146 傅里叶级逼近 700 ∷相关函:seriesfour函 2.14.2 快速傅里叶变换 702 范例2-147 快速傅里叶变换 702 ∷相关函:quickfft函 2.14.3 快速沃什变换 705 范例2-148 快速沃什变换 705 ∷相关函:quickfwt函 2.14.4 五点三次平滑 706 范例2-149 五点三次平滑 706 ∷相关函:smoothness函 2.14.5 卡尔曼滤波 708 范例2-150 卡尔曼滤波 708 ∷相关函:kalfilter函 2.14.6 α-β-γ滤波 713 范例2-151 α-β-γ滤波 713 ∷相关函:alphabgfilter函 2.15 特殊函 714 2.15.1 Gamma函 715 范例2-152 Gamma函 715 ∷相关函:Gamma函 2.15.2 不完全Gamma函 716 范例2-153 不完全Gamma函 716 ∷相关函:incomgam函 2.15.3 误差函 719 范例2-154 误差函 719 ∷相关函:errorfun函 2.15.4 第一类整Bessel函 721 范例2-155 第一类整Bessel函 721 ∷相关函:bessel1函 2.15.5 第二类整Bessel函 724 范例2-156 第二类整Bessel函 724 ∷相关函:bessel2函 2.15.6 变形第一类整Bessel函 727 范例2-157 变形第二类整Bessel函 727 ∷相关函:varbessel1函 2.15.7 变形第二类整Bessel函 729 范例2-158 变形第二类整Bessel函 729 ∷相关函:varbessel2函 2.15.8 不完全Beta函 734 范例2-159 不完全Beta函 734 ∷相关函:beta函 2.15.9 正态分布函 736 范例2-160 正态分布函 736 ∷相关函:gauss函 2.15.10 t-分布函 739 范例2-161 t-分布函 739 ∷相关函:tdistribution 2.15.11 2-分布函 742 范例2-162 2-分布函 742 ∷相关函:xdistribution 2.15.12 F-分布函 744 范例2-163 F-分布函 744 ∷相关函:fdistribution 2.15.13 正弦积分 747 范例2-164 正弦积分 747 ∷相关函:sinintegral函 2.15.14 余弦积分 749 范例2-165 余弦积分 749 ∷相关函:cosintegral函 2.15.15 指积分 750 范例2-166 指积分 750 ∷相关函:expintegral函 2.15.16 第一类椭圆积分 752 范例2-167 第一类椭圆积分 752 ∷相关函:ellipseintegral1函 2.15.17 第二类椭圆积分 754 范例2-168 第二类椭圆积分 754 ∷相关函:ellipseintegral2函 2.16 本章小结 756 第3章 图形图像处理 757 3.1 字符屏幕 758 3.1.1 文本的输入与输出 758 范例3-1 文本的输入与输出 758 ∷相关函:printf函 scanf函 3.1.2 outtext、outtextxy函输出 759 范例3-2 outtext, outtextxy函输出 759 ∷相关函:outtext函 outtextxy函 3.1.3 设置文本格式 761 范例3-3 设置文本格式 761 ∷相关函:settextstyle函 3.1.4 设置图形文本排列方式 763 范例3-4 设置图形文本排列方式 763 ∷相关函:settextjustify函 3.1.5 设置用户字符比例 765 范例3-5 设置用户字符比例 765 ∷相关函:setusercharsize函 3.1.6 控制文本的明暗度 766 范例3-6 控制文本的明暗度 766 ∷相关函:highvideo函 normvideo函 lowvideo函 3.1.7 设置文本的前景色和背景色 767 范例3-7 设置文本的前景色和背景色 767 ∷相关函:textcolor函 textbackground函 3.1.8 字符窗口 770 范例3-8 字符窗口 770 ∷相关函:clrscr函 window函 gotoxy函 3.1.9 清除光标行尾字符 772 范例3-9 清除光标行尾字符 772 ∷相关函:clreol函 3.1.10 插入与删除行 773 范例3-10 插入与删除行 773 ∷相关函:insline函 delline函 3.1.11 屏幕参检测 774 范例3-11 屏幕参检测 774 ∷相关函:getgraphmode函 getmaxx函 getmaxy函 getmaxcolor函 cleardevice函 3.2 图形图像处理基础 777 3.2.1 绘制像素点 777 范例3-12 绘制像素点 777 ∷相关函:putpixel函 3.2.2 绘制直线 778 范例3-13 绘制直线 778 ∷相关函:line函 lineto函 linerel函 moveto函 moverel函 3.2.3 绘制矩形 780 范例3-14 绘制矩形 780 ∷相关函:rectangle函 3.2.4 绘制多边形 781 范例3-15 绘制多边形 781 ∷相关函:drawpoly函 3.2.5 绘制圆 783 范例3-16 绘制圆 783 ∷相关函:circle函 3.2.6 绘制椭圆 784 范例3-17 绘制椭圆 784 ∷相关函:ellipse函 fillellipse函 3.2.7 绘制圆弧 786 范例3-18 绘制圆弧 786 ∷相关函:arc函 3.2.8 绘制扇区 787 范例3-19 绘制扇区 787 ∷相关函:pieslice函 sector函 3.2.9 绘制条块 788 范例3-20 绘制条块 788 ∷相关函:bar函 bar3d函 3.2.10 图设置线型 790 范例3-21 设置线型 790 ∷相关函:Setlinestyle函 3.2.11 绘制填充矩形 792 范例3-22 绘制填充矩形 792 ∷相关函:setfillstyle函 floodfill函 3.2.12 填充多边形 795 范例3-23 填充多边形 795 ∷相关函:fillpoly函 3.2.14 设置用户图样 796 范例3-24 设置用户图样 796 ∷相关函:setfillpattern函 3.3 图形图像处理进阶 798 3.3.1 绘制彩色点云 798 范例3-25 绘制彩色点云 798 ∷相关函:rand函 kbhit函 3.3.2 绘制正多边形 799 范例3-26 绘制正多边形 799 ∷相关函:sin函 cos函 3.3.3 图形法绘制圆 801 范例3-27 图形法绘制圆 801 ∷相关函:drawCircle函 3.3.4 图形法绘制椭圆 803 范例3-28 图形法绘制椭圆 803 ∷相关函:ellipse1函 3.3.5 绘制正弦曲线 805 范例3-29 绘制正弦曲线 805 ∷相关函:lineto函 3.3.6 绘制抛物样条曲线 806 范例3-30 绘制抛物样条曲线 806 ∷相关函:parspl函 marking函 3.3.7 绘制布朗曲线 809 范例3-31 绘制布朗曲线 809 ∷相关函:CreateFractalImage函 Gauss函 3.3.8 动态绘制256色线条 811 范例3-32 动态绘制256色线条 811 ∷相关函:int86函 3.3.9 三原色亮度渐变 813 范例3-33 三原色亮度渐变 813 ∷相关函:geninterrupt函 3.3.10 三视图模拟 815 范例3-34 三视图模拟 815 ∷相关函:front_view函 top_view函 left_view函 perspective_view函 3.3.11 空间椭球模拟 817 范例3-35 空间椭球模拟 817 ∷相关函:trans函 draw函 3.3.12 百叶窗效果 820 范例3-36 百叶窗效果 820 ∷相关函:putpoint函 3.3.13 视觉欺骗 822 范例3-37 视觉欺骗 822 ∷相关函:dot函 circ函 bulb函 3.3.14 三维建筑物 824 范例3-38 三维建筑物 824 ∷相关函:liner函 rightlead函 leftlead函 shadow函 identifier函 3.4 组合图案绘制 830 3.4.1 一箭穿心图案 830 范例3-39 重新打开文件流 830 ∷相关函:draw函 arrow函 3.4.2 六叶图案 832 范例3-40 六叶图案 832 ∷相关函:arc函 3.4.3 花瓣形图案 833 范例3-41 花瓣形图案 833 ∷相关函:line函 3.4.4 雪花图案 835 范例3-42 雪花图案 835 ∷相关函:setviewport函 3.4.5 布艺图案 837 范例3-43 布艺图案 837 ∷相关函:fractal函 3.4.6 飘带图案 838 范例3-44 飘带图案 838 ∷相关函:line函 3.4.7 金刚石图案 840 范例3-45 金刚石图案 840 ∷相关函:line函 3.4.8 圆环图案 841 范例3-46 圆环图案 841 ∷相关函:circles函 3.4.9 肾型图案 843 范例3-47 肾型图案 843 ∷相关函:circle函 3.4.10 心脏型图案 844 范例3-48 心脏型图案 844 ∷相关函:circle函 3.4.11 鱼网图案 846 范例3-49 重新打开文件流 846 ∷相关函:arc函 3.4.12 沙丘图案 848 范例3-50 沙丘图案 848 ∷相关函:lineto函 3.4.13 正六边形螺旋图案 849 范例3-51 正六边形螺旋图案 849 ∷相关函:polygonc函 3.4.14 正方形螺旋拼块图案 851 范例3-52 正方形螺旋拼块图案 851 ∷相关函:polygonc函 block函 3.4.15 递归法绘制三角形图案 853 范例3-53 递归法绘制三角形图案 853 ∷相关函:elli函 3.4.16 玫瑰图案 855 范例3-54 玫瑰图案 855 ∷相关函:elli函 draw函 3.4.17 天空图案 859 范例3-55 天空图案 859 ∷相关函:int86函 3.4.18 Mandelbrot分形图案 864 范例3-56 Mandelbrot分形图案 864 ∷相关函:mandelbrot函 iterate函 3.5 窗体界面与报表设计 866 3.5.1 窗体设计 866 范例3-57 窗体设计 866 ∷相关函:mainform函 windowborder函 controls函 3.5.2 简单菜单设计 871 范例3-58 简单菜单设计 871 ∷相关函:initm函 showItems函 process 函 process3函 process1函 3.5.3 制作表格 877 范例3-59 制作表格 877 ∷相关函:putpixel函 3.5.4 折线图 878 范例3-60 折线图 878 ∷相关函:itoa函 settextjustify函 3.5.5 饼状图 880 范例3-61 饼状图 880 ∷相关函:pieslice函 3.5.6 柱状图 881 范例3-62 柱状图 881 ∷相关函:Funscore函 Drowxy 函 Fundrow函 3.6 动画制作 884 3.6.1 旋转的立体椭球 884 范例3-63 旋转的立体椭球 884 ∷相关函:setactivepage函 setvisualpage函 3.6.2 小球碰撞演示 887 范例3-64 小球碰撞演示 887 ∷相关函:imagsize函 getimage函 putimage函 3.6.3 飘动的旗帜 889 范例3-65 飘动的旗帜 889 ∷相关函:hor_wave_line函 ver_wave_line函 3.6.4 行驶中的小车 891 范例3-66 行驶中的小车 891 ∷相关函:imagsize函 getimage函 putimage函 3.6.5 不停动嘴巴的头 893 范例3-67 不停动嘴巴的头 893 ∷相关函:getaspectratio函 setaspectratio函 setactivepage函 setvisualpage函 3.6.6 旋转的太极图 898 范例3-68 旋转的太极图 898 ∷相关函:getpalette函 sector函 3.6.7 螺旋运动的圆斑 901 范例3-69 螺旋运动的圆斑 901 ∷相关函:drawgoal函 3.6.8 闪动的彩色圆斑 903 范例3-70 闪动的彩色圆斑 903 ∷相关函:drawgoal函 3.6.9 奔跑的小人 904 范例3-71 奔跑的小人 904 ∷相关函:line函 circle函 3.6.10 发射火箭 907 范例3-72 发射火箭 907 ∷相关函:DrawStar函 DrawGun函 DrawPlan函 3.6.11 擦玻璃 911 范例3-73 擦玻璃 911 ∷相关函:pieslice函 bioskey函 3.6.12 流星球 914 范例3-74 流星球 914 ∷相关函:getimage函 putimage函 3.6.13 简单时钟 916 范例3-75 简单时钟 916 ∷相关函:gettime函 3.6.14 立体时钟 918 范例3-76 立体时钟 918 ∷相关函:time函 3.6.15 飘雪 920 范例3-77 飘雪 920 ∷相关函:DrawSnow函 Pr函 3.6.16 制作火焰 923 范例3-78 制作火焰 923 ∷相关函:outportb函 pokeb函 3.6.17 天体系统 926 范例3-79 天体系统 926 ∷相关函:init_start函 roll函 3.6.18 扇动翅膀的蝴蝶 935 范例3-80 扇动翅膀的蝴蝶 935 ∷相关函:putpixel函 3.6.19 米奇 936 范例3-81 重新打开文件流 936 ∷相关函:imagsize函 getimage函 putimage函 3.7 本章小结 940 第4章 磁盘、目录和文件的操作 941 4.1 磁盘的操作 942 4.1.1 获取当前盘驱动器 942 范例4-1 获取当前盘驱动器 942 ∷相关函:getdisk函 4.1.2 设置当前驱动器 943 范例4-2 设置当前驱动器 943 ∷相关函:setdisk函 4.1.3 获取磁盘的可用空间 945 范例4-3 获取磁盘的可用空间 945 ∷相关函:getdfree函 4.1.4 测试软驱是否可用 946 范例4-4 测试软驱是否可用 946 ∷相关函:biosdisk函 4.2 目录的操作 948 4.2.1 创建目录 948 范例4-5 创建目录 948 ∷相关函:mkdir函 4.2.2 改变当前目录 950 范例4-6 改变当前目录 950 ∷相关函:chdir函 4.2.3 删除目录 952 范例4-7 删除目录 952 ∷相关函:rmdir函 4.3 文件的操作 953 4.3.1 用fopen函打开文件 953 范例4-8 用fopen函打开文件 953 ∷相关函:fopen函 4.3.2 打开系统temp目录中的文件 955 范例4-9 打开系统temp目录中的文件 955 ∷相关函:getenv函 4.3.2 使用低级函打开和关闭文件 957 范例4-10 使用低级函打开和关闭文件 957 ∷相关函:open函 close函 4.3.3 用fclose函关闭文件 959 范例4-11 用fclose函关闭文件 959 ∷相关函:fclose函 4.3.4 一次关闭所有被打开的文件 961 范例4-12 一次关闭所有被打开的文件 961 ∷相关函:fcloseall函 4.3.5 以字符为单位读写文件 963 范例4-13 以字符为单位读写文件 963 ∷相关函:fgetc函 fputc函 4.3.6 以字为单位读写文件 965 范例4-14 以字为单位读写文件 965 ∷相关函:getw函 putw函 4.3.7 以低级的方式读写文件 967 范例4-15 以低级的方式读写文件 967 ∷相关函:read函 write函 4.3.8 按结构读写文件 969 范例4-16 按结构读写文件 969 ∷相关函:read函 write函 4.3.9 格式化写文件 971 范例4-17 格式化写文件 971 ∷相关函:fprintf函 4.3.10 格式化读文件 972 范例4-18 格式化读文件 972 ∷相关函:fscanf函 4.3.11 以行为单位写文件 974 范例4-19 以行为单位写文件 974 ∷相关函:fputs函 4.3.12 以行为单位读文件 975 范例4-20 以行为单位读文件 975 ∷相关函:fgets函 4.3.13 将缓冲区内容写入文件 977 范例4-21 将缓冲区内容写入文件 977 ∷相关函:setbuf函 4.3.14 用lseek函定位文件指针 978 范例4-22 用lseek函定位文件指针 978 ∷相关函:lseek函 4.3.15 获取文件流的文件句柄 980 范例4-23 获取文件流的文件句柄 980 ∷相关函:fileno函 4.3.16 从文件流指针中导出文件句柄 982 范例4-24 从文件流指针中导出文件句柄 982 ∷相关函:fopen函 4.3.17 利用eof函判断文件是否结束 984 范例4-25 利用eof函判断文件是否结束 984 ∷相关函:eof函 4.3.18 利用feof函判断文件结尾 986 范例4-26 利用feof函判断文件结尾 986 ∷相关函:feof函 4.3.19 刷新I/O流 988 范例4-27 刷新I/O流 988 ∷相关函:fflush函 4.3.20 利用tmpnam函创建临时文件名 990 范例4-28 利用tmpnam函创建临时文件名 990 ∷相关函:tmpnam函 4.3.21 创建真正的临时文件 992 范例4-29 创建真正的临时文件 992 ∷相关函:tmpfile函 4.3.22 创建文件 993 范例4-30 创建文件 993 ∷相关函:creat函 4.3.23 在指定目录中创建唯一文件 995 范例4-31 在指定目录中创建唯一文件 995 ∷相关函:creattemp函 4.3.24 利用creatnew函创建新文件 996 范例4-32 利用creatnew函创建新文件 996 ∷相关函:creatnew函 4.3.25 删除文件 998 范例4-33 删除文件 998 ∷相关函:remove函 4.3.26 查找文件获取文件的路径 1000 范例4-34 查找文件获取文件的路径 1000 ∷相关函:searchpath函 4.3.27 分解文件路径 1001 范例4-35 分解文件路径 1001 ∷相关函:fnsplit函 4.3.28 建立文件完全路径名 1003 范例4-36 建立文件完全路径名 1003 ∷相关函:fnmerge 函 4.3.29 读取文件分配表信息 1005 范例4-37 读取文件分配表信息 1005 ∷相关函:getfat函 getfatd函 4.3.30 判断读写所在的文件的位置 1007 范例4-38 判断读写所在的文件的位置 1007 ∷相关函:ftell函 4.3.31 重命名文件 1009 范例4-39 重命名文件 1009 ∷相关函:rename函 4.3.32 判断访问文件的模式 1011 范例4-40 判断访问文件的模式 1011 ∷相关函:access函 4.3.34 设置文件访问模式 1013 范例4-41 设置文件访问模式 1013 ∷相关函:chmod函 4.3.35 显示文件的属 1015 范例4-42 显示文件的属 1015 ∷相关函:_chmod函 4.3.36 检测文件流的错误 1017 范例4-43 检测文件流的错误 1017 ∷相关函:ferror函 4.3.37 判断文件的长度 1019 范例4-44 判断文件的长度 1019 ∷相关函:filelength函 4.3.38 通过句柄设置打开文件的方式 1022 范例4-45 通过句柄设置打开文件的方式 1022 ∷相关函:setmode函 4.3.39 读取文件的时间和日期标记 1023 范例4-46 读取文件的时间和日期标记 1023 ∷相关函:getftime函 4.3.40 设置文件的时间和日期标记 1026 范例4-47 设置文件的时间和日期标记 1026 ∷相关函:setftimet函 4.3.41 改变文件的长度 1028 范例4-48 改变文件的长度 1028 ∷相关函:chsize函 4.3.42 控制文件打开操作的读写模式 1029 范例4-49 控制文件打开操作的读写模式 1029 ∷相关函:umask函 4.3.43 复制文件句柄 1032 范例4-50 复制文件句柄 1032 ∷相关函:dup函 4.3.44 强制复制文件句柄 1033 范例4-51 强制复制文件句柄 1033 ∷相关函:dup2函 4.3.45 用句柄判断读写所在的文件的位置 1036 范例4-52 用句柄判断当前文件指针的位置 1036 ∷相关函:tell函 4.3.46 根据当前位置定位文件指针 1038 范例4-53 根据当前位置定位文件指针 1038 ∷相关函:fseek函 4.3.47 获取文件句柄的信息 1039 范例4-54 获取文件句柄的信息 1039 ∷相关函:fstat函 4.3.48 重新打开文件流 1041 范例4-55 重新打开文件流 1041 ∷相关函:freopen函 4.4 本章小结 1043 第5章 系统调用 1045 5.1 时间和日期的操作 1046 5.1.1 获取当前的时间和日期 1046 范例5-1 获取当前时间和日期 1046 ∷相关函:time函 5.1.2 让程序延时指定的时间段 1047 范例5-2 让程序延时指定的时间段 1047 ∷相关函:delay函 5.1.3 比较两个时间 1048 范例5-3 比较两个时间 1048 ∷相关函:difftime函 5.1.4 读BIOS计时器 1050 范例5-4 读BIOS计时器 1050 ∷相关函:biostime函 5.1.5 比较两个时间获取当地时间 1051 范例5-5 获取当地时间 1051 ∷相关函:localtime函 5.1.6 获取格林威治平时 1052 范例5-6 获取格林威治平时 1052 ∷相关函:gmtime函 5.1.7 获取DOS系统时间 1054 范例5-7 获取DOS系统时间 1054 ∷相关函:gettime函 5.1.8 获取DOS系统日期 1055 范例5-8 获取DOS系统日期 1055 ∷相关函:getdate函 5.1.9 设置DOS系统时间 1057 范例5-9 设置DOS系统时间 1057 ∷相关函:settime函 5.1.10 设置DOS系统日期 1059 范例5-10 设置DOS系统日期 1059 ∷相关函:setdate函 5.1.11 获取时区信息 1061 范例5-11 获取时区信息 1061 ∷相关函:ftime函 5.2 BIOS的操作 1062 5.2.1 利用BIOS获取打印机的状态 1062 范例5-12 利用BIOS获取打印机的状态 1062 ∷相关函:biosprint函 5.2.2 获取Ctrl+Break信息 1064 范例5-13 获取CTRL+BREAK信息 1064 ∷相关函:getcbrk函 5.2.3 暂时挂起程序 1066 范例5-14 暂时挂起程序 1066 ∷相关函:sleep函 5.2.4 控制声音 1067 范例5-15 控制声音 1067 5.2.5 利用bdos函访问DOS服务 1068 范例5-16 利用bdos函访问DOS服务 1068 ∷相关函:bdos函 5.2.6 获取BIOS常规内存量 1071 范例5-17 获取BIOS常规内存量 1071 ∷相关函:biosmemory函 5.2.7 获取寄存器设置信息 1072 范例5-18 获取寄存器设置信息 1072 ∷相关函:segread函 5.3 内存的操作 1074 5.3.1 给内存区域赋值 1074 范例5-19 给内存区域赋值 1074 ∷相关函:memset函 5.3.2 获取时区信息复制内存区域 1076 范例5-20 复制内存区域 1076 5.3.3 复制内存区域指定的字节 1078 范例5-21 复制内存区域指定的字节 1078 ∷相关函:memccpy函 5.3.4 获取时区信息 1080 范例5-22 比较两个无符号字符组 1080 5.3.5 交换字符串的两个相邻字节内容 1082 范例5-23 交换字符串的两个相邻字节内容 1082 ∷相关函:swab函 5.3.6 利用brk函改变堆的大小 1084 范例5-24 利用brk函改变堆的大小 1084 ∷相关函:brk函 5.3.7 获取指定内存单元内容 1086 范例5-25 获取指定内存单元内容 1086 5.3.8 设置指定内存单元内容 1088 范例5-26 设置指定内存单元内容 1088 5.4 本章小结 1090 索引... 1091
全书共分7章,包括引论、线方程组求解、线最小二乘问题、对称特征值问题、对称特征问题和奇异值分解、线方程组迭代方法及特征值问题迭代方法,本书不仅给出了值线的常用算法,而且也介绍了多重网格法和区域分解法等新算法,并指导读者如何编写值软件以及从何处找到适用的优秀值软件。   本书可作为计算学和相关理工科专业一年级研究生的教材,也可作为从事科学计算的广大科技工作者的参考书。 第1章 引论  1.1 基本符号  1.2 值线的标准问题  1.3 一般的方法   1.3.1 矩阵分解   1.3.2 扰动理论和条件   1.3.3 舍入误差对算法的影响   1.3.4 分析算法的速度   1.3.5 值计算软件  1.4 例:多项式求值  1.5 浮点算术运算  1.6 再议多项式求值  1.7 向量和矩阵范  1.8 第1章的参考书目和其他话题  1.9 第1章问题 第2章 线方程组求解  2.1 概述  2.2 扰动理论  2.3 高斯消元法  2.4 误差分析   2.4.1 选主元的必要   2.4.2 高斯消元法正式的误差分析   2.4.3 估计条件   2.4.4 实际的误差界  2.5 改进解的精度   2.5.1 单精度迭代精化   2.5.2 平衡  2.6 高能分块算法   2.6.1 基本线子程序(blas)   2.6.2 如何优化矩阵乘法   2.6.3 使用3级blas改组高斯消元法   2.6.4 更多的并行和其他能问题  2.7 特殊的线方程组   2.7.1 实对称正定矩阵   2.7.2 对称不定矩阵   2.7.3 带状矩阵   2.7.4 一般的稀疏阵   2.7.5 不超过o(n2)个参的稠密矩阵  2.8 第2章的参考书目和其他的话题  2.9 第2章问题 第3章 线最小二乘问题  3.1 概述  3.2 解线最小二乘问题的矩阵分解   3.2.1 正规方程   3.2.2 qr分解   3.2.3 奇异值分解  3.3 最小二乘问题的扰动理论  3.4 正交矩阵   3.4.1 豪斯霍尔德变换   3.4.2 吉文斯旋转   3.4.3 正交矩阵的舍入误差分析   3.4.4 为什么用正交矩阵  3.5 秩亏最小二乘问题   3.5.1 用svd解秩亏最小二乘问题   3.5.2 用选主元的qr分解解秩亏最小二乘问题  3.6 最小二乘问题解法的能比较  3.7 第3章的参考书目和其他话题  3.8 第3章问题 第4章 对称特征值问题  4.1 概述  4.2 典范型  4.3 扰动理论  4.4 对称特征问题的算法   4.4.1 幂法   4.4.2 逆迭代   4.4.3 正交迭代   4.4.4 qr迭代   4.4.5 使qr迭代有实效   4.4.6 海森伯格约化   4.4.7 三对角和双对角约化   4.4.8 隐式位移的qr迭代  4.5 其他的对称特征值问题   4.5.1 正则矩阵束和魏尔斯特拉斯典范型   4.5.2 奇异矩阵束和克罗内克典范型   4.5.3 线特征值问题  4.6 小结  4.7 第4章参考书目和其他话题  4.8 第4章问题 第5章 对称特征问题和奇异值分解  5.1 概述  5.2 扰动理论  5.3 对称特征问题的算法   5.3.1 三对角qr迭代   5.3.2 瑞利商迭代   5.3.3 分而治之   5.3.4 对分法和逆迭代   5.3.5 雅可比法   5.3.6 能比较  5.4 奇异值分解算法   5.4.1 双对角svd的qr迭代及其变形   5.4.2 计算双对角svd达到高的相对精度   5.4.3 svd的雅可比法  5.5 微分方程和特征值问题   5.5.1 toda格子   5.5.2 与偏微分方程的关系  5.6 第5章参考书目和其他话题  5.7 第5章问题 第6章 线方程组迭代方法  6.1 概述  6.2 迭代法的在线(on-line)帮助  6.3 泊松方程   6.3.1 一维泊松方程   6.3.2 二维泊松方程 6.3.3 用克罗内克积表达泊松方程 6.4 解泊松方程方法小结  6.5 基本迭代法   6.5.1 雅可比法   6.5.2 高斯-塞德尔法 6.5.3 逐次超松弛法 6.5.4 模型问题的雅可比、高斯-塞德尔和sor(ω)的收敛 6.5.5 雅可比、高斯-塞德尔和sor(ω)法明细的收敛准则   6.5.6 切比雪夫加速和对称sor(ssor)  6.6 克雷洛夫子空间方法   6.6.1 通过矩阵-向量乘法得到关于a的信息   6.6.2 利用克雷洛夫子空间kk解ax=b   6.6.3 共轭梯度法   6.6.4 共轭梯度法的收敛分析   6.6.5 预条件   6.6.6 解ax=b的其他克雷洛夫子空间算法  6.7 快速傅里叶变换   6.7.1 离散傅里叶变换   6.7.2 用傅里叶级解连续模型问题   6.7.3 卷积   6.7.4 计算快速傅里叶变换  6.8 块循环约化  6.9 多重网格法   6.9.1 二维泊松方程多重网格法概述   6.9.2 一维泊松方程的多重网格法详述  6.10 区域分解法   6.10.1 无交叠方法   6.10.2 交叠方法  6.11 第6章的参考书目和其他话题  6.12 第6章问题 第7章 特征值问题的迭代方法  7.1 概述  7.2 瑞利-里茨方法  7.3 精确算术运算的兰乔斯算法  7.4 浮点算术运算的兰乔斯算法  7.5 选择正交化的兰乔斯算法  7.6 选择正交化之外的方法  7.7 对称特征值问题的迭代算法  7.8 第7章的参考书目和其他话题  7.9 第7章问题 参考文献(图灵网站下载) 索引

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值