0

方程式は次のようになります。

dxi(t)/dt = -c * xi(t) * yi(t)

dyi(t)/dt = a * Σ{i=1 ~ n}(xi(t) * yi(t)) + xi(t) * yi(t - 1) + b

ここで、a、b、c は任意の定数値です。たとえば、a=1、b=2、c=3 です。

Σ{i=1 to n}(xi(t) * yi(t)) は、i=1 から n までの合計を意味します。たとえば、n=3: x1(t)*y1(t) + x2(t)*y2 (t) + x3(t)*y3(t)

では、matlabを使用してこれをどのように表現および解決できますか?

4

2 に答える 2

1

遅延微分方程式と呼ばれるものを構築する必要があります。私はその方法を説明しようとしていましたが、ちょうどそれを行うためのこの素晴らしいチュートリアルを見つけました. 例 1 は基本的に必要なものです。

唯一の注意点は、dx/dt と dy/dt を同じ微分方程式のセットに組み込む必要があることです。

さらにサポートが必要な場合はお知らせください

編集: 1つのファイルに保管してください

function  dYdt = ddefun(t,Y,Z)
    % assume Y = [x;y]
    x = Y(1:n); % 2n is the size of Y. this step is unnecessary ...
    y = Y(n+1:2*n); % but helps visualize what is happening

    ytau = Z(:,1);

    dYdt(1:n) = -c*x.*y;
    dYdt(n+1:2*n) = a*dot(x,y) + x.*ytau + b

end
于 2013-04-14T21:36:59.097 に答える