Challenge

Week 3 - Solving second order ODEs

INSERT SAMPLE CODE

clear all
close all
clc
b = 0.05;
g = 9.81;
l = 1;
m = 1;
% initial condition
theta_0 = [0;3];
% time points
t_span = linspace(0,10,200);
% solve ODE
[t,results] = ode45(@(t,theta)ode_func(t, theta, b,g,l,m),t_span,theta_0);
figure(1)
plot(t,results(:,1))
hold on
plot(t,results(:,2))
ylabel('plot')
xlabel('time')

ct = 1;
for i = 1:length(t_span)
    THETA1 = results(i,1);

x0 = 0;
y0 = 0;

x1 = l*sin(THETA1);
y1 = -l*cos(THETA1);



% plotting
figure(2)
plot([x0 x1],[y0 y1],'linewidth',3)
hold on
plot(x1,y1,'O','markersize',20,'markerfacecolor','r')
axis([-2 2 -2 2])
hold off
M(ct) = getframe(gcf);
ct = ct+1;
%pause(0.1)

end
movie(M)
videofile = VideoWriter('ode_main.avi','uncompressed AVI');
open(videofile)
writeVideo(videofile,M)
close(videofile)

In this program

theta_0 = [0;3];

where angular displacement is 0 and angular velocity is 5.

ode45 is inbuilt solver in matlab

t_span is time array

main inputs to the function are t and theta

ode is function of t and theta

in this function i have made 3 mistakes and overcome in following way

1) i have used paranthesis instead of square bracket in function[dtheta_dt]

2) forgot to use * simbol between (g/l)sin(theta1)

3) mistakenly i have used - simbol in place of _

dtheta_dt

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

when i am trying to make an animation with the possitive values ox x1 and y1 the pendulum is moving in a upward direction

then ihave changed x1 = l*sin(THETA1) and y1 = -l*cos(THETA1)

then used marker command to determine the size of the ball and color.

then having axis[-2 2 -2 2] and movie command has helped me to create a good animation.

https://drive.google.com/file/d/1DPI8D75urzIjpmEEqhuF4MevbBnZmZLk/view?usp=sharing

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.