C++基本算法3-2 二分答案

例题

用二分法求方程2*x^{3}-4*x^{2}+3*x-6=0在(a,b)之间的根.答案保留六位小数。

(提示:二分,并令f(x)=2*x^{3}-4*x^{2}+3*x-6

思路

是不是要呕吐了

给公式

mid=\frac{a+b}{2}

a=mid,f(a)*f(mid)>0

b=mid,f(b)*f(mid)>0

mid=\frac{a+b}{2}
当mid小于用户自定义最小值(本题为1e-6)输出f(mid)⑤

否则按上面规则二分

放代码演示一下

有兴趣的去搜索一下

 代码

#include<bits/stdc++.h>
using namespace std;
double f(double x){
	return 2.0*x*x*x-4.0*x*x+3*x-6;
}
int main(){
	double left,right,mid;
	cin>>left>>right;
    mid=(left+right)/2;//①
	while(fabs(f(mid))>1e-6){
		if(f(left)*f(mid)>0) left=mid;//②
		if(f(right)*f(mid)>0) right=mid;//③
		mid=(left+right)/2;//④
	}
	printf("%.6lf",mid);//⑤
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值