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

转载 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;
}


相关文章推荐

一个立方根的算法

一: 传说中的牛顿迭代: y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)) 于是,一个递归就能解决问题了。   二: 其实,#include return pow(...
  • rydiy
  • rydiy
  • 2012-12-14 13:00
  • 2290

牛顿迭代法求解立方根

//计算一个数字的立方根,不使用库函数 //详细描述: //接口说明 //原型: //public static double getCubeRoot(double input) //输入:...

牛顿迭代法求平方根

求平方根可以用二分的思路。二分其实也挺快的,不过还有更快的算法求平方根——牛顿迭代法。 如果我们要求a的平方根,首先令f(x)=x^2-a;那么我们的目的就是求得x使得f(x)=0; 在网上找了一张图...
  • w20810
  • w20810
  • 2015-10-11 10:13
  • 1456

LeetCode 488 Zuma Game 解题报告

原文链接: http://hankerzheng.com/blog/Leetcode-Zuma-Game-Problem DescriptionLeetCode 488 Zuma Game You ...

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

牛顿迭代法,从一个值开始,用无限逼近的方式得出结果。#include #includeint main() { double a; double x; scanf("%lf",...

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

一、题目描述描述: 计算一个数字的立方根,不使用库函数。 函数原型double getCubeRoot(double input) 输入:待求解参数 double类型输出:输出参数的立方根,保留一位小...

多校15场WHU Harry Potter and the Forbidden Forest(求网络的最小割的最小边数)

哈利波特想阻止在0点得食尸鬼到达n-1点,于是要破坏几条路,每条路消耗一定魔法,他想知道在耗费最少魔法的情况下,破坏的路最少。 (错误思路)比赛时想用费用流来解,对于原边每条边的cost赋值为1,流...

BigDecimal加减乘除运算

java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val) Translates a do...

牛顿迭代法求数的平方根

牛顿法最初由艾萨克·牛顿在《流数法》(Method of Fluxions,1671年完成,在牛顿死后的1736年公开发表)。约瑟夫·拉弗森也曾于1690年在Analysis Aequationu...

牛顿迭代法求数的平方根

转自:http://www.nowamagic.net/librarys/veda/detail/2268 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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