数学相关比较 牛顿迭代法求开方 很多个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,-π

原文地址:https://www.cnblogs.com/wangjiale1024/p/10270388.html