迭代法也称辗转法,迭代是数值分析中通过从一个初始估计出发寻找一系列近似解来解决问题的过程,为实现
这一过程所使用的方法称为迭代法。常见的迭代法是牛顿迭代法,其他还包括最速下降法、共轭迭代法、最小
二乘法、线性规划、非线性规划、遗传算法、模拟退火等。
使用迭代算法要解决三个方面的问题:
(1)迭代变量的确定
在可以用迭代算法解决的问题中,至少存在一个直接或间接不断由旧值递推出新值的变量,称为迭代变量。
(2)建立迭代关系式
迭代关系式,是指如何从变量的前一个值推出其下一个值的公式(或关系)。
(3)对迭代过程进行控制
迭代过程的控制通常分为两种情况:
一种是所需的迭代次数是个确定的值,可以计算出来,这时,可以使用一个固定的循环来控制迭代过程。
另一种是所需的迭代次数无法确定。这时,应进一步分析结束迭代过程的条件。
常见的迭代法
求两个数的最大公约数(辗转相除法): gcd(a,b) = gcd(b, a mod b)
牛顿迭代法:
给定一条曲线y=f(x),现在求该曲线与x轴的交点,即f(x)=0的解。设(x0,y0)是曲线上的一个点,满足
y0 = f(x0),如果|y0|比较小,则x0可以视为方程f(x)=0的一个近似解。过点(x0, y0)作曲线的切线,该切线
的斜率是f(x0)', 设这条切线与x轴交于点(x,0)则
y' = y0/(x0-x)
二分法:
对于区间[a,b]上连续且满足f(a)*f(b)<0的函数y=f(x),通过不断把函数f(x)的零点所在的区间一分为二,使
区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫做二分法。