java 牛顿迭代算术平方根,牛顿迭代法求n方根

这篇博客介绍了如何使用牛顿迭代法在C语言中求解平方根和立方根。首先,通过数学推导得出迭代公式,然后分别展示了计算平方根和立方根的代码实现,利用while循环不断逼近精确值,直到满足预设的精度要求。此外,还提及了手动计算平方根的方法,并给出了牛顿迭代法在求解方程根的问题上的一般应用。
摘要由CSDN通过智能技术生成

一、简单推导

ffb784bbdea725ed835aec3aa654a32b.png

二、使用

借助上述公式,理论上可以求任意次方根,假设要求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|

下面以算术平方根和立方根举例。

(一)算术平方根

设待求算术平方根的数为a,其算术平方根为x,则x2=a,令f(x)=x2-a,代入上面的递推式有xn+1=xn-(xn2-a)/(2xn),整理得xn+1=(1/2)(xn+a/xn)

代码如下:

double sqrt(double a)

{

double x1=a;

double x2=a/;

while(fabs(x1-x2)>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/;

while(fabs(x1-x2)>0.0000001)

{

//printf("%f\n",x2);

x1=x2;

x2=(*x1+a/(x1*x1))/3.0;

}

return x2;

}

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

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

d729eb8d9000bba22a4af07319131848.png

【清橙A1094】【牛顿迭代法】牛顿迭代法求方程的根

问题描述 给定三次函数f(x)=ax3+bx2+cx+d的4个系数a,b,c,d,以及一个数z,请用牛顿迭代法求出函数f(x)=0在z附近的根,并给出迭代所需要次数. 牛顿迭代法的原理如下(参考下图) ...

141. Sqrt(x)【牛顿迭代法求平方根 by java】

Description Implement int sqrt(int x). Compute and return the square root of x. Example sqrt(3) = 1 ...

YTU 2405: C语言习题 牛顿迭代法求根

2405: C语言习题 牛顿迭代法求根 时间限制: 1 Sec  内存限制: 128 MB 提交: 562  解决: 317 题目描述 用牛顿迭代法求根.方程为ax3+bx2+cx+d=0.系数a,b ...

C语言之基本算法11—牛顿迭代法求平方根

//迭代法 /* ================================================================== 题目:牛顿迭代法求a的平方根!迭代公式:Xn+1 ...

【Java例题】4.4使用牛顿迭代法求方程的解

4. 使用牛顿迭代法求方程的解:x^3-2x-5=0区间为[2,3]这里的"^"表示乘方. package chapter4; public class demo4 { publi ...

数学相关比较 牛顿迭代法求开方 很多个n的平方分之一

牛顿迭代法求开方 牛顿迭代法 作用: 求f(x) = 0 的解 方法:假设任意一点 x0, 求切线与x轴交点坐标x1, 再求切线与x轴交点坐标x2,一直重复,直到f(xn) 与0的差距在一个极小的范围 ...

牛顿迭代法实现平方根函数sqrt

转自利用牛顿迭代法自己写平方根函数sqrt 给定一个正数a,不用库函数求其平方根. 设其平方根为x,则有x2=a,即x2-a=0.设函数f(x)= x2-a,则可得图示红色的函数曲线.在曲线上任取一点 ...

牛顿迭代法--求任意数的开n次方

牛顿迭代法是求开n次方近似解的一种方法,本文参考. 引言 假如\(x^n = m\),我们需要求x的近似值. 我们设\(f(x) = x^n - m\), 那么也就是求该函数f(x)=0时与x轴的交点 ...

C语言之基本算法25—牛顿迭代法求方程近似根

//牛顿迭代法! /* ============================================================ 题目:用牛顿迭代法求解3*x*x*x-2*x*x-16 ...

随机推荐

Selenium关键字驱动测试框架Demo(Java版)

Selenium关键字驱动测试框架Demo(Java版)http://www.docin.com/p-803493675.html

jhat中的OQL(对象查询语言)

http://blog.csdn.net/wanglha/article/details/40181767 jhat中的OQL(对象查询语言) 如果需要根据某些条件来过滤或查询堆的对象,这是可能的,可 ...

Selenium IDE 工具总结

基本介绍: Selenium工具专门为WEB应用程序编写的一个验收测试工具. Selenium的核心:browser bot,是用JavaScript编写的. Selenium工具有4种:Seleni ...

Django学习笔记(精简版)

dos:安装:python setup.py install 环境变量:D:\Python27;D:\Python27\Lib\site-packages\django\bin; 转到创建的目录:dj ...

【Java探索道路安全系列:Java可扩展的安全架构】一间:Java可扩展的安全体系结构开始

笔者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell [ ...

一般处理程序获取get,post数据

ashx具体代码: public class GuanWangWC : IHttpHandler { public void ProcessRequest(HttpContext context) { ...

YIi url美化

一.Yii Url美化,配置urlManager组件 'urlManager' => [ 'enablePrettyUrl' => true, // 开启URL美化,可以去掉 index. ...

CodeFirst简单演示的步骤

CodeFirst简单演示的步骤 创建实体类[Student] public class Student { public long Id { get; set; } public string Na ...

RabittMQ安装和Erlang安装教程

安装Erlang 官方安装地址文档: http://www.rabbitmq.com/install-rpm.html 根据官网的推荐 进入到专为RabbitMQ整理的极简版Erlang https: ...

51nod算法马拉松28-c

题解: 按照每一个要求,分类讨论,讨论压下去了多少 代码: #include using namespace std; ,N=; int n,A,B,C,an ...

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值