注册 登录
编程论坛 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
waili07132017-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