迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。利用迭代算法解决问题,需要做好以下三个方面的工作:一、确定迭代变量在可以用迭代算法解决的问题中,至少存在一个可直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。二、建立迭代关系式所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。三、对迭代过程进行控制在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析得出可用来结束迭代过程的条件。 matlab代码 定义函数 function y=f(x)y=f(x);%函数f(x)的表达式endfunction z=h(x)z=h(x);%函数h(x)的表达式,函数h(x)是函数f(x)的一阶导数end 主程序 x=X;%迭代初值i=0;%迭代次数计算while ix0=X-f(X)/h(X);%牛顿迭代格式if abs(x0-X)>0.01;%收敛判断X=x0;else breakendi=i+1;endfprintf('\n%s%.4f\t%s%d','X=',X,'i=',i) %输出结果 C语言代码 #include #include double func(double x) //举例函数 { return x*x*x*x-3*x*x*x+1.5*x*x-4.0; } double func1(double x) //导函数 { return 4*x*x*x-9*x*x+3*x; } int Newton(double *x,double precision,int maxcyc) //maxcyc 迭代次数 { double x1,x0; int k; x0=