How to solve this 4th order linear ODE with ode45?

7 ビュー (過去 30 日間)
Andy Zhao
Andy Zhao 2021 年 8 月 4 日
回答済み: Alan Stevens 2021 年 8 月 4 日
initial conditions
This is what I have so far:
x_1_0 = [2; 1/2; 0; 0;];
[t_1,x_1] = ode45(@f, tspan, x_1_0);
function dxdt = f(t,x)
m_1 = 0.549;
m_2 = 0.510;
b_1 = 2;
b_2 = 2;
k_1 = 332;
k_2 = 332;
dxdt = [
x(2);
x(3);
x(4);
((-1)*(m_1*b_1 + m_2*b_2).*x(4) - (m_2*k_1 + k_2*(m_1+m_2) + b_1*b_2).*x(3) - (k_1*b_2 + k_2*(b_1 + b_2)).*x(2) - (k_1*k_2).*x(1)) / (m_1*m_2)];
end

回答 (1 件)

Alan Stevens
Alan Stevens 2021 年 8 月 4 日
You need to define tspan
x_1_0 = [2; 1/2; 0; 0];
tspan = [0 10]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[t_1,x_1] = ode45(@f, tspan, x_1_0);
plot(t_1,x_1(:,1)),grid
function dxdt = f(~,x)
m_1 = 0.549;
m_2 = 0.510;
b_1 = 2;
b_2 = 2;
k_1 = 332;
k_2 = 332;
dxdt = [
x(2);
x(3);
x(4);
((-1)*(m_1*b_1 + m_2*b_2).*x(4) - (m_2*k_1 + k_2*(m_1+m_2) + b_1*b_2).*x(3) - (k_1*b_2 + k_2*(b_1 + b_2)).*x(2) - (k_1*k_2).*x(1)) / (m_1*m_2)];
end

カテゴリ

Help Center および File ExchangeOrdinary Differential Equations についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by