牛顿迭代法求开方值

        牛顿迭代法Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根,此时线性收敛,但是可通过一些方法变成超线性收敛。另外该方法广泛用于计算机编程中。牛顿迭代公式为:x[n+1] = x[n] - f(x[n])/f'(x[n]) 。那么求K的平方根的迭代公式为x[n+1] = 1/2*(x[n]+K/x[n])。

代码1:

double getroot(double y)
{
	/**/
	assert(y > 0);
	double u,v;
	u = y;
	int i = 0;
	while(i++ < 1000){
		v = 0.5*(u + y/u);
		if (fabs(u - v) < 0.1e-6)
			break;
		u = v;
	}
	return v;
}

代码2:

double getroot(double y,int N)
{
	/**/
	double u,v;
	u = y;
	int i = 0;
	while(i++ < 1000){
		v = double(N-1)/(N)*u + double(y)/(N*pow(u,N-1));
		if (fabs(u - v) < 0.1e-6)
			break;
		u = v;
	}
	return v;
} 



REF:

1,百度百科-牛顿迭代法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值