码迷,mamicode.com
首页 > 其他好文 > 详细

用二分法求下面方程在(-10,10)之间的根。【谭浩强第四版课后习题】

时间:2019-08-02 18:15:52      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:修改   math   条件   一点   官方   ret   二分   习题   编程   

用二分法求下面方程在(-10,10)之间的根:2x3-4x2+3x-6=0

编程思路:仿照二分查找,将区间划分为两部分,记录区间左右端点,得到中点。每次运算将中点带入方程:

  • 结果>0:根应该向小一点的值拟合,high=mid;
  • 结果<0:根应该向大一点的值拟合,low=mid;

对于跳出循环的条件,我首先是认为low和high应该无限逼近:while(fabs(low-high)>1e-5),当循环体内结果=0后,便使用break跳出循环:if(temp==0) break;但是没有得到答案。

后来修改之后,便得到答案了。

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 
 5 int main(){
 6     double low=-10,high=10,mid;
 7     double temp=10;
 8     while(fabs(temp)>1e-5){
 9         mid=(low+high)/2;
10         temp=((2*mid-4)*mid+3)*mid-6;
11         printf("%lf ",mid);
12         printf("%lf\n",temp);
13         if(temp>0)    high=mid;
14         else if(temp<0)    low=mid;
15     }
16     printf("%lf",mid);
17     return 0;
18 }

和官方答案不同,害怕会有疏漏的地方,如果读到这里的你有想法或建议,欢迎指正~

用二分法求下面方程在(-10,10)之间的根。【谭浩强第四版课后习题】

标签:修改   math   条件   一点   官方   ret   二分   习题   编程   

原文地址:https://www.cnblogs.com/cuphead/p/11290290.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!