迭代思想

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

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
            
            
            

你可能感兴趣的:(迭代思想)