MATLAB Answers

Plotting the solution to a system of second order differential equations

3 views (last 30 days)
Aleem Andrew
Aleem Andrew on 3 Apr 2020
Commented: Aleem Andrew on 3 Apr 2020
I am having difficulty interpreting the plots generated by the following code. Is there a way I can generate a single plot instead of four plots, for example, the plot of θ(t) vs x(t)?
ode = @fun;
t = [0 10];
ic = [pi/3; 0; 0; 0]; % [θ θ' x x']
[t,x] = ode45(ode, t, ic);
plot(t,x);
xlabel('x(t)');
ylabel('θ(t)');
function dydx = fun(t,x)
L = 0.5; g = 9.81;
dydx = zeros(4,1);
dydx(1) = x(2);
dydx(2) = (4*sin(x(1))*(5*L*cos(x(1))*x(2)^2 + 6*g))/(L*(20*cos(x(1))^2 - 23));
dydx(3) = x(4);
dydx(4) = -(5*sin(x(1))*(23*L*x(2)^2 + 24*g*cos(x(1))))/(6*(20*cos(x(1))^2 - 23));
end
The code generates four plots, only one of which satisfies the initial conditions (θ = pi/3 and x = 0) while I do not understand what the other plots represent.

  0 Comments

Sign in to comment.

Accepted Answer

Birdman
Birdman on 3 Apr 2020
Is there a way I can generate a single plot instead of four plots, for example, the plot of θ(t) vs x(t)?
Yes you can, with the following line:
plot(t,x(:,1))

More Answers (0)