solving the pendulum differential equation with a for loop

3 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

BOB MATHEW SYJI
BOB MATHEW SYJI am 13 Sep. 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

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by