二分法求解表达式的值

用C/C++实现,通过,二分法求解表达式的值:

 

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 int ZP_MAX = 1000;
 5 string str;
 6 
 7 double calc(double x)
 8 {
 9     return (5*x+6)*9-(2*x+3);
10 }
11 
12 int main()
13 {
14 
15     // 二分法, x1 = 0, x2 = 20
16     double x1 = -30.0, x2 = 30.0;
17 
18     while(1)
19     {
20         double temp = (x1 + x2) / 2.0;
21         double ans = calc(temp) - 0;
22 
23         if (fabs(ans) < 1e-5)
24         {
25             printf("%.2lf\n", temp);
26             break;
27         }
28         if (ans > 0)
29             x2 = temp;
30         if (ans < 0)
31             x1 = temp;
32     }
33     return 0;
34 }

 

posted @ 2019-03-18 21:01  GetcharZp  阅读(153)  评论(0编辑  收藏  举报