2009-11-04

關於生成函數在遞回

一開始要設定 ∑ 的起始值
ie: An=5An-1 - 6An-2
A0=5 A1=13

一開設n >= 2 是因為考慮到最少要兩項(A0 A1)才能湊出最基本的A2嗎?
不然有可能出現A
-1 到時候就沒有對應值了

然後最後畫成生成函數時 因為從A0開始 所以
生成函數改成n>=0 開始

原本我都是這樣想的

可是5-67海大那題

一開始我以為是從n>=2開始 沒想到題目卻是n>=1開始
而最後求生成函數時起始值明明是a1 卻變成從n>=0開始了
不知道是我想法錯誤還是怎樣 驗算後結果也是對的
但是還是覺得怪怪的
想問一下我設n範圍的想法是否正確?

3 則留言:

匿名 提到...

你的想法其實不太正確,要取n的起始範圍應該是由題目所給的資訊而定。ex:An=5An-1 - 6An-2, A0=5 A1=13題目已經給了你A0跟A1的值,所以才會假設n>=2開始遞迴。而你說的5-67(94海大)這題,他起始條件已經給a1=9,因此可見第二行an=8an-1+10^n-1, n>=1。而你說的最後n>=0那是因為他對a, b求解後,使用的一般生成函數(可參考4-1的定義)。

AIdrifter 提到...

所以不用想這麼複雜 我只要看他給幾個
ie 給3個起始值
就是n>=3

2個起始值
就是n>=2

依此類推囉

至於生成函數那部分 我只知道在運算時我們會微分他 所以n=0 與 n=1 其實意思是一樣的(因為0*X^0 還是0) 但是像是5-70 的範例4 最後解答bn 的n 必須要>=1 不然會錯
感覺上似乎好像要帶入檢查才能得知是不是為正確解
覺得有點麻煩 不知道是不是我誤會他的意思

線代離散助教(wynne) 提到...

轉換成生成函數以後, 就看生成函數的起始值根據定義是一定沒問題的, 只是說要是想清楚生成函數的定義是甚麼, 譬如說像5-70範例4那題, A(x)=(1/2)+sum(...), 並不能只看summation始從哪一項開始加, 就直接把他的係數抄下來寫成b_n並取n從0開始, 因為這樣其實是漏掉了還有一個常數項1/2的部分, 那也是包含在 G.F. 中 x^0 的係數裡的, i.e., b_0=(1/2)+[(-3/2)+(-1)^0/6+5(2^0)/6], 這就是為什麼書上要把 b_0 分開來寫