马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
下面的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=%d x=%13.7e\n",k,x);
printf("\n");
}
void dnewtf(x,y)
double x,y[2];
{ y[0]=x*x*(x-1.0)-1.0;
y[1]=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[2],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])+1.0==1.0)
{ printf("err\n"); return(-1);}
x1=x0-y[0]/y[1];
dnewtf(x1,y);
d=fabs(x1-x0); p=fabs(y[0]);
if (p>d) d=p;
x0=x1; l=l-1;
}
*x=x1;
k=js-l;
return(k);
}
[ 本帖最后由 li343 于 2008-1-22 14:56 编辑 ] |