% 2-Particle collisions
% Andy Ruina, modified Oct 3, 2006
% See lecture notes from Oct 3, 2006 for
% basic problem setup.

theta = 0;       % angle between n and plus x axis
nx = cos(theta); ny = sin(theta);
n = [nx ny]';    %Impulse direction
v1bef = [ 1 0]'; %vel of m1 before collision
v2bef = [ 0 0]'; %vel of m2 before collision
m1 = 1;  m2 = 1; %values of two masses
e = 1;           % coefficient of restitution

%Write governing equations in form of Az=b
%where z is a list of unknowns representing
%the particle velocities after the collision 
%and the magnitude of the impulse.
 
A = [ m1   0   m2  0    0    %x comp of lin mom bal
      0    m1  0   m2   0    %y comp of lin mom bal
     -nx  -ny  nx  ny   0    %restitution equation
      0    0   m2  0   -nx   %impulse-momentum for m2, x comp
      0    0   0   m2  -ny]  %impulse-momentum for m2, y comp
 
b = [m1*v1bef + m2*v2bef;      % x&y comps of lin mom bal for syst
     -e*sum((v2bef-v1bef).*n); % restitution equation, note dot product
     m2*v2bef]  % impulse-momentum for m2, x & y comps
     
     
%Matlab command for solving simultaneous equations 
%of form Az=b for z, where A and b are known.
z= A\b; % The greatest command in all of Matlab. 
 
%Type out the solution (crudely).
' v1xaft v1yaft v2xaft v2yaft P'
z' 
    

