古詩詞大全網 - 成語故事 - 什麽是差分方程?

什麽是差分方程?

(我很認真的哦……)

差分方程組是多個含有未知函數及其導數的方程聯合形成的方程組。

差分方程

具體說明:

意義

差分方程是微分方程的離散化。壹個微分方程不壹定可以解出精確的解,把它變成差分方程,就可以求出近似的解來。

比如 dy+y*dx=0,y(0)=1 是壹個微分方程, x取值[0,1]

(註:解為y(x)=e^(-x));

要實現微分方程的離散化,可以把x的區間分割為許多小區間 [0,1/n],[1/n,2/n],...[(n-1)/n,1]

這樣上述微分方程可以離散化為:

y((k+1)/n)-y(k/n)+y(k/n)*(1/n)=0, k=0,1,2,...,n-1 (n 個離散方程組)

利用y(0)=1的條件,以及上面的差分方程,就可以計算出 y(k/n) 的近似值了。

§1 基本理論

差分方程

1. 差分

2. 任意數列{xn },定義差分算子Δ如下:

Δxn=xn+1-xn

對新數列再應用差分算子,有

Δ2xn=Δ(Δkxn).

性質

性質1 Δk(xn+yn)=Δkxn+Δkyn

性質2 Δk(cxn)=cΔkxn

性質3 Δkxn=∑(-1)jCjkXn+k-j

性質4 數列的通項為n的無限次可導函數,對任意k>=1,存在η,有 Δkxn=f(k)(η)

差分方程

定義8。1 方程關於數列的k階差分方程:

xn-a1xn-1-a2xn-2-……aBxn-k=b(n=k,k+1,……)

其中a1,a2,------ak 為常數, ak≠0. 若b=0,則該 方程是齊次方程

關於λ 的代數方程

λk-a1λk-1-------ak-1λ-ak=0

為對應的特征方程,根為特征值。

編輯本段例題

1. 實驗內容與練習

2.1 差分

例1 Xn={n3},求各階差分數列:

xn △xn △2xn △3xn △4xn

1 7 12 6 0

8 19 18 6 0

27 37 24 6 0

64 61 30 6

125 91 36

216 127

343

可見,{n3},三階差分數列為常數數列,四階為0。

練習1 對{1},{n},{n2},{n4},{n5},分別求各階差分數列。

練習2 {C0n-1}{C1n-1}{C2n-1},{C4n-1},分別求各階差分數列.

{Xn}的通項為n的三次函數,

Xn=a3n3+a2n2+a1n+a0

證明它為常數數列。

證明 由Xn=a3n3+a2n2+a1n+a0可直接計算。

定理8。1 若數列的通項是關於n 的k次多項式,則 k 階差分數列為非零數列,k+1階差分數列為0。

練習3 證明定理8。1。

定理8。2 若{Xn}的 k 階插分為非零常數列,則{Xn}是 n的 k次多項式,

練習4 根據差分的性質證明定理8。2

例2。求∑i3

例4

解 設Sn=∑i3 表

Sn △Sn △2Sn △3Sn △4Sn △5Sn

1 8 19 18 6 0

9 27 37 24 6 0

36 64 61 30 6 0

100 125 91 36 6 0

225 216 127 42

441 343 169

784 512

1296

設Sn=a4n4+a3n3+a2n2+a1n+a0,s1=1,s2=9,s3=36,s4=100,s5=225,得

a0=0,a1=0,a2=1/4,a3=1/2,a4=1/4.

所以, Sn=(1/4)n4+(1/2)n3+(1/4)n2.

練習 {Xn}的通項Xn為n的k次多項式,證明∑xi為n的 k+1次多項式;求 ∑i4.

由練習 2 {Crn-1}可得。

2.2差分方程

對於壹個差分方程,如果能找出這樣的數列通項,將它帶入差分方程後,該方程成為恒等式,這個通項叫做差分方程的解。

例3 對差分方程 xn-5xn-1+6xn-2=0,可直接驗證xn=c13n+c22n是該方程的解。

例3中的解中含有任意常數,且任意常數的個數與差分方程的階數相同。這樣的解叫做差分方程的通解。

若k階差分方程給定了數列前k項的取值,則可以確定通解的任意常數,得到差分

的特解。

例4對差分方程xn-5xn-1+6xn-2=0,若已知x1=1,x2=5,則可以得到該差分方程的特解為xn=3n-2n.

我們首先研究齊次線性差分方程的求解。

xn=rxn-1

對壹階差分方程

x1=a

顯然有xn=arn-1。因此,若數列滿足壹階差分方程,則該數列為壹個等比數列。

例5 求Fibonacci數列{Fn}的通項,其中F1=1,F2=1,Fn=Fn-1+Fn-2.

Fibonacci數列的前幾項為:1,1,2,3,5,8,13,21,34,55,89,…。該數列有著非常廣泛的應用。

Fibonacci數列所滿足的差分方程為 Fn-Fn-1-Fn-2=0,

其特征方程為 λ2-λ-1=0

其根為λ1=,λ2= .利用λ1λ2可將差分方程寫為

Fn-(λ1+λ2)Fn-1+λ1λ2Fn-2=0,

即Fn-λ1Fn-1=λ2(Fn-1-λ1Fn-2)

數列{Fn-λ1Fn-1}滿足壹個壹階差分方程.顯然 ( )

同理可得 ( )

由以上兩式可解出 的通項。

練習9 證明若數列{ }滿足二階差分方程 ,其特征方程 由兩個不相等的根 ,則 為該差分方程的兩個特解。從而其通解為。

由練習9,若二階差分方程的特征方程有兩個不相等的根,可寫出其通解的壹般性式。再由 的值可解出其中的系數,從而寫出差分方程的特解。

練習10 具體求出 Fibonacci數列的通項,並證明。那麽,若二階線性齊次差分方程有兩個相等的根,其解有如何來求呢?

設二階線性齊次差分方程的特征方程有兩個相等的根 ,則差分方程可寫為。差分方程的兩邊同時除以 ,有。設,則 (n>=3)。由於該式在 n>=3式均成立,我們將它改寫為 (n>=1)。(8.2)

方程(8.2)的左邊是 的二階差分,從而有,於是 是n的 壹次函數,設為 則有。上是即為差分方程的通解。

練習11 證明:若數列{ } 所滿足的三階差分方程的特征方程由三個相等的根 ,則差分方程的通解為。

壹般的,設 ···,為差分方程的特征方程所有不同的解,其重數分別為 ···, ,則差分方程對應於其中的根 (i=1,2,···,l)的特解 ···。

對於壹般的k階齊次線性差分方程,我們可以通過其特征方程得到上述形式的k個特解,進而得到差分方程的通解。

練習12 若數列{ } 滿足差分方程

且 求{ }的通項。

例6 若實系數差分方程的根為虛數,則其解也是用虛數表示的,這給討論問題帶來不便。差分方程

xn-2xn-1+4xn-2=0

的特征值為 i.若x1=1,x2=3,由下面的程序易求出其特解為:

xn=( )(1+ i)n+(- )(1- i)n

Clear[x1,x2,c1,c2,l1,l2,solution];

x1=1;x2=3;

solution=Solve[1^2-2l+4==0,1];

l1=l/.solution[[1,1]];

l2=l/.solution[[2,1]];

c=Solve[{c1*l1+c2*l2==x1,c1*l1^2+c2*l2^2==x2},{c1,c2}];

c1=Simplify[Re[c1]]+Simplify]*I;

c2=Simplify[Re[c2]]+Simplify]*I;

Print[“xn=(“,c1,”)(“,l1,”)^n+(“,c2,”)(“,l2,”)^n”]

解的形式相當復雜,是否可以將它們用實數表示呢?

設 =rei,則 =re,我們可將(8.4)中的表達式改寫為

xn=re (2e )n+re (2e )\n

=r

=2r Cos( )

=(2rCos )

=

可以看出,通項可以寫成 的形式.那麽, 與 是不是差分方程的特解呢?

練習13 驗證 與 是差分方程(8.3)的特解.

對於差分方程(8.3),我們找出了它的兩個實型的特解,從而可以將通解表示成實數的形式.這壹方法對於壹般的方程也是成立的.

練習14 設 的兩個特征值為 .證明該差分方程的通解可表示為 .

練習 15 用實數表示差分方程 的特解.

上次我們討論了其次線性差分方程的求解方法.那麽,非齊次線性差分方程是否可以化為齊次線性差分方程呢?

練習16 若已知非齊次線性差分方程

··· (8.5)

的壹個特解為 求證:若令 則 滿足齊次差分方程

···

由練習16,若已知非齊次線性差分方程(8.5)的壹個特解,就可以將它化為齊次線性差分方程.

顯然方程(8.5)的最簡單的形式為 (其中p為常數),代入(8.5)得

···

若 ··· 則有

稱p = 為非齊次線性差分方程(8.5)的平衡值。在(8.5)中, 令 則有

由 ,得

.

從而可將原來的非齊次線性差分方程化為齊次線性差分方程.

如果方程(8.5)的平衡值不存在,可以將方程(8.5)中所有的n換為n+1,得到

(8.6)

方程(8.6)和(8.5)相減得

.

於是可將原來的非齊次線性差分方程化為高壹階的齊次線性差分方程.

練習17 分別求差分方程 及 的通解.

2.3 代數方程求根

由 Fibonacci數列的性質,我們可以用 來逼近 ,用這壹性質可以來計算 的近似值。壹般地,對a>0,可以用構造差分方程的方法來求 的近似值.

對給定的正數a,設λ1= ,λ2= ,則λ1 ,λ2是方程λ2-2λ+(1+a)=0的根.該方程是差分方程 的特征方程。於是,選定,利用差分方程 可以構造壹個數列{ }.

練習 18 證明:若a>1,對任意的 >0,>0,若 ≠ ,則按上述法構造的數列{ }滿足

.這樣,我們得到了計算 的壹個方法:

1. 給定 (作為誤差控制),任取初始值 ,令n=1;

2. 若

則終止計算,輸出結果;否則 ,令n :=n+1,轉第3步;

3. 令,轉第2步.

練習 19 對a=1.5,10,12345,用上述方法求 .

上述方法的收斂速度不夠快,我們可以加以改進

設整數u滿足,令,則 , 是方程 的兩個根.

練習 20 根據上面的差分方程的構件數列{ x },使得

.

練習 21 對練習19中的a,用上面的方法來計算 ,並比較兩種方法的收斂速度.

代數方程

(8.7)

是差分方程(8.1)的特征方程,是否可以用此差分方程來求解方程(8.7)呢?

設方程(8.7)有k個互不相同的根滿足

, (8.8)

則對應的差分方程的通解形式為

.

練習 22 設方程(8.7)的根滿足條件(8.8),任取初始值 用差分方程(8.1)(取b=0)構造數列{ }.若通解中 的系數 ≠0,證明:

.

利用練習22得到的結論,我們可以求多項式方程的絕對值最大的根.

練習 23 求方程 的絕對值最大的根.

事實上,若方程(8.7)的互不相同的根滿足

≥ ≥…≥

(其重數分別為 ),則練習22中的結論仍然成立.

2.4 國民收入4 國民收入的穩定問題

壹個國家的國民收入可用於消費,再生產的投資等。壹般地說,消費與再生產投資都不應該沒有限制。合理的控制各部分投資,能夠使國民經濟處於壹種良性循環之中。如何配各部分投資的比例,才能使國民經濟處於穩定狀態呢?這就是本節要討論的問題。

我們首先給出壹些假設條件:

1. 國民收入用於消費、再生產投資和公***設施建設三部分。

2. 記 分別為第k個周期的國民收入水平和消費水平。的值與前壹個周期的國民收入成正比例。即 =A,(8.9)其中A為常數(0 3. 用 表示第k個周期內用於再生產的投資水平,它取決於消費水平的變化,即 . (8.10)

4. G表示政府用於公***設施的開支,設G為常數.由假設1有 . (8.11)上式是壹個差分方程,當給定 的值後,可直接計算出國民收入水平 (k=2,3,…)來觀察其是否穩定。

例7 若 ,計算可得表8.3中數據。

表8.3 Y 的值的變化

k 2 3 4 5 6 7 8 9 10 11

11.0 24.5 35.8 39.1 32.9 20.3 7.48 0.95 3.93 15.0

k 12 13 14 15 16 17 18 19 20 21

28.5 37.8 38.2 29.5 16.0 4.58 0.82 6.65 19.2 32.1

我們可以畫出 的散點圖來觀察其變化。其計算及畫圖的程序如下:

y0=2;y1=2;a=0.5;b=2;g=10;

y={y0,y1};

For[k=1,k<=20,k++,

Y2=a(1+b)*y1-b*a*y0+g;

Y=Append[y,y2];

Y0=y1,y1=y2]

YListPlot[y,PlotJoined True,

PlotStyle Thickness[0.012]]

圖8.1 國民收入 的變化

由圖8.1利用發現,又例7的數據得出的 的呈現出周期變化的跡象。

練習 24設 ,對於表8.4中的參數A,B,分別計算 (k=2,3,…)並畫圖觀察 的變化。

表8.4 參數A,B的取值

A 1/2 1/2 1/2 8/9 9/10 3/4 4/5

B 1 2 3 1/2 1/2 3 3

可以看出,隨著參數的值不同,國民收入水平 (k=2,3,…)的穩定性呈現出不同的狀態。

那麽,參數滿足什麽條件時,國民收入水平才處於穩定發展之中呢?

差分方程(8.11)是壹個常系數非齊次線性差分方程。由A<1容易求出其平衡值為

令 可得

.

其特征值為

若 則

其中 為 的幅角。

從而可的差分方程的解為

其中 為常數。

若 易見{ }為壹周期函數在 ---的取值,從而{ }呈周期變化的狀態。正如在例7中所見到的。

練習25 若 在 及 的情形下,討論{ }的變化趨勢。國民收入會穩定發展嗎?

練習26 若 ,國民收入在什麽條件下會穩定發展?

本實驗涉及的Mathematica軟件語句說明

1. solution=Solve[1^2-2l+4==0,1];

l1=1/.solution[[1,1]];

l2=l/.solution[[2,1]];

將方程l^2-2l+4==0的兩根分別賦值給l1及l2.

2. c=Solve[{c1*l1+c2*l2==x1,c1*l1^2+c2*l2^2==x2},{c1,c2}];

{c1,c2}={c1,c2}/.c[[1]];

將方程組{c1*l1+c2*l2==x1,c1*l1^2+c2*l2^2==x2}的解賦值給c1及c2.

3. c1=Simplify[Re[c1]]+Simplify]*I

將復數c1化簡.