C语言程序设计问题:利用二分法计算方程2X³-4X²+3X-6=0在区间[-5,5]的根,求程序设

 我来答
xoaxa
2017-03-27 · TA获得超过8613个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3933万
展开全部

#include <stdio.h>
#include <math.h>

double f(double x) {
return x*(x*(2*x + 4) + 3) - 6;
}

int main() {
double va,vb,v0;
double eps = 1E-6;
double a = -5,b = 5;
va = f(a);
vb = f(b);
while(va*vb < 0) {
v0 = f((a + b)/2);
if(fabs(v0) < eps) {
printf("x = %lf\n",(a + b)/2);
return 0;
}
if(va*v0 < 0) b = (a + b)/2;
else a = (a + b)/2;
va = f(a);
vb = f(b);
}
printf("在给定区间内,方程无解。\n");
return 0;
}
追问
有没有简单一点的,我看不懂怎么办
百度网友d580670
2017-03-27 · TA获得超过1984个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:841万
展开全部
#define EPS (1e-10)
double f(double x) {
return ((2*x - 4)*x + 3)*x - 6;
}
int main() {
double r[2] = {-5, 5};
double f0 = f(r[0]);
double f1 = f(r[1]);
while (r[1] - r[0] > EPS) {
double m  = (r[0] + r[1]) / 2;
double fm = f(m);
if (fm == 0) break;
if (fm * f0 < 0) {
f1   = fm;
r[1] = m;
}
else {
f0  = fm;
r[0] = m;
}
}
printf("f(%lf) = %lf\n", r[0], f0);
return 0;
}
追问
有没有简单一点的,我看不懂怎么办
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式