首页 > 其他 > 详细

7-29 二分法求多项式单根

时间:2019-12-13 10:45:32      阅读:94      评论:0      收藏:0      [点我收藏+]

技术分享图片

z

 1 #include <stdio.h>
 2 
 3 double f(double *p, double x);
 4 int main(void)
 5 {
 6 
 7     double an[4];
 8     double a, b;
 9     for (int i = 3; i >= 0; i--)
10     {
11         scanf("%lf", &an[i]);
12     }
13 
14     scanf("%lf %lf", &a, &b);
15 
16     int flag = 0;       //标志位
17     while (b - a > 1e-3)
18     {
19         double m = (a + b) / 2;
20         double ret_m = f(an, m);
21         if (ret_m == 0)             //判断浮点数等于0
22         {
23             printf("%.2f\n", m);
24             flag = 1;
25             break;
26         }
27 
28         double ret_a = f(an, a);
29         double ret_b = f(an, b);
30 
31         if (ret_a * ret_m > 0)      //判断同号
32         {
33             a = m;
34         }
35         if (ret_b * ret_m > 0)
36         {
37             b = m;
38         }
39     }
40 
41     if (flag == 0)
42     {
43         printf("%.2f\n", (a + b) / 2);
44     }
45     return 0;
46 }
47 double f(double *p, double x)
48 {
49     double ret;
50 
51     ret = p[3] * x * x * x + p[2] * x * x + p[1] * x + p[0];
52 
53     return ret;
54 }

7-29 二分法求多项式单根

原文:https://www.cnblogs.com/2018jason/p/12033331.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!