background image

restart:

 

with(plots):

 

lagrange := proc (n, q, r, L) local i, uzm_q, uzm_r, rel_r_q, Lq, 

Lr, Lrt; global row; uzm_q := seq(q[i] = q[i](t), i = 1 .. n); uzm_r 
:= seq(r[i] = r[i](t), i = 1 .. n); for i to n do Lq[i] := subs([uzm_q, 
uzm_r], diff(L, q[i])); Lr[i] := subs([uzm_q, uzm_r], diff(L, r[i])) 
end do; for i to n do Lrt[i] := diff(Lr[i], t) end do; rel_r_q := 
seq(r[i](t) = diff(q[i](t), t), i = 1 .. n); for i to n do row[i] := 
subs(rel_r_q, Lrt[i]-Lq[i] = 0) end do; seq(row[i], i = 1 .. n) end 
proc:

 

>   

#Zad1

 

E := (1/2)*m*v[1]^2:

 

U := (1/2)*k*x^2:

 

L := E-U:

 

lagrange(1, x, v, L):

 

>   

#Zad2

 

restart:

 

E := (1/2)*m*l^2*omega[1]^2: 

 

U := -m*g*l*cos(phi[1]):

 

L := E-U:

 

lagrange(1, phi, omega, L):

 

>   

#Zad3

 

restart:

 

E := (1/2)*m*(v[1]^2+v[2]^2):

 

U := (1/2)*k*(sqrt(x[1]^2+x[2]^2)-l)^2+m*g*x[2]:

 

L := E-U:

 

lagrange(2, v, x, L):

 

>   

#Zad4

 

restart:

 

E := 

(1/2)*m[1]*v[1]^2+(1/2)*m[2]*(v[1]^2+2*v[1]*v[2]*l*cos(x[2])+l^2*
v[2]^2):

 

U := (1/2)*k*x[1]^2-m[2]*g*l*cos(x[2]):

 

m[1] := 1: m[2] := .1: g := 9.81: l := .1: k := 100:

 

wp := x[1](0) = .5*l, (D(x[1]))(0) = 0, x[2](0) = (1/3)*Pi, 

(D(x[2]))(0) = 0:

 

L := E-U:

 

lagrange(2, x, v, L):

 

dsolve({wp, row[1], row[2]}, {x[1](t), x[2](t)}, numeric):