Zadanie 
Jednorodny pręt o masie M i długości L leży na gładkiej powierzchni poziomej. Pocisk o masie m lecący poziomo z prędkością v trafia prostopadle w koniec nieruchomego pręta i rozprasza się elastycznie pod kątem θ. Obliczyć długość wektora prędkości punktowej masy po zderzeniu (v1), kąt, pod którym wyleci środek pręta, długość wektora prędkości środka masy pręta oraz prędkość kątową ω pręta po zderzeniu. 

Rozwiązanie w nieruchomym inercjalnym układzie
 
Moment pędu LO jest liczony względem początku nieruchomego układu współrzędnych. Na początku dany jest przez pęd cząstki o masie m i parametr zderzenia L/2. Korzystamy z zasad zachowania energii kinetycznej, pędu (w płaszczyźnie poziomej) oraz zachowania składowej momentu pędu prostopadłej do powierzchni z prętem. 

Zakładam, że początek i koniec pręta przed zderzeniem znajdują się odpowiednio w punktach A(0,L/2) oraz B(0,-L/2). Masa m ma wektor prędkości v równoległy do osi x i uderza w punkt A.

(* składowa z momentu pędu układu przed zderzeniem wzięta z przeciwnym znakiem,bo masa ma porusza się w prawo! *)

LOpocz=m*v*L/2;

(* pęd całkowity układu *)

P=m*v

(* prędkość środka masy *)

V=P/(m+M)

(* składowa y położenia środka masy *)

ycm=m*L/(2*(m+M))

(* składowa x położenia środka masy *)

xcm=V*t

(* wektor położenia środka masy *)

R={xcm,ycm,0}

(* Wektor położenia vecr1 punktowej masy po zderzeniu (t=0 odpowiada momentowi zderzenia *)

vecr1={0,L/2,0}+t*{v1*Cos[θ],v1*Sin[θ],0};

(* pęd vecp1 punktowej masy po zderzeniu *)

vecp1=m*{v1*Cos[θ],v1*Sin[θ],0};

LOm=Cross[vecr1,vecp1]

(* Moment pędu środka masy pręta po zderzeniu wynosi 0 ! *)

(* Moment bezwładności pręta względem osi przechodzącej przez środek pręta i prostopadłej do pręta 
Is=(1/12)*M*L^2
*)

(* Układ równań wynikających z zasady zachowania energii, pędu i momentu pędu względem początku nieruchomego układu współrzędnych *)

s=FullSimplify[Solve[{p0==p1*Cos[θ]+2*Is*ω/L,M*p0^2==M*p1^2+m*(p0^2+p1^2-2*p0*p1*Cos[θ])+m*M*Is*ω^2},{p1,ω}],m>0&&M>0&&p1>0&&ω>0]

Dimensions[s]

(* Mamy dwa rozwiązania: s[[1]] i s[[2]], jak to bywa w elastycznym rozpraszaniu *)

s[[1]]

s[[2]]

p11=p1/.s[[1]]

ω1=ω/.s[[1]]

p12=p1/.s[[2]]

ω2=ω/.s[[2]]

(* Przykładowe dane liczbowe. Biorę masę m znacznie mniejszą od masy pręta M, bo oczekuję, że dostanę wtedy tylko jedno fizycznie dopuszczalne rozwiązanie. *)

M=1; (* kg *)

m=1/10; (* kg *)

L=1/2; (* m *)

v=2; (* m/s *)

Is=(1/12)*M*L^2;

p0=m*v;

Plot[p11,{θ,0,Pi}]

Plot[ω1,{θ,0,Pi}]

Plot[p12,{θ,0,Pi}]

Plot[ω2,{θ,0,Pi}]

(* Rzeczywiście, dla tych parametrów wyjściowych tylko rozwiązanie s[[2]] jest rozwiązaniem fizycznym, dającym p1 > 0 *)

p21=Sqrt[p0^2+p11^2-2*p0*p11*Cos[θ]];

p22=Sqrt[p0^2+p12^2-2*p0*p12*Cos[θ]];

ϑ1=ArcCos[(p0-p11*Cos[θ])/p21];

ϑ2=ArcCos[(p0-p12*Cos[θ])/p22];

Plot[p22,{θ,0,Pi}]

Plot[ϑ2,{θ,0,Pi}]

(* sprawdzenie zachowania energii *)

Enchk1=-p0^2/(2*m)+p11^2/(2*m)+p21^2/(2*M)+Is*ω1^2/2;

Enchk2=-p0^2/(2*m)+p12^2/(2*m)+p22^2/(2*M)+Is*ω2^2/2;

Plot[Enchk2,{θ,0,Pi}]

(* sprawdzenie zachowania składowej x całkowitego pędu *)

Plot[-p0+p12*Cos[θ]+p22*Cos[ϑ2],{θ,0,Pi}]

(* sprawdzenie zachowania składowej y całkowitego pędu *)

Plot[-p12*Sin[θ]+p22*Sin[ϑ2],{θ,0,Pi}]

(* sprawdzenie zachowania składowej z całkowitego momentu pędu *)

Plot[-p0*L/2+p12*L/2*Cos[θ]+Is*ω2,{θ,0,Pi}]

Modelowanie elastycznego zderzenia punktowej masy z prętem

θ=Pi/8; (* kąt rozproszenia punktowej masy m *)

t0=-1; (* początek mierzenia czasu: |t0| sekund do zderzenia  *)

(* wektor położenia punktowej masy *)

r1[t_]:=If[t<0,{v*t,L/2},{p12/m*Cos[θ]*t,L/2+p12/m*Sin[θ]*t}]

(* wektor położenia środka preta *)

r2[t_]:=If[t<0,{0,0},{p22/M*Cos[ϑ2]*t,-p22/M*Sin[ϑ2]*t}]

(* prędkość kątowa pręta wokół osi prostopadłej do płaszczyzny rysunku, przechodzącej przez środek pręta *)

omega[t_]:=If[t<0,0,ω2]

(* wektor położenia środka masy układu *)

rcm[t_]:=(m*r1[t]+M*r2[t])/(m+M)

cm[t_]:=Line[{rcm[t0],rcm[t]}]

gcm[t_]:=Graphics[{Pink,cm[t]}]

(* położenie górnego (przed obrotem) końca pręta *)

rA[t_]:=r2[t]+{L/2*Sin[omega[t]*t],L/2*Cos[omega[t]*t]};

(* położenie dolnego (przed obrotem) końca pręta *)

rB[t_]:=r2[t]-{L/2*Sin[omega[t]*t],L/2*Cos[omega[t]*t]};

pret[t_]:=Line[{rA[t],rB[t]}];

gpret[t_]:=Graphics[{Thick,Gray,pret[t]}]

masa[t_]=Disk[r1[t],1/20];

gmasa[t_]:=Graphics[masa[t]]

Animate[Show[gmasa[t],gpret[t],gcm[t],PlotRange->{{-3,4},{-3,3}},AspectRatio->1],{t,t0,5}]

aaa=Table[Show[gmasa[t],gpret[t],gcm[t],PlotRange->{{-3,4},{-3,3}},AspectRatio->1],{t,t0,8,0.04}];

Export[
 NotebookDirectory[] <> "rod3.gif", aaa];