举个最简单的例子,Jacobi迭代解x+y=2,2x+3y=5
programJacobi
integer::N,NMAX=10000
real::X,Y,X0,Y0,ERROR=0.0001
X0=0.0
Y0=0.0
doN=1,NMAX
X=2-Y0
Y=(5.0-2*X0)/3.0
if(abs((X-X0)/X0)
你到底要做什么问题?这已经是最简单的例子了,针对你的问题现写的。
呵呵谢谢高手回答我形容一下我的想法比如一个公式A=B+C(与具体公式无关)迭代求A(我多要求的是个速度场,所以A代表的是一系列点上的速度,二维的)经过N次迭代达到相应精度迭代结束怎么样用个程序结构实现每一次迭代结束时,此次迭代的结果与前一次的迭代的结果进行对比,达到一定精度,迭代结束。忘高手指点再次感谢
还是不太明白你想做什么。你要编CFD的程序么?求解流场?如果是那就不是一两句话描述的清楚的了。如果你只是做个迭代那么我之前给你写的小程序就很清楚的说明问题了。而且你自己都已经把程序流程描述清楚了,计算一次——判断是否达到收敛精度——如果是,结束输出结果,如果否,把上一次迭代的值赋给瓶子,开始新一轮迭代
对的意思是这么个意思程序流程差不多是这样但是两次连续迭代结果比较的话比如第N次迭代结果A=0.9与N-1次结果A=0.95比较问题来了虽然A的计算值不一样但在程序表达上(即书面上A是一样的啊)这就需要把最后一次迭代值赋给另一个符号,如D=A,再把D与与N-1次比较,这个功能怎么实现,具体是在那个过程中把A值赋给D了谢谢