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

作用: 求f(x) = 0 的解
方法:假设任意一点 x0, 求切线与x轴交点坐标x1, 再求切线与x轴交点坐标x2,一直重复,直到f(xn) 与0的差距在一个极小的范围内牛顿迭代法为什么收敛
这里的f(x) = x^2 - a^2
如果当前点是x,那么下一个点就是 x2 = (x^2 -a^2)/2x
1) 假设解为a, 如果x>a, 则 x-x2 = (x + a^2/x)/2 , 因为a>0, 所以x必然大于x2
2) 假设x<a, 从图上容易得出,此时f(x)<0, 下一个点也就是x2会大于a, 然后就会进入上边的1)开始不断逼近解。我们来看看收敛的充分条件:
若 二阶可导,那么在待求的零点 周围存在一个区域,只要起始点 位于这个邻近区域内,那么牛顿-拉弗森方法必定收敛。
也就是说,在这个区域内,用切线代替曲线这个直觉是合理的。
但是,因为我们不知道根点到底在哪里,所以起始点 选择就不一定在这个区域内,那么这个直觉就不可靠了。还有很多找不到解的情况,比如离解越来越远或者驻点,具体参考原文:https://blog.csdn.net/ccnt_2012/article/details/81837154
实现代码
# 牛顿迭代求开方:
def extract(x):
print('#=======%s========' % str(x))
y = 1.0
while(abs(x-y**2) > 0.00001):
y = (y+x/y)/2
print(y)
extract(0.01)
extract(16)
extract(256) #=======0.01========
0.505
0.2624009900990099
0.15025530119986813
0.10840434673026925
0.10032578510960605
0.10000052895642693
#=======16========
8.5
5.1911764705882355
4.136664722546242
4.002257524798522
4.000000636692939
#=======256========
128.5
65.24610894941634
34.58485728656987
20.993470372021676
16.59386909154118
16.010626831390027
16.00000352670594
16.00000000000039
很多个n的平方分之一 求和
1+1/2²+1/3²+···+1/n²= 2
H (调和数)
n
1+1/2²+1/3²+···+1/n²+···=π^2/6
证明:可以参见黎曼zeta函数.
一个有意思的推导是欧拉给出的
考虑Sin(x)/x
泰勒展开后有 sin(x)/x = 1 - x^2/3!+ .
另外,sin(x)/x 在x = n Pi 的时候有零点.我们假设可以用这些零点来表示sin(x)/x 那么有
sin(x)/x = (1-x/Pi)(1+x/Pi)(1-x/(2Pi))(1+x/(2Pi)...
(成立因为左边有右边的零点必须相同)
也就等于 (1-x2/Pi2)(1-x2/(4Pi2)).
展开上面的连积,然后取x^2项目的系数有
-(1/Pi2+1/(4Pi2)+1/(9Pi^2)+.) = - 1/Pi^2 (1+1/4+1/9+...1/n^2)
这个既然是x^2项目的系数,自然应该等于 1/3!= 1/6.
所以得到
1+1/4+1/9+.= Pi^2/6.
或者:
函数f(x)=-x,-π
数学相关比较 牛顿迭代法求开方 很多个n的平方分之一的更多相关文章
- 【清橙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 ...
- 蓝桥杯 C/C++参考题目 开平方(数学题,迭代法求开方)
开平方 如果没有计算器,我们如何求2的平方根?可以先猜测一个数,比如1.5,然后用2除以这个数字.如果我们猜对了,则除法的结果必然与我们猜测的数字相同.我们猜测的越准确,除法的结果与猜测的数字就越接近 ...
- 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次方
牛顿迭代法是求开n次方近似解的一种方法,本文参考. 引言 假如\(x^n = m\),我们需要求x的近似值. 我们设\(f(x) = x^n - m\), 那么也就是求该函数f(x)=0时与x轴的交点 ...
- C语言之基本算法25—牛顿迭代法求方程近似根
//牛顿迭代法! /* ============================================================ 题目:用牛顿迭代法求解3*x*x*x-2*x*x-16 ...
- 牛顿迭代法求n方根
一.简单推导 二.使用 借助上述公式,理论上可以求任意次方根,假设要求a(假设非负)的n次方根,则有xn=a,令f(x)=xn-a,则只需求f(x)=0时x的值即可.由上述简单推导知,当f(x)=0时 ...
随机推荐
- Vue学习笔记【21】——Vue中的动画(v-for 的列表过渡)
定义过渡样式: <style> .list-enter, .list-leave-to { opacity: 0; transform: translat ...
- Java——接口interface
3.5接口interface ①有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. ②接口(interface)是抽象方法和 ...
- Eclipse中安装插件的方法
eclipse插件的安装方法大体有以下三种: 第一种:直接复制法:假设你的Eclipse的在(C:\eclipse), 解压你下载的 eclipse 插件或者安装eclipse 插件到指定目录AA( ...
- 一些DP杂题
1. [HNOI2001] 产品加工 一道简单的背包,然而我还是写了很久QAQ 时间范围是都小于5 显然考虑一维背包,dp[i]表示目前A消耗了i的最小B消耗 注意 if(b[i]) dp[j]=dp ...
- Ajax请求参数为文件类型
1.图片用get请求,回调函数中返回的数据就是流文件(至于是什么流文件还不清楚), 在回调函数中再使用post请求2.JS将文件像form表单一样提交到后台 : https://www.cnblo ...
- Chrome 调试跨域问题解决方案之插件篇
跨域,就是A域名下的js,想请求B域名下的接口数据.跨域,只存在于浏览器端.App和小程序不存在跨域问题.跨域,分浏览器策略和服务器策略. 如果服务器配置了允许跨域,那就没有跨域问题 如果uni-ap ...
- Ext 可编辑的GridPanel
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java-Class-FC:java.lang.StringBuilder
ylbtech-Java-Class-FC:java.lang.StringBuilder 1.返回顶部 2.返回顶部 1. @Override public String toString() ...
- Application.GetOpenFilename 使用说明
Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect) 语法: 名称 ...
- Git 学习第三天(一)
远程克隆: 在github新建一个仓库,起名为gitskills 勾选此项,会自动创建一个readme.md文件,然后通过命令 git clone git@github.com:Your.name/g ...