solving the pendulum differential equation with a for loop

3 visualizzazioni (ultimi 30 giorni)
Hi I'm trying to write down a code that solves the equation of the pendulum in the hyp of little swings.
The task is to write it with a for loop without using the ODEs functions.
the code i wrote obviusly doesn't work.
Does someone could help me?
equation of pendulum:
l*diff(c,t,2)+g*c==0
code I wrote:
l=50; %rope length
g=9.81; %g constant
t=0; %time
syms c;
Dc= diff(c,t);
cond= [c(0)==0, Dc(0)==0.1]; %initial conditions
T=7.5*pi*sqrt(l/g);
n=linspace(0, T, 1000);
for i=1:n %I need the c value at every 't' from 0 to T with 1000 points
t= i;
ode = l*diff(c,t,2)+g*c==0;
sol=dsolve(ode,cond);
%sol=dsolve(ode);
end

Risposta accettata

BOB MATHEW SYJI
BOB MATHEW SYJI il 13 Set 2020
Hope this helps. The solution for the differential equation is obtained as cSol(t). The required solution is obtained as a row vector 'sol'
l=50; %rope length
g=9.81; %g constant
syms c(t);
Dc= diff(c,t);
ode = l*diff(Dc)+g*c==0;
cond=c(0)==0;
cond1=Dc(0)==0.1;
cSol(t)=dsolve(ode,[cond cond1]);
T=7.5*pi*sqrt(l/g);
n=linspace(0, T, 1000);
for i=1:length(n)
sol(i)=double(cSol(n(i)));
end

Più risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by