迭代法也叫辗转法,是一种不断用变量的旧值递推新值的过程,在解决问题时总是重复利用的一种方法。
迭代算法基础 确认迭代变量在可以使用迭代算法解决的值中至少存在一个迭代变量。可以直接或者间接的用旧值推出新值。
建立迭代关系式迭代关系式是指如何从变量的前一个值推出下一个值的公式或者关系。
对迭代过程进行控制- 所需的迭代次数是确定的,可以计算出来,可以构建一个固定次数的循环来实现对迭代过程的控制
- 所需的迭代次数无法确定,需要进一步分析出用来结束迭代过程的条件。
求ex-cos( π pi πx)=0
import math #为了使用cos函数
def takeStep(Xcur):
Xnex=[0,0,0];
Xnex[0]=math.cos(Xcur[1]*Xcur[2])/3.0+1.0/6
Xnex[1]=math.sqrt(Xcur[0]*Xcur[0]+math.sin(Xcur[2])+1.06)/9.0-0.1
Xnex[2]=-1*math.exp(-1*Xcur[0]*Xcur[1])/20.0-(10*math.pi-3)/60
return Xnex
def initialize():
X0=[0.1,0.1,-0.1]
return X0
def ColculateDistance(Xcur,Xnew):
temp=[Xcur[0]-Xnew[0],Xcur[1]-Xnew[1],Xcur[2]-Xnew[2]]
dis=math.sqrt(temp[0]*temp[0]+temp[1]*temp[1]+temp[2]*temp[2])
return dis
def iteration(eps,maxIter):
cur_eps=10000
Xcur=initialize()
Xnew=[0,0,0]
iterNum=1
print("--------------------------开始迭代--------------------------")
print(" 迭代次数 | Xk1 | Xk2 | Xk3 | eps ")
while (cur_eps>eps and iterNum
递归与迭代算法的区别
递归是从上向下逐步拓展需求,最后从下向上运算,即有f(n) ~ f(1),再由 f(1) ~ f(n)。迭代算法是直接从下向上运算,由f(1) ~ f(n),



