提高篇第20-21课第二题
来源:互联网 发布:nero刻录软件 编辑:程序博客网 时间:2024/05/22 12:50
#include <stdio.h>#include <stdlib.h>//第二题,二分法/*1 确定区间[a, b], 验证f(a)·f(b)<0 2 求区间(a, b)的中点c3 判断(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.*///思路分析//1.如何确定函数的a b区间是难点,此函数为三次函数,可知只有一个点使f(x)=0,故可以先找一个负数点,逐渐增加x令f(x)>0,从而确定一个基础的范围,但是如果是其他形式的函数可能有多个x轴交点//上面的方法会漏解,大家有什么好的思路,还要先列方程求出范围么T Tdouble fbs(double);double f(double);int main(){double temp = 0;//显然f(0)<0double a, b, c;while (f(temp) <= 0)temp=temp+1;//确定了基础的[a,b]范围为[0,temp]a = 0;b = temp;c = (a + b) / 2;//printf("a=%lf,b=%lf,c=%lf",a,b,c);while (fbs(f(c)) > 1e-5){if (f(a)*f(c) < 0)b = c;else if (f(b)*f(c) < 0)a = c;c = (a + b) / 2;}printf("方程的解为%lf", c);return 0;}double f(double x){double result;result = x*x*x*2 - x*x*5 + x*3 - 6;return result;}double fbs(double x){double result;result = (x >= 0 ? x : -x);return result;}
0 0
- 提高篇第20-21课第二题
- 提高篇第2-5课第二题
- 提高篇第6-10课作业第二题
- 提高篇第22-25课第二题
- 提高篇第26-27课第二题
- 提高篇第28-31课第二题
- 提高篇第20-21课作业第一题
- 提高篇第20-21课第三题
- 提高篇第20-21课第四题
- 提高篇 第20-21节课后
- 提高篇16-19第二题
- 第二章第21题
- 第32课第二题
- 第33课第二题
- 第34课第二题
- 第35课第二题
- 第36课第二题
- 第37课第二题
- 实现在同一台linux主机上mysql主从复制与读写分离
- Unicode下TRACE中文(_CrtDbgReport: String too long or IO Error)
- PHP explode() 函数
- Assortment List - 分类列表
- 硬盘与硬盘对拷如何操作
- 提高篇第20-21课第二题
- java设计模式
- win8的cmd运行命令大全
- spring 监听器 IntrospectorCleanupListener简介
- java中的程序初识
- HDU1290
- ACM-数乌龟
- Android 不规则封闭区域填充 手指秒变油漆桶
- Construct Binary Tree from Inorder and Postorder Traversal - LeetCode 106