牛顿迭代法求数的平方根和立方根

转载 2015年07月10日 10:43:55

求平方根和立方根,我们一般用牛顿迭代法,下面是对应的公式。

求Y的平方根迭代公式:a(n+1)=(a(n)+Y/a(n))/2,初始化可以令a0 = 1。

求Z的立方根迭代公式:a(n+1)={2a(n)+Z/{[a(n)]^2}}/3,初始化可以令a0 = 1。

#include  <math.h>
#include  <stdio.h>

double sqrt_root(double a,double x0)
{  
    double x1,y;
    x1=(x0+a/x0)/2.0;
    if(fabs(x1-x0)>=0.00001)
        y=sqrt_root(a,x1);
    else 
        y=x1;
    return y;
}

double cube_root(double a,double x0)
{  
    double x1,y;
    x1=(2*x0+a/(x0*x0))/3.0;
    if(fabs(x1-x0)>=0.00001)
        y=cube_root(a,x1);
    else 
        y=x1;
    return y;
}

int main()
{ 
    double x;
    printf("Enter x: "); 
    scanf("%lf",&x);
    printf("The square root of %lf is %f \n",x, sqrt_root(x,1.0));
    printf("The cube root of %lf is %f \n",x, cube_root(x,1.0));

    return 0;
}


牛顿迭代法求解立方根

//计算一个数字的立方根,不使用库函数 //详细描述: //接口说明 //原型: //public static double getCubeRoot(double input) //输入:...
  • xhyzjiji
  • xhyzjiji
  • 2014年06月14日 16:56
  • 2618

牛顿迭代法求一个数的立方根、平方根

牛顿迭代法求一个数的立方根、平方根
  • qq_34528297
  • qq_34528297
  • 2017年04月21日 16:17
  • 491

求立方根

题目没多大意思,就是考虑问题不够,需要考虑为负数情况 #include #include #include using namespace std; int main(){ double n;...
  • liujie619406439
  • liujie619406439
  • 2014年02月26日 19:06
  • 894

牛顿迭代法求平方根、立方根

牛顿迭代公式平方根迭代公式:a(n+1)=( a(n) + num/a(n) )/2,a(0) 初始化为1; 立方根迭代公式:a(n+1)=( 2a(n) + num/( (a(n))^2 ) )/3...
  • liu1055087125
  • liu1055087125
  • 2017年05月16日 11:25
  • 228

华为OJ1964-求解立方根(牛顿迭代法)

一、题目描述描述: 计算一个数字的立方根,不使用库函数。 函数原型double getCubeRoot(double input) 输入:待求解参数 double类型输出:输出参数的立方根,保留一位小...
  • lisong694767315
  • lisong694767315
  • 2015年04月24日 16:42
  • 2987

SICP 习题 (1.8) 解题总结:牛顿法求立方根

SICP 习题1.8需要我们做的是按照牛顿法求平方根的方法做一个求立方根的过程。 所以说书中讲牛顿法求平方根的内容还是要好好理解,不然后面这几道题做起来就比较困难。 反过来,如果理解了牛顿法求平方根的...
  • keyboardOTA
  • keyboardOTA
  • 2013年09月02日 00:12
  • 2230

牛顿迭代法应用——求数的平方根和立方根

牛顿迭代法,从一个值开始,用无限逼近的方式得出结果。#include #includeint main() { double a; double x; scanf("%lf",...
  • a375849201893857
  • a375849201893857
  • 2015年06月27日 18:19
  • 1173

题目1166:迭代求立方根

题目描述: 立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值。 输入: 输入有多组...
  • zhuoyuezai
  • zhuoyuezai
  • 2016年07月09日 23:16
  • 246

牛顿迭代法 立方

牛顿迭代法。设f(x)=x3-y, 求f(x)=0时的解x,即为y的立方根。 根据牛顿迭代思想,xn+1=xn-f(xn)/f'(xn)即x=x-(x3-y)/(3*x2)=(2*x+y/x/x)/3...
  • tianzhijiaozi19
  • tianzhijiaozi19
  • 2016年08月20日 23:24
  • 166

利用牛顿迭代法求平方根

求n的平方根,先假设一猜测值X0 = 1,然后根据以下公式求出X1,再将X1代入公式右边,继续求出X2…通过有效次迭代后即可求出n的平方根,Xk+1先让我们来验证下这个巧妙的方法准确性,来算下2的平方...
  • z2008junjie
  • z2008junjie
  • 2010年03月09日 17:37
  • 18498
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:牛顿迭代法求数的平方根和立方根
举报原因:
原因补充:

(最多只允许输入30个字)