c語(yǔ)言迭代法經(jīng)典例題 C語(yǔ)言中的迭代法?
C語(yǔ)言中的迭代法?這其實(shí)很簡(jiǎn)單。假設(shè)有一臺(tái)電視機(jī),我就讓你猜猜價(jià)格:你說(shuō):4000,我說(shuō):高(那么你把價(jià)格減半)你說(shuō):2000,我說(shuō):低(那么你把價(jià)格提高到4000和2000中間)你說(shuō):3000,我說(shuō)
C語(yǔ)言中的迭代法?
這其實(shí)很簡(jiǎn)單。假設(shè)有一臺(tái)電視機(jī),我就讓你猜猜價(jià)格:
你說(shuō):4000,我說(shuō):高(那么你把價(jià)格減半)
你說(shuō):2000,我說(shuō):低(那么你把價(jià)格提高到4000和2000中間)
你說(shuō):3000,我說(shuō):仍然低(那么你把價(jià)格提高到3000和4000中間)
你說(shuō):3500,我說(shuō):高(那么你把價(jià)格降到3000和3500的中間
]你說(shuō):3250,我說(shuō):仍然高(然后你把價(jià)格降到3000和3250的中間)
你說(shuō):3125,我說(shuō):低(然后你把價(jià)格提高到3125和3250的中間)
你說(shuō):3200,我說(shuō):回答正確
!這是一個(gè)典型的迭代。當(dāng)計(jì)算中沒(méi)有表達(dá)式時(shí),輸入一個(gè)初始數(shù)據(jù)(如4000),然后通過(guò)判斷程序檢查是否正確。如果不正確,則根據(jù)最后兩次之間的結(jié)果進(jìn)行判斷,逐步逼近得到最終值。這叫迭代
這個(gè)迭代有幾個(gè)條件:第一,你有一個(gè)計(jì)算方法,從前兩次開始第二次,有一個(gè)判斷程序,比如我心里知道的數(shù)字,比較一下你的報(bào)價(jià)
第三,有一個(gè)收斂條件(上面的例子是完全正確的,其實(shí)你可以也允許誤差在100元以內(nèi),就算猜對(duì)了)
我相信你一定要聰明理解,否則你去找范偉和趙本山找答案,哈哈
C 里面什么叫迭代法,迭代法初值怎么求?
A/2是迭代法中定義的x0的初始值。
理論上,初始值可以是任何值。但如果初值選取得當(dāng),收斂速度會(huì)很快。當(dāng)然,這個(gè)程序需要更少的內(nèi)存和更少的時(shí)間。將該方程轉(zhuǎn)化為a=xn(2xn1-xn),即a的平方根,通過(guò)無(wú)限迭代得到近似值。在這種情況下,a的平方根的初始值是多少?當(dāng)a的值相對(duì)較小時(shí),a的平方根在a/2附近變換。例如,2的平方根約為1.4,3的平方根約為1.7,4的平方根約為2,5的平方根約為2.23。所以選擇a/2是一個(gè)更科學(xué)的初始值。