牛顿迭代法求n方根 您所在的位置:网站首页 开5次方根 牛顿迭代法求n方根

牛顿迭代法求n方根

2024-07-11 13:30| 来源: 网络整理| 查看: 265

一、简单推导

 

二、使用

借助上述公式,理论上可以求任意次方根,假设要求a(假设非负)的n次方根,则有xn=a,令f(x)=xn-a,则只需求f(x)=0时x的值即可。由上述简单推导知,当f(x)=0时,xn+1=xn,因此把f(x)=xn-a 代入上述迭代式进行迭代直至xn+1=xn即可。

实际中xn+1=xn可能永远达不到,可以根据给定精度△,当|xn+1-xn|0.0000001) { //printf("%f\n",x2); x1=x2; x2=0.5*(x1+a/x1); } return x2; } (二)立方根

同理,令f(x)=x3-a,代入递推式有xn+1=xn-(xn3-a)/(3xn2),整理得xn+1=(1/3)(2xn+a/xn2)

代码如下:

double cubrt(double a) { double x1=a; double x2=a/2; while(fabs(x1-x2)>0.0000001) { //printf("%f\n",x2); x1=x2; x2=(2*x1+a/(x1*x1))/3.0; } return x2; }

 

三、(题外话)手算算式平方根

顺便提下,在网上看到了一个手动列算式求解任意正整数算术平方根的方法,如下:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有