input_case nil$ % Particle in the Coulomb field % ----------------------------- operator x,p; % radius-vector and momentum array M(3),L(3); % angular momentum and Runge-Lenz vector for i:=1:3 do depend r,x(i); % radius for i:=1:3 do let df(r,x(i))=x(i)/r; let x(3)^2=r^2-x(1)^2-x(2)^2; procedure Poiss(f,g); % Poisson bracket for i:=1:3 sum df(f,p(i))*df(g,x(i))-df(f,x(i))*df(g,p(i))$ procedure scal(a,b); for i:=1:3 sum a(i)*b(i)$ % scalar product H:=scal(p,p)/2+a/r$ % hamiltonian j:=2$ k:=3$ % angular momentum for i:=1:3 do << M(i):=x(j)*p(k)-x(k)*p(j); j:=k; k:=i >>; % Runge-Lenz vector for i:=1:3 do L(i):=scal(p,p)*x(i)-scal(p,x)*p(i)+a*x(i)/r; Poiss(M(1),x(2)); Poiss(M(1),p(2)); Poiss(M(1),M(2)); Poiss(M(1),L(2)); ws+L(3); Poiss(H,x(1)); Poiss(H,p(1)); Poiss(H,M(1)); Poiss(H,L(1)); on gcd; Poiss(L(1),L(2)); ws/H; ws/M(3); end;