li343 发表于 2008-1-22 14:54

[求助]请帮忙看一下!

下面的C语言程序是牛顿法求非线形方程的一个实根.
请问这两个程序在Visual Studio 6.0环境下 如何处理 才能正常运行?

注意:这里有个头文件 #include "dnewt.c".

程序1:

#include "math.h"
#include "stdio.h"
#include "dnewt.c"
main()
{ int js,k;
    double x,eps;
    eps=0.000001; js=60; x=1.5;
    k=dnewt(&x,eps,js);
    if (k>=0)
      printf("k=%dx=%13.7e\n",k,x);
    printf("\n");
}
void dnewtf(x,y)
double x,y;
{ y=x*x*(x-1.0)-1.0;
    y=3.0*x*x-2.0*x;
    return;
}


程序2:

#include "stdio.h"
#include "math.h"
int dnewt(x,eps,js)
int js;
double *x,eps;
{ extern void dnewtf();
    int k,l;
    double y,d,p,x0,x1;
    l=js; k=1; x0=*x;
    dnewtf(x0,y);
    d=eps+1.0;
    while ((d>=eps)&&(l!=0))
      { if (fabs(y)+1.0==1.0)
          { printf("err\n"); return(-1);}
      x1=x0-y/y;
      dnewtf(x1,y);
      d=fabs(x1-x0); p=fabs(y);
      if (p>d) d=p;
      x0=x1; l=l-1;
      }
    *x=x1;
    k=js-l;
    return(k);
}

[ 本帖最后由 li343 于 2008-1-22 14:56 编辑 ]

风花雪月 发表于 2008-1-29 15:29

有什么提示?
页: [1]
查看完整版本: [求助]请帮忙看一下!