美文网首页
迭代思想

迭代思想

作者: 云之彼端09 | 来源:发表于2018-10-16 13:53 被阅读15次

    求解一元高次方程的时候 ,用迭代法近似求解这类问题,梯度法,最小二乘法,牛顿迭代法。
    迭代法 用于 线性非线形方程组和曲线拟合等问题

    thinking: 迭代法和递推法,迭代法是很多数学问题的求解算法。递推法是一种设计算法的常用
    思想,没有固定的算法实现模式 ,通常与其他算法模式配合形成算法实现。
    

    有种说法,对于所有使用了迭代思想的算法实现都可以理解为使用的迭代法。这样以来,除了线性动态规划算法,遗传算法,退火算法等算法也可以归入迭代法的范畴。

    迭代法三要点
    确定迭代变量:迭代变量是要求问题的解,根据递推公式由旧值推出新值,可以是多个,还要设置迭代
    变量初始值
    
    确定迭代递推关系:根据旧值计算新值的关系或公式
    
    确定迭代终止条件:推出迭代,
        1 迭代变量已经得到精确值
        2 无法得到精确值,精度已经满足要求
        3 确定迭代次数,防止在某个区间上发散进入死循环
    

    用迭代法计算

    CodeCogsEqn.png
    import math
    
    LOOP_LIMIT = 9999999999999
    
    #a 初始值 exp 终止条件
    def cl_root(a, exp):
        # 初始值用a的一半
        xi = a / 2.0
        count = 0
        while True:
            xt = xi
            #递推关系
            xi = (xt + (a / xt)) / 2.0
            count += 1
            if count > LOOP_LIMIT:
                #不收敛,返回失败
                return False, 0.0
            if math.fabs(xi - xt) > exp:
                return True, xi
                
                
                
    

    相关文章

      网友评论

          本文标题:迭代思想

          本文链接:https://www.haomeiwen.com/subject/xbhhzftx.html