用二分法求下面方程在(-10,10)之间的根。谭浩强第四版课后习题
Posted cuphead
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用二分法求下面方程在(-10,10)之间的根。谭浩强第四版课后习题相关的知识,希望对你有一定的参考价值。
用二分法求下面方程在(-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)之间的根。谭浩强第四版课后习题的主要内容,如果未能解决你的问题,请参考以下文章