8--正割法算法

作者在 2008-05-10 21:20:38 发布以下内容

#include "stdio.h"
#include "conio.h"
#include "math.h"
#define MaxK 1000
#define EPS 0.5e-8
double f(double x) {return x*x*x - x - 1 ;}
void main()
{
    double x0 = 1, x1 =  2;
    int ZhengGe(double (*f)(double) , double &x0 ,double &x1,double eps);
    if(ZhengGe(f,x0,x1,EPS) == 1 )
      printf("the root is x=%f\n\n",x1);
    else printf("the method is fail!");
}

int ZhengGe(double (*f)(double) , double &x0 ,double &x1,double eps)
{
      int k = 0;
      double xk;
   printf("k\t\t   xk\t     f(xk)\n");
   printf("--------------------------------------\n");

      xk = x1 - (f(x1)*(x1 - x0))/(f(x1) - f(x0));
   printf("%d\t\t%f   %f\t\t\t\t\t\t",k,x0,f(x0));
  
   k = k+1;
      printf("%d\t\t%f   %f\t\t\t\t\t\t",k,x1,f(x1));

   k = k+1;
   printf("%d\t\t%f   %f\t\t\t\t\t\t",k,xk,f(xk));
     
      do
      {
    k++;
   
          x0 = x1;
          x1 = xk;
          xk = x1 - (f(x1)*(x1 - x0))/(f(x1) - f(x0));
    printf("%d\t\t%f   %f\t\t\t\t\t\t",k,xk,f(xk));
      
      }while(fabs( xk - x1 ) > eps );
   printf("--------------------------------------\n");
     
      x1 = xk;
      return 1;
}

大小: 1.14 KB
版本: V1.0
出品: 本站原创
来源: 本地
语言: 简体中文
授权: 免费
默认分类 | 阅读 937 次
文章评论,共0条
游客请输入验证码
文章分类
文章归档