编程实现用二分法求方程x^3+-+2x+-+2+=+0的一个根
1个回答
关注
展开全部
二分法求方程近似解的基本思想是将方程的有解区间平分为两个小区间,然后判断解在哪个小区间;继续把有解的区间一分为二进行判断,如此周而复始,直到求出满足精确要求的近似解。
咨询记录 · 回答于2022-02-21
编程实现用二分法求方程x^3+-+2x+-+2+=+0的一个根
二分法求方程近似解的基本思想是将方程的有解区间平分为两个小区间,然后判断解在哪个小区间;继续把有解的区间一分为二进行判断,如此周而复始,直到求出满足精确要求的近似解。
代码如下:double F(double a, double b, double c, double d, double x)//函数表达式{undefinedreturn (((a * x + b) * x) * x + d) / c;}double Function(double a, double b, double c, double d, double low, double high, double e){undefineddouble mid = (low + high) / 2;if (F(a, b, c, d, mid) == 0)return mid;while ((high-low) >= e){undefinedmid = (low + high) / 2;if (F(a, b, c, d, mid) == 0)return mid;if (F(a, b, c, d, low)*F(a, b, c, d, mid) < 0)high = mid;elselow = mid;}return low;}
⑴确定区间[a,b],验证f(a).f(b) < 0,给定精确度e⑵求区间(a, b)的中点mid⑶计算f(mid)若f(mid) = 0,则mid就是函数的零点若f(a).f(mid) < 0,则令b = mid(此时零点a < x0 < mid)若f(mid).f(b) < 0,则令a = mid(此时零点mid < x0 < b)⑷判断是否达到精确度e:即若|a-b| < e,则得到零点近似值a(或b);否则重复⑵-⑷。
编程实现用二分法求方程x^3 - 2x - 2 = 0的一个根
您是给的这道题的答案吗
#include double f(double x){return x*x*x-x*x-2*x+1;}int main(void) {double low=0,up=1;for(;up-low>=1e-3;){if(f((up+low)/2)<0)up=(up+low)/2;elselow=(up+low)/2;}printf("%.3lf\n",(up+low)/2);return 0;}
这是为您搜索到的答案。如果未能解答请谅解
已赞过
评论
收起
你对这个回答的评价是?