反向使用遞推關係的求值

2021-10-11 09:06:52 字數 1024 閱讀 1173

下面這道積分題的計算,隨著n的增大,如果用i(n) = 1- n i(n-1)來算,即文中的第一種演算法,誤差很快積累,最後計算就失效了。所以要第2種演算法,倒過來推算。即用i(n-1) = 1/n - i(n)/n 來推算。那麼倒過來用遞算怎麼用呢?怎樣才能先求出i7,然後用它乙個乙個求出i6,i5,…,i0呢?

觀察被積函式。在[0, 1]之間,隨著n增大,x^n越來越小。因此積分i(n)總是小於i(n-1),並且單調的趨向於0。所以有i(無窮大)=0。因而可以用0來估計n較大的i(n),而不用計算。這裡x的初值取0,意思是估計i(20)=0,同時也是認可這個估算的誤差的意思:

x=

0.0;

for(i=

20; i>0;

--i)

於是得到,

19

:0.05000018:

0.05000017:

0.05277816:

0.05571915:

0.05901814:

0.06273213:

0.06694812:

0.07177311:

0.07735210:

0.0838779:

0.0916128:

0.1009327:

0.1123846:

0.1268025:

0.1455334:

0.1708933:

0.2072772:

0.2642411:

0.3678790:

0.632121

除了前面幾項誤差較大,後面都是有效的。 所以算得i7 = 0.112384。提取結果的時候注意,迭代式中除以n得到i(n-1),而不是i(n),這個下標不能弄錯。

如果就要求i20怎麼辦呢,只要估計i30=0就可以了。這樣求得i20 = 0.045545。

8 1遞推關係的運用

思路 用fn f n表示n個月後的兔子對數。轉化思想 當n 3的時候,fnfn 等於前乙個月的對數fn 1f n 1加上新出生的兔子 fn 2f n 2 f n f n f n 1 fn 1 f n 2 fn 2思路 用fn f n表示解n個盤子的漢諾塔問題所需要的移動次數。轉化思想 我們可以先用f...

nyoj 301遞推求值 矩陣快速冪的遞推求值

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 給你乙個遞推公式 f x a f x 2 b f x 1 c 並給你f 1 f 2 的值,請求出f n 的值,由於f n 的值可能過大,求出f n 對1000007取模後的值。注意 1對3取模後等於2 輸入 第一行是乙個整數t,...

奮鬥的demon 遞推關係(理論)

今天demon分析了一下之前的組隊賽,覺得有些心得 我們這次比賽沒有關注檔案讀寫問題,導致我們一直糾結於提交出錯的情況,請你大家在比賽之前了解檔案讀寫的相關規定 是標準輸入輸出,還是檔案輸入輸出?如果是檔案輸入輸出,是否禁止用重定向方式訪問檔案?program 重定向版 define local i...