微分方程在建模中的應用(使用差分普通的遞推關係)

2021-05-26 11:45:53 字數 2425 閱讀 4596

微分方程在建模中的應用(使用差分普通的遞推關係)

這裡我們將k的值改變了下,這樣更加符合演算法的時間複雜度關係;

在溫度擴散和濃度擴散模型中,微分方程形式為y'+g(x)*y=g(x)*f(x),目前我們假定g(x),f(x)均為常量,並且有g(x)=k,f(x)=m,下面解答這個方程並驗證;

y'+k*y=k*m  (k,m為常量)

go採用標準解法有:

'=c*e^(kx)*k*m

goy=a+b*e^(-kx)

這裡我們把k改為-1,

假設初始值y(0)=1,y(1)=10,k=-1

1=a+b

10=a+b*e^(1)

goa=1-b

b=9/(e-1)

注意將y=a+b*e^(-kx)回代入原方程中有ka=km,所以m=a

前面在用數值解法計算的時候採用的直接計算法,下面我們建立差分模型後直接計算它的值;

/0.01+k*y(n-1)=k*m

go/0.01-y(n-1)=-m

goy(n)-1.01*y(n-1)=-0.01*m

go這裡不用公式計算了,採用直接遞推法;

下面寫程式來證明:

(setq  k  -1)

(setq  b  (/ 9

(- e  1)))

(setq  a  (- 1 b))

(setq  m  a)

(defun pow (num count)

(if (or (> count 1) (eq  count  1) )

(* num 

(pow num 

(- count 1) ) )

1))(defun slayer ( count)

(if (or (> count 1) (eq  count  1) )

(* count 

(slayer  

(- count 1) ) )

1))(defun slayerex (num count)

(if (or (> count 1) (eq  count  1) )

(* num 

(slayerex 

(-  num  1) 

(- count 1) ) )

1))(defun  expr (x1 y1 )

(+  y1

(*  0.01

(-  (* k m)

(* k y1)))))

(defun  calc (n x)

(if  (eq  n  0)

1.0(+ (calc (1- n)

x)(*  (pow  x  

n)(/    1

(slayer n))))))

(setq  e  (calc 10  1))

(defun  formula  (x)

(+   (*  b

(pow e x))

a))(defun  exprhelp (x1 )

(if (< (abs (-  x1  0))

0.01)

(formula  0)

(expr  x1  

(exprhelp  (-  x1  

0.01)))))                  

(defun  test (n)

(if (or (>  n 0) (eq  n  0))

(progn 

(print (exprhelp n))

(print  'compare)

(print (formula n))      

(test (- n 1)))

(print 'over)))

[60]> (test  10)

108688.43

compare

115365.836

40180.67

compare

42438.04

14852.578

compare

15609.402

5488.493

compare

5739.699

2026.4856

compare

2108.8384

746.54346

compare

773.11945

276.11032

compare

281.73593

99.41004

compare

100.96606

34.08198

compare

34.464542

9.929457

compare

10.0

1.0compare

1.0over

over

可以發現結果也是對的;下面日誌將對這種思維進行衍生;

微分方程,差分方程

自變數連續,一般自變數為時間t,因變數 函式值 連續,如 y t t 2 2t 1 如 y t 2y t 3y t 5 u t 3u t 其中y和u都是t的連續函式,y u 都是對自變數求導,即對t求導 自變數是離散的,一般自變數取k,所以因變數也是離散的,即k 0,1,2,3,n 差分方程一般有三...

微分方程解特殊差分模型

微分方程解特殊差分模型 由前面兩種模型之間的聯絡,我們可以獲得一些共同點 一部分的差分模型比較難解,我們可 以轉化為微分方程的近似解來完成 比如差分模型為 n 0.0001 a n 1 0.0001 n 3 gon a n n 0.0001 a n 1 0.0001 n 3 如果是直接給出下面這個差...

第二章 2 1 微分方程 差分方程求解(求解方法)

本節所要討論的主要為題就是如何確定系統的初始條件 我們知道訊號時從零正時刻之後加入系統的,因此我們需要求解零正時刻的系統初始條件。下面有乙個問題需要我們考慮,也就是訊號加入系統之後,系統的狀態會發生變化嗎?如圖所示,系統在0正時刻和0負時刻系統的輸入時不相同的,會有乙個跳變,通過這裡例子我們知道在訊...