zoukankan      html  css  js  c++  java
  • 数学相关比较 牛顿迭代法求开方 很多个n的平方分之一

    牛顿迭代法求开方

    1. 牛顿迭代法

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

    2. 牛顿迭代法为什么收敛

      这里的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)开始不断逼近解。

    3. 我们来看看收敛的充分条件:

      若 二阶可导,那么在待求的零点 周围存在一个区域,只要起始点 位于这个邻近区域内,那么牛顿-拉弗森方法必定收敛。
      也就是说,在这个区域内,用切线代替曲线这个直觉是合理的。
      但是,因为我们不知道根点到底在哪里,所以起始点 选择就不一定在这个区域内,那么这个直觉就不可靠了。

      还有很多找不到解的情况,比如离解越来越远或者驻点,具体参考原文:https://blog.csdn.net/ccnt_2012/article/details/81837154

    4. 实现代码

      # 牛顿迭代求开方:
      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,-π

  • 相关阅读:
    文件的上传&预览&下载学习(五)
    文件的上传&预览&下载学习(四)
    MySQL学习(一)大纲
    MySQL学习(四)锁机制
    MySQL学习(五)事务
    小程序在WXML页面添加的data属性,在点击事件中,获取的属性名皆为小写字母
    CSS解决数字,字母自动换行的问题添加wordbreak:breakall; wordwrap:breakword;
    理解CSS盒模型
    浮动
    对于第四章“流程控制”的学习和认识
  • 原文地址:https://www.cnblogs.com/wangjiale1024/p/10270388.html
Copyright © 2011-2022 走看看