Challenge

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.

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.