newt.h

来自「y=x+log(x)-2.2 的一种算法」· C头文件 代码 · 共 23 行

H
23
字号
#include "stdio.h"
#include "math.h"
int newt(double *x,double eps,int js,void (*f)(double,double[]))
{	int k,l;
	double y[2],d,p,x0,x1;
	l=js;k=1;x0=*x;
	(*f)(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];
		(*f)(x1,y);
		d=fabs(x1-x0);
		p=fabs(y[0]);
		if(p>d) d=p;
		x0=x1;l--;
	}
	*x=x1;
	k=js-l;
	return(k);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?