兰彻斯特模型与战争的胜负.docx
《兰彻斯特模型与战争的胜负.docx》由会员分享,可在线阅读,更多相关《兰彻斯特模型与战争的胜负.docx(18页珍藏版)》请在冰豆网上搜索。
《数学实验》报告
题目:
兰彻斯特模型与战争的胜负
学生姓名:
XXX
学号:
0000000000
专业班级:
XXXX0000班
20XX年XX月XX日
一、问题背景与提出
1915年,在第一次世界大战期间,英国工程师F.W.兰彻斯特在率先提出用常微分方程组描述敌对双方兵力消灭过程,定性地说明了集中兵力的原理,建立了兰彻斯特原理——通过应用数学方法研究敌对双方在战斗中的武器、兵力消灭过程的一门理论。
1945年,J.H.恩格尔撰文肯定了兰彻斯特定律的实践意义。
他根据在第二次世界大战中美军攻占日军防守的琉璜岛之役的作战数据,计算了各方的消灭率系数,且用这两个系数结合美军的兵力增补率构成一个特殊的兰彻斯特方程。
它的数值解相当准确地与该次作战中的实际兵力变化进程相吻合。
从此,这门理论得到不断发展。
它主要研究两类问题:
一是作战对抗过程的描述,即根据典型的对抗态势和火力条件建立兵力消灭过程的微分方程组及其解法,借以预测作战进程和获胜条件;二是战术策略的优化,即寻找投入兵力、分配火力和支援保障行动等的最优策略序列。
本文的目的即借助兰彻斯特战斗模型来讨论在不同的对抗态势和火力条件下,分析方程解x(t)、y(t)的变化,进而探索双方在战争中胜利的条件。
二、实验目的
1.利用高等数学知识建立数学模型求解实际问题。
2.利用Mathematica辅助求解问题,并能够利用Mathematica进行基本的数学模拟。
3.借助最基本的兰彻斯特战斗模型来讨论在不同的战斗力的投入和火力条件下,分析方程解x(t)、y(t)的变化,探索双方在战争中胜利的条件,并选出最佳的策略。
三、实验原理与数学模型
实验原理:
兰彻斯特战斗模型
某方兵力的净变化率:
dx(t)dt=-自然损失率+作战损失率+补充率
一般来说三个兰彻斯特传统战争模型为以下三个微分方程组:
常规战:
dxdt=-ax-by+Pt
dydt=-cx-dy+Q(t)
游击战:
dxdt=-ax-gxy+P(t)
dydt=-dy-hxy+Q(t)
常规、游击战混合型:
dxdt=-ax-gxy+P(t)
dydt=-cx--dy+Q(t)
式中:
a、b、c、d、e、f、g、h是非负损失率常数,其中b、c、g、h为战斗有效系数,P(t)、Q(t)为战时战斗(兵员)的补充率,x0、y0为交战双方的初始战斗力。
为了方便讨论,进一步简化兰彻斯特战争模型,我们假定双方为两支孤立的作战部队(P(t)、Q(t)为战时战斗(兵员)的补充率为零)。
故,对于常规战,设其自然损失率为零(a=0、d=0),孤立作战(P(t)=0、Q(t)=0),所以其模型可简化为:
dxdt=-by
dydt=-cx
(1)
对于游击战,其模型可简化为:
dxdt=-gxy
dydt=-hxy
(2)
对于游击——常规混合战,其模型可简化为:
dxdt=-gxy
dydt=-cx(3)
四、实验内容(要点)
实验一:
常规战
1.(方法一)直接通过x(t),y(t)的关系来判断:
求解描述两军队的微分方程:
(DSolve[{x^'[t]==-b*y[t],y^'[t]==-c*x[t],x[0]==x0,x^'[0]==-b*y0},{x[t],y[t]},t]/)/Simplify
可得结果:
x[t]→12cⅇ-bct(c(1+ⅇ2bct)x0-b(-1+ⅇ2bct)y0)(4)
yt→12bⅇ-bct-c-1+ⅇ2bctx0+b1+ⅇ2bcty0(5)
我们令β=b*c;γ=bc,因而上式可以化简为:
xt=x0coshβt-γy0sinh(βt)(6)
yt=y0coshβt-x0γsinh(βt)(7)
当t→∞时,y(t)→eβt(y0-x0γ),因此我们可以看出当γy0>x0时,y军队才有可能胜利,否则,x军队将获得胜利。
2.(方法二)利用相平面分析法:
我们可以将模型
(1)的两个方程先相除并对x、y求变上限积分,于是可以得到:
by2-cx2=by02-cx02=k(8)
由于两军队兵力一方为零时即失败,则我们可以在第一象限讨论两军实力的变化。
从方程我们可以看出dxdt<0;dydt<0;因此,随着时间t的延长,x与y的变化关系我们可以利用Mathematica来绘制出(代码略):
图1 常规战中相同兵力(x0=y0=100)下不同战斗有效系数对后期影响的相平面图
图2 常规战中相同战斗有效系数(b=c=1)下不同初始兵力对后期影响的相平面图
由多组数据绘制出的相平面图可以得出,无论是初始兵力相同以两军队战斗有效系数作为影响因子(图1)还是令战斗有效系数相同将两军队的初始兵力作为影响因子(图2),其结果最终取决于k值的正负,当k>0时总有y军队获胜,而当k<0时总有x军队获胜,由(8)式可知,k>0则有by02>cx02,也可以表示为:
(y0x0)2>cb(9)
从(9)式我们可以明显地看出两军的初始兵力的比例y0x0的变化被平方地放大——兰彻斯特平方规律,简言之:
若y军队与x军队的实力对比从1:
1上升到1:
2时,y军队将获得4倍的优势。
因此,在常规战中,相较于提高部队的战斗有效系数加大部队初始时刻战斗力的投入将会获得更大的作战效益。
实验二:
游击战
我们将直接利用相平面分析法来讨论交战双方在战争中胜利的条件。
将
(2)式中的非线性方程组做两式相除可得:
dydx=hg(10)
对上式做积分运算:
DSolve[y'[x]==hg,y[x],x]//Simplify
代入初值x0、y0,积分可得:
gy-hx=gy0-hx0=L(11)
我们同样可以绘制出相应的相平面图(代码略):
图3 游击战中相同兵力(x0=y0=100)下不同战斗有效系数对后期影响的相平面图
图4 游击战中相同战斗有效系数(h=g=1)下不同初始兵力对后期影响的相平面图
同样,通过图(3)(4)我们也可以类似地得出“战争结果最终取决于L值的正负”这样的结论。
因此,当L>0时(y军队获胜),(11)式可以化作:
y0x0>hg(12)
显然,当y军队与x军队的实力对比从1:
1上升到1:
2时,y军队相对于x军队仍然是两倍的优势,前后呈线性变化规律,此规律亦称为兰彻斯特线性作战规律。
因此,在游击战中,军队在初始时刻战斗力的投入大小与军队本身的战斗有效系数大小都将同等重要地影响着战斗的最终结果。
增大初始时刻投入的兵力、提高部队整体的作战效能都将有益于部队取得最后的胜利。
实验三:
常规—游击混合型
同理,通过式(3)之间相除我们可以得到式(13):
dydx=cgy(13)
对(13)式作积分:
DSolve[{y'[x]==c(g*y[x])},y[x],x]
并代入初值x0、y0得:
Gy2=2cx+gy02-2cx0(14)
其中:
gy02-2cx0=M
我们对(14)式取不同的影响因子做相平面图进行分析(代码略):
图5 混合战中相同兵力(x0=y0=100)下不同战斗有效系数对后期影响的相平面图
图6 混合战中相同战斗有效系数(g=c=1)下不同初始兵力对后期影响的相平面图
通过图5与图6我们可以得出,M>0时y军队(即常规部队)获胜,M<0时x军队(即游击部队)获胜。
由(14)式,M>0可以推导为(15)式形式:
y02x0>2cg(15)
所以,在战前y军队(常规部队)必须要呈平方倍地增加兵力投入才会增大战斗胜利的几率,因此这对常规部队来说是不利的,会加大战争的成本,且效果不尽人意。
比如Deithman在1962年之间曾统计过第二次世界大战后近10次的混合型常规——游击战的平均兵力比,实际的战力表明,当
常规部队游击部队〉8:
1
是,局势才会有利于常规部队。
拿1968年的越南战场为例,以美国为首的联军总兵力(常规部队)与越南共产党和北越(游击部队)的总兵力之比为168000028000=61,小于8:
1.美国原计划增援206000人,未果,并发起和谈,最终于1973年撤兵,1975年4月越南共产党和北越获得最终的胜利。
然而,即使美国决心增援,最终的结果依然是6.7:
1.联合部队并不会占据优势,因此战况也不会产生太大的改变,反而会让联合部队深陷战争的泥潭。
五、实验过程记录(含基本步骤、主要程序清单及异常情况记录等)
1.实验一:
求解常规战的微分方程组:
DSolve[{x'[t]==-b*y[t],y'[t]==-c*x[t],x[0]==x0,x'[0]==-b*y0},{x[t],y[t]},t]//Simplify
绘制图1:
Clear[b,c,x,y,x0,p,p1,p2,p3,p4,p5,p6,p7,p8,k,k1,k2,k3,k4,k5,k6,k7,k8,y0,g,g1,g2,g3,g4,g5,g6,g7,g8,c1,c2,c3,c4,c5,c6,c7,c8,b1,b2,b3,b4,b5,b6,b7,b8,t,b,g];
x0=100;y0=100;
b=1;c=1;
k=b*y0^2-c*x0^2;
y[x_]:
=;
g=y[x]0;
p=Plot[g,{x,0,100},PlotStyle®RGBColor[0,0.85,1]];
b1=1.2;c1=1;
k1=b1*y0^2-c1*x0^2;
y[x_]:
=;
g1=y[x]0;
p1=Plot[g1,{x,0,100},PlotStyle®RGBColor[0.5,0,0.8]];
b2=1.4;c2=1;
k2=b2*y0^2-c2*x0^2;
y[x_]:
=;
g2=y[x]0;
p2=Plot[g2,{x,0,100},PlotStyle®RGBColor[0.55,0,0.8]];
b3=1.6;c3=1;
k3=b3*y0^2-c3*x0^2;
y[x_]:
=;
g3=y[x]0;
p3=Plot[g3,{x,0,100},PlotStyle®RGBColor[0.6,0,0.8]];
b4=1.8;c4=1;
k4=b4*y0^2-c4*x0^2;
y[x_]:
=;
g4=y[x]0;
p4=Plot[g4,{x,0,100},PlotStyle®RGBColor[0.65,0,0.8]];
b5=1;c5=1.2;
k5=b5*y0^2-c5*x0^2;
y[x_]:
=;
g5=y[x]0;
p5=Plot[g5,{x,0,100},PlotStyle®RGBColor[0.5,0.85,0]];
b6=1;c6=1.4;
k6=b6*y0^2-c6*x0^2;
y[x_]:
=;
g6=y[x]0;
p6=Plot[g6,{x,0,100},PlotStyle®RGBColor[0.55,0.85,0]];
b7=1;c7=1.6;
k7=b7*y0^2-c7*x0^2;
y[x_]:
=;
g7=y[x]0;
p7=Plot[g7,{x,0,100},PlotStyle®RGBColor[0.60,0.85,0]];
b8=1;c8=1.8;
k8=b8*y0^2-c8*x0^2;
y[x_]:
=;
g8=y[x]0;
p8=Plot[g8,{x,0,100},PlotStyle®RGBColor[0.65,0.85,0]];
Show[p,p1,p2,p3,p4,p5,p6,p7,p8,PlotRange®All]
绘制图2:
Clear[b,c,x,y,x0,p,p1,p2,p3,p4,p5,p6,p7,p8,k,k1,k2,k3,k4,k5,k6,k7,k8,y0,g,g1,g2,g3,g4,g5,g6,g7,g8,c1,c2,c3,c4,c5,c6,c7,c8,b1,b2,b3,b4,b5,b6,b7,b8,t,b,g,sizemax];
b=1;c=1;
x0=100;y0=100;sizemax=200;
k=b*y0^2-c*x0^2;
y[x_]:
=;
g=y[x]0;
p=Plot[g,{x,0,sizemax},PlotStyle®RGBColor[0,0.85,1]];
x1=100;y1=120;
k1=b*y1^2-c*x1^2;
y[x_]:
=;
g1=y[x]0;
p1=Plot[g1,{x,0,sizemax},PlotStyle®RGBColor[0.5,0,0.8]];
x2=100;y2=140;
k2=b*y2^2-c*x2^2;
y[x_]:
=;
g2=y[x]0;
p2=Plot[g2,{x,0,sizemax},PlotStyle®RGBColor[0.55,0,0.8]];
x3=100;y3=160;
k3=b*y3^2-c*x3^2;
y[x_]:
=;
g3=y[x]0;
p3=Plot[g3,{x,0,sizemax},PlotStyle®RGBColor[0.6,0,0.8]];
x4=100;y4=200;
k4=b*y4^2-c*x4^2;
y[x_]:
=;
g4=y[x]0;
p4=Plot[g4,{x,0,sizemax},PlotStyle®RGBColor[0.65,0,0.8]];
x5=120;y5=100;
k5=b*y5^2-c*x5^2;
y[x_]:
=;
g5=y[x]0;
p5=Plot[g5,{x,0,sizemax},PlotStyle®RGBColor[0.6,0.85,0]];
x6=140;y6=100;
k6=b*y6^2-c*x6^2;
y[x_]:
=;
g6=y[x]0;
p6=Plot[g6,{x,0,sizemax},PlotStyle®RGBColor[0.6,0.85,0]];
x7=160;y7=100;
k7=b*y7^2-c*x7^2;
y[x_]:
=;
g7=y[x]0;
p7=Plot[g7,{x,0,sizemax},PlotStyle®RGBColor[0.6,0.85,0]];
x8=200;y8=100;
k8=b*y8^2-c*x8^2;
y[x_]:
=;
g8=y[x]0;
p8=Plot[g8,{x,0,sizemax},PlotStyle®RGBColor[0.6,0.85,0]];
Show[p,p1,p2,p3,p4,p5,p6,p7,p8,PlotRange®All]
2.实验二:
对方程组相除的结果求变上限积分:
DSolve[y'[x]==hg,y[x],x]//Simplify
绘制图3:
Clear[b,c,x,y,x0,p,p1,p2,p3,p4,p5,p6,p7,p8,y0,g,c1,c2,c3,c4,c5,c6,c7,c8,b1,b2,b3,b4,b5,b6,b7,b8,t,h,b,g,L,L1,L2,L3,L4,L5,L6,L7,L8,sizemax];
x0=100;y0=100;
sizemax=100;
g=1;h=1;
L=g*y0-h*x0;
y[x_]:
=(L+h*x)/g;
p=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0,0.85,1]];
g1=1.2;h1=1;
L1=g1*y0-h1*x0;
y[x_]:
=(L1+h1*x)/g1;
p1=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.5,0,0.8]];
g2=1.4;h2=1;
L2=g2*y0-h2*x0;
y[x_]:
=(L2+h2*x)/g2;
p2=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.55,0,0.8]];
g3=1.6;h3=1;
L3=g3*y0-h3*x0;
y[x_]:
=(L3+h3*x)/g3;
p3=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.6,0,0.8]];
g4=2.0;h4=1;
L4=g4*y0-h4*x0;
y[x_]:
=(L4+h4*x)/g4;
p4=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.65,0,0.8]];
g5=1;h5=1.2;
L5=g5*y0-h5*x0;
y[x_]:
=(L5+h5*x)/g5;
p5=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.5,0.85,0]];
g6=1;h6=1.4;
L6=g6*y0-h6*x0;
y[x_]:
=(L6+h6*x)/g6;
p6=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.55,0.85,0]];
g7=1;h7=1.6;
L7=g7*y0-h7*x0;
y[x_]:
=(L7+h7*x)/g7;
p7=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.6,0.85,0]];
g8=1;h8=2.0;
L8=g8*y0-h8*x0;
y[x_]:
=(L8+h8*x)/g8;
p8=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.65,0.85,0]];
Show[p,p1,p2,p3,p4,p5,p6,p7,p8,PlotRange®All]
绘制图4:
Clear[b,c,x,y,x0,p,p1,p2,p3,p4,p5,p6,p7,p8,y0,g,c1,c2,c3,c4,c5,c6,c7,c8,b1,b2,b3,b4,b5,b6,b7,b8,t,h,b,g,x0,y0,x1,x2,x3,x4,x5,x6,x7,x8,y1,y2,y3,y4,y5,y6,y7,y8,L,L1,L2,L3,L4,L5,L6,L7,L8,sizemax];
g=1;h=1;
sizemax=100;
x0=100;y0=100;
L=g*y0-h*x0;
y[x_]:
=(L+h*x)/g;
p=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0,0.85,1]];
x1=120;y1=100;
L1=g*y1-h*x1;
y[x_]:
=(L1+h*x)/g;
p1=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.5,0.85,0]];
x2=140;y2=100;
L2=g*y2-h*x2;
y[x_]:
=(L2+h*x)/g;
p2=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.55,0.85,0]];
x3=160;y3=100;
L3=g*y3-h*x3;
y[x_]:
=(L3+h*x)/g;
p3=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.60,0.85,0]];
x4=200;y4=100;
L4=g*y4-h*x4;
y[x_]:
=(L4+h*x)/g;
p4=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.65,0.85,0]];
x5=100;y5=120;
L5=g*y5-h*x5;
y[x_]:
=(L5+h*x)/g;
p5=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.50,0,0.8]];
x6=100;y6=140;
L6=g*y6-h*x6;
y[x_]:
=(L6+h*x)/g;
p6=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.55,0,0.8]];
x7=100;y7=160;
L7=g*y7-h*x7;
y[x_]:
=(L7+h*x)/g;
p7=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.60,0,0.8]];
x8=100;y8=200;
L8=g*y8-h*x8;
y[x_]:
=(L8+h*x)/g;
p8=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.65,0,0.8]];
Show[p,p1,p2,p3,p4,p5,p6,p7,p8,PlotRange®All]
3.实验三:
对方程组相除的结果求变上限积分:
DSolve[{y'[x]==c(g*y[x])},y[x],x]
得:
yx→-2cx+gC1g
y[x]→2cx+gC[1]g
绘制图5:
Clear[b,c,x,y,x0,p,p1,p2,p3,p4,p5,p6,p7,p8,y0,g,c1,c2,c3,c4,c5,c6,c7,c8,b1,b2,b3,b4,b5,b6,b7,b8,t,h,b,g,x0,y0,x1,x2,x3,x4,x5,x6,x7,x8,y1,y2,y3,y4,y5,y6,y7,y8,M,M1,M2,M3,M4,M5,M6,M7,M8,sizemax];
sizemax=10000;
x0=100;y0=100;
g=1;c=1;
M=g*y0^2-2*c*x0;
y[x_]=;
p=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0,0.85,1]];
g1=1;c1=2;
M1=g1*y0^2-2*c1*x0;
y[x_]=;
p1=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.50,0.85,0]];
g2=1;c2=3;
M2=g2*y0^2-2*c2*x0;
y[x_]=;
p2=Plot[y[x],{x,0,sizemax},PlotStyle®RGBColor[0.55,0.85,0]];
g3=1;c3=4;
M3=g