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

常用算法程序集(C++描述第6版)
作者: 编者:徐士良
出版社: 清华大学
原售价: 89.00
折扣价: 72.09
折扣购买: 常用算法程序集(C++描述第6版)
ISBN: 9787302505426

作者简介

内容简介

第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++描述。 ?书中所有的算法程序都经过认真的调试(在Visual C++ 6.0环境下)。