遞迴關係求解

2021-09-22 10:52:37 字數 1465 閱讀 3135

問題

假設:乙個反應器中有兩類粒子α和β,設每秒鐘乙個

α粒子**成3個

β粒子,而每秒鐘乙個

β粒子**成乙個

α粒子和兩個

β粒子。假如在t=0時:反應器中有乙個α粒子,求t秒時反應器中α粒子和β粒子的數目。

根據關係列出遞迴關係

a(t) = b(t-1

)b(t) = 3*a(t-1) + 2*b

(t-1)

參考程式

#include #include 

#define a_size 5

int aa(int size) //

aa(t)表示t時刻α的個數

int bb(int size) //

bb(t)表示t時刻β的個數

intmain()

結果:243

a(t) = b(t-1

)b(t) = 3*a(t-1) + 2b(t-1)得:

a(t-1)=b(t-2

)b(t) = 3*a(t-1) +2*b(t-1

) =3* b(t-2) + 2* b(t-1) (t>=2)

根據已知條件知:a(0)=1 a(1)=0 b(0)=0 b(1)=3

得到遞迴關係:b(t) = 2*b(t-1) + 3*b(t-2),這是乙個常係數齊次線性方程。為了求解看下解常係數齊次線性方程的一般方法。

解常係數齊次線性方程的一般方法

首先區分

特徵方程與特徵值

求解通解的步驟

1.根據遞迴關係得出特徵方程,求解方程得到特徵根;

2.表示出通解的一般形式(分為是否有重根);

3.代入初始值得到係數,從而得到通解。

就本題演示一般步驟

1.把遞迴關係b(n)=2*b(t-1) + 3*b(t-2),表示為特徵方程:x2=2x+3,得到特徵值-1和3;

2.沒有重根,通解表示為b(t) = c1*(-1)n + c2*(3)n;

3.帶入初始值,得到c1=-3/4   c2 = 3/4,

從而得到通解:b(t) = -3/4 *(-1)n + 1/4 *(3)n+1

a(t) = -3/4 *(-1)n-1 + 1/4 *(3)n  

(t>=2)

遞迴求解n!

一般來說,遞迴需要有邊界條件,遞迴前進段和遞迴返回段。當邊界條件不滿足時,遞迴前進 當邊界條件滿足時,遞迴返回。遞迴的特點 遞迴就是在過程或函式裡呼叫自身。在使用遞迴策略的時候,必須有乙個明確地遞迴結束的條件,稱為遞迴出口 遞迴演算法階梯時通常顯得很簡潔,但是遞迴演算法解題的執行效率較低 在遞迴呼叫...

迷宮求解 遞迴

首先來看一下迷宮簡易圖 我們用 0 來表示該位置是牆,用 1 來表示該位置是路.所以,我們在處理迷宮問題的時候可以將其看成乙個二維陣列即可,而對應的每一條路我們可以用座標的形式將其表示,所以還需要有乙個結構體來描述對應的點的 1.相關資料結構 typedef struct maze maze typ...

遞迴式求解

1 t n 不是單調函式,e.g.t n sinx 2 f n 不是多項式函式 e.g.t n t n 2 2n 3 b不能表示為乙個常量 e.g.t n 2t n 1 t n t n 2 1 2 n2 n 解 此時 a 1,b 2,f n 1 2 n2 n 故 nlogba n0 1f n nlo...