java 牛顿迭代算术平方根,牛顿迭代法求n方根
一、简单推导
二、使用
借助上述公式,理论上可以求任意次方根,假设要求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;
}
三、(题外话)手算算式平方根
顺便提下,在网上看到了一个手动列算式求解任意正整数算术平方根的方法,如下:
【清橙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 ...
java 牛顿迭代算术平方根,牛顿迭代法求n方根相关推荐
- python牛顿迭代法求平方根_Newton迭代法求平方根
牛顿迭代法求根 (即曲线与x坐标轴交点) : 在曲线的一点P1(a, f(a)), 做切线, 切线与x轴, 相交于 A 点, A点做垂线 与曲线交于 P2(b, f(b)) 点, 在P2点继续做切线, ...
- python牛顿迭代公式_python 牛顿迭代法
使用牛顿迭代法求方程 在x附近的一个实根. 赋值X,即迭代初值:用初值x代入方程中计算此时的f(x)=(a * x * x * x + b * x * x + c * x + d)和f'(x)=(3 ...
- 最优化方法:牛顿迭代法和拟牛顿迭代法
http://blog.csdn.net/pipisorry/article/details/24574293 基础 拐点 若曲线图形在一点由凸转凹,或由凹转凸,则称此点为拐点.直观地说,拐点是使切线 ...
- python迭代法求平方根_1021: 迭代法求平方根
题目描述 用迭代法求 平方根 公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2 要求前后两次求出的差的绝对值少于0.00001. 输出保留3位小数 输入 X 输出 X的平 ...
- 求平方根的牛顿迭代matlab程序,牛顿迭代法求平方根
牛顿迭代法的作用是使用迭代法来求解函数方程的根,简单的说就是不断地求取切线的过程.对于形如f(x)=0的方程,首先任意的估算一个解x0,再把该估计值代入原方程中.由于一般不会正好选择到正确的解,所以有 ...
- 用matlab画牛顿迭代图形,matlab牛顿迭代动画演示
% 牛顿环演示的MATLAB程序 close all;clear;clc; figure('Position',[90 164 873 483]); L=632.8;R=5;H=5; a1=axes( ...
- 牛顿迭代法求平方根、立方根
牛顿迭代公式 平方根迭代公式:a(n+1)=( a(n) + num/a(n) )/2,a(0) 初始化为1: 立方根迭代公式:a(n+1)=( 2a(n) + num/( (a(n))^2 ) )/ ...
- 迭代法求平方根 MATLAB,用迭代法的思想 给出求根号(2 根号(2 根号(2 根号2)))的迭代格式...
用牛顿迭代法 求方程 2*x*x*x-4*x*x+3*x-6 的根 先去看看计算方法学习一下"牛顿迭代法"吧,不然就算懂了这个小程序也意义不大,真的 用C语言编程求牛顿迭代法求方程 ...
- 用迭代法求某数a的平方根
今天晚上笔试题目最后一题很简单,可是自己做不出= =,就是不用库函数,求一个浮点数的平方根. 立马想到用物理法,比如正方形的面积法等,可是求解出不出,然后就绕在里面了.归根到底还是平时的知识储备太少了 ...
最新文章
- STL Algorithms 之 unique
- Apache RocketMQ在linux上的常用命令
- Linux 创建快捷方式
- __attribute__ ((__pure__))
- python开发erp系统odoo_odooERP系统(框架)总结
- openstack搭建(私有云、公有云)云计算遇到的相关问题汇总整理
- 怎么用真机测试android,andriod studio如何使用真机测试 andriod studio真机测试教程
- 曼哈顿算法公式_曼哈顿最小距离算法
- 火焰字,通过PS制作炫酷的火焰文字
- Chapter2 ROS通信机制----基础篇(Ⅰ)vs配置及通信基础
- 给微信小程序配一个App如何?
- [ZZ]AppiumForWindows 菜鸟计划合集
- Android多语言切换(兼容安卓9、10)
- 【OneDrive篇】OneDrive禁用个人保管库(网页端)
- java流的试题_Java练习题 - Stream流
- document server java_Readme.md · ct_java/DocumentServer - Gitee.com
- 共享单车、公交车辆位置、地铁等50+个交通数据集
- 或许微软真的错了,全端 App 的时代要到来了
- java编写的atm机项目结题报告_《计算机学院视频教程网站的创建》教学研究项目结题报告.pdf...
- imYun 一个Go+Vue编写简化打印店工作流程的系统【开源后端+小程序端】