matlab求解時滯微分方程

2021-09-27 10:41:03 字數 1110 閱讀 4951

matlab求解時滯微分方程,dde23呼叫格式:

sol = dde23(ddefun,lags,history,tspan);

–ddefun函式控制代碼,求解微分方程y』=f(t,y(t),y(t-τ1),…,y(t-τk))

必須寫成下面形式:

dydt =ddefun(t,y,z);

其中t對應當前時間t,y為列向量,近似於y(t);z(:,j)近似於y(t-τj)

–lags為延遲時間,為正常數。

例:方程中包含y1(t-0.2)和y2(t-1),則可以表示為lags=[0.2,1]
–history t≤t0 時的狀態變數的值

–tspan 積分區間 t0 = tspan(1),tf =tspan(end)。

看下面例子:

假定系統狀態方程為dxdt =- ax(t) - bx(t-0.23)+bx(t-0.56); a= [3,-1,-1,-1;-1,2,0,-1;-1,0,2,-1;-1,-1,-1,3];b=a;
程式如下:

(1) 編寫延遲函式

function dx = ddefun(t,y,z)

a = [3,-1,-1,-1;-1,2,0,-1;-1,0,2,-1;-1,-1,-1,3];

tau1= z(:,1);

tau2= z(:,2);

dx=-ay-atau1-a*tau2

(1) 編寫主調函式

tau = [0.23,0.56];

y0 = [1,7,3,0];

sol = dde23(@ddefun, tau, y0, [0, 50]);

% plot the system states

plot(sol.x,sol.y);

*注意:該函式返回的sol中結構體sol.x和sol.y均為按行排列,與ode45等不同

如只顯示一組資料plot(sol.x,sol.y(1,:));

脈衝時滯微分方程matlab方程

function maichon shizhi1 clear clc periodt 10 q 0.5 numofstep 是每半個週期取多少點畫圖,numofper 是畫多少個週期的相圖 numofstep 50 numofper 10 以下是初值和初始時刻 inx1 1 inx2 1 inx3 ...

Matlab求解微分方程組

我們採用ode方法 1 求解普通微分方程組 使用ode45方法 1.建立乙個函式檔案eq2.m,在函式檔案中描述這個解的微分方程組 eq2.m檔案 描述微分方程組 function dy eq2 t,y 說明微分變數是二維的,令y 1 x,y 2 y dy zeros 2,1 微分方程組 dy 1 ...

matlab解微分方程

1.dsolve函式 這是最簡單的一種求解微分方程的一種方法 符號解法。一般來說,在matlab中解常微分方程有兩種方法,一種是符號解法,另一種是數值解法。在本科階段的微分數學題,基本上可以通過符號解法解決。用matlab解決常微分問題的符號解法的關鍵命令是dslove命令。該命令中可以用d表示微分...