MATLAB Answers

Plotting the solution to a system of second order differential equations

조회 수: 35(최근 30일)
Aleem Andrew
Aleem Andrew 3 Apr 2020
댓글: Aleem Andrew 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

댓글을 달려면 로그인하십시오.

채택된 답변

Birdman
Birdman 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))

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by