c语言二分法求方程的近似解
发布网友
发布时间:2022-05-12 17:37
我来回答
共2个回答
热心网友
时间:2023-10-16 02:45
按照你的要求只实现了这个方程的,不能泛用,不过很容易修改,代码如下:
#include<stdio.h>
#include<math.h>
float function(float x)
{
float result = 0.0;
result = ((x*x*x) - (3*x) + 1);
return result;
}
int main()
{
float a = 0;
float b = 1;
float e = (float)0.001;
float m = (a+b)/2;
while(1)
{
if (fabs((function(m)) <= e))
{
printf("result is %lf ", m);
return 1;
}
else if (function(m) > 0)
{
a = m;
}
else if (function(m) < 0)
{
b = m;
}
m = (a+b)/2;
}
return 1;
}
热心网友
时间:2023-10-16 02:46
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double f(double x)
{
return x*x*x-3*x+1;
}
int main()
{
double i=1.0, j=2.0;
while(fabs(i-j)>=0.001)
{
if(f((i+j)/2.0)<0)
i=(i+j)/2.0;
else
j=(i+j)/2.0;
};
printf("%lf",i);
return 0;
}