
C语言程序设计问题:利用二分法计算方程2X³-4X²+3X-6=0在区间[-5,5]的根,求程序设
2个回答
展开全部
#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;
}
追问
有没有简单一点的,我看不懂怎么办
展开全部
#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;
}
追问
有没有简单一点的,我看不懂怎么办
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询