遞歸關系求解


問題

假設:一個反應器中有兩類粒子α和β,設每秒鍾一個α粒子分裂成3β粒子,而每秒鍾一個β粒子分裂成一個α粒子和兩個β粒子。假如在t=0時:反應器中有一個α粒子,求t秒時反應器中α粒子和β粒子的數目。

根據關系列出遞歸關系

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

參考程序

#include <stdio.h>
#include <stdlib.h>
#define A_size 5 
int aa(int size)   //aa(t)表示t時刻α的個數
{
    if (size == 0)
        return 1;
    else
        return bb(size-1);
}
int bb(int size)   //bb(t)表示t時刻β的個數
{
    if (size == 0)
        return 0;
    else
        return 3 * aa(size-1) + 2 *  bb(size-1);
}
int main()
{
    printf("%d\n", aa(A_size) + bb(A_size));
    return 0;
}

結果: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)
(t>=2)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM