2
私はdde23を使って遅延微分方程式を解くことを試みましたが、正しく理解できなかったようですので、私が書いた関数にエラーがあり、出力は正しいです。遅延微分方程式(MATLABのdde23)
私はプログラムに最後の5つの方程式を追加する方法を理解できませんでした。私は、画像内の1を図ようとして出力を得るために表1パラメータを使用してこのシステムを解決しなければなりません。
これは私が書いたコードは次のとおりです。
clear all;
clc;
lags=1;
sol=dde23(@eq24,lags,@eqh,[0 80]);
plot(sol.x,sol.y)
function v=eqh(t)
v=zeros(6,1);
function v=eq24(t,s,Ia,Is,R,N)
Alfa=0.1;
beta1=0.09;
beta2=0.1;
sigma1=0.3;
sigma2=0.4;
mu=0.01;
alfa=0.2;
rho=0.4;
r1=0.4;
r2=0.2;
d1=0.2;
d2=0.15;
k=0.1;
p=0.8;
tau=1;
T=4;
dsdt=Alfa-beta1*((s*Ia)/(1+sigma1*s))-beta2*((s*Is)/(1+sigma2*s))-mu*s+alfa*R;
dIadt=rho.*exp(-mu*tau).*s(((beta1.*Ia)/(1+sigma1.*s))+((beta2.*Is)/(1+sigma2.*s)))-(r1+d1+mu).*Ia;
dIsdt=(1-rho).*exp(-mu.*tau).*s(((beta1.*Ia)/(1+sigma1.*s))+((beta2.*Is)/(1+sigma2.*s)))+(1-k).*r1.*Ia-(r2+d2+mu).*Is;
dRdt=k.*r1.*Ia+r2.*Is-mu.*R-alfa.*R;
dNdt=Alfa-mu.*N-d1.*Ia-d2.*Is;
表記は '何を意味t⁺'のでしょうか?あなたのコードでは 't≠nT'の条件がありますか?あなたの微分方程式は 'dde23'が予期しているものに準拠していません。これは、 '' d(d、t) 'の形式でなければなりません。また、あなたのコードは有効ではありません。 'dIadt = rho。* exp(...)。* s(((...)))'は 's(t-τ)'を掛けるのではなく、* '*' s'を索引付けしようとします。 –
これは、MATLABのDDEで初めての試みです。私はこの問題を試す前にいくつかの*より*簡単なDDE *を実装するのが最善だと思います。 –
こんにちはMr Oldenhuisは、遅延式を別のものから分離することが可能です。これは、dde23を使って解決しないか、 –