前面已经讲过了差分方程,那差分方程组是个啥就不用我介绍了吧。
今天为大家带来一个差分方程组解实际问题的例子:
特拉法尔加海战
背景介绍来自于百度百科--特拉法尔加海战
此战中,法西联合舰队主帅为维尔纳夫,英国舰队主帅为纳尔逊。
开战初期,法西联合舰队有战列舰33艘,可谓势均力敌,英国有战列舰27艘。两个舰队战力差距并不大,甚至法西联军还有一定优势。
但是最后的结果却是法西联军大败,从此一蹶不振。
我们来分析一下,究竟是为什么会出现这样的结果:
- 我们假设所有战斗均是刚正面,没有偷袭。转换成数值之后即是:每一阶段战斗中每一方战舰损失量都是对方的5%(分数值也是有意义的,表示有一艘或多艘战舰不能全力以赴地参加战斗);
- 不死不休,每次战斗兼职的标志为某一方军舰数量少于2;
法西联军舰队分为三个战斗编组,编组A有3艘战舰;编组B有17艘战舰;编组C有13艘战舰。
而英军方面,纳尔逊选择的策略是先用13艘战舰去进攻旗舰编组A;战斗之后,留存下来的军舰加上备用的14艘军舰一起去迎战编组B;最后所有剩下的战舰去迎战编组C。
第一战
首先来分析第一次战斗,即英军13艘战舰迎战法西联军旗舰编组A:
在第n个阶段的战斗之后,各方剩余的战舰数量为:


Python代码如下:
<code>
import matplotlib.pyplot as plt
import matplotlib
def Battle(BritishWarship,FrenchWarship):
Britain = []
France = []
count = []
stage = 0
Britain.append(BritishWarship)
France.append(FrenchWarship)
count.append(0)
while FrenchWarship > 2:
BritishWarship = BritishWarship - 0.05 * FrenchWarship
FrenchWarship = FrenchWarship - 0.05 * BritishWarship
stage += 1
Britain.append(BritishWarship)
France.append(FrenchWarship)
count.append(stage)
plt.scatter(count,Britain)
#plt.scatter(count,France)
plt.show()
Battle(13,3)
</code>
图像如下:


英国战舰数量:13->12.85->12.73
法西战舰数量:3->2.36->1.72
第二战
英国舰队数量:14 + 12.73 = 26.73
法西舰队数量:1.72 + 17 = 18.72
结果如下:


英国战舰数量:26.73->25.79->24.92->24.11->23.36->22.67->22.04->21.46->20.94->20.46->20.04->19.67->19.35->19.07->18.85->18.67->18.54
法西战舰数量:18.72->17.43->16.18->14.97->13.81->12.67->11.57->10.50->9.45->8.43->7.42-> 6.44->5.47->4.52->3.58->2.64->1.72
第三战
哈哈,第三战结果如何呢??
** 实际上当时法国在第二战之后就将C编队的13艘战舰全部撤回了法国 。**
如果打下去结果如何,小伙伴们可以自己算一下,很简单的。
这种军事策略这样分析看起来很简单,就像田忌赛马一样,以强搏弱。
网友评论