0
見出しからわかるように、私はODEについて何か質問したいと思います。私たちの先生はインターネット上にいくつかの例をアップロードしましたが、それらは単に解決策で構成されています。Matlab - 線形微分方程式のオイラー法を記述して解く
ここに、次の方程式を解くことの1つがあります。
m_1 l^2 ϕ''_1 + m_1glϕ_1 + cl(ϕ_1 - ϕ_2) = 0
m_2 l^2 ϕ''_2 + m_2glϕ_2 + cl(ϕ_2 - ϕ_1) = 0
解決策がわかるように、D行列が定義されています。したがって、このD行列の最初の行は一般に1と0で構成され、残りはdy/dtを離した後に発生する定数で構成されます。このD行列は何に基づいていますか?私はそれをどのように定義しなければなりませんか?
%m1=100*m2
% Parametres
m_2=1;
m_1=100*m_2;
l=1;
c=1;
g=10;
% Initial Conditions
phi_1=1;
phi_2=-0.5;
dphi_1=0;
dphi_2=0;
% Iteration Parameters
dt=0.01;
t_end=10;
% Time Vector
t=0:dt:t_end;
n_max=t_end/dt;
y(:,1)=[phi_1;phi_2;dphi_1;dphi_2];
D=[0 0 1 0;0 0 0 1;-g/l-c/(m_1*l) c/(m_1*l) 0 0;c/(m_2*l) -g/l-c/m_2/l 0 0];
y_exp=y;
for n = 1:n_max
y_exp(:,n+1)=dt*D*y_exp(:,n)+y_exp(:,n);
end
y_imp=y;
for n = 1:n_max
y_imp(:,n+1)=inv(eye(4)-D*dt)*y_imp(:,n);
end