1088: 习题5-15 二分法求方程的根

该博客介绍了一种利用二分法在指定区间(a, b)内求解三次方程2x^3 - 4x^2 + 3x - 6 = 0的根的方法。要求输入包含根的区间,并保证该区间内存在根,计算直至误差小于10^-6。程序中涉及的浮点数类型为double。二分法的具体步骤包括将方程转换为f(x) = 0形式并按特定步骤进行计算。" 130474182,1173281,UG NX二次开发:C++遍历对象UF_OBJ_cycle_objs_in_part实践,"['UG NX二次开发', 'UG二次开发', 'C++编程']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

用二分法求下面方程在区间(a,b)之间的根:

2x3-4x2+3x-6=0

区间端点a, b由键盘输入,确保输入区间内有根。

计算至误差小于10-6为止。

程序中,浮点型数据请定义为双精度double类型。

提示:二分法求方程根的步骤如下:

先将方程写成f(x)=0的形式,再按照如下步骤计算:

1.求出给出的两个端点之间的值fx1,fx2.当fx1*fx2<0,则表明x1和x2之间必存在一根
           要么就不存在,一直提示输出x1和x2.
2.一旦fx1*fx2<0,就表明在x1和x2之间有根,继续判断,求的x1和x2的中点值x0,求出fx0.
3.在判断fx0*fx1>0,则在x0和x2中间去找根,此时x1不起作用,用x0代替x1,用fx0代替fx1.
  要么就在x0和x1中去找根,此时x2不起作用,用x0代替x2,用fx0代替fx2.

 

输入

以空格分隔的区间端点值,确保输入的区间内存在方程的根。

输出

二分法求得的方程根,小数点后保留6位小数,末尾换行。

样例输入

-10 10

样例输出

2.000000

#include<stdio.h>
#include<math.h>
int main(){
double x0,x1,x2,f0,f1,f2;
do{
scanf("%lf %lf",&x1,&x2);
f1=2*pow(x1,3)-4*x1*x1+3*x1-6;  
        f2=2*pow(x2,3)-4*x2*x2+3*x2-6;
} while(f1*f2>0);
do{
x0=(x1+x2)/2;
f0=2*pow(x0,3)-4*x0*x0+3*x0-6; 
if(f0*f1<0){
x2=x0;
f2=f0;
}
else{
x1=x0;
f1=f0;
}
} while(fabs(f0)>=1e-6);
printf("%0.6f\n",x0);
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值