广宇方程和兰切斯特法则及兰切斯特方程的关系
广宇方程和兰切斯特法则及兰切斯特方程的关系
摘要:当广宇方程中的命中率趋近于1时,广宇方程计算的结果和兰切斯特第一方程计算的结果相同;当广宇方程中的命中率趋近于0时,广宇方程的计算结果和兰切斯特第二方程计算的结果相同。也就是说兰切斯特第一方程和第二方程是广宇方程的两个极端状态,广宇方程可以覆盖2个兰切斯特方程。兰切斯特法则只能计算命中率趋近于0和趋近于1时两队的最终剩余人数,并且不能计算在战斗中间某个时刻两队的剩余人数。而广宇方程则可以计算命中率从0到1这个完整区间内,两队的最终剩余人数,还可以计算任意时刻两队的剩余人数。广宇方程不仅可以完美覆盖兰切斯特法则,还可以真实的反应两队的实时作战情况(如图2-18所示)。
图2-18广宇方程和兰切斯特方程的关系
当杀伤率趋近于1时,也就是1发子弹打死一个人时,广宇方程计算的结果和兰切斯特法则第一法则计算的结果相同,广宇方程计算的结果也和兰切斯特第一方程计算的结果相同。
分别把X0=9,Y0=6,a=b=1/3分别带入广宇方程、兰切斯特法则和兰切斯特方程,可以使用MATLAB的limit函数求极限,广宇方程的计算A队最后的剩余人数为3人。
其中
兰切斯特第一法则计算的A队最后剩余3人。
兰切斯特第一方程计算的A队最后剩余3人。
也就是说,当杀伤率趋近于1时,广宇方程计算的结果和兰切斯特第一法则及兰切斯特第一方程计算的结果相同。
广宇方程和兰切斯特法则的关系推导过程
兰切斯特法则,第一法则为E=mv,当A军和B军的武器性能m相同时,可以得到胜利一方的胜利人数为:
失败一方的人数为0,即被全部消灭。
第一法则为E=mvv,当A军和B军的武器性能m相同时,可以得到胜利一方的胜利人数为:
失败一方的人数为0,即被全部消灭。
兰切斯特第一方程的解为:
兰切斯特第二方程的解为:
当A军和B军的杀伤率相同时,即a=b时,兰切斯特第二方程得到:
广宇方程如下:
当两队的杀伤率相同时,即a=b时,可以简化得到
我们假设A军和B军的武器性能或者命中率相同,是为了方便计算。
我们首先来分析一下兰切斯特第一方程和第一法则之间的关系。
当A军和B军战斗到最后时,其中假设a=b,
而兰切斯特第一法则的计算结果为
可以看到二者完全等同。即兰切斯特第一方程和兰切斯特第一法则计算的最终结果是相同的,表达式也是相同的。
兰切斯特第二方程和广宇方程由于计算复杂,我们使用MATLAB进行计算,并且给出计算过程。我们首先计算兰切斯特第二方程和兰切斯特第二法则之间的关系。
由于A军消灭B军的时间为T,此时B军全军覆灭,即y=0,而A军的剩余数量可以通过上述方程计算出。在x的方程中,将T带入x的方程,得到
可以看到关于A军剩余人数的方程中已经没有命中率a了,也就是A军的剩余数量只和两军的初始兵力X0和Y0相关,这是和现实不符的。比如A军9人和B军6人战斗,命中率是1/3(即3枪打死一个敌人)和1/2,A军剩余的数量是不一样的,而上述方程计算得的的结果是命中率趋于0时得到的结果。
在MATLAB中输入如下函数:
symsa x y;
Xn=(x/2+y/2)*exp(-1/2*log((x+y)/(x-y)))+(x/2-y/2)*exp(1/2*log((x+y)/(x-y)))
得到:
Xn=(x/2 - y/2)*((x + y)/(x - y))^(1/2) + (x/2 + y/2)/((x + y)/(x - y))^(1/2)
输入简化函数:
factor(Xn)
得到:
Xn=(x + y)/((x + y)/(x - y))^(1/2)
化简得到:
而兰切斯特第二法则的计算结果为
可以看到二者完全等同。即兰切斯特第二方程和兰切斯特第二法则计算的最终结果是相同的,最终表达式也是相同的。
下边我们来推导广宇方程,当命中率趋近于0时,广宇方程和兰切斯特第二法则计算表达式相同,当命中率趋近于1时,广宇方程和兰切斯特第一法则计算表达式相同,下边我们来推导。
由于
所以
令
同理得到
令
在MATLAB输入如下函数,求a趋近于0时的极限:
syms a;
k1=limit(((1+a)^(1/(log((1-a)/(1+a))))),a,0)
得到:
k1 =exp(-1/2)
在MATLAB输入如下函数:
k2=limit(((1-a)^(1/(log((1-a)/(1+a))))),a,0)
得到:
k2 =exp(1/2)
令
在MATLAB输入如下函数:
syms x y;
b=log((x-y)/(x+y))
Xn=(x/2-y/2)*exp(-b/2)+(x/2+y/2)*exp(b/2)
得到:
Xn=(x/2 - y/2)/((x - y)/(x + y))^(1/2) + (x/2 + y/2)*((x - y)/(x + y))^(1/2)
在MATLAB输入如下函数:
factor(Xn)
得到
Xn= (x - y)/((x - y)/(x + y))^(1/2)
化简得到:
而兰切斯特第二法则的计算结果为
可以看到二者完全等同。即当命中率趋近于0时,广宇方程和兰切斯特第二法则计算的最终结果是相同的,表达式也是相同的。
验证一下Yn是否为0。
在MATLAB输入如下函数:
Yn=(y/2-x/2)*exp(-b/2)+ (x/2+y/2)*exp(b/2)
得到:
Yn= (x/2 + y/2)*((x - y)/(x + y))^(1/2) - (x/2 - y/2)/((x - y)/(x + y))^(1/2)
在MATLAB输入如下函数:
factor(Yn)
得到:
Yn= 0
我们来计算当广宇方程中命中率趋近于1时的情况。
在MATLAB输入如下函数,求a趋近于1时的极限:
syms a;
k1=limit(((1+a)^(1/(log((1-a)/(1+a))))),a,1)
得到:
k1 = 1
在MATLAB输入如下函数:
k2=limit(((1-a)^(1/(log((1-a)/(1+a))))),a,1)
得到:
k2= exp(1)
在MATLAB输入如下函数:
syms x y;
b=log((x-y)/(x+y))
Xn=(x/2-y/2)*1^(b)+(x/2+y/2)*exp(b)
得到:
Xn = x/2 -y/2 + ((x/2 + y/2)*(x - y))/(x + y)
在MATLAB输入如下函数:
factor(Xn)
得到:
Xn= x - y
而兰切斯特第一法则的计算结果为:
可以看到二者完全等同。即当命中率趋近于1时,广宇方程和兰切斯特第一法则计算的最终结果是相同的,最终表达式也是相同的。
验证一下Yn此时是否为0。
在MATLAB输入如下函数:
Yn=(y/2-x/2)*1^(b)+ (x/2+y/2)*exp(b)
得到:
Yn= y/2 - x/2 + ((x/2 + y/2)*(x - y))/(x + y)
在MATLAB输入如下函数:
factor(Yn)
得到:
Yn= 0
结论:所以,当命中率趋近于0时,广宇方程和兰切斯特第二法则计算的结果相同;当命中率趋近于1时,广宇方程和兰切斯特第一法则计算的结果相同。兰切斯特法则只能计算命中率趋近于0和趋近于1时两队的最终剩余人数,并且不能计算在战斗中间某个时刻两队的剩余人数。而广宇方程则可以计算命中率从0到1这个完整区间内,两队的最终剩余人数,还可以计算任意时刻两队的剩余人数。广宇方程不仅可以完美覆盖兰切斯特法则,还可以真实的反应两队的实时作战情况。
当杀伤率趋近于0时,也就是需要无穷多子弹才能打死一个人时,广宇方程计算的结果和兰切斯特法则第二法则计算的结果相同,广宇方程计算的结果也和兰切斯第二方程计算的结果相同。
兰切斯特第二法则计算的A队最后剩余6.7082人。
兰切斯特第二方程计算的A队最后剩余6.7082人。
也就是说,兰切斯特第二法则和第二方程是杀伤率趋近于0的极端形式,武器性能越差,结果越趋近于兰切斯特第二法则。实际应用中,广宇方程比兰切斯特第二法则更能准确地表达现实的战斗情况。
在团战游戏和战斗模拟中,递归方程可以准确反映战斗情况,比微分方程计算的结果更加准确。系统的输入包括对战双方的初始人数X0和Y0,杀伤率a和b。也可以增加武器性能和命中率,A队的杀伤率a=A×k,其中A表示武器性能,k表示命中率,B队的杀伤率b=B×h。
这样就形成了一个6输入的系统,包括双方初始人数,双方初始武器性能和命中率。假设1架机枪的命中率是0.5,性能是0.8,那么杀伤率就是0.8*0.5=0.4,;而如果一架狙击步枪的性能是0.6,命中率是0.8,那么它的杀伤率就是0.6*0.8=0.48。提高武器性能和提高命中率都可以提高杀伤率。武器性能和命中率的取值范围均大于0,小于1(如图2-19所示)。
图2-19六输入的战斗模型
在各种团战游戏和战斗模拟中,如果有援军在某一时刻加入,计算当时两军的剩余人数,然后将援军人数加入,就可以继续进行模拟计算了。
摘自《可以量化的军事学》