疊代計算

疊代計算

疊代法數值計算中一類典型方法,套用於方程求根,方程組求解,矩陣求特徵值等方面。其基本思想是逐次逼近,先取一個粗糙的近似值,然後用同一個遞推公式,反覆校正此初值,直至達到預定精度要求為止。

疊代計算次數指允許公式反覆計算的次數,在Excel中通常只針對循環引用生效.其他公式在循環引用狀態下不產生變化。

基本介紹

  • 中文名:疊代計算
  • 外文名:Iterative calculation
  • 套用:計算機科學
疊代特性,終止準則,疊代計算設定,疊代計算套用,累加,自動添加不更新的時間,解方程,測繪套用,

疊代特性

在計算機科學中,疊代是程式中對一組指令(或一定步驟)的重複。它既可以被用作通用的術語(與“重複”同義),也可以用來描述一種特定形式的具有可變狀態的重複。
在第一種意義下,遞歸是疊代的一個例子,但是通常使用一種遞歸式的表達。比如用0!=1,n!=n*(n-1)!來表示階乘。而疊代通常不是這樣寫的。
而在第二種(更嚴格的)意義下,疊代描述了在指令式程式語言中使用的編程風格。與之形成對比的是遞歸,它更偏向於聲明式的風格。

終止準則

由於數值疊代是逐步逼近最優點而獲得近似解的,它無限地接近於最優點卻又不是理論上的最優點,所以就需要考慮在什麼樣的條件下才終止疊代,獲得一個足夠精度的近似極小點,這一條件就是疊代計算的終止準則。
對最最佳化問題常用的疊代過程終止準則一般有以下幾種。
(1) 點距準則
當相鄰兩疊代點X(k)、X(k+1)之間的距離已達到充分小時,即小於或等於規定的某一很小正數ε時,疊代終止。一般用兩個疊代點向量差的模來表示,即
或用X(k)、X(k+1)在各坐標軸上的分量來表示,即
(2)函式下降量準則
當相鄰兩疊代點X(k)、X(k+1)的目標函式值的下降量已達到充分小時,疊代終止。一般用目標函式值下降量的絕對值來表示,即
或用目標函式值下降量的相對值來表示,即
(3)梯度準則
當目標函式在疊代點的梯度已達到充分小時,疊代終止。一般用梯度向量的模來表示,即
以上各式中的ε是根據設計要求預先給定的疊代精度。
在最佳化設計中,一般只要滿足以上終止準則之一,則可認為設計點收斂於極值點。應該指出,有時為了防止當函式變化劇烈時,點距準則雖已滿足,求得的最優值f(X(k+1))與真正的最優值f(x*)仍相差較大;或當函式變化緩慢時,目標函式值下降量準則雖已得到滿足,但所求得的最優點X(k+1)與真正的最優點X*仍相距較遠,往往將前兩種終止準則結合起來使用,要求同時成立。至於梯度準則,僅用於需要計算目標函式梯度的最最佳化方法中。

疊代計算設定

在“Excel選項”中啟用疊代計算後,可以對疊代計算的次數進行設定,以滿足計算要求,具體的操作步驟如下所述。
疊代計算
(1)打開存在循環引用的工作表,例如,此處打開“\源檔案\ch20\設定循環引用.xlsx,如圖20.17所示。
(2)切換到“檔案”選項卡,然後單擊“選項”命令,打開“Excel選項”對話框。
(3)在“Excel選項”對話框的左側窗格中單擊“公式”項,然後勾選“啟用疊代計算”複選框,設定“最多疊代次數”為1000, “最大誤差”保持默認設定,如圖20.18所示。
疊代計算
(4)單擊“確定"按鈕,完成疊代計算的設定操作,同時在工作表中顯示進行1000 次疊代計算的結果,如圖20.19所示。
其中,“最多疊代次數”即重新計算的最多次教,“最大誤差”即兩次計算結果之間可以接受的最大誤差。

疊代計算套用

累加

利用疊代計算和循環引用可以實現單元格數值累加。例如,要求在A2錄入數據.C2累加A2 錄入的所有數據,D2累加A2的錄入次數.實現步驟如下:
(1)將疊代計算次數設定為1;
(2)在C2單元格錄入以下公式,如圖2-6l所示,表示在C2的值的基礎上追加A2的值。
=C2+A2
(3)在D2單元格錄入以下公式,表示A2和D2都是0時,公式返回0;如果A2為0但D2大於0時,公式返回D2的值;如果以上兩個條件都不滿足,則在D2的值的基礎上累加1。
=IF(AND(A2=0,D2=0),0,IF(AND(A2=0,D2>O),D2,D2+1))
D2本身只需要“=D2+l”即可實現需求,只是為了防止一些意外情況而採用IF函式防錯。例如,D2錄入公式後會自動計算一次,不管A2單元格是否空白,這將造成多累加一次,而公式中第一個IF函式可以解決這個問題。第二個IF函式用於解決A2單元格錄入刪除數據時造成D2也累加一次的問題。
(4)在A2單元格錄入10,C2單元格的公式返回10,D2單元格的公式返回1,表示第一次累加,總數量為10,如圖2-62所示。
(5)在A2單元格錄入40,C2單元格的公式返回50,D2單元格的公式返回2,表示第二次累加,總數量為50,如圖2-63所示。
從以上步驟可以發現疊代計算搭配循環引用可以成功實現對同一個單元格反覆累加。公式中嵌套的IF函式也能正常工作,當刪除A2的值時不會錯誤地累加一次。
疊代計算

自動添加不更新的時間

Excel有一個時間函式Now,它可以生成當前系統時間。函式運算結果在工作簿刷新時會隨時間變化而自動更新。例如,在單元格中錄入公式“=NoW()”,公式返回錄入公式的時間,包括年、月、日、時、分、秒。當按下【F9】鍵刷新工作簿時,時間會自動更新,變為刷新工作簿的時間。
如果需要函式一旦產生時間後,該時間值不再更新,那么可以採用循環引用配合疊代計算來實現,步驟如下:
(1)在圖2-64所示的倉庫入庫表中的C2單元格錄入以下公式:
=IF(B2="","",IF(C2<>"",C2,TEXT(NOW<>,"hh:mm:ss")))
公式表示如果B2單元格是空白,那么公式也返回空白;如果C2單元格不是空白,則返回C2的值,否則返回當前系統時間,時間只顯示時分秒部分。
疊代計算
(2)在B2錄入數量50, C2將自動產生當前系統 時間,如圖2-65所示.
(3)21分鐘後在B3錄入第二筆入庫數量80,對應的C2單元格則產生新的當前系統時間,而C2的時間並不會更新,如圖2-66所示。
疊代計算
或許有讀者會有疑問,直接在C列錄入當前時間不是也可以實現不更新的時間嗎?況且它還不涉及如此複雜的操作。其實使用公式有它獨特的作用——自動,即時間自動產生,不需要手工錄入,它除了減少輸入數據的時間外,還能確保時間準確,而且格式統一。

解方程

解二元一次方程,疊代計算實在得心應手。
假設得知有以下兩個方程式,需求X與Y的解:
10X+5Y=200
3X=Y+25
思路與步驟如下:
(1)將以上兩個方程式轉換成“X=…”、 “Y=…”的形式。
X=(Y+25)/3
Y=(200-5X)/10
(2)將疊代計算次數設定為10000次。
(3)在C2單元格錄入以下公式:
=(C3+25)/3
(4)在C3單元格錄入以下公式:
=(200-5+C2)/10
(5)按回車鍵後,兩個單元格的公式會自動計算,產生X、Y兩個未知數的解,如圖2.67所示:
疊代計算
由於疊代計算是一個推算過程,逐漸產生最接近真實結果的解,所以它得到的解有可能正確有可能錯誤。但誤差會相當小。在選項中設定的誤差值和疊代計算次數直接影響所得到的解的正確性,次數越大越接近真實的解,但是也耗費更長的時間。

測繪套用

疊代法是一種不斷用變數的舊值遞推新值直到誤差小於事先設定的容許誤差完成疊代計算的過程。疊代法作為一種很常用也很重要的計算方法在測繪諸多領域中均有套用, 如:監測網最佳化設計規劃求解、卡爾曼濾波五組核心遞推公式、BP神經網路訓練、空間直角坐標反算大地坐標、赫爾默特方差分量估計、道路點位坐標反算施工坐標、拱壩溢流壩計算點位徑向距離等。

相關詞條

熱門詞條

聯絡我們