首页 > 其他分享 >7-18 二分法求多项式单根 (20分)

7-18 二分法求多项式单根 (20分)

时间:2023-08-07 10:38:27浏览次数:50  
标签:lf 20 18 二分法 a0 a3 a2 多项式


7-18 二分法求多项式单根 (20分)

二分法求函数根的原理为:如果连续函数f(x)在区间[a,b]的两个端点取值异号,即f(a)f(b)<0,则它在这个区间内至少存在1个根r,即f(r)=0。

二分法的步骤为:

  • 检查区间长度,如果小于给定阈值,则停止,输出区间中点(a+b)/2;否则
  • 如果f(a)f(b)<0,则计算中点的值f((a+b)/2);
  • 如果f((a+b)/2)正好为0,则(a+b)/2就是要求的根;否则
  • 如果f((a+b)/2)与f(a)同号,则说明根在区间[(a+b)/2,b],令a=(a+b)/2,重复循环;
  • 如果f((a+b)/2)与f(b)同号,则说明根在区间[a,(a+b)/2],令b=(a+b)/2,重复循环。

本题目要求编写程序,计算给定3阶多项式f(x)=a3x3+a2x2+a1x+a0在给定区间[a,b]内的根。

输入格式:

输入在第1行中顺序给出多项式的4个系数a3、a2、a1、a0,在第2行中顺序给出区间端点a和b。题目保证多项式在给定区间内存在唯一单根。

输出格式:

在一行中输出该多项式在该区间内的根,精确到小数点后2位。

输入样例:

3 -1 -3 1
-0.5 0.5

输出样例:

0.33
#include "stdio.h"
#include "math.h"
double a3, a2, a1, a0;
double f(double x)
{
    //return a3*pow(x,3)+a2*pow(x,2)+a1*x+a0;
    return a3*x*x*x+a2*x*x+a1*x+a0;
}
int main(){
//7-18 二分法求多项式单根 (20分)
    double a,b;
    
    scanf("%lf %lf %lf %lf",&a3,&a2,&a1,&a0);
    scanf("%lf %lf",&a,&b);
    int flag=1;
    

    for ( ;(b-a)>0.001; ) {
    //while(b-a>0.001){
    //printf("%lf %lf\n",a,b);
    if (f(a)==0) {
        flag=0; printf("%.2lf",a);break;
        }else if (f(b)==0){
            flag=0; printf("%.2lf",b);break;
    }else if (f(a)*f(b)<0) {
            if (f((a+b)/2.0)==0) {
                //printf("%lf",f(a)*f(b));  
                flag=1;
                break;
            }else{
                if (f((a+b)/2.0)*f(a)>0) {
                    a=(a+b)/2.0;
                }else{
                    b=(a+b)/2.0;
                }
            }
 
        }else{
            flag=0;break;
        }
    }
    
    if (flag==1) {
        printf("%.2lf",(a+b)/2.0);
    }
    
    
    return 0;
    
}


标签:lf,20,18,二分法,a0,a3,a2,多项式
From: https://blog.51cto.com/u_16183193/6991152

相关文章

  • 2023.8.7
    学习java中的类面向对象与面向过程面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象:强调具备了功能的对象,以类/对象为最小单位类与对象的关系类:对一类事物的描述,是抽象的、概念上的定义对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)面向对象......
  • 2023.8.6
    学习java中的类面向对象与面向过程面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象:强调具备了功能的对象,以类/对象为最小单位类与对象的关系类:对一类事物的描述,是抽象的、概念上的定义对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)面向对象......
  • Linux 相关,个人整理的一些零碎笔记 2021-12-13
    df-lh接下来的四个字段Size、Used、Avail、及Use%分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比du命令:查询文件或文件夹的磁盘使用空间如果当前目录下文件和文件夹很多使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是......
  • JDV背后的技术-助力618
    一、项目介绍JDV(可视化大屏)是京东内部搭建可视化大屏的数据工具平台,内置10+种模版特效,40+种风格各异的图表、导航等组件。与集团其他数据工具打通,支持一站式、自助化、拖拽式搭建大屏,实现数据切换、联动刷新、大屏下钻等呈现效果,便利高管、采销、产研等全集团范围内的数据可视化......
  • 前端 Vue 应该知道的一些东西,个人笔记 2021-11-26
    前端代码编写规范及es6常用语法命名规范文件夹名称,文件名称,组件名称,统一使用大驼峰或者小横线方式命名;组件文件名:list-item.vue.或者ListItem.vue;基础的无状态的通用组件加VBaseApp前缀BaseButtonAppButton在html中<base-button>或者<BaseButton>url路径名:小......
  • 16-20230807
    终于明白眼睛里已经没有了光,是什么体验。没有了追求,眼里没有了光,奋斗的心也就没有了燃料。现在除了困顿迷茫,还是困顿迷茫,什么时候才能走出这阴影,什么时候才能又重拾起前两年的劲。倒计时越来越近,而我仿佛没有任何办法阻止这时光洪流匆匆驶来。 ......
  • Apache HTTPD换行解析漏洞(CVE-2017-15715)
    ApacheHTTPD换行解析漏洞(CVE-2017-15715)【项目中遇到】ApacheHTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页,其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将按照PHP后缀进行解析,导致绕过一些服务器安全策略。1.环境搭建cdhttpd/CVE-2017-15715/doc......
  • 题解 P8085 [COCI2011-2012#4] KRIPTOGRAM
    题目链接题目问的是相对位置是否一样,即若\(s\)的第\(1,2,3\)个字符串相等,\(t\)的第\(1,2,3\)个字符串也相等,则\(s=t\)。由于\(t\)的长度是固定的,所以我们使用哈希进行快速匹配。那么如何设计哈希函数则成为本题的难点。由于问相对位置,那么可以记\(val[i]\)表示......
  • P3520 [POI2011] SMI-Garbage
    \(P3520\)\([POI2011]\)\(SMI-Garbage\)题目描述有一个可以看成无向图的城市,上面有\(n\)个点和\(m\)条边。每一天,有若干辆垃圾车按照环形来跑一圈。并且,对于一辆垃圾车,除了起点以外不能跑两次。一条路有\(2\)种状态:清洁的(用0表示)或不清洁的(用1表示)。每次垃圾车经......
  • [十二省联考 2019] 字符串问题
    题目描述现有一个字符串\(S\)。Tiffany将从中划出\(n_a\)个子串作为\(A\)类串,第\(i\)个(\(1\leqslanti\leqslantn_a\))为\(A_i=S(la_i,ra_i)\)。类似地,Yazid将划出\(n_b\)个子串作为\(B\)类串,第\(i\)个(\(1\leqslanti\leqslantn_b\))为\(B_i=S(lb_i,......