| 网站镜像:电信 网通 | 加入收藏 | 设为首页

初级物理模型的构建(AS)-力学1 基本知识1:动量守恒

  • 物理背景―――完全弹性碰撞的方程:

    在AS中构造的collision 方程便是这样:

    a)相对速度的写法:(计算更快)

    function collision(mc1,mc2){

    var v1temp=mc1.v;

    var v2temp=mc2.v;

    mc1.v=((mc1.m-mc2.m)/(mc1.m+mc2.m))*v1temp+(2*mc2.m/(mc1.m+mc2.m))*v2temp;

    mc2.v=v1temp-v2temp+mc1.v;

    }



    b)完全的套用公式:

    function collision(mc1,mc2){

    var v1temp=mc1.v;

    var v2temp=mc2.v;

    mc1.v=((mc1.m-mc2.m)/(mc1.m+mc2.m))*v1temp+(2*mc2.m/(mc1.m+mc2.m))*v2temp;

    mc2.v=(2*mc1.m/(mc1.m+mc2.m))*v1temp-((mc1.m-mc2.m)/(mc1.m+mc2.m))*v2temp;

    }



    c)加入了非弹性碰撞系数的碰撞函数:

    function collision(mc1,mc2){//注意应用到程序中时看看是否要改成vx,vy等。

      var e=1;//e的范围由0--1

    var v1temp=mc1.v;

    var v2temp=mc2.v;

    mc1.v=((mc1.m-e*mc2.m)/(mc1.m+mc2.m))*v1temp+((1+e)*mc2.m/(mc1.m+mc2.m))*v2temp;

    mc2.v=((1+e)*mc1.m/(mc1.m+mc2.m))*v1temp-((e*mc1.m-mc2.m)/(mc1.m+mc2.m))*v2temp;

    }



    d)二维平面的内的动量守恒,把速度在x,y两个方向上分别进行动量守恒即可:

    function collisionx(mc1, mc2) {

    var e = 1; // e的范围由0--1

    var v1temp = mc1.vx;

    var v2temp = mc2.vx;

    mc1.vx=((mc1.m-e*mc2.m)/(mc1.m+mc2.m))*v1temp+((1+e)*mc2.m/(mc1.m+mc2.m))*v2temp;

    mc2.vx = ((1+e)*mc1.m/(mc1.m+mc2.m))*v1temp-((e*mc1.m-mc2.m)/(mc1.m+mc2.m))*v2temp;

    }

    function collisiony(mc1, mc2) {

    var e = 1; // e的范围由0--1

    var v1temp = mc1.vy;

    var v2temp = mc2.vy;

    mc1.vy= ((mc1.m-e*mc2.m)/(mc1.m+mc2.m))*v1temp+((1+e)*mc2.m/(mc1.m+mc2.m))*v2temp;

    mc2.vy = ((1+e)*mc1.m/(mc1.m+mc2.m))*v1temp-((e*mc1.m-mc2.m)/(mc1.m+mc2.m))*v2temp;

    }