C语言中二分法的编程

谁能帮我用二分法求方程x3-3x2+2x-6=0在(-20,20)之间的根,要求绝对误差不超过0.001

第1个回答  推荐于2016-09-01
#include <stdio.h>
#include <math.h>
void main()
{int x1,x2,x,f1,f2;
f1=x1*x1*x1-3*x1*x1-2*x1-6;
f2=x2*x2*x2-3*x2*x2-2*x2-6;
do
{scanf("%d%d",x1,x2);
}while(f1*f2>0);
do
{x=(x1+x2)/2;
f=x*x*x-3*x*x-2*x-6;
if(f*f1<0)
{x2=x;
f2=f;}
if(f*f2<0)
{x1=x;
f1=f;}
}while(fabs(x1-x2)>0.001);
printf("%d",x);}

参考资料:如果您的回答是从其他地方引用,请表明出处

本回答被提问者采纳
第2个回答  2019-01-06
#include
<stdio.h>
#include
<math.h>
void
main()
{int
x1,x2,x,f1,f2;f1=x1*x1*x1-3*x1*x1-2*x1-6;f2=x2*x2*x2-3*x2*x2-2*x2-6;do{scanf("%d%d",x1,x2);}while(f1*f2>0);
do
{x=(x1+x2)/2;f=x*x*x-3*x*x-2*x-6;if(f*f1<0){x2=x;f2=f;}
if(f*f2<0)
{x1=x;f1=f;}
}while(fabs(x1-x2)>0.001);
printf("%d",x);}

用二分法求方程的根(C语言编写程序)
include <math.h> int main() { double x0, x1, x2, f0, f1, f2;do { printf("请输入两个点:");scanf("%lf,%lf", &x1, &x2);f1 = ((2 * x1 - 4) * x1 + 3) * x1 - 6; \/\/换成你自己的 方程 f2 = ((2 * x2 - 4) * x2 + 3) * x2 - 6; \/...

C语言二分法求解方程f(x)=0根
如果 $f(c)$ 与 $f(b)$ 异号,则解在区间 $[c, b]$ 中,令 $a = c$,重复步骤 3 - 5。下面是求解方程 $f(x) = x^3 - 3x + 1$ 在区间 $[1, 2]$ 中的根的 C 语言代码:cCopy code#include <stdio.h>#include <math.h>double f(double x) { return pow(x, ...

C语言中二分法的具体程序是什么呢?
scanf("c",&goon);}while(goon=='y'|| goon=='Y');}

C语言实现二分法求解方程在区间内的根
C语言利用二分法策略寻找非线性方程在给定区间内的唯一实根。这种方法的关键在于,对于连续函数[公式],假设其在[a, b]区间内仅有一个实根,通过不断将区间对半分割,直至找到函数值符号变化的位置,从而确定根的确切位置。二分法的具体步骤是:首先,将区间[a, b]分为两部分,取中点[公式],计算函数...

用C语言编写二分法解方程程序
float getvalue(float x){ return x*x*x+4*x*x-10;} void main(){ float a=1,b=1.5,c;c=(a+b)\/2;while(fabs(getvalue(c))>0.00001 && fabs(a-b)>0.00001){ if(getvalue(c)*getvalue(b)<0) a=c;if(getvalue(a)*getvalue(c)<0) b=c;c=(a+b)\/2;} printf("...

c语言二分法求方程的根的算法
很有可能中值*下界值和中值*上界值都大于0,那么会跳出认为没有根,而事实上很有可能这个中值点靠近函数极点。而真正用二分法求给定区间的思路是:首先为函数求导,算出导函数的零点,然后再判断零点性质,最后将函数区间分为单调递增和单调递减间隔的形式,对每一段进行二分法求根。

C语言表编程:用二分法求一元三次方程的根 要求:又主函数调用求根子函数...
比如用二分法求f(x)=x^3-6x-1=0的实根。代码如下(已调试):include "math.h"main(){ float x,x1,x2;float F(float x,float x1,float x2);printf("请输入区间[x1,x2]\\n");scanf("%f%f",&x1,&x2);printf("x=%f\\n",F(x,x1,x2));} float F(float x,float x1,float x...

C语言二分法编程问题
int n; \/* n为文件中的记录个数,n<MAXNUM *\/ RecordNode record[MAXNUM];} SortObject;void binSort(SortObject * pvector) { \/* 按递增序进行二分法插入排序 *\/ int i, j, left, mid, right;RecordNode temp;RecordNode *data = pvector->record;for( i = 1; i < pvector-...

用C语言,运用二分法,求函数零点。
define e 0.000001 \/\/误差 void eff(double a,double b,fun hs)\/\/二分法 {int i=0;while(fabs(hs(a)-hs(b))>e&&fabs(a-b)>e){i++;if(hs(a)*hs((b+a)\/2)>0){ a=(a+b)\/2;printf("迭代第%d次:\\t%f\\n",i,a);} else { b=(a+b)\/2;printf("迭代第%d次:\\...

C语言二分法求y =2x ³-4x ²+3x-6=0的程序?
\/ 二分法,适用于原函数是单调递增或单调递减,即方程只有1个根,或在指定区间只有1个根 \/ \/\/函数y( x),直接按题目中的方程写 double y(double x){ return 2*x*x*x -4*x*x +3*x -6;} \/\/递归调用函数,这种调用多少次不一定的函数,\/\/用递归调用最简单,但要掌握递归技巧 double f(...

相似回答