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表示微分...