找到了这个新奇的玩意儿,大家看看.
数学建模, 数学实验与Matlab的应用实例
例 特拉法尔加海战(The Battle of Trafalgar)
1805年, 纳尔逊海军上将率领的英国舰队与 法国-西班牙联合舰队在特拉法尔加角进行了一场海战. 当时法国-西班牙联合舰队有战舰F0 = 33艘, 英国舰队有战舰B0 = 27艘. 双方的战斗力与各自的战舰数成比例.
影响战斗力的三个因素:
1. 战斗减员, 与对方的战斗力成正比
2. 非战斗减员, 与己方战斗力成正比
3. 增援部队
本例中只考虑第一个因素.
假设在每一个回合中, 各方损失的舰只数是对方舰只数的10%, 则有数学模型
Bk+1 = Bk 0.1Fk,
Fk+1 = Fk 0.1Bk.
这正是前面已讨论过的正规战争模型.
其矩阵形式为:
To p20
记B为 , F为 , ,则有
用Matlab进行实验:
X = [27, 33]';
A = [1, -0.1; -0.1, 1];
k = 0;
k = k + 1, X = A*X
每运行一次X = A*X代表进行一次战斗, k记录了战斗次数. 最后一行可用" "反复调用.
如果双方都在战斗中投入全部兵力, X0 = (27, 33)T, 则经过10个回合后,
X10 = A10X0 = (2.6791, 18.2416)T,
结果将是英国舰队仅剩3艘战舰, 且至少有一艘遭到重创, 而法国-西班牙舰队还剩18艘战舰. 显然是英方战败.
但是实际的结局是战斗以英方的胜利告终.
当时法西联合舰队是排列为一路纵队, 并分为B, A, C三组, 分别有战舰17, 3, 13艘(如下图).
B (17) A (3) C (13)
纳尔逊决定采用各个击破(Divide-and-Conquer)的策略: 先用13艘战舰去攻击对方的A组3艘战舰, 留14艘作预备队. 然后用战斗剩余的战舰与预备队合并去攻击对方的B组, 最后用剩余的力量与对方剩余的力量决战. 设每一个回合中, 各方损失的舰只数是对方舰只数的5%.
用数学模型作数学实验如下:
从实验的结果来看, 英方将获胜. 事实上, 纳尔逊率领的英国舰队确实获得了胜利, 法西联合舰队在第三轮战斗中还剩13艘战舰时战败而去, 但是纳尔逊本人也在战斗中阵亡.
讨论题:
如果海战的双方分别是水面舰队和潜艇部队, 那么应该用那一种战争模型 请自设数据和合理的参数进行数学实验并分析结果.
To p12
设X为参战一方(水面舰队)的战舰数, Y为另一方(潜艇部队)的潜艇数, 则可建立如下数学模型:
Xk+1 = Xk Yk,
Yk+1 = Xk XkYk.
附件是PPT幻灯片,可以教学用啊!
[ 本帖最后由 蓝色拿破仑 于 2007-3-4 12:35 编辑 ] |