Solving a system of Second Order Equations
5 views (last 30 days)
Show older comments
Trying to solve but not able to get an output
Need the equations of x1 to x5.
m1 = 0.17; m2 = 0.17; m3 = 0.114; m4 = 0.114; m5=0.114;
k = 50; k1 = k; k2 = 0.8*k; k3 = 0.7*k; k4 = 0.6*k; k5=0.6*k; k6=0.9*k;
M = [m1 0 0 0 0; 0 m2 0 0 0; 0 0 m3 0 0; 0 0 0 m4 0; 0 0 0 0 m5];
K = [k1+k2 -k2 0 0 0; -k2 k2+k3 -k3 0 0; 0 -k3 k3+k4 -k4 0; 0 0 -k4 k4+k5 -k5; 0 0 0 -k5 k5+k6];
w = 2*pi*40;
syms x1(t) x2(t) x3(t) x4(t) x5(t)
eqn1 = m1*diff(x1,t,2) + (k1+k2)*x1 - k2*x2 == 5*sin(w*t);
eqn2 = m2*diff(x2,t,2) - k2*x1 + (k2+k3)*x2 - k3*x3 == 5*sin(w*t);
eqn3 = m3*diff(x3,t,2) - k3*x2 + (k3+k4)*x3 - k4*x4 == 5*sin(w*t);
eqn4 = m4*diff(x4,t,2) - k4*x3 + (k4+k5)*x4 - k5*x5 == 5*sin(w*t);
eqn5 = m5*diff(x5,t,2) - k5*x4 + (k5+k6)*x5 == 5*sin(w*t);
eqns = [eqn1; eqn2; eqn3; eqn4; eqn5];
S = dsolve(eqns)
0 Comments
Answers (1)
Alan Stevens
on 24 Apr 2022
Not sure there is a symbolic solution, but it's easy enough to get a numerical one:
tspan = [0 1]; % Start and end times
% Initial conditions
% x0 = [x1(0), x2(0), x3(0), x4(0), x5(0), v1(0), v2(0), v3(0), v4(0), v5(0)]
x0 = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0];
[t, x] = ode45(@rates, tspan, x0);
plot(t,x(:,1:5)), grid
xlabel('t'), ylabel('x')
legend('x1','x2','x3','x4','x5')
function dxdt = rates(t, x)
m1 = 0.17; m2 = 0.17; m3 = 0.114; m4 = 0.114; m5=0.114;
k = 50; k1 = k; k2 = 0.8*k; k3 = 0.7*k; k4 = 0.6*k; k5=0.6*k; k6=0.9*k;
w = 2*pi*40;
x1 = x(1); x2 = x(2); x3 = x(3); x4 = x(4); x5 = x(5);
v1 = x(6); v2 = x(7); v3 = x(8); v4 = x(9); v5 = x(10);
f = 5*sin(w*t);
dxdt = [v1; v2; v3; v4; v5;
(f - ((k1+k2)*x1 - k2*x2))/m1;
(f - (- k2*x1 + (k2+k3)*x2 - k3*x3))/m2;
(f - (- k3*x2 + (k3+k4)*x3 - k4*x4))/m3;
(f - (- k4*x3 + (k4+k5)*x4 - k5*x5))/m4;
(f - (- k5*x4 + (k5+k6)*x5))/m5];
end
3 Comments
See Also
Categories
Find more on Calculus in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!