當前位置:編程學習大全網 - 編程語言 - 叠代的應用實例

叠代的應用實例

叠代法是用於求方程或方程組近似根的壹種常用的算法設計方法。設方程為f(x)=0,用某種數學方法導出等價的形式x=g(x),然後按以下步驟執行:

⑴ 選壹個方程的近似根,賦給變量x0;

⑵ 將x0的值保存於變量x1,然後計算g(x1),並將結果存於變量x0;

⑶ 當x0與x1的差的絕對值還大於指定的精度要求時,重復步驟⑵的計算。

若方程有根,並且用上述方法計算出來的近似根序列收斂,則按上述方法求得的x0就認為是方程的根。上述算法用C程序的形式表示為:

算法叠代法求方程的根

以下是引用片段:

{ x0=初始近似根;

do {

x1=x0;

x0=g(x1); /*按特定的方程計算新的近似根*/

} while (fabs(x0-x1)>Epsilon);

printf(“方程的近似根是%f\n”,x0);

}

叠代算法也常用於求方程組的根,令

X=(x0,x1,…,xn-1)

設方程組為:

xi=gi(X) (I=0,1,…,n-1)

則求方程組根的叠代算法可描述如下:

算法叠代法求方程組的根

以下是引用片段:

{ 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]的近似根是 %f”,I,x);

printf(“\n”);

}

具體使用叠代法求根時應註意以下兩種可能發生的情況:

⑴ 如果方程無解,算法求出的近似根序列就不會收斂,叠代過程會變成死循環,因此在使用叠代算法前應先考察方程是否有解,並在程序中對叠代的次數給予限制;

⑵ 方程雖然有解,但叠代公式選擇不當,或叠代的初始近似根選擇不合理,也會導致叠代失敗。

① N 為兔子的個數, M為月份 (N+N*1)^M-1=2N^M-1 (註解)

  • 上一篇:遇到LG42 LS3150 不定時黑屏有聲故障 求教
  • 下一篇:最新的1元人民幣是多少?迪拉姆匯率是多少?最新的1元人民幣是多少?
  • copyright 2024編程學習大全網