Week 3 - Solving second order ODEs
clear all
close all
clc
b=0.05;
g=9.81;
l=1;
m=0.1;
ct=1;
% intital conditions
theta_0=[0;5];
%time points
t_span=linspace(0,10,500);
%solve ODE
[t,results]=ode45(@(t,theta) ode_func(t,theta,b,g,l,m),t_span,theta_0);
plot(t,results(:,1))
hold on
plot (t,results(:,2))
hold off
ylabel('plot')
xlabel('time')
ct=1;
for i=1:length(results(:,1));
x0=0;
y0=0;
x1=l*sin(results(i,1));
y1=l*cos(results(i,1));
plot([-1 1],[0 0],'color','g');
hold on;
line([x0 x1],[y0 y1],'color','r');
hold on;
grid on;
axis([-1.5 1.5 0 0.5]);
pause(0.0003);
hold off
q(ct)=getframe(gcf);
ct=ct+1;
end
movie(q)
videofile=VideoWriter('pendulum_1.avi','Uncompressed AVI');
open(videofile)
writeVideo(videofile,q)
close(videofile)
In this challange 2nd order ODE has been converted into two first order,
solution vector has column matrix , one is for displacent and other for angular velocity.
And also ode 45 solver has been used to get the solution.