请问用二分法求根 这个程序哪里错误啊
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/13 16:05:43
请问用二分法求根 这个程序哪里错误啊
#include
#include
int main()
{
double x,x1,x2,a,b,c;
for(x1=-10,x2=10;fabs(x1-x2)>=pow(10,-6);)
{
x=(x1+x2)/2;
a=2*x1*x1*x1-4*x1*x1+3*x1-6;
b=2*x2*x2*x2-4*x2*x2+3*x2-6;
c=2*x*x*x-4*x*x+3*x1-6;
if(a*c
#include
#include
int main()
{
double x,x1,x2,a,b,c;
for(x1=-10,x2=10;fabs(x1-x2)>=pow(10,-6);)
{
x=(x1+x2)/2;
a=2*x1*x1*x1-4*x1*x1+3*x1-6;
b=2*x2*x2*x2-4*x2*x2+3*x2-6;
c=2*x*x*x-4*x*x+3*x1-6;
if(a*c
楼主算c的那行写错了,应该是3*x, 而不是3*x1.
建议楼主这样写程序,请自行体会好处.
#include
#include
double f(double x) {
return 2*x*x*x - 4*x*x + 3*x - 6;
}
int main()
{
double x,x1,x2,a,b,c;
for(x1=-10,x2=10;fabs(x1-x2)>=pow(10,-6);)
{
x=(x1+x2)/2;
a=f(x1);
b=f(x2);
c=f(x);
printf("f(%lf)=%lf, f(%lf)=%lf, f(%lf)=%lf\n", x1, a, x2, b, x, c);
if(a*c
建议楼主这样写程序,请自行体会好处.
#include
#include
double f(double x) {
return 2*x*x*x - 4*x*x + 3*x - 6;
}
int main()
{
double x,x1,x2,a,b,c;
for(x1=-10,x2=10;fabs(x1-x2)>=pow(10,-6);)
{
x=(x1+x2)/2;
a=f(x1);
b=f(x2);
c=f(x);
printf("f(%lf)=%lf, f(%lf)=%lf, f(%lf)=%lf\n", x1, a, x2, b, x, c);
if(a*c