试位法求解非线性方程的根
来源:互联网 发布:用友u8软件免费下载 编辑:程序博客网 时间:2024/05/22 11:58
本次实现试位法的算法,该算法的背景如下:
该算法的详细解释如下:
该算法的实现如下:
/**试位法*方程f(x)=0在区间[a,b]上连续,且f(a)f(b)<0,则方程f(x)=0在区间[a,b]上必有实根。*函数接口:double false_pos(double a,double b,double eps,double f(double))*a:求根区间的左端点*b:求根区间的右端点*eps:精度要求*double f(double):指向计算方程f(x)=0的左端的函数*函数返回double类型的数据**/#include<iostream>#include<cmath>#include<iomanip>using namespace std;double false_pos(double a, double b, double eps, double f(double)){ int flag = 1; //flag,while的标志 double fa, fb; //存放弦的两端点的y值 double y, x; //存放产生的新的根的点 fa = (*f)(a); fb = (*f)(b); //判断能否用此方法求根 if (fa*fb > 0) { cout << "there mab be no root in this equation " << endl; } //求解 do { x = (a*fb - b*fa) / (fb - fa); y = (*f)(x); if (fabs(y) < eps) //满足精度要求退出 flag = 0; if (y*fa > 0) //若根同号,则在该区间继续求解 { a = x; fa = y; } else //否则,在另一区间 { b = x; fb = y; } } while (flag); return x;}double functest(double x){ double y; y = exp(x*log(x)) - 10; return y;}/**测试:求x^x=10的根,此根初略估计在[2,3]有一个根*f(x)=x^x-10。 误差eps=0.0000001;*///方程的根为 2.50618414int main(){ double eps = 0.0000001; double a = 2.0; double b = 3.0; double root; root = false_pos(a, b, eps, functest); cout << "该方程的根为 " <<setprecision(9)<< root << endl; return 0;}
声明:截图来源于百度百科http://baike.baidu.com/link?url=B2Ph58fPDCft9g-IsLrE2IC3Yxenb2HGa6JpgPVILn81FSbW6jWFy6H1kct24yg8goPZWlTv0a4h_KkVFPSe6gjiD89FOnF2JTQ_1aQnxgxmh0GINthV_UaJKHaFVlt1
0 0
- 试位法求解非线性方程的根
- 试位法求解非线性方程
- 用牛顿的迭代法求解非线性方程
- 非线性方程(组)的求解
- 非线性方程求解
- Python求解非线性方程
- Python求解非线性方程
- Matlab非线性方程求解
- Newton_Raphson法求解非线性方程
- 割线法求解非线性方程
- fsolve函数求解非线性方程
- 牛顿法求解非线性方程
- 二分法 简单迭代法 Newton法 弦截法 求解非线性方程的根
- MATLAB实例之对线性,非线性,超越方程的求解
- 数学:非线性方程的求解---(笔记+代码)
- 对分法求非线性方程的根
- 非线性方程的解法
- 对分法求解非线性方程
- 欢迎使用CSDN-markdown编辑器
- powerdesigner逆向工程生成PDM时的列注释(ColumnComment)解决方案
- Linux/centos中文字体解决方案
- Java - Mac上创建数据库表如何创建到指定的数据库中,此处有坑,已填
- springMVC源码分析--ControllerBeanNameHandlerMapping(八)
- 试位法求解非线性方程的根
- Qt:QML:JavaScript 和QML 语法错误表
- HTTP Get,Post请求详解
- Sublime Text 3 + Markdown 配置步骤
- HDOJ2089 不要62(数位DP)
- 《明解C语言》示例代码和练习代码[第9章]
- jQuery的标签标识
- 使用HTML5的页面资源预加载(Link prefetch)功能加速你的页面加载速度
- mysql插入数字都变成2147483647的解决方法