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