1
我對matlab並不熟悉。我用ode45求解形式dS(t)/ dt = F(S(t))(S(0)給出)的一階微分方程。但是,然後,我有第二個微分方程來解決這是dX(t)/ dt = G(X(t),S(t))(給出X(0))。 如何使用S上的結果來求解X上的方程?微分方程Matlab
我想要解決方案S(和G)的值S(1)和G(1)。我的第一個想法是相當「天真」。我首先創建一個功能這使我的值S(t)的對於t在[0,1]:
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
然後我創建第二函數來解決第二個方程:
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)。但我覺得有一個更好的方法來做到這一點! 感謝您的幫助!