MATLAB: I have used two different methods for same problem and getting different plots

dsolveode45plotsecond order ode

%----------------CODE - 1-----------------------------
function second_order_ode
clc
clear
t = 0:0.001:3; % time scale
initial_x = 0;
initial_dxdt = 0;
[t,x] = ode45 ( @rhs, t, [initial_x, initial_dxdt]);
plot(t,x(:,2));
xlabel('t'); ylabel('x');
title('Solution to ODE d^2x/dt^2+5dx/dt-4x(t)=sin(10t)')
disp([t,x(:,2)])
function dxdt=rhs(t,x)
dxdt_1 = x(2);
dxdt_2 = -5*x(2)+4*x(1)+sin(10*t);
dxdt = [dxdt_1; dxdt_2];
end
end
%----------------CODE - 2-----------------------------
clc
clear
syms x t
x = Dsolve('D2x + 5*Dx - 4*x = sin(10*t)','x(0)=0','Dx(0)=0','t')
tt = 0:.01:3
xx = subs(x,t,tt)
plot(tt,xx)

Best Answer

After you find the numeric solution, you plot the second output, which is the derivative.
After you find the symbolic solution, you plot the function itself.