这是我的代码:
void Newton(double a,double b,double eps, double (*func)(double,double))
{
double root;
double x,y;
x=a; y=b; root=y-func(y,0.5)/((func(y,0.5)-func(x,0.5))/(y-x));
double i;
int n=(15-0.5)*10+1;
for(i=0;i<n;i++)
{
while(fabs(y-x)>eps)
{
x=y;
y=root;
root=y-func(y,((double)i/10+0.6))/((func(y,((double)i/10+0.6))-func(x,((double)i/10+0.6)))/(y-x));
}
printf("The root computed by the Newton's method for w=%lf is %lf\n",((double)i/10+0.5),root);
}
}
只有函数计算和打印根是由牛顿方法计算的某个任意方程式,在函数'func'中说明。打印结果始终相同。只要等式中的因子发生变化,它就应该有所不同。我的功能是cos(x)-w*t
,其中w
是数字{0.5,0.6,...,15.0}
。
a
和b
是我搜索根的初始参数,eps是一些任意小的数字,这就是准确度。