2 维度弹性碰撞最终速度增加?

2 Dimensional Elastic Collisions final speed increases?

问题简而言之: 我在 2d space 中有两个移动的球发生碰撞,因此会有撞击前的速度 v1i v2i 和撞击后的速度 v1f v2f,当然,它们由向量表示。球的速度范数之和不守恒而是增加是否正常? 所以范数(v1i) + 范数(v2i) < 范数(v1f) + 范数(v2f)。

我认为这应该是不可能的,因为这意味着球不知从哪里获得了速度,但我可能遗漏了一些东西,也许范数的总和在这种影响中不守恒。

长版: 已知数据:撞击前两个球 i 和 j 的速度矢量(抱歉,如果符号有点混乱)vi、vj、两个球中心的位置矢量 pi、pj、两个球的半径和质量相同r, m.

这是计算两个球最终速度的两种方法:

                %velocity vectors
                vi=[vix; viy];
                vj=[vjx; vjy];

                %position(center) of the balls 
                pi=[xi; yi];
                pj=[xj; yj];

                %normal vector in the point of impact
                n = pi - pj;

                %normal unit vector in the point of impact
                un=n/norm(n);

                %tangent unit vector in the point of impact
                ut=[-un(2); un(1)];

                %project velocity in the normal and tangent directions using dot product
                vin=dot(un,vi);
                vit=dot(ut,vi);
                vjn=dot(un,vj);
                vjt=dot(ut,vj);

                %final normal velocity is calculated combining conservation
                %of momentum and kinetic energy in only the normal dimension
                vinf=vjn;
                vjnf=vin;

                %final tangent velocity remains the same
                vitf=vit;
                vjtf=vjt;

                %final velocity is the sum of the tan e norm components
                vif=vinf*un + vitf*ut;
                vjf=vjnf*un + vjtf*ut;

                if norm(vi)+norm(vj) < norm(vif)+norm(vjf)
                   print("Energy violation")


                %There was also a much faster way to calculate the final
                %velocity: vif=(vi-(dot(vi-vj,n)/(norm(n)^2))*(n));
                %but this way is more easy to understand. Both give the same 
                % result.

这是一个数字示例:

vi = 4.0422 0.2023

vj= -0.5104 0.2552

n = -4.9436 -2.8675

vif = 0.6587 -1.7603

vjf= 2.6864 2.1095

范数(vi)+范数(vj) = 4.6179

范数(vif)+范数(vjf) = 5.2951

我的一个朋友帮我找到了答案,我只是没有计算速度向量的范数的平方,这是一个愚蠢的错误,我的错。所以范数之和实际上不守恒,但平方范数之和守恒。