编程论坛
注册
登录
编程论坛
→
VC++/MFC
用弦截法求f(x)=x^3+2x^2+10x-20=0的根,精度要求10^-6,并绘出迭代次数。(x1=1,x2=2)
waili0713
发布于 2017-05-17 20:34, 3512 次点击
用弦截法求f(x)=x^3+2x^2+10x-20=0的根,精度要求10^-6,并绘出迭代次数。(x1=1,x2=2)
越快越好!用c/c++编程。
[此贴子已经被作者于2017-5-17 20:35编辑过]
1 回复
#2
waili0713
2017-05-17 20:39
[b]就这样没问题,自己找到问题啦。
#include <stdio.h>
#include <stdlib,h>
#include <math.h>
double x,x0,x1;
double f(double x)
{
double c;
c=x*x*x+2*x*x+10*x-20;
return(c);
}
double root(double x0,double x1)
{
int i;
while(f(x)<-0.000001||f(x)>0.000001);
{
double k,b;
k=(f(x0)-f(x1))/(x0-x1);
b=f(x0)-k*x0;
x=-b/k;
i++;
if(f(x)*f(x0)>=0)x0=x;
if(f(x)*f(x1)>=0)x1=x;
}
printf("迭代次数=%d\n",i);
return x;
}
int main()
{
double x0=1;
double x1=2;
printf("x0=1\nx1=2\n");
while(f(x0)*(x1)>=0)
{
scanf("%lf%lf",&x0,&x1);
}
root(x0,x1);
printf("根=%f\n",x);
systeam("pasue";)
return 0;
}
[此贴子已经被作者于2017-5-19 19:05编辑过]
1