Challenge

Week 3 - Solving second order ODEs

Aim= write a program to simluate the pendulum motion.

ODE= it is a mathematics,an ordinary differential equation is a differential equation containing one or more functions of

one independent variable and the derivatives of those functions.

d^2(theta)/dt^2+b/m d(theta)/dt+g/l sin(theta)=0

b=damping

m=mass

g=gravity

l=length

clear all
close all
clc


b=0.05;
g=9.81;
l=1;
m=0.1;

%initial condition
theta_0=[0,5];

%time points
t_span=linspace(0,10,500);

%solve ODE
[t,results]=ode45(@(t,theta)odefunc(t,theta,b,g,l,m),t_span,theta_0);



figure (1)
plot(t,results(:,1))

hold on

plot(t,results(:,2))

ct=1;
for i=1:length(t_span)

    %coordinates
    x=l*sin(results(i,1));
    y=l*cos(results(i,1));

    figure (2)

    %plot fixed link

    plot([-2 2],[0 0],'linewidth',5,'color','b')

    hold on
    plot([0 x],[0 y],'linewidth',5)

    plot(x,y,'o','markersize',15,'markerface color','b')
    %axis setting

    axis([-3 3 -2 2])
    M(ct)=getframe (gcf);% to change the frame of the movie
    ct=ct+1;
    hold off
end
    


function [dtheta_dt]=odefunc(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
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.