Week 3 - Solving second order ODEs
clear all
close all
clc
%input delaration%
b = 0.05;
g = 9.81;
l = 1;
m= 0.1;
%intital condition%
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);
ct=1;
for i= 1:length(t_span);
x0=0;
y0=0;
x1= l*sin(results(i,1));
y1= -l*cos(results(i,1));
plot ([x0 x1], [y0 y1],'linewidth',3);
hold on
p = plot( x1,y1,'o','MarkerFaceColor','red');
hold off
axis([ -1.2 1.2 -1.5 0.5])
M(ct)=getframe(gcf);
ct =ct+1;
end
movie(M);
videofile = VideoWriter('pendulum.avi','uncompressed avi');
open(videofile)
writeVideo(videofile, M)
close(videofile)
plot(t,results(:,1))
hold on
plot(t, results(:,2))
ylabel('plot')
xlabel('time')
code part -2
function[dtheta_dt] = ode_func(t,theta,b,g,l,m)
theta1 = theta(1);
theta2 = theta(2);
dtheta1_dt =theta2;
dtheta2_dt = -(b/m)*theta2-(g/l)*sin(theta1);
dtheta_dt = [ dtheta1_dt ; dtheta2_dt];
end
google drive link
https://drive.google.com/file/d/10c-THyLMBjEmgB_m4eT4ToYhnxRpvsSb/view?usp=sharing