迭代算法是一款教学辅助软件,数值分析之(zhī)迭代(dài)算法演示程(chéng)序,教学科研使用(yòng)。体积(jī)小,但(dàn)功能强大。界面非常清爽,简单易操作。
函(hán)数
在(zài)数(shù)学中,迭代函数是在碎(suì)形和(hé)动力系(xì)统中深入研究的(de)对象。迭代函(hán)数是重复的与自身复合的函数,这个过程叫(jiào)做迭代。
模(mó)型
迭代模型是RUP(RationalUnifiedProcess,统一软(ruǎn)件开发过程,统(tǒng)一软件过(guò)程)推荐的周期模型。
算法
迭代算法是用(yòng)计算机解(jiě)决问(wèn)题的一种(zhǒng)基本方(fāng)法。它利用计算机运算速度快、适合做重复性操作的特点,让(ràng)计(jì)算机对一(yī)组(zǔ)指(zhǐ)令(或一定步骤)进行重复(fù)执行,在每次执(zhí)行这组指令(或这(zhè)些步(bù)骤)时,都从变量的(de)原值(zhí)推出它的一个新(xīn)值。
迭代(dài)算法是用计算机解决问题的(de)一(yī)种基本方法。它(tā)利用计(jì)算机运算(suàn)速度快(kuài)、适合做重复性操作的特点(diǎn),让计算机对一组指令(或(huò)一定(dìng)步骤)进行(háng)重复执行,在(zài)每次执行这组(zǔ)指令(或这(zhè)些步骤)时,都从变(biàn)量的原值推出它的一个新值。
迭代法是用于求(qiú)方程或方程组近(jìn)似根的一种常用的算法设计方法(fǎ)。设方程为f(x)=0,用某种数(shù)学方法导出(chū)等价的(de)形式x=g(x),然(rán)后按以(yǐ)下(xià)步(bù)骤执行:
⑴选一个方程(chéng)的近似根,赋给变量x0;
⑵将(jiāng)x0的值(zhí)保存于变量x1,然后计算g(x1),并将(jiāng)结果(guǒ)存于变量x0;
⑶当x0与x1的差的绝对值还大于指定的精度要求时,重复步骤⑵的(de)计算(suàn)。
若(ruò)方程有根,并且用上述方法计算(suàn)出(chū)来的近似根序列(liè)收敛,则按上(shàng)述方法(fǎ)求得的x0就认为是方程的根。上述算法用C程序的形式表示为(wéi):
【算法】迭代法求方(fāng)程的根
以下是引用片段:
{x0=初始近似(sì)根;
do{
x1=x0;
x0=g(x1);/*按特定(dìng)的方程计算新(xīn)的近似根*/
}while(fabs(x0-x1)>Epsilon);
printf(“方程的(de)近似根是(shì)%f\n”,x0);
}
迭代算(suàn)法也常(cháng)用于求方程组的根,令
X=(x0,x1,…,xn-1)
设方程组(zǔ)为:
xi=gi(X)(I=0,1,…,n-1)
则求方程组根的迭代算(suàn)法可描述如下:
【算法】迭代(dài)法(fǎ)求方程组(zǔ)的根
以(yǐ)下是引(yǐn)用片段:
{for(i=0;i
x=初(chū)始近似根;
do{
for(i=0;i
y=x;
for(i=0;i
x=gi(X);
for(delta=0.0,i=0;i
if(fabs(y-x)>delta)delta=fabs(y-x);
}while(delta>Epsilon);
for(i=0;i
printf(“变量x[%d]的(de)近似根是%f”,I,x);
printf(“\n”);
}
具体使用迭代法求(qiú)根时应注(zhù)意(yì)以下两种可能发生的(de)情况(kuàng):
⑴如(rú)果方程无解,算法求出的近似根序列就不会收敛,迭(dié)代过程(chéng)会变成死循环,因此在使用迭代算法前应先考察方程是(shì)否有解,并在程序中对迭代的次数给予(yǔ)限制;
⑵方程虽然有解,但迭(dié)代(dài)公式选择(zé)不当,或迭代(dài)的初始(shǐ)近似根选择不(bú)合理,也会导致迭代(dài)失败(bài)。
①N为兔子(zǐ)的个数,M为月份(fèn)(N+N*1)^M-1=2N^M-1(注解)。
