私はmatlabに精通していません。ode45 を使用して、dS(t)/dt = F(S(t)) (与えられた S(0)) の形式の 1 次微分方程式を解きます。しかし、次に、dX(t)/dt = G(X(t),S(t)) (X(0) が与えられた) という 2 番目の微分方程式を解く必要があります。S の結果を使用して X の方程式を解くにはどうすればよいですか?
解 S (および G) の値 S(1) および G(1) が必要です。私が持っていた最初のアイデアは、かなり「ナイーブ」でした。最初に [0,1] の t の値 S(t) を与える関数を作成します。
function dS=equation1(t,S)
dS=F(S);
end
function S=solve1(S0,t)
if t==0
S=S0;
else
[~,V]=ode45(@equation1,[0 t],S0);
S=V(end,:)
end
次に、2 番目の方程式を解く 2 番目の関数を作成します。
function dX=equation2(t,X)
dX=G(X,solve1(t));
end
function G=solve2(X0,t)
[~,V]=ode45(@equation2,[0 t],X0);
end
最終的に、G(1)=solve2(X0,1) および S(1)=solve1(S0,1) となります。しかし、私はそれを行うためのはるかに良い方法があると感じています! ご協力いただきありがとうございます !