Excel中的迭代運算,可以解決很多問題,同時,迭代運算也給很多學習新手帶來困擾。
現在,本站給您詳細介紹什么是Excel中的迭代運算,如何使用迭代運算。
一、迭代運算的概念
所謂的迭代運算,沒有什么稀奇的,請大家不要相信所謂的磚家在某些“權威”書籍里面所闡述的觀點。
說得簡單點,迭代運算就是遞歸計算,或者也可以簡單的稱為循環(huán)運算。
凡是學習過計算機程序設計的,沒有不知道遞歸運算的。
如果您沒學習過遞歸,那么,本站再給您介紹個簡單例子。
例如解方程f(x)=0,牛頓切線法是這樣構造迭代格式的:X(n)=X(n-1)-f[X(n-1)]/f'[X(n-1)](n=1,2,3,……),在所考慮范圍內任意取一個值X(1),用上面迭代公式就可以求得X(2),X(3),……,從理論上講,當n→∞時,得到的就是方程的根,但實際上我們總不能將迭代次數進行到無窮大,需要在某一時刻停止迭代,通常有兩種方式來控制迭代次數:
1、選擇迭代次數n,當迭代次數達到n時,停止迭代;
2、選擇精度ε,當|X(n)-X(n-1)|<ε時,停止迭代。
EXCEL里默認的迭代次數是n=100,精度ε=0.001,在工具→選項里可以自己設置,使求得的結果近似程度更好些。
二、迭代運算的使用
比如,您在A1單元格輸入一個值10,然后,選擇B2單元格,執(zhí)行菜單操作:“工具”→“選項”,彈出如下圖對話框。
勾√選“迭代計算”,然后輸入次數,比如本例的1,還可以設置最大誤差。
好了,以后,確認并退出對話框。
接著,再選擇B1單元格,輸入公式:=A1+B1
大家可能會發(fā)問,為什么B1單元格的公式為:=A1+B1,單元格自身調用單元格本身的值,這有悖于常理,一般來說,會彈出公式錯誤的提示。由于我們在上面已經設置好了迭代運算,所以不會彈出提示。
您可能明白了吧,單元格本身調用自身的數據進行運算后再把結果拿給單元格本身。這就是迭代運算,也是循環(huán)運算。
下面的內容,將會給出迭代運算的自定義函數代碼。
三、迭代運算的常見問題
問題:整個表格中任何一個方格數據的更新都會引起B(yǎng)1的迭代更新,即導致B1的數據發(fā)生改變。
原因:Excel的函數和公式都是全局的,不論哪個方格數據的更新,當前表格中所有方格的數據都會重新計算并更新。
解決方法:把B1的無條件更新改為受限制的.選擇B1,輸入” =if(cell(“address”)=”$a$1″,a1+b1,b1)”。選擇B1并向下拖動,可將迭代計算擴展到同列其它行,if函數的參數2和參數3能自動更新,參數1中的”$a$1″因為是字符串,所以不會自動更新,因此需要手動更改,比如第2行為=if(cell(“address”)=”$a$1″,a2+b2,b2),將$a$1改為$a$2即可,依此類推。
注意:
1.根據函數的限制條件,在A1方格輸入數據后,按Enter鍵或TAB鍵都可以更新B1,但使用鼠標點其它方格,則B1不能迭代更新。
2.不要在某一個方格具有輸入焦點時點擊A1,因為這樣會使B1迭代更新。
四、迭代運算的自定義函數
以下的函數代碼就是迭代運算的函數代碼之一。
Function MyDD(i As Single) As Single
i = i / 5
If i < 5 Then
MyDD = i
Else
MyDD = MyDD(i)
End If
End Function
懂得程序設計的人都明白,上述的迭代運算函數代碼,其實就是遞歸代碼,換句話說,也是循環(huán)代碼?!?/p>
下面小編展示在Excel2013中具體使用迭代計算方法
開Excel,在相應的單元格中輸入相應的方程。(從圖中的Excel的編輯欄可以看到,將A2當做x,在B2單元格中輸入與方程對應的計算公式,由于A2默認為0,且公式中有A2做分母,故B2出現錯誤提示;注:A1,A2單元格時為了理解而設置的,實際情況下可以不需要。)
輸入一個用于迭代的初值。(圖中A2單元格輸入1后,B2單元格出現了對應的值;注:如果初值為0出現錯誤提示則無法完成迭代計算,需輸入其他值才能迭代計算)
點擊“數據”選項卡,找到“數據工具”組,單擊“模擬分析”按鈕,在下拉選項中選擇“單變量求解”。
隨后彈出下圖對話框,在“目標單元格”中輸入B2,在“目標值”中輸入0(根據具體的情況而定,如果方程尾部為“=2”的形式,則目標值為2),以上兩步的意思是告訴Excel求解的方程等式右邊的值及其所在單元格的位置,在“可變單元格”中輸入A2,目的是告訴Excel變量x的單元格位置。單擊確定按鈕。
Excel開始迭代計算,求出相應的解。可以看到當前值并不是0,但與0非常接近(注:迭代求解的最終結果與賦予的初值有關,但都是和真值很接近的,滿足工程精度要求)。