提高项目18-二分法解方程
来源:互联网 发布:手机淘宝开店流程 编辑:程序博客网 时间:2024/06/06 23:51
任务和代码:二分法是在计算机科学中很重要的一种方法,用于查找产生二分查找算法,还可以用在很多场合。
可以用二分法解方程。
对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。
假设要求方程f(x)=0的解,给定精确度ξ。其算法是:
1 确定区间[a,b],验证f(a)·f(b)<0
2 求区间(a,b)的中点c
3 判断
(1) 若f(a)·f(c)<0,则令b=c;
(2) 若f(c)·f(b)<0,则令a=c.
程序运行结果:
可以用二分法解方程。
对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。
假设要求方程f(x)=0的解,给定精确度ξ。其算法是:
1 确定区间[a,b],验证f(a)·f(b)<0
2 求区间(a,b)的中点c
3 判断
(1) 若f(a)·f(c)<0,则令b=c;
(2) 若f(c)·f(b)<0,则令a=c.
4 判断f(c)是否达到精确度ξ:即若┃f(c)┃<ξ,则x=c就是使f(x)接近零点的近似值,否则重复2-4.
/*文件名:main.c作者:小风景完成日期:2016.7.2问题描述:二分法是在计算机科学中很重要的一种方法,用于查找产生二分查找算法,还可以用在很多场合。 可以用二分法解方程。 对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。 假设要求方程f(x)=0的解,给定精确度ξ。其算法是: 1 确定区间[a,b],验证f(a)·f(b)<0 2 求区间(a,b)的中点c 3 判断 (1) 若f(a)·f(c)<0,则令b=c; (2) 若f(c)·f(b)<0,则令a=c. 4 判断f(c)是否达到精确度ξ:即若┃f(c)┃<ξ,则x=c就是使f(x)接近零点的近似值,否则重复2-4.程序输出:零点的x值*/#include <stdio.h>#include <math.h>double Myfunction(double x);int TestRegion(double a,double b);double AnalysePoint(double a,double b);int main(){ double a; double b; double c = 0; printf("请输入确定区间[a,b]\n"); scanf("%lf %lf",&a,&b); if(TestRegion(a,b)) { printf("该区间不存在零点!"); return -1; } c = AnalysePoint(a,b); printf("当c = %lf,f(%.5f)无限接近零点",c,c); return 0;}/*函数功能:求f(x)的值返回值:返回函数值*/double Myfunction(double x){ return (2*x*x*x - 5*x*x + 3*x - 6);}/*函数功能:测试零点是否在区间[a,b]上返回值:返回0表示存在,返回1表示不存在*/int TestRegion(double a,double b){ int result = 0; if(Myfunction(a) * Myfunction(b) > 0) { result = 1; } return result;}/*函数功能:求f(x)接近零点时X的值返回值:返回f(x)*/double AnalysePoint(double a,double b){ double c = 0; do { c = (a + b) / 2; if(Myfunction(a) * Myfunction(c) < 0) { b = c; } if(Myfunction(c) * Myfunction(b) < 0) { a = c; } } while(fabs(Myfunction(c)) > 1e-5); return c;}
程序运行结果:
总结:通过函数调用来完成整体的能够,需要注意函数参数的传递以及返回值的含义,利用参数传递来完成计算。
0 0
- 提高项目18-二分法解方程
- 提高篇项目2-二分法解方程
- (提高篇)第二十讲 项目 二分法解方程等
- 提高篇第二十讲二——二分法解方程
- 二分法解方程MATLAB
- 二分法解非线性方程
- 二分法:解方程
- 二分法求解方程解
- 二分法求方程的解
- 二分法求解方程的解
- 分治法--二分法求方程近似解
- hdu 2199 解方程(二分法)
- 二分法求方程的近似解
- 【uva10341】二分法解方程,注意单调性
- 二分法(解方程,UVA 10341)
- NOIP2014提高组解方程
- 方程求根二分法
- 方程求根二分法
- NSValue的详解
- Mac OS X常用软件推荐 – Ftp 工具篇
- Android Design Support Library使用详解
- VirtualBox中配置centos7上网
- Standord NLP组整理的NLP工具、资源列表
- 提高项目18-二分法解方程
- python 模拟微博登录
- NSArray与NSPredicate使用
- LeetCode Integer Break(整数拆分问题)
- 那些最好的轮子 - PHP篇
- java日志文件log4j.properties配置详解
- 关于BroadcastReceiver 监听网络状态
- Spring bean
- 使用命令行将Excel数据表导入Mysql中的方法小结