迭代法是用於求方程或方程組近似根的一種常用的演算法設計方法。設方程為f(x)=0,用某種數學方法匯出等價的形式x=g(x),然後按以下步驟執行:
(1) 選乙個方程的近似根,賦給變數x0;
(2) 將x0的值儲存於變數x1,然後計算g(x1),並將結果存於變數x0;
(3) 當x0與x1的差的絕對值還小於指定的精度要求時,重複步驟(2)的計算。
若方程有根,並且用上述方法計算出來的近似根序列收斂,則按上述方法求得的x0就認為是方程的根。上述演算法用c程式的形式表示為:
【演算法】迭代法求方程的根
while ( fabs(x0-x1)>epsilon);
printf(「方程的近似根是%f/n」,x0);
} 迭代演算法也常用於求方程組的根,令
x=(x0,x1,…,xn-1)
設方程組為:
xi=gi(x) (i=0,1,…,n-1)
則求方程組根的迭代演算法可描述如下:
【演算法】迭代法求方程組的根
while (delta>epsilon);
for (i=0;i);
printf(「/n」);
} 具體使用迭代法求根時應注意以下兩種可能發生的情況:
(1) 如果方程無解,演算法求出的近似根序列就不會收斂,迭代過程會變成死迴圈,因此在使用迭代演算法前應先考察方程是否有解,並在程式中對迭代的次數給予限制;
(2) 方程雖然有解,但迭代公式選擇不當,或迭代的初始近似根選擇不合理,也會導致迭代失敗。
常用演算法設計方法之迭代法
迭代法是用於求方程或方程組近似根的一種常用的演算法設計方法。設方程為 f x 0 用某種數學方法匯出等價的形式 x g x 然後按以下步驟執行 1 選乙個方程的近似根,賦給變數x0 2 將x0 的值儲存於變數 x1,然後計算 g x1 並將結果存於變數x0 3 當x0與x1 的差的絕對值還小於指定的...
演算法設計之迭代法!
常用演算法設計方法之迭代法 一 迭代法 迭代法是用於求方程或方程組近似根的一種常用的演算法設計方法。設方程為f x 0,用某種數學方法匯出等價的形式x g x 然後按以下步驟執行 1 選乙個方程的近似根,賦給變數x0 2 將x0的值儲存於變數x1,然後計算g x1 並將結果存於變數x0 3 當x0與...
演算法 牛頓迭代法求平方根
q implement int sqrt int x compute and return the square root of x.a 這裡給出兩種實現方法 一是二分搜尋,二是牛頓迭代法。1.二分搜尋 對於乙個非負數n,它的平方根不會小於大於 n 2 1 謝謝 linzhi cs提醒 在 0,n ...