正如您在标题上看到的,我想问一些关于ODE的事情。我们的老师在互联网上上传了一些例子,但它们只是由解决方案组成。
这是其中之一,即将解决以下方程式。
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
的
答案 0 :(得分:1)
你的系统是线性的,具有2阶和2阶的常系数。为了数值积分的目的,这使得变量中的阶1和阶4的系统
y = [ phi_1; phi_2; dphi_1; dphi_2 ]
矩阵D
是该1阶系统的雅可比行列式。在制定为
y' = D * y
遵循扩展方程式
phi_1' = dphi_1
phi_2' = dphi_2
dphi_1' = - (m_1*g*l * phi_1 + c*l * (phi_1 - phi_2) ) / (m_1 * l^2 )
dphi_2' = - (m_2*g*l * phi_2 + c*l * (phi_2 - phi_1) ) / (m_2 * l^2 )