octave_mechanics_singlependulum
Function: octave_mechanics_singlependulum ()
function out = octave_mechanics_doublependulum(g,m1,m2,l1,l2,x_k)
dt =  0.01;
%m1 = 1;
%m2 = 1;
%l1 = 0.5;
%l2 = 0.5;
%g = 9.8;
%x_k = [60/180*pi ;
%          0      ;
%          0      ;
%          0      ];
x = [];
tim =[];
for t = 0 : dt : 10
    A1=[(m1+m2)*l1 m2*l2*cos(x_k(1)-x_k(2));
         m2*l1*cos(x_k(2)-x_k(1))     m2*l2];
    B1=[(m1+m2)*g*sin(x_k(1)) m2*l2*(x_k(4))^2*sin(x_k(1)-x_k(2));
         m2*l1*(x_k(3))^2*sin(x_k(2)-x_k(1))     m2*g*sin(x_k(2))];
    C1=[1;
        1];
    D1=-(inv(A1)*B1)*C1;
    k1 = [ x_k(3);
           x_k(4); 
           D1(1);
           D1(2)] * dt;
    x_tmp = x_k + k1/2;
    A2=[(m1+m2)*l1 m2*l2*cos(x_tmp(1)-x_tmp(2));
         m2*l1*cos(x_tmp(2)-x_tmp(1))     m2*l2];
    B2=[(m1+m2)*g*sin(x_tmp(1)) m2*l2*(x_tmp(4))^2*sin(x_tmp(1)-x_tmp(2));
         m2*l1*(x_tmp(3))^2*sin(x_tmp(2)-x_tmp(1))     m2*g*sin(x_tmp(2))];
    C2=[1;
        1];
    D2=-(inv(A2)*B2)*C2;
    k2 = [ x_tmp(3);
           x_tmp(4); 
           D2(1);
           D2(2)] * dt;
    x_tmp = x_k + k2/2;
    A3=[(m1+m2)*l1 m2*l2*cos(x_tmp(1)-x_tmp(2));
         m2*l1*cos(x_tmp(2)-x_tmp(1))     m2*l2];
    B3=[(m1+m2)*g*sin(x_tmp(1)) m2*l2*(x_tmp(4))^2*sin(x_tmp(1)-x_tmp(2));
         m2*l1*(x_tmp(3))^2*sin(x_tmp(2)-x_tmp(1))     m2*g*sin(x_tmp(2))];
    C3=[1;
        1];
    D3=-(inv(A3)*B3)*C3;
    k3 = [ x_tmp(3);
           x_tmp(4); 
           D3(1);
           D3(2)] * dt;
    x_tmp = x_k + k3;
    A4=[(m1+m2)*l1 m2*l2*cos(x_tmp(1)-x_tmp(2));
         m2*l1*cos(x_tmp(2)-x_tmp(1))     m2*l2];
    B4=[(m1+m2)*g*sin(x_tmp(1)) m2*l2*(x_tmp(4))^2*sin(x_tmp(1)-x_tmp(2));
         m2*l1*(x_tmp(3))^2*sin(x_tmp(2)-x_tmp(1))     m2*g*sin(x_tmp(2))];
    C4=[1;
        1];
    D4=-(inv(A4)*B4)*C4;
    k4 = [ x_tmp(3);
           x_tmp(4); 
           D4(1);
           D4(2)] * dt;
    x_k1 = x_k + (k1 + 2 * k2 + 2 * k3 + k4 ) /6 ;
    x = [x x_k];
    tim = [tim t];
    x_k = x_k1;
endfor
plot(l1*sin(x(1, :)),-l1*cos(x(1, :)),l1*sin(x(1, :))+l2*sin(x(2, :)),-l1*cos(x(1, :))-l2*cos(x(2, :)));
out=0;
endfunction
  
